public inbox for systemtap@sourceware.org
 help / color / mirror / Atom feed
* glibc build failure due to Systemtap probe change
@ 2021-11-16  9:29 Florian Weimer
  2021-11-16 21:52 ` Stan Cox
  2021-11-18 13:33 ` Stefan Liebler
  0 siblings, 2 replies; 12+ messages in thread
From: Florian Weimer @ 2021-11-16  9:29 UTC (permalink / raw)
  To: Stan Cox, Stefan Liebler; +Cc: Arjun Shankar, libc-alpha, systemtap

On Fedora rawhide, glibc no longer builds:

In file included from ../include/stap-probe.h:25,
                 from ../sysdeps/s390/s390-64/__longjmp.c:24:
../sysdeps/s390/s390-64/__longjmp.c: In function '__longjmp':
../sysdeps/s390/s390-64/__longjmp.c:52:50: error: expected ':' or ')' before numeric constant
   52 |                         LIBC_PROBE_ASM (longjmp, 8@%1 -4@%0 8@%%r4)
      |                                                  ^
../sysdeps/s390/s390-64/__longjmp.c:52:25: note: in expansion of macro 'LIBC_PROBE_ASM'
   52 |                         LIBC_PROBE_ASM (longjmp, 8@%1 -4@%0 8@%%r4)
      |                         ^~~~~~~~~~~~~~

This is because of a Systemtap probe:

| /* Jump to the position specified by ENV, causing the
|    setjmp call there to return VAL, or 1 if VAL is 0.  */
| void
| __longjmp (__jmp_buf env, int val)
| {
| #ifdef PTR_DEMANGLE
|   uintptr_t guard = THREAD_GET_POINTER_GUARD ();
| # ifdef CHECK_SP
|   CHECK_SP (env, guard);
| # endif
| #elif defined CHECK_SP
|   CHECK_SP (env, 0);
| #endif
|   register long int r2 __asm__ ("%r2") = val == 0 ? 1 : val;
| #ifdef PTR_DEMANGLE
|   register uintptr_t r3 __asm__ ("%r3") = guard;
|   register void *r1 __asm__ ("%r1") = (void *) env;
| #endif
|   /* Restore registers and jump back.  */
|   __asm__ __volatile__ (
| 			/* longjmp probe expects longjmp first argument, second
| 			   argument and target address.  */
| #ifdef PTR_DEMANGLE
| 			"lmg  %%r4,%%r5,64(%1)\n\t"
| 			"xgr  %%r4,%2\n\t"
| 			"xgr  %%r5,%2\n\t"
| 			LIBC_PROBE_ASM (longjmp, 8@%1 -4@%0 8@%%r4)
| #else
| 			LIBC_PROBE_ASM (longjmp, 8@%1 -4@%0 8@%%r14)
| #endif

My guess this is related to the macro changes to support floating point
values in probes added in this commit:

commit eaa15b047688175a94e3ae796529785a3a0af208
Author: Stan Cox <scox@redhat.com>
Date:   Thu Sep 30 16:11:29 2021 -0400

    PR27829: Support floating point values passed through sdt.h markers
    
    Add the type to the individual arg entries in the .notes.stapsdt section;
    currently SP@A, where S is optional '-' sign, P is precision of type and A is
    address.  Revised format is SPT@A where T is optional 'f' for float variables.
    Add x8664 float registers xmm8 - xmm15 and aarch64 float registers v8 - v31.
    Parse the type field; result is currently ignored.  asm statements are
    restricted to 30 arguments; sdt probes can have up to 12 arguments.  To fit
    this into a single asm statement, precision and type are encoded into a single
    field: 0xSSTT where SS is the precision and TT is the type as encoded by
    __builtin_classify_type.  The sign S, precision P, and type T are decoded by
    _SDT_SIGN, _SDT_SIZE, and _SDT_TYPE.  Test that the revised
    .notes.stapsdt section interacts correctly with eu-elfutils and gdb.

The macro changes in this commit seem to trigger additional macro
expansion in the preprocessor, and therefore require syntax closer to C.

LIBC_PROBE_ASM was added to longjmp to support GDB, but if GDB really
needs this, I'm not sure if Systemtap probes (via <sys/sdt.h>) are the
right mechanism because building with Systemtap support is optional.
Maybe we should copy <sys/sdt.h> into the glibc sources, and then we
could drop the floating point support again. 8-/

Or we could rewrite s390/s390x __longjmp in assembler.  It's mostly
assembler anyway.  Stefan, what do you think?

Thanks,
Florian


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: glibc build failure due to Systemtap probe change
  2021-11-16  9:29 glibc build failure due to Systemtap probe change Florian Weimer
@ 2021-11-16 21:52 ` Stan Cox
  2021-11-17 10:44   ` Florian Weimer
  2021-11-18 13:33 ` Stefan Liebler
  1 sibling, 1 reply; 12+ messages in thread
From: Stan Cox @ 2021-11-16 21:52 UTC (permalink / raw)
  To: Florian Weimer, Stefan Liebler; +Cc: Arjun Shankar, libc-alpha, systemtap

systemtap can now extract and store floats as long type and do basic 
operations so static markers now tag a float arg with a 'f'.

Hmm, so __longjump is creating its own STAP_PROBE_ASM_TEMPLATE?  Adding 
the arg type was difficult for even the baroque sdt.h macros to handle 
so some of the functionality was pushed into gas macros where compiler 
results can be observed instead of simple source text.  So the resulting 
template is now considerably more complex.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: glibc build failure due to Systemtap probe change
  2021-11-16 21:52 ` Stan Cox
@ 2021-11-17 10:44   ` Florian Weimer
  2021-11-17 13:42     ` Stan Cox
  0 siblings, 1 reply; 12+ messages in thread
From: Florian Weimer @ 2021-11-17 10:44 UTC (permalink / raw)
  To: Stan Cox; +Cc: Stefan Liebler, Arjun Shankar, libc-alpha, systemtap

* Stan Cox:

> systemtap can now extract and store floats as long type and do basic
> operations so static markers now tag a float arg with a 'f'.
>
> Hmm, so __longjump is creating its own STAP_PROBE_ASM_TEMPLATE?

Is there a way way to use STAP_PROBE_ASM without supplying the template?
There's no type inspection in assembler, after all.

Thanks,
Florian


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: glibc build failure due to Systemtap probe change
  2021-11-17 10:44   ` Florian Weimer
@ 2021-11-17 13:42     ` Stan Cox
  2021-11-17 15:39       ` Florian Weimer
  0 siblings, 1 reply; 12+ messages in thread
From: Stan Cox @ 2021-11-17 13:42 UTC (permalink / raw)
  To: Florian Weimer; +Cc: Stefan Liebler, Arjun Shankar, libc-alpha, systemtap

> Is there a way way to use STAP_PROBE_ASM without supplying the template?
> There's no type inspection in assembler, after all.

Can you send me the failing .i file so I can experiment with it?


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: glibc build failure due to Systemtap probe change
  2021-11-17 13:42     ` Stan Cox
@ 2021-11-17 15:39       ` Florian Weimer
  2021-11-25  1:55         ` Michael Hudson-Doyle
  0 siblings, 1 reply; 12+ messages in thread
From: Florian Weimer @ 2021-11-17 15:39 UTC (permalink / raw)
  To: Stan Cox; +Cc: Stefan Liebler, Arjun Shankar, libc-alpha, systemtap

[-- Attachment #1: Type: text/plain, Size: 549 bytes --]

* Stan Cox:

>> Is there a way way to use STAP_PROBE_ASM without supplying the template?
>> There's no type inspection in assembler, after all.
>
> Can you send me the failing .i file so I can experiment with it?

--save-temps did not work for me for some reason, so I'm attaching -E
and -E -fdirectives-only output.

I think I got Fedora rawhide s390x building again, so it's not *very*
time-critical, but I really don't want to release Fedora 36 with our own
private copy of <sys/sdt.h>.  But that release still some months away.

Thanks,
Florian

[-- Attachment #2: preprocessed.i --]
[-- Type: text/plain, Size: 276948 bytes --]

# 0 "../sysdeps/s390/s390-64/__longjmp.c"
# 1 "/root/git/setjmp//"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "../include/stdc-predef.h" 1
# 0 "<command-line>" 2
# 1 "/root/build/libc-modules.h" 1
# 0 "<command-line>" 2
# 1 "./../include/libc-symbols.h" 1
# 85 "./../include/libc-symbols.h"
# 1 "/root/build/config.h" 1
# 86 "./../include/libc-symbols.h" 2


# 1 "../sysdeps/generic/libc-symver.h" 1
# 25 "../sysdeps/generic/libc-symver.h"
# 1 "/root/build/config.h" 1
# 26 "../sysdeps/generic/libc-symver.h" 2
# 89 "./../include/libc-symbols.h" 2
# 865 "./../include/libc-symbols.h"
# 1 "../sysdeps/generic/symbol-hacks.h" 1
# 866 "./../include/libc-symbols.h" 2
# 0 "<command-line>" 2
# 1 "../sysdeps/s390/s390-64/__longjmp.c"
# 18 "../sysdeps/s390/s390-64/__longjmp.c"
# 1 "../include/errno.h" 1

# 1 "../stdlib/errno.h" 1
# 25 "../stdlib/errno.h"
# 1 "../include/features.h" 1
# 392 "../include/features.h"
# 1 "../include/features-time64.h" 1
# 1 "../sysdeps/unix/sysv/linux/features-time64.h" 1
# 20 "../sysdeps/unix/sysv/linux/features-time64.h"
# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
# 21 "../sysdeps/unix/sysv/linux/features-time64.h" 2
# 1 "../bits/timesize.h" 1
# 19 "../bits/timesize.h"
# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
# 20 "../bits/timesize.h" 2
# 22 "../sysdeps/unix/sysv/linux/features-time64.h" 2
# 2 "../include/features-time64.h" 2
# 393 "../include/features.h" 2
# 488 "../include/features.h"
# 1 "../include/sys/cdefs.h" 1
# 10 "../include/sys/cdefs.h"
# 1 "../misc/sys/cdefs.h" 1
# 558 "../misc/sys/cdefs.h"
# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
# 559 "../misc/sys/cdefs.h" 2
# 1 "../sysdeps/ieee754/ldbl-opt/bits/long-double.h" 1
# 560 "../misc/sys/cdefs.h" 2
# 11 "../include/sys/cdefs.h" 2
# 19 "../include/sys/cdefs.h"
extern void __chk_fail (void) __attribute__ ((__noreturn__));
extern __typeof (__chk_fail) __chk_fail __attribute__ ((visibility ("hidden")));

# 489 "../include/features.h" 2
# 512 "../include/features.h"
# 1 "../include/gnu/stubs.h" 1
# 513 "../include/features.h" 2
# 26 "../stdlib/errno.h" 2


# 1 "../sysdeps/unix/sysv/linux/bits/errno.h" 1
# 26 "../sysdeps/unix/sysv/linux/bits/errno.h"
# 1 "/usr/include/linux/errno.h" 1 3 4
# 1 "/usr/include/asm/errno.h" 1 3 4
# 1 "/usr/include/asm-generic/errno.h" 1 3 4




# 1 "/usr/include/asm-generic/errno-base.h" 1 3 4
# 6 "/usr/include/asm-generic/errno.h" 2 3 4
# 2 "/usr/include/asm/errno.h" 2 3 4
# 2 "/usr/include/linux/errno.h" 2 3 4
# 27 "../sysdeps/unix/sysv/linux/bits/errno.h" 2
# 29 "../stdlib/errno.h" 2








extern int *__errno_location (void) __attribute__ ((__nothrow__ )) __attribute__ ((__const__));







extern char *program_invocation_name;
extern char *program_invocation_short_name;

# 1 "../bits/types/error_t.h" 1
# 22 "../bits/types/error_t.h"
typedef int error_t;
# 49 "../stdlib/errno.h" 2




# 3 "../include/errno.h" 2
# 31 "../include/errno.h"
extern __thread int __libc_errno __attribute__ ((tls_model ("initial-exec")));





extern int *__errno_location (void) __attribute__ ((__nothrow__ )) __attribute__ ((__const__))



;
extern __typeof (__errno_location) __errno_location __attribute__ ((visibility ("hidden")));
# 19 "../sysdeps/s390/s390-64/__longjmp.c" 2
# 1 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" 1
# 22 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h"
# 1 "../sysdeps/s390/s390-64/sysdep.h" 1
# 19 "../sysdeps/s390/s390-64/sysdep.h"
# 1 "../sysdeps/generic/sysdep.h" 1
# 97 "../sysdeps/generic/sysdep.h"
# 1 "../sysdeps/generic/dwarf2.h" 1
# 36 "../sysdeps/generic/dwarf2.h"
enum dwarf_tag
  {
    DW_TAG_padding = 0x00,
    DW_TAG_array_type = 0x01,
    DW_TAG_class_type = 0x02,
    DW_TAG_entry_point = 0x03,
    DW_TAG_enumeration_type = 0x04,
    DW_TAG_formal_parameter = 0x05,
    DW_TAG_imported_declaration = 0x08,
    DW_TAG_label = 0x0a,
    DW_TAG_lexical_block = 0x0b,
    DW_TAG_member = 0x0d,
    DW_TAG_pointer_type = 0x0f,
    DW_TAG_reference_type = 0x10,
    DW_TAG_compile_unit = 0x11,
    DW_TAG_string_type = 0x12,
    DW_TAG_structure_type = 0x13,
    DW_TAG_subroutine_type = 0x15,
    DW_TAG_typedef = 0x16,
    DW_TAG_union_type = 0x17,
    DW_TAG_unspecified_parameters = 0x18,
    DW_TAG_variant = 0x19,
    DW_TAG_common_block = 0x1a,
    DW_TAG_common_inclusion = 0x1b,
    DW_TAG_inheritance = 0x1c,
    DW_TAG_inlined_subroutine = 0x1d,
    DW_TAG_module = 0x1e,
    DW_TAG_ptr_to_member_type = 0x1f,
    DW_TAG_set_type = 0x20,
    DW_TAG_subrange_type = 0x21,
    DW_TAG_with_stmt = 0x22,
    DW_TAG_access_declaration = 0x23,
    DW_TAG_base_type = 0x24,
    DW_TAG_catch_block = 0x25,
    DW_TAG_const_type = 0x26,
    DW_TAG_constant = 0x27,
    DW_TAG_enumerator = 0x28,
    DW_TAG_file_type = 0x29,
    DW_TAG_friend = 0x2a,
    DW_TAG_namelist = 0x2b,
    DW_TAG_namelist_item = 0x2c,
    DW_TAG_packed_type = 0x2d,
    DW_TAG_subprogram = 0x2e,
    DW_TAG_template_type_param = 0x2f,
    DW_TAG_template_value_param = 0x30,
    DW_TAG_thrown_type = 0x31,
    DW_TAG_try_block = 0x32,
    DW_TAG_variant_part = 0x33,
    DW_TAG_variable = 0x34,
    DW_TAG_volatile_type = 0x35,

    DW_TAG_MIPS_loop = 0x4081,

    DW_TAG_format_label = 0x4101,
    DW_TAG_function_template = 0x4102,
    DW_TAG_class_template = 0x4103,
    DW_TAG_GNU_BINCL = 0x4104,
    DW_TAG_GNU_EINCL = 0x4105
  };
# 104 "../sysdeps/generic/dwarf2.h"
enum dwarf_form
  {
    DW_FORM_addr = 0x01,
    DW_FORM_block2 = 0x03,
    DW_FORM_block4 = 0x04,
    DW_FORM_data2 = 0x05,
    DW_FORM_data4 = 0x06,
    DW_FORM_data8 = 0x07,
    DW_FORM_string = 0x08,
    DW_FORM_block = 0x09,
    DW_FORM_block1 = 0x0a,
    DW_FORM_data1 = 0x0b,
    DW_FORM_flag = 0x0c,
    DW_FORM_sdata = 0x0d,
    DW_FORM_strp = 0x0e,
    DW_FORM_udata = 0x0f,
    DW_FORM_ref_addr = 0x10,
    DW_FORM_ref1 = 0x11,
    DW_FORM_ref2 = 0x12,
    DW_FORM_ref4 = 0x13,
    DW_FORM_ref8 = 0x14,
    DW_FORM_ref_udata = 0x15,
    DW_FORM_indirect = 0x16
  };



enum dwarf_attribute
  {
    DW_AT_sibling = 0x01,
    DW_AT_location = 0x02,
    DW_AT_name = 0x03,
    DW_AT_ordering = 0x09,
    DW_AT_subscr_data = 0x0a,
    DW_AT_byte_size = 0x0b,
    DW_AT_bit_offset = 0x0c,
    DW_AT_bit_size = 0x0d,
    DW_AT_element_list = 0x0f,
    DW_AT_stmt_list = 0x10,
    DW_AT_low_pc = 0x11,
    DW_AT_high_pc = 0x12,
    DW_AT_language = 0x13,
    DW_AT_member = 0x14,
    DW_AT_discr = 0x15,
    DW_AT_discr_value = 0x16,
    DW_AT_visibility = 0x17,
    DW_AT_import = 0x18,
    DW_AT_string_length = 0x19,
    DW_AT_common_reference = 0x1a,
    DW_AT_comp_dir = 0x1b,
    DW_AT_const_value = 0x1c,
    DW_AT_containing_type = 0x1d,
    DW_AT_default_value = 0x1e,
    DW_AT_inline = 0x20,
    DW_AT_is_optional = 0x21,
    DW_AT_lower_bound = 0x22,
    DW_AT_producer = 0x25,
    DW_AT_prototyped = 0x27,
    DW_AT_return_addr = 0x2a,
    DW_AT_start_scope = 0x2c,
    DW_AT_stride_size = 0x2e,
    DW_AT_upper_bound = 0x2f,
    DW_AT_abstract_origin = 0x31,
    DW_AT_accessibility = 0x32,
    DW_AT_address_class = 0x33,
    DW_AT_artificial = 0x34,
    DW_AT_base_types = 0x35,
    DW_AT_calling_convention = 0x36,
    DW_AT_count = 0x37,
    DW_AT_data_member_location = 0x38,
    DW_AT_decl_column = 0x39,
    DW_AT_decl_file = 0x3a,
    DW_AT_decl_line = 0x3b,
    DW_AT_declaration = 0x3c,
    DW_AT_discr_list = 0x3d,
    DW_AT_encoding = 0x3e,
    DW_AT_external = 0x3f,
    DW_AT_frame_base = 0x40,
    DW_AT_friend = 0x41,
    DW_AT_identifier_case = 0x42,
    DW_AT_macro_info = 0x43,
    DW_AT_namelist_items = 0x44,
    DW_AT_priority = 0x45,
    DW_AT_segment = 0x46,
    DW_AT_specification = 0x47,
    DW_AT_static_link = 0x48,
    DW_AT_type = 0x49,
    DW_AT_use_location = 0x4a,
    DW_AT_variable_parameter = 0x4b,
    DW_AT_virtuality = 0x4c,
    DW_AT_vtable_elem_location = 0x4d,

    DW_AT_MIPS_fde = 0x2001,
    DW_AT_MIPS_loop_begin = 0x2002,
    DW_AT_MIPS_tail_loop_begin = 0x2003,
    DW_AT_MIPS_epilog_begin = 0x2004,
    DW_AT_MIPS_loop_unroll_factor = 0x2005,
    DW_AT_MIPS_software_pipeline_depth = 0x2006,
    DW_AT_MIPS_linkage_name = 0x2007,
    DW_AT_MIPS_stride = 0x2008,
    DW_AT_MIPS_abstract_name = 0x2009,
    DW_AT_MIPS_clone_origin = 0x200a,
    DW_AT_MIPS_has_inlines = 0x200b,

    DW_AT_sf_names = 0x2101,
    DW_AT_src_info = 0x2102,
    DW_AT_mac_info = 0x2103,
    DW_AT_src_coords = 0x2104,
    DW_AT_body_begin = 0x2105,
    DW_AT_body_end = 0x2106
  };






enum dwarf_location_atom
  {
    DW_OP_addr = 0x03,
    DW_OP_deref = 0x06,
    DW_OP_const1u = 0x08,
    DW_OP_const1s = 0x09,
    DW_OP_const2u = 0x0a,
    DW_OP_const2s = 0x0b,
    DW_OP_const4u = 0x0c,
    DW_OP_const4s = 0x0d,
    DW_OP_const8u = 0x0e,
    DW_OP_const8s = 0x0f,
    DW_OP_constu = 0x10,
    DW_OP_consts = 0x11,
    DW_OP_dup = 0x12,
    DW_OP_drop = 0x13,
    DW_OP_over = 0x14,
    DW_OP_pick = 0x15,
    DW_OP_swap = 0x16,
    DW_OP_rot = 0x17,
    DW_OP_xderef = 0x18,
    DW_OP_abs = 0x19,
    DW_OP_and = 0x1a,
    DW_OP_div = 0x1b,
    DW_OP_minus = 0x1c,
    DW_OP_mod = 0x1d,
    DW_OP_mul = 0x1e,
    DW_OP_neg = 0x1f,
    DW_OP_not = 0x20,
    DW_OP_or = 0x21,
    DW_OP_plus = 0x22,
    DW_OP_plus_uconst = 0x23,
    DW_OP_shl = 0x24,
    DW_OP_shr = 0x25,
    DW_OP_shra = 0x26,
    DW_OP_xor = 0x27,
    DW_OP_bra = 0x28,
    DW_OP_eq = 0x29,
    DW_OP_ge = 0x2a,
    DW_OP_gt = 0x2b,
    DW_OP_le = 0x2c,
    DW_OP_lt = 0x2d,
    DW_OP_ne = 0x2e,
    DW_OP_skip = 0x2f,
    DW_OP_lit0 = 0x30,
    DW_OP_lit1 = 0x31,
    DW_OP_lit2 = 0x32,
    DW_OP_lit3 = 0x33,
    DW_OP_lit4 = 0x34,
    DW_OP_lit5 = 0x35,
    DW_OP_lit6 = 0x36,
    DW_OP_lit7 = 0x37,
    DW_OP_lit8 = 0x38,
    DW_OP_lit9 = 0x39,
    DW_OP_lit10 = 0x3a,
    DW_OP_lit11 = 0x3b,
    DW_OP_lit12 = 0x3c,
    DW_OP_lit13 = 0x3d,
    DW_OP_lit14 = 0x3e,
    DW_OP_lit15 = 0x3f,
    DW_OP_lit16 = 0x40,
    DW_OP_lit17 = 0x41,
    DW_OP_lit18 = 0x42,
    DW_OP_lit19 = 0x43,
    DW_OP_lit20 = 0x44,
    DW_OP_lit21 = 0x45,
    DW_OP_lit22 = 0x46,
    DW_OP_lit23 = 0x47,
    DW_OP_lit24 = 0x48,
    DW_OP_lit25 = 0x49,
    DW_OP_lit26 = 0x4a,
    DW_OP_lit27 = 0x4b,
    DW_OP_lit28 = 0x4c,
    DW_OP_lit29 = 0x4d,
    DW_OP_lit30 = 0x4e,
    DW_OP_lit31 = 0x4f,
    DW_OP_reg0 = 0x50,
    DW_OP_reg1 = 0x51,
    DW_OP_reg2 = 0x52,
    DW_OP_reg3 = 0x53,
    DW_OP_reg4 = 0x54,
    DW_OP_reg5 = 0x55,
    DW_OP_reg6 = 0x56,
    DW_OP_reg7 = 0x57,
    DW_OP_reg8 = 0x58,
    DW_OP_reg9 = 0x59,
    DW_OP_reg10 = 0x5a,
    DW_OP_reg11 = 0x5b,
    DW_OP_reg12 = 0x5c,
    DW_OP_reg13 = 0x5d,
    DW_OP_reg14 = 0x5e,
    DW_OP_reg15 = 0x5f,
    DW_OP_reg16 = 0x60,
    DW_OP_reg17 = 0x61,
    DW_OP_reg18 = 0x62,
    DW_OP_reg19 = 0x63,
    DW_OP_reg20 = 0x64,
    DW_OP_reg21 = 0x65,
    DW_OP_reg22 = 0x66,
    DW_OP_reg23 = 0x67,
    DW_OP_reg24 = 0x68,
    DW_OP_reg25 = 0x69,
    DW_OP_reg26 = 0x6a,
    DW_OP_reg27 = 0x6b,
    DW_OP_reg28 = 0x6c,
    DW_OP_reg29 = 0x6d,
    DW_OP_reg30 = 0x6e,
    DW_OP_reg31 = 0x6f,
    DW_OP_breg0 = 0x70,
    DW_OP_breg1 = 0x71,
    DW_OP_breg2 = 0x72,
    DW_OP_breg3 = 0x73,
    DW_OP_breg4 = 0x74,
    DW_OP_breg5 = 0x75,
    DW_OP_breg6 = 0x76,
    DW_OP_breg7 = 0x77,
    DW_OP_breg8 = 0x78,
    DW_OP_breg9 = 0x79,
    DW_OP_breg10 = 0x7a,
    DW_OP_breg11 = 0x7b,
    DW_OP_breg12 = 0x7c,
    DW_OP_breg13 = 0x7d,
    DW_OP_breg14 = 0x7e,
    DW_OP_breg15 = 0x7f,
    DW_OP_breg16 = 0x80,
    DW_OP_breg17 = 0x81,
    DW_OP_breg18 = 0x82,
    DW_OP_breg19 = 0x83,
    DW_OP_breg20 = 0x84,
    DW_OP_breg21 = 0x85,
    DW_OP_breg22 = 0x86,
    DW_OP_breg23 = 0x87,
    DW_OP_breg24 = 0x88,
    DW_OP_breg25 = 0x89,
    DW_OP_breg26 = 0x8a,
    DW_OP_breg27 = 0x8b,
    DW_OP_breg28 = 0x8c,
    DW_OP_breg29 = 0x8d,
    DW_OP_breg30 = 0x8e,
    DW_OP_breg31 = 0x8f,
    DW_OP_regx = 0x90,
    DW_OP_fbreg = 0x91,
    DW_OP_bregx = 0x92,
    DW_OP_piece = 0x93,
    DW_OP_deref_size = 0x94,
    DW_OP_xderef_size = 0x95,
    DW_OP_nop = 0x96
  };






enum dwarf_type
  {
    DW_ATE_void = 0x0,
    DW_ATE_address = 0x1,
    DW_ATE_boolean = 0x2,
    DW_ATE_complex_float = 0x3,
    DW_ATE_float = 0x4,
    DW_ATE_signed = 0x5,
    DW_ATE_signed_char = 0x6,
    DW_ATE_unsigned = 0x7,
    DW_ATE_unsigned_char = 0x8
  };





enum dwarf_array_dim_ordering
  {
    DW_ORD_row_major = 0,
    DW_ORD_col_major = 1
  };


enum dwarf_access_attribute
  {
    DW_ACCESS_public = 1,
    DW_ACCESS_protected = 2,
    DW_ACCESS_private = 3
  };


enum dwarf_visibility_attribute
  {
    DW_VIS_local = 1,
    DW_VIS_exported = 2,
    DW_VIS_qualified = 3
  };


enum dwarf_virtuality_attribute
  {
    DW_VIRTUALITY_none = 0,
    DW_VIRTUALITY_virtual = 1,
    DW_VIRTUALITY_pure_virtual = 2
  };


enum dwarf_id_case
  {
    DW_ID_case_sensitive = 0,
    DW_ID_up_case = 1,
    DW_ID_down_case = 2,
    DW_ID_case_insensitive = 3
  };


enum dwarf_calling_convention
  {
    DW_CC_normal = 0x1,
    DW_CC_program = 0x2,
    DW_CC_nocall = 0x3
  };





enum dwarf_inline_attribute
  {
    DW_INL_not_inlined = 0,
    DW_INL_inlined = 1,
    DW_INL_declared_not_inlined = 2,
    DW_INL_declared_inlined = 3
  };


enum dwarf_discrim_list
  {
    DW_DSC_label = 0,
    DW_DSC_range = 1
  };


enum dwarf_line_number_ops
  {
    DW_LNS_extended_op = 0,
    DW_LNS_copy = 1,
    DW_LNS_advance_pc = 2,
    DW_LNS_advance_line = 3,
    DW_LNS_set_file = 4,
    DW_LNS_set_column = 5,
    DW_LNS_negate_stmt = 6,
    DW_LNS_set_basic_block = 7,
    DW_LNS_const_add_pc = 8,
    DW_LNS_fixed_advance_pc = 9
  };


enum dwarf_line_number_x_ops
  {
    DW_LNE_end_sequence = 1,
    DW_LNE_set_address = 2,
    DW_LNE_define_file = 3
  };


enum dwarf_call_frame_info
  {
    DW_CFA_advance_loc = 0x40,
    DW_CFA_offset = 0x80,
    DW_CFA_restore = 0xc0,
    DW_CFA_nop = 0x00,
    DW_CFA_set_loc = 0x01,
    DW_CFA_advance_loc1 = 0x02,
    DW_CFA_advance_loc2 = 0x03,
    DW_CFA_advance_loc4 = 0x04,
    DW_CFA_offset_extended = 0x05,
    DW_CFA_restore_extended = 0x06,
    DW_CFA_undefined = 0x07,
    DW_CFA_same_value = 0x08,
    DW_CFA_register = 0x09,
    DW_CFA_remember_state = 0x0a,
    DW_CFA_restore_state = 0x0b,
    DW_CFA_def_cfa = 0x0c,
    DW_CFA_def_cfa_register = 0x0d,
    DW_CFA_def_cfa_offset = 0x0e,
    DW_CFA_def_cfa_expression = 0x0f,
    DW_CFA_expression = 0x10,

    DW_CFA_offset_extended_sf = 0x11,
    DW_CFA_def_cfa_sf = 0x12,
    DW_CFA_def_cfa_offset_sf = 0x13,


    DW_CFA_MIPS_advance_loc8 = 0x1d,


    DW_CFA_GNU_window_save = 0x2d,
    DW_CFA_GNU_args_size = 0x2e,
    DW_CFA_GNU_negative_offset_extended = 0x2f
  };
# 532 "../sysdeps/generic/dwarf2.h"
enum dwarf_source_language
  {
    DW_LANG_C89 = 0x0001,
    DW_LANG_C = 0x0002,
    DW_LANG_Ada83 = 0x0003,
    DW_LANG_C_plus_plus = 0x0004,
    DW_LANG_Cobol74 = 0x0005,
    DW_LANG_Cobol85 = 0x0006,
    DW_LANG_Fortran77 = 0x0007,
    DW_LANG_Fortran90 = 0x0008,
    DW_LANG_Pascal83 = 0x0009,
    DW_LANG_Modula2 = 0x000a,
    DW_LANG_Java = 0x000b,
    DW_LANG_Mips_Assembler = 0x8001
  };







enum dwarf_macinfo_record_type
  {
    DW_MACINFO_define = 1,
    DW_MACINFO_undef = 2,
    DW_MACINFO_start_file = 3,
    DW_MACINFO_end_file = 4,
    DW_MACINFO_vendor_ext = 255
  };
# 98 "../sysdeps/generic/sysdep.h" 2
# 20 "../sysdeps/s390/s390-64/sysdep.h" 2
# 23 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" 2
# 1 "../sysdeps/unix/sysdep.h" 1
# 18 "../sysdeps/unix/sysdep.h"
# 1 "../sysdeps/generic/sysdep.h" 1
# 19 "../sysdeps/unix/sysdep.h" 2
# 1 "../sysdeps/unix/sysv/linux/single-thread.h" 1
# 31 "../sysdeps/unix/sysv/linux/single-thread.h"
extern int __libc_multiple_threads;
extern __typeof (__libc_multiple_threads) __libc_multiple_threads __attribute__ ((visibility ("hidden")));
# 20 "../sysdeps/unix/sysdep.h" 2
# 1 "../sysdeps/unix/sysv/linux/include/sys/syscall.h" 1
# 26 "../sysdeps/unix/sysv/linux/include/sys/syscall.h"
# 1 "../sysdeps/unix/sysv/linux/s390/s390-64/arch-syscall.h" 1
# 27 "../sysdeps/unix/sysv/linux/include/sys/syscall.h" 2
# 21 "../sysdeps/unix/sysdep.h" 2
# 24 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" 2
# 1 "../sysdeps/unix/sysv/linux/s390/sysdep.h" 1
# 25 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" 2
# 1 "../sysdeps/unix/sysv/linux/sysdep.h" 1
# 21 "../sysdeps/unix/sysv/linux/sysdep.h"
# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
# 22 "../sysdeps/unix/sysv/linux/sysdep.h" 2
# 1 "../sysdeps/unix/sysv/linux/s390/kernel-features.h" 1
# 31 "../sysdeps/unix/sysv/linux/s390/kernel-features.h"
# 1 "../sysdeps/unix/sysv/linux/kernel-features.h" 1
# 26 "../sysdeps/unix/sysv/linux/kernel-features.h"
# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
# 27 "../sysdeps/unix/sysv/linux/kernel-features.h" 2
# 32 "../sysdeps/unix/sysv/linux/s390/kernel-features.h" 2
# 23 "../sysdeps/unix/sysv/linux/sysdep.h" 2
# 1 "../include/endian.h" 1
# 1 "../string/endian.h" 1
# 24 "../string/endian.h"
# 1 "../include/bits/endian.h" 1
# 1 "../string/bits/endian.h" 1
# 35 "../string/bits/endian.h"
# 1 "../sysdeps/s390/bits/endianness.h" 1
# 36 "../string/bits/endian.h" 2
# 2 "../include/bits/endian.h" 2
# 25 "../string/endian.h" 2
# 35 "../string/endian.h"
# 1 "../bits/byteswap.h" 1
# 27 "../bits/byteswap.h"
# 1 "../include/bits/types.h" 1
# 1 "../posix/bits/types.h" 1
# 27 "../posix/bits/types.h"
# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
# 28 "../posix/bits/types.h" 2
# 1 "../bits/timesize.h" 1
# 19 "../bits/timesize.h"
# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
# 20 "../bits/timesize.h" 2
# 29 "../posix/bits/types.h" 2


typedef unsigned char __u_char;
typedef unsigned short int __u_short;
typedef unsigned int __u_int;
typedef unsigned long int __u_long;


typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;

typedef signed long int __int64_t;
typedef unsigned long int __uint64_t;






typedef __int8_t __int_least8_t;
typedef __uint8_t __uint_least8_t;
typedef __int16_t __int_least16_t;
typedef __uint16_t __uint_least16_t;
typedef __int32_t __int_least32_t;
typedef __uint32_t __uint_least32_t;
typedef __int64_t __int_least64_t;
typedef __uint64_t __uint_least64_t;



typedef long int __quad_t;
typedef unsigned long int __u_quad_t;







typedef long int __intmax_t;
typedef unsigned long int __uintmax_t;
# 141 "../posix/bits/types.h"
# 1 "../sysdeps/unix/sysv/linux/s390/bits/typesizes.h" 1
# 142 "../posix/bits/types.h" 2
# 1 "../bits/time64.h" 1
# 143 "../posix/bits/types.h" 2


typedef unsigned long int __dev_t;
typedef unsigned int __uid_t;
typedef unsigned int __gid_t;
typedef unsigned long int __ino_t;
typedef unsigned long int __ino64_t;
typedef unsigned int __mode_t;
typedef unsigned long int __nlink_t;
typedef long int __off_t;
typedef long int __off64_t;
typedef int __pid_t;
typedef struct { int __val[2]; } __fsid_t;
typedef long int __clock_t;
typedef unsigned long int __rlim_t;
typedef unsigned long int __rlim64_t;
typedef unsigned int __id_t;
typedef long int __time_t;
typedef unsigned int __useconds_t;
typedef long int __suseconds_t;
typedef long int __suseconds64_t;

typedef int __daddr_t;
typedef int __key_t;


typedef int __clockid_t;


typedef void * __timer_t;


typedef long int __blksize_t;




typedef long int __blkcnt_t;
typedef long int __blkcnt64_t;


typedef unsigned long int __fsblkcnt_t;
typedef unsigned long int __fsblkcnt64_t;


typedef unsigned long int __fsfilcnt_t;
typedef unsigned long int __fsfilcnt64_t;


typedef long int __fsword_t;

typedef long int __ssize_t;


typedef long int __syscall_slong_t;

typedef unsigned long int __syscall_ulong_t;



typedef __off64_t __loff_t;
typedef char *__caddr_t;


typedef long int __intptr_t;


typedef unsigned int __socklen_t;




typedef int __sig_atomic_t;
# 2 "../include/bits/types.h" 2
# 28 "../bits/byteswap.h" 2





static __inline __uint16_t
__bswap_16 (__uint16_t __bsx)
{

  return __builtin_bswap16 (__bsx);



}






static __inline __uint32_t
__bswap_32 (__uint32_t __bsx)
{

  return __builtin_bswap32 (__bsx);



}
# 69 "../bits/byteswap.h"
__extension__ static __inline __uint64_t
__bswap_64 (__uint64_t __bsx)
{

  return __builtin_bswap64 (__bsx);



}
# 36 "../string/endian.h" 2
# 1 "../bits/uintn-identity.h" 1
# 26 "../bits/uintn-identity.h"
# 1 "../include/bits/types.h" 1
# 27 "../bits/uintn-identity.h" 2





static __inline __uint16_t
__uint16_identity (__uint16_t __x)
{
  return __x;
}

static __inline __uint32_t
__uint32_identity (__uint32_t __x)
{
  return __x;
}

static __inline __uint64_t
__uint64_identity (__uint64_t __x)
{
  return __x;
}
# 37 "../string/endian.h" 2
# 2 "../include/endian.h" 2
# 24 "../sysdeps/unix/sysv/linux/sysdep.h" 2
# 26 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" 2
# 1 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 1
# 19 "../sysdeps/unix/sysv/linux/dl-sysdep.h"
# 1 "../sysdeps/generic/dl-sysdep.h" 1
# 20 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 2
# 31 "../sysdeps/unix/sysv/linux/dl-sysdep.h"
extern int _dl_discover_osversion (void) ;
# 27 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" 2
# 1 "../sysdeps/s390/nptl/tls.h" 1
# 22 "../sysdeps/s390/nptl/tls.h"
# 1 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 1
# 19 "../sysdeps/unix/sysv/linux/dl-sysdep.h"
# 1 "../sysdeps/generic/dl-sysdep.h" 1
# 20 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 2
# 31 "../sysdeps/unix/sysv/linux/dl-sysdep.h"
extern int _dl_discover_osversion (void) ;
# 23 "../sysdeps/s390/nptl/tls.h" 2

# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stdbool.h" 1 3 4
# 25 "../sysdeps/s390/nptl/tls.h" 2
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
# 143 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

# 143 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
typedef long int ptrdiff_t;
# 209 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
typedef long unsigned int size_t;
# 321 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
typedef int wchar_t;
# 415 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
typedef struct {
  long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
  long double __max_align_ld __attribute__((__aligned__(__alignof__(long double))));
# 426 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
} max_align_t;
# 26 "../sysdeps/s390/nptl/tls.h" 2
# 1 "../include/stdint.h" 1
# 1 "../stdlib/stdint.h" 1
# 26 "../stdlib/stdint.h"
# 1 "../bits/libc-header-start.h" 1
# 27 "../stdlib/stdint.h" 2
# 1 "../include/bits/types.h" 1
# 28 "../stdlib/stdint.h" 2
# 1 "../bits/wchar.h" 1
# 29 "../stdlib/stdint.h" 2
# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
# 30 "../stdlib/stdint.h" 2




# 1 "../bits/stdint-intn.h" 1
# 22 "../bits/stdint-intn.h"
# 1 "../include/bits/types.h" 1
# 23 "../bits/stdint-intn.h" 2


# 24 "../bits/stdint-intn.h"
typedef __int8_t int8_t;
typedef __int16_t int16_t;
typedef __int32_t int32_t;
typedef __int64_t int64_t;
# 35 "../stdlib/stdint.h" 2


# 1 "../bits/stdint-uintn.h" 1
# 22 "../bits/stdint-uintn.h"
# 1 "../include/bits/types.h" 1
# 23 "../bits/stdint-uintn.h" 2

typedef __uint8_t uint8_t;
typedef __uint16_t uint16_t;
typedef __uint32_t uint32_t;
typedef __uint64_t uint64_t;
# 38 "../stdlib/stdint.h" 2





typedef __int_least8_t int_least8_t;
typedef __int_least16_t int_least16_t;
typedef __int_least32_t int_least32_t;
typedef __int_least64_t int_least64_t;


typedef __uint_least8_t uint_least8_t;
typedef __uint_least16_t uint_least16_t;
typedef __uint_least32_t uint_least32_t;
typedef __uint_least64_t uint_least64_t;





typedef signed char int_fast8_t;

typedef long int int_fast16_t;
typedef long int int_fast32_t;
typedef long int int_fast64_t;
# 71 "../stdlib/stdint.h"
typedef unsigned char uint_fast8_t;

typedef unsigned long int uint_fast16_t;
typedef unsigned long int uint_fast32_t;
typedef unsigned long int uint_fast64_t;
# 87 "../stdlib/stdint.h"
typedef long int intptr_t;


typedef unsigned long int uintptr_t;
# 101 "../stdlib/stdint.h"
typedef __intmax_t intmax_t;
typedef __uintmax_t uintmax_t;
# 2 "../include/stdint.h" 2
# 27 "../sysdeps/s390/nptl/tls.h" 2
# 1 "../include/stdlib.h" 1



# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
# 5 "../include/stdlib.h" 2



# 1 "../sysdeps/ieee754/ldbl-128/bits/floatn.h" 1
# 23 "../sysdeps/ieee754/ldbl-128/bits/floatn.h"
# 1 "../sysdeps/ieee754/ldbl-opt/bits/long-double.h" 1
# 24 "../sysdeps/ieee754/ldbl-128/bits/floatn.h" 2
# 95 "../sysdeps/ieee754/ldbl-128/bits/floatn.h"
# 1 "../bits/floatn-common.h" 1
# 24 "../bits/floatn-common.h"
# 1 "../sysdeps/ieee754/ldbl-opt/bits/long-double.h" 1
# 25 "../bits/floatn-common.h" 2
# 96 "../sysdeps/ieee754/ldbl-128/bits/floatn.h" 2
# 9 "../include/stdlib.h" 2






# 1 "../stdlib/stdlib.h" 1
# 26 "../stdlib/stdlib.h"
# 1 "../bits/libc-header-start.h" 1
# 27 "../stdlib/stdlib.h" 2





# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
# 33 "../stdlib/stdlib.h" 2







# 1 "../sysdeps/unix/sysv/linux/bits/waitflags.h" 1
# 41 "../stdlib/stdlib.h" 2
# 1 "../bits/waitstatus.h" 1
# 42 "../stdlib/stdlib.h" 2
# 59 "../stdlib/stdlib.h"
typedef struct
  {
    int quot;
    int rem;
  } div_t;



typedef struct
  {
    long int quot;
    long int rem;
  } ldiv_t;





__extension__ typedef struct
  {
    long long int quot;
    long long int rem;
  } lldiv_t;
# 98 "../stdlib/stdlib.h"
extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ )) ;



extern double atof (const char *__nptr)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;

extern int atoi (const char *__nptr)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;

extern long int atol (const char *__nptr)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;



__extension__ extern long long int atoll (const char *__nptr)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;



extern double strtod (const char *__restrict __nptr,
        char **__restrict __endptr)
     __attribute__ ((__nothrow__ )) ;



extern float strtof (const char *__restrict __nptr,
       char **__restrict __endptr) __attribute__ ((__nothrow__ )) ;

extern long double strtold (const char *__restrict __nptr,
       char **__restrict __endptr)
     __attribute__ ((__nothrow__ )) ;
# 141 "../stdlib/stdlib.h"
extern _Float32 strtof32 (const char *__restrict __nptr,
     char **__restrict __endptr)
     __attribute__ ((__nothrow__ )) ;



extern _Float64 strtof64 (const char *__restrict __nptr,
     char **__restrict __endptr)
     __attribute__ ((__nothrow__ )) ;



extern _Float128 strtof128 (const char *__restrict __nptr,
       char **__restrict __endptr)
     __attribute__ ((__nothrow__ )) ;



extern _Float32x strtof32x (const char *__restrict __nptr,
       char **__restrict __endptr)
     __attribute__ ((__nothrow__ )) ;



extern _Float64x strtof64x (const char *__restrict __nptr,
       char **__restrict __endptr)
     __attribute__ ((__nothrow__ )) ;
# 177 "../stdlib/stdlib.h"
extern long int strtol (const char *__restrict __nptr,
   char **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__ )) ;

extern unsigned long int strtoul (const char *__restrict __nptr,
      char **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__ )) ;



__extension__
extern long long int strtoq (const char *__restrict __nptr,
        char **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__ )) ;

__extension__
extern unsigned long long int strtouq (const char *__restrict __nptr,
           char **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__ )) ;




__extension__
extern long long int strtoll (const char *__restrict __nptr,
         char **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__ )) ;

__extension__
extern unsigned long long int strtoull (const char *__restrict __nptr,
     char **__restrict __endptr, int __base)
     __attribute__ ((__nothrow__ )) ;




extern int strfromd (char *__dest, size_t __size, const char *__format,
       double __f)
     __attribute__ ((__nothrow__ )) ;

extern int strfromf (char *__dest, size_t __size, const char *__format,
       float __f)
     __attribute__ ((__nothrow__ )) ;

extern int strfroml (char *__dest, size_t __size, const char *__format,
       long double __f)
     __attribute__ ((__nothrow__ )) ;
# 233 "../stdlib/stdlib.h"
extern int strfromf32 (char *__dest, size_t __size, const char * __format,
         _Float32 __f)
     __attribute__ ((__nothrow__ )) ;



extern int strfromf64 (char *__dest, size_t __size, const char * __format,
         _Float64 __f)
     __attribute__ ((__nothrow__ )) ;



extern int strfromf128 (char *__dest, size_t __size, const char * __format,
   _Float128 __f)
     __attribute__ ((__nothrow__ )) ;



extern int strfromf32x (char *__dest, size_t __size, const char * __format,
   _Float32x __f)
     __attribute__ ((__nothrow__ )) ;



extern int strfromf64x (char *__dest, size_t __size, const char * __format,
   _Float64x __f)
     __attribute__ ((__nothrow__ )) ;
# 273 "../stdlib/stdlib.h"
# 1 "../include/bits/types/locale_t.h" 1
# 1 "../locale/bits/types/locale_t.h" 1
# 22 "../locale/bits/types/locale_t.h"
# 1 "../include/bits/types/__locale_t.h" 1
# 1 "../locale/bits/types/__locale_t.h" 1
# 27 "../locale/bits/types/__locale_t.h"
struct __locale_struct
{

  struct __locale_data *__locales[13];


  const unsigned short int *__ctype_b;
  const int *__ctype_tolower;
  const int *__ctype_toupper;


  const char *__names[13];
};

typedef struct __locale_struct *__locale_t;
# 2 "../include/bits/types/__locale_t.h" 2
# 23 "../locale/bits/types/locale_t.h" 2

typedef __locale_t locale_t;
# 2 "../include/bits/types/locale_t.h" 2
# 274 "../stdlib/stdlib.h" 2

extern long int strtol_l (const char *__restrict __nptr,
     char **__restrict __endptr, int __base,
     locale_t __loc) __attribute__ ((__nothrow__ )) ;

extern unsigned long int strtoul_l (const char *__restrict __nptr,
        char **__restrict __endptr,
        int __base, locale_t __loc)
     __attribute__ ((__nothrow__ )) ;

__extension__
extern long long int strtoll_l (const char *__restrict __nptr,
    char **__restrict __endptr, int __base,
    locale_t __loc)
     __attribute__ ((__nothrow__ )) ;

__extension__
extern unsigned long long int strtoull_l (const char *__restrict __nptr,
       char **__restrict __endptr,
       int __base, locale_t __loc)
     __attribute__ ((__nothrow__ )) ;

extern double strtod_l (const char *__restrict __nptr,
   char **__restrict __endptr, locale_t __loc)
     __attribute__ ((__nothrow__ )) ;

extern float strtof_l (const char *__restrict __nptr,
         char **__restrict __endptr, locale_t __loc)
     __attribute__ ((__nothrow__ )) ;

extern long double strtold_l (const char *__restrict __nptr,
         char **__restrict __endptr,
         locale_t __loc)
     __attribute__ ((__nothrow__ )) ;
# 317 "../stdlib/stdlib.h"
extern _Float32 strtof32_l (const char *__restrict __nptr,
       char **__restrict __endptr,
       locale_t __loc)
     __attribute__ ((__nothrow__ )) ;



extern _Float64 strtof64_l (const char *__restrict __nptr,
       char **__restrict __endptr,
       locale_t __loc)
     __attribute__ ((__nothrow__ )) ;



extern _Float128 strtof128_l (const char *__restrict __nptr,
         char **__restrict __endptr,
         locale_t __loc)
     __attribute__ ((__nothrow__ )) ;



extern _Float32x strtof32x_l (const char *__restrict __nptr,
         char **__restrict __endptr,
         locale_t __loc)
     __attribute__ ((__nothrow__ )) ;



extern _Float64x strtof64x_l (const char *__restrict __nptr,
         char **__restrict __endptr,
         locale_t __loc)
     __attribute__ ((__nothrow__ )) ;
# 361 "../stdlib/stdlib.h"
extern __inline int
__attribute__ ((__nothrow__ )) atoi (const char *__nptr)
{
  return (int) strtol (__nptr, (char **) 
# 364 "../stdlib/stdlib.h" 3 4
                                        ((void *)0)
# 364 "../stdlib/stdlib.h"
                                            , 10);
}
extern __inline long int
__attribute__ ((__nothrow__ )) atol (const char *__nptr)
{
  return strtol (__nptr, (char **) 
# 369 "../stdlib/stdlib.h" 3 4
                                  ((void *)0)
# 369 "../stdlib/stdlib.h"
                                      , 10);
}


__extension__ extern __inline long long int
__attribute__ ((__nothrow__ )) atoll (const char *__nptr)
{
  return strtoll (__nptr, (char **) 
# 376 "../stdlib/stdlib.h" 3 4
                                   ((void *)0)
# 376 "../stdlib/stdlib.h"
                                       , 10);
}
# 386 "../stdlib/stdlib.h"
extern char *l64a (long int __n) __attribute__ ((__nothrow__ )) ;


extern long int a64l (const char *__s)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;




# 1 "../include/sys/types.h" 1
# 1 "../posix/sys/types.h" 1
# 27 "../posix/sys/types.h"


# 1 "../include/bits/types.h" 1
# 30 "../posix/sys/types.h" 2



typedef __u_char u_char;
typedef __u_short u_short;
typedef __u_int u_int;
typedef __u_long u_long;
typedef __quad_t quad_t;
typedef __u_quad_t u_quad_t;
typedef __fsid_t fsid_t;


typedef __loff_t loff_t;




typedef __ino_t ino_t;






typedef __ino64_t ino64_t;




typedef __dev_t dev_t;




typedef __gid_t gid_t;




typedef __mode_t mode_t;




typedef __nlink_t nlink_t;




typedef __uid_t uid_t;





typedef __off_t off_t;






typedef __off64_t off64_t;




typedef __pid_t pid_t;





typedef __id_t id_t;




typedef __ssize_t ssize_t;





typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;





typedef __key_t key_t;




# 1 "../include/bits/types/clock_t.h" 1
# 1 "../time/bits/types/clock_t.h" 1



# 1 "../include/bits/types.h" 1
# 5 "../time/bits/types/clock_t.h" 2


typedef __clock_t clock_t;
# 2 "../include/bits/types/clock_t.h" 2
# 127 "../posix/sys/types.h" 2

# 1 "../include/bits/types/clockid_t.h" 1
# 1 "../time/bits/types/clockid_t.h" 1



# 1 "../include/bits/types.h" 1
# 5 "../time/bits/types/clockid_t.h" 2


typedef __clockid_t clockid_t;
# 2 "../include/bits/types/clockid_t.h" 2
# 129 "../posix/sys/types.h" 2
# 1 "../include/bits/types/time_t.h" 1
# 1 "../time/bits/types/time_t.h" 1



# 1 "../include/bits/types.h" 1
# 5 "../time/bits/types/time_t.h" 2





typedef __time_t time_t;
# 2 "../include/bits/types/time_t.h" 2
# 130 "../posix/sys/types.h" 2
# 1 "../include/bits/types/timer_t.h" 1
# 1 "../time/bits/types/timer_t.h" 1



# 1 "../include/bits/types.h" 1
# 5 "../time/bits/types/timer_t.h" 2


typedef __timer_t timer_t;
# 2 "../include/bits/types/timer_t.h" 2
# 131 "../posix/sys/types.h" 2



typedef __useconds_t useconds_t;



typedef __suseconds_t suseconds_t;





# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
# 145 "../posix/sys/types.h" 2



typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;







typedef __uint8_t u_int8_t;
typedef __uint16_t u_int16_t;
typedef __uint32_t u_int32_t;
typedef __uint64_t u_int64_t;


typedef int register_t __attribute__ ((__mode__ (__word__)));
# 176 "../posix/sys/types.h"
# 1 "../include/endian.h" 1
# 177 "../posix/sys/types.h" 2


# 1 "../include/sys/select.h" 1

# 1 "../misc/sys/select.h" 1
# 27 "../misc/sys/select.h"
# 1 "../include/bits/types.h" 1
# 28 "../misc/sys/select.h" 2


# 1 "../bits/select.h" 1
# 31 "../misc/sys/select.h" 2


# 1 "../include/bits/types/sigset_t.h" 1
# 1 "../signal/bits/types/sigset_t.h" 1



# 1 "../sysdeps/unix/sysv/linux/bits/types/__sigset_t.h" 1




typedef struct
{
  unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
} __sigset_t;
# 5 "../signal/bits/types/sigset_t.h" 2


typedef __sigset_t sigset_t;
# 2 "../include/bits/types/sigset_t.h" 2
# 34 "../misc/sys/select.h" 2


# 1 "../include/bits/types/time_t.h" 1
# 37 "../misc/sys/select.h" 2
# 1 "../include/bits/types/struct_timeval.h" 1
# 1 "../time/bits/types/struct_timeval.h" 1



# 1 "../include/bits/types.h" 1
# 5 "../time/bits/types/struct_timeval.h" 2



struct timeval
{




  __time_t tv_sec;
  __suseconds_t tv_usec;

};
# 2 "../include/bits/types/struct_timeval.h" 2
# 38 "../misc/sys/select.h" 2

# 1 "../include/bits/types/struct_timespec.h" 1
# 1 "../time/bits/types/struct_timespec.h" 1




# 1 "../include/bits/types.h" 1
# 6 "../time/bits/types/struct_timespec.h" 2
# 1 "../include/bits/endian.h" 1
# 7 "../time/bits/types/struct_timespec.h" 2
# 1 "../include/bits/types/time_t.h" 1
# 8 "../time/bits/types/struct_timespec.h" 2



struct timespec
{



  __time_t tv_sec;




  __syscall_slong_t tv_nsec;
# 31 "../time/bits/types/struct_timespec.h"
};
# 2 "../include/bits/types/struct_timespec.h" 2
# 40 "../misc/sys/select.h" 2
# 49 "../misc/sys/select.h"
typedef long int __fd_mask;
# 59 "../misc/sys/select.h"
typedef struct
  {



    __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];





  } fd_set;






typedef __fd_mask fd_mask;
# 91 "../misc/sys/select.h"

# 102 "../misc/sys/select.h"
extern int select (int __nfds, fd_set *__restrict __readfds,
     fd_set *__restrict __writefds,
     fd_set *__restrict __exceptfds,
     struct timeval *__restrict __timeout);
# 127 "../misc/sys/select.h"
extern int pselect (int __nfds, fd_set *__restrict __readfds,
      fd_set *__restrict __writefds,
      fd_set *__restrict __exceptfds,
      const struct timespec *__restrict __timeout,
      const __sigset_t *__restrict __sigmask);
# 153 "../misc/sys/select.h"

# 3 "../include/sys/select.h" 2
# 35 "../include/sys/select.h"
extern int __pselect (int __nfds, fd_set *__readfds,
        fd_set *__writefds, fd_set *__exceptfds,
        const struct timespec *__timeout,
        const __sigset_t *__sigmask);

extern int __select (int __nfds, fd_set *__restrict __readfds,
       fd_set *__restrict __writefds,
       fd_set *__restrict __exceptfds,
       struct timeval *__restrict __timeout);
extern __typeof (__select) __select __attribute__ ((visibility ("hidden")));
# 180 "../posix/sys/types.h" 2





typedef __blksize_t blksize_t;






typedef __blkcnt_t blkcnt_t;



typedef __fsblkcnt_t fsblkcnt_t;



typedef __fsfilcnt_t fsfilcnt_t;
# 219 "../posix/sys/types.h"
typedef __blkcnt64_t blkcnt64_t;
typedef __fsblkcnt64_t fsblkcnt64_t;
typedef __fsfilcnt64_t fsfilcnt64_t;





# 1 "../sysdeps/nptl/bits/pthreadtypes.h" 1
# 23 "../sysdeps/nptl/bits/pthreadtypes.h"
# 1 "../sysdeps/nptl/bits/thread-shared-types.h" 1
# 44 "../sysdeps/nptl/bits/thread-shared-types.h"
# 1 "../sysdeps/nptl/bits/pthreadtypes-arch.h" 1
# 23 "../sysdeps/nptl/bits/pthreadtypes-arch.h"
# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
# 24 "../sysdeps/nptl/bits/pthreadtypes-arch.h" 2
# 45 "../sysdeps/nptl/bits/thread-shared-types.h" 2

# 1 "../include/bits/atomic_wide_counter.h" 1
# 1 "../bits/atomic_wide_counter.h" 1
# 25 "../bits/atomic_wide_counter.h"
typedef union
{
  __extension__ unsigned long long int __value64;
  struct
  {
    unsigned int __low;
    unsigned int __high;
  } __value32;
} __atomic_wide_counter;
# 2 "../include/bits/atomic_wide_counter.h" 2
# 47 "../sysdeps/nptl/bits/thread-shared-types.h" 2




typedef struct __pthread_internal_list
{
  struct __pthread_internal_list *__prev;
  struct __pthread_internal_list *__next;
} __pthread_list_t;

typedef struct __pthread_internal_slist
{
  struct __pthread_internal_slist *__next;
} __pthread_slist_t;
# 76 "../sysdeps/nptl/bits/thread-shared-types.h"
# 1 "../sysdeps/s390/nptl/bits/struct_mutex.h" 1
# 22 "../sysdeps/s390/nptl/bits/struct_mutex.h"
struct __pthread_mutex_s
{
  int __lock;
  unsigned int __count;
  int __owner;

  unsigned int __nusers;



  int __kind;

  short __spins;
  short __elision;
  __pthread_list_t __list;
# 53 "../sysdeps/s390/nptl/bits/struct_mutex.h"
};
# 77 "../sysdeps/nptl/bits/thread-shared-types.h" 2
# 89 "../sysdeps/nptl/bits/thread-shared-types.h"
# 1 "../sysdeps/s390/nptl/bits/struct_rwlock.h" 1
# 23 "../sysdeps/s390/nptl/bits/struct_rwlock.h"
struct __pthread_rwlock_arch_t
{
  unsigned int __readers;
  unsigned int __writers;
  unsigned int __wrphase_futex;
  unsigned int __writers_futex;
  unsigned int __pad3;
  unsigned int __pad4;

  int __cur_writer;
  int __shared;
  unsigned long int __pad1;
  unsigned long int __pad2;


  unsigned int __flags;
# 48 "../sysdeps/s390/nptl/bits/struct_rwlock.h"
};
# 90 "../sysdeps/nptl/bits/thread-shared-types.h" 2




struct __pthread_cond_s
{
  __atomic_wide_counter __wseq;
  __atomic_wide_counter __g1_start;
  unsigned int __g_refs[2] ;
  unsigned int __g_size[2];
  unsigned int __g1_orig_size;
  unsigned int __wrefs;
  unsigned int __g_signals[2];
};

typedef unsigned int __tss_t;
typedef unsigned long int __thrd_t;

typedef struct
{
  int __data ;
} __once_flag;
# 24 "../sysdeps/nptl/bits/pthreadtypes.h" 2



typedef unsigned long int pthread_t;




typedef union
{
  char __size[4];
  int __align;
} pthread_mutexattr_t;




typedef union
{
  char __size[4];
  int __align;
} pthread_condattr_t;



typedef unsigned int pthread_key_t;



typedef int pthread_once_t;


union pthread_attr_t
{
  char __size[56];
  long int __align;
};

typedef union pthread_attr_t pthread_attr_t;




typedef union
{
  struct __pthread_mutex_s __data;
  char __size[40];
  long int __align;
} pthread_mutex_t;


typedef union
{
  struct __pthread_cond_s __data;
  char __size[48];
  __extension__ long long int __align;
} pthread_cond_t;





typedef union
{
  struct __pthread_rwlock_arch_t __data;
  char __size[56];
  long int __align;
} pthread_rwlock_t;

typedef union
{
  char __size[8];
  long int __align;
} pthread_rwlockattr_t;





typedef volatile int pthread_spinlock_t;




typedef union
{
  char __size[32];
  long int __align;
} pthread_barrier_t;

typedef union
{
  char __size[4];
  int __align;
} pthread_barrierattr_t;
# 228 "../posix/sys/types.h" 2



# 2 "../include/sys/types.h" 2
# 396 "../stdlib/stdlib.h" 2






extern long int random (void) __attribute__ ((__nothrow__ ));


extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ ));





extern char *initstate (unsigned int __seed, char *__statebuf,
   size_t __statelen) __attribute__ ((__nothrow__ )) ;



extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ )) ;







struct random_data
  {
    int32_t *fptr;
    int32_t *rptr;
    int32_t *state;
    int rand_type;
    int rand_deg;
    int rand_sep;
    int32_t *end_ptr;
  };

extern int random_r (struct random_data *__restrict __buf,
       int32_t *__restrict __result) __attribute__ ((__nothrow__ )) ;

extern int srandom_r (unsigned int __seed, struct random_data *__buf)
     __attribute__ ((__nothrow__ )) ;

extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
   size_t __statelen,
   struct random_data *__restrict __buf)
     __attribute__ ((__nothrow__ )) ;

extern int setstate_r (char *__restrict __statebuf,
         struct random_data *__restrict __buf)
     __attribute__ ((__nothrow__ )) ;





extern int rand (void) __attribute__ ((__nothrow__ ));

extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ ));



extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ ));







extern double drand48 (void) __attribute__ ((__nothrow__ ));
extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ )) ;


extern long int lrand48 (void) __attribute__ ((__nothrow__ ));
extern long int nrand48 (unsigned short int __xsubi[3])
     __attribute__ ((__nothrow__ )) ;


extern long int mrand48 (void) __attribute__ ((__nothrow__ ));
extern long int jrand48 (unsigned short int __xsubi[3])
     __attribute__ ((__nothrow__ )) ;


extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ ));
extern unsigned short int *seed48 (unsigned short int __seed16v[3])
     __attribute__ ((__nothrow__ )) ;
extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ )) ;





struct drand48_data
  {
    unsigned short int __x[3];
    unsigned short int __old_x[3];
    unsigned short int __c;
    unsigned short int __init;
    __extension__ unsigned long long int __a;

  };


extern int drand48_r (struct drand48_data *__restrict __buffer,
        double *__restrict __result) __attribute__ ((__nothrow__ )) ;
extern int erand48_r (unsigned short int __xsubi[3],
        struct drand48_data *__restrict __buffer,
        double *__restrict __result) __attribute__ ((__nothrow__ )) ;


extern int lrand48_r (struct drand48_data *__restrict __buffer,
        long int *__restrict __result)
     __attribute__ ((__nothrow__ )) ;
extern int nrand48_r (unsigned short int __xsubi[3],
        struct drand48_data *__restrict __buffer,
        long int *__restrict __result)
     __attribute__ ((__nothrow__ )) ;


extern int mrand48_r (struct drand48_data *__restrict __buffer,
        long int *__restrict __result)
     __attribute__ ((__nothrow__ )) ;
extern int jrand48_r (unsigned short int __xsubi[3],
        struct drand48_data *__restrict __buffer,
        long int *__restrict __result)
     __attribute__ ((__nothrow__ )) ;


extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
     __attribute__ ((__nothrow__ )) ;

extern int seed48_r (unsigned short int __seed16v[3],
       struct drand48_data *__buffer) __attribute__ ((__nothrow__ )) ;

extern int lcong48_r (unsigned short int __param[7],
        struct drand48_data *__buffer)
     __attribute__ ((__nothrow__ )) ;




extern void *malloc (size_t __size) __attribute__ ((__nothrow__ )) __attribute__ ((__malloc__))
     __attribute__ ((__alloc_size__ (1))) ;

extern void *calloc (size_t __nmemb, size_t __size)
     __attribute__ ((__nothrow__ )) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) ;






extern void *realloc (void *__ptr, size_t __size)
     __attribute__ ((__nothrow__ )) __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2)));


extern void free (void *__ptr) __attribute__ ((__nothrow__ ));







extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
     __attribute__ ((__nothrow__ )) __attribute__ ((__warn_unused_result__))
     __attribute__ ((__alloc_size__ (2, 3)))
    __attribute__ ((__malloc__ (__builtin_free, 1)));


extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
     __attribute__ ((__nothrow__ )) __attribute__ ((__malloc__ (reallocarray, 1)));



# 1 "../include/alloca.h" 1


# 1 "../stdlib/alloca.h" 1
# 24 "../stdlib/alloca.h"
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
# 25 "../stdlib/alloca.h" 2







extern void *alloca (size_t __size) __attribute__ ((__nothrow__ ));






# 4 "../include/alloca.h" 2



# 1 "../include/stackinfo.h" 1
# 24 "../include/stackinfo.h"
# 1 "../sysdeps/s390/stackinfo.h" 1
# 24 "../sysdeps/s390/stackinfo.h"
# 1 "../include/elf.h" 1

# 1 "../elf/elf.h" 1
# 24 "../elf/elf.h"
# 1 "../include/stdint.h" 1
# 25 "../elf/elf.h" 2


typedef uint16_t Elf32_Half;
typedef uint16_t Elf64_Half;


typedef uint32_t Elf32_Word;
typedef int32_t Elf32_Sword;
typedef uint32_t Elf64_Word;
typedef int32_t Elf64_Sword;


typedef uint64_t Elf32_Xword;
typedef int64_t Elf32_Sxword;
typedef uint64_t Elf64_Xword;
typedef int64_t Elf64_Sxword;


typedef uint32_t Elf32_Addr;
typedef uint64_t Elf64_Addr;


typedef uint32_t Elf32_Off;
typedef uint64_t Elf64_Off;


typedef uint16_t Elf32_Section;
typedef uint16_t Elf64_Section;


typedef Elf32_Half Elf32_Versym;
typedef Elf64_Half Elf64_Versym;






typedef struct
{
  unsigned char e_ident[(16)];
  Elf32_Half e_type;
  Elf32_Half e_machine;
  Elf32_Word e_version;
  Elf32_Addr e_entry;
  Elf32_Off e_phoff;
  Elf32_Off e_shoff;
  Elf32_Word e_flags;
  Elf32_Half e_ehsize;
  Elf32_Half e_phentsize;
  Elf32_Half e_phnum;
  Elf32_Half e_shentsize;
  Elf32_Half e_shnum;
  Elf32_Half e_shstrndx;
} Elf32_Ehdr;

typedef struct
{
  unsigned char e_ident[(16)];
  Elf64_Half e_type;
  Elf64_Half e_machine;
  Elf64_Word e_version;
  Elf64_Addr e_entry;
  Elf64_Off e_phoff;
  Elf64_Off e_shoff;
  Elf64_Word e_flags;
  Elf64_Half e_ehsize;
  Elf64_Half e_phentsize;
  Elf64_Half e_phnum;
  Elf64_Half e_shentsize;
  Elf64_Half e_shnum;
  Elf64_Half e_shstrndx;
} Elf64_Ehdr;
# 382 "../elf/elf.h"
typedef struct
{
  Elf32_Word sh_name;
  Elf32_Word sh_type;
  Elf32_Word sh_flags;
  Elf32_Addr sh_addr;
  Elf32_Off sh_offset;
  Elf32_Word sh_size;
  Elf32_Word sh_link;
  Elf32_Word sh_info;
  Elf32_Word sh_addralign;
  Elf32_Word sh_entsize;
} Elf32_Shdr;

typedef struct
{
  Elf64_Word sh_name;
  Elf64_Word sh_type;
  Elf64_Xword sh_flags;
  Elf64_Addr sh_addr;
  Elf64_Off sh_offset;
  Elf64_Xword sh_size;
  Elf64_Word sh_link;
  Elf64_Word sh_info;
  Elf64_Xword sh_addralign;
  Elf64_Xword sh_entsize;
} Elf64_Shdr;
# 490 "../elf/elf.h"
typedef struct
{
  Elf32_Word ch_type;
  Elf32_Word ch_size;
  Elf32_Word ch_addralign;
} Elf32_Chdr;

typedef struct
{
  Elf64_Word ch_type;
  Elf64_Word ch_reserved;
  Elf64_Xword ch_size;
  Elf64_Xword ch_addralign;
} Elf64_Chdr;
# 517 "../elf/elf.h"
typedef struct
{
  Elf32_Word st_name;
  Elf32_Addr st_value;
  Elf32_Word st_size;
  unsigned char st_info;
  unsigned char st_other;
  Elf32_Section st_shndx;
} Elf32_Sym;

typedef struct
{
  Elf64_Word st_name;
  unsigned char st_info;
  unsigned char st_other;
  Elf64_Section st_shndx;
  Elf64_Addr st_value;
  Elf64_Xword st_size;
} Elf64_Sym;




typedef struct
{
  Elf32_Half si_boundto;
  Elf32_Half si_flags;
} Elf32_Syminfo;

typedef struct
{
  Elf64_Half si_boundto;
  Elf64_Half si_flags;
} Elf64_Syminfo;
# 632 "../elf/elf.h"
typedef struct
{
  Elf32_Addr r_offset;
  Elf32_Word r_info;
} Elf32_Rel;






typedef struct
{
  Elf64_Addr r_offset;
  Elf64_Xword r_info;
} Elf64_Rel;



typedef struct
{
  Elf32_Addr r_offset;
  Elf32_Word r_info;
  Elf32_Sword r_addend;
} Elf32_Rela;

typedef struct
{
  Elf64_Addr r_offset;
  Elf64_Xword r_info;
  Elf64_Sxword r_addend;
} Elf64_Rela;
# 677 "../elf/elf.h"
typedef struct
{
  Elf32_Word p_type;
  Elf32_Off p_offset;
  Elf32_Addr p_vaddr;
  Elf32_Addr p_paddr;
  Elf32_Word p_filesz;
  Elf32_Word p_memsz;
  Elf32_Word p_flags;
  Elf32_Word p_align;
} Elf32_Phdr;

typedef struct
{
  Elf64_Word p_type;
  Elf64_Word p_flags;
  Elf64_Off p_offset;
  Elf64_Addr p_vaddr;
  Elf64_Addr p_paddr;
  Elf64_Xword p_filesz;
  Elf64_Xword p_memsz;
  Elf64_Xword p_align;
} Elf64_Phdr;
# 833 "../elf/elf.h"
typedef struct
{
  Elf32_Sword d_tag;
  union
    {
      Elf32_Word d_val;
      Elf32_Addr d_ptr;
    } d_un;
} Elf32_Dyn;

typedef struct
{
  Elf64_Sxword d_tag;
  union
    {
      Elf64_Xword d_val;
      Elf64_Addr d_ptr;
    } d_un;
} Elf64_Dyn;
# 1015 "../elf/elf.h"
typedef struct
{
  Elf32_Half vd_version;
  Elf32_Half vd_flags;
  Elf32_Half vd_ndx;
  Elf32_Half vd_cnt;
  Elf32_Word vd_hash;
  Elf32_Word vd_aux;
  Elf32_Word vd_next;

} Elf32_Verdef;

typedef struct
{
  Elf64_Half vd_version;
  Elf64_Half vd_flags;
  Elf64_Half vd_ndx;
  Elf64_Half vd_cnt;
  Elf64_Word vd_hash;
  Elf64_Word vd_aux;
  Elf64_Word vd_next;

} Elf64_Verdef;
# 1057 "../elf/elf.h"
typedef struct
{
  Elf32_Word vda_name;
  Elf32_Word vda_next;

} Elf32_Verdaux;

typedef struct
{
  Elf64_Word vda_name;
  Elf64_Word vda_next;

} Elf64_Verdaux;




typedef struct
{
  Elf32_Half vn_version;
  Elf32_Half vn_cnt;
  Elf32_Word vn_file;

  Elf32_Word vn_aux;
  Elf32_Word vn_next;

} Elf32_Verneed;

typedef struct
{
  Elf64_Half vn_version;
  Elf64_Half vn_cnt;
  Elf64_Word vn_file;

  Elf64_Word vn_aux;
  Elf64_Word vn_next;

} Elf64_Verneed;
# 1104 "../elf/elf.h"
typedef struct
{
  Elf32_Word vna_hash;
  Elf32_Half vna_flags;
  Elf32_Half vna_other;
  Elf32_Word vna_name;
  Elf32_Word vna_next;

} Elf32_Vernaux;

typedef struct
{
  Elf64_Word vna_hash;
  Elf64_Half vna_flags;
  Elf64_Half vna_other;
  Elf64_Word vna_name;
  Elf64_Word vna_next;

} Elf64_Vernaux;
# 1138 "../elf/elf.h"
typedef struct
{
  uint32_t a_type;
  union
    {
      uint32_t a_val;



    } a_un;
} Elf32_auxv_t;

typedef struct
{
  uint64_t a_type;
  union
    {
      uint64_t a_val;



    } a_un;
} Elf64_auxv_t;
# 1240 "../elf/elf.h"
typedef struct
{
  Elf32_Word n_namesz;
  Elf32_Word n_descsz;
  Elf32_Word n_type;
} Elf32_Nhdr;

typedef struct
{
  Elf64_Word n_namesz;
  Elf64_Word n_descsz;
  Elf64_Word n_type;
} Elf64_Nhdr;
# 1378 "../elf/elf.h"
typedef struct
{
  Elf32_Xword m_value;
  Elf32_Word m_info;
  Elf32_Word m_poffset;
  Elf32_Half m_repeat;
  Elf32_Half m_stride;
} Elf32_Move;

typedef struct
{
  Elf64_Xword m_value;
  Elf64_Xword m_info;
  Elf64_Xword m_poffset;
  Elf64_Half m_repeat;
  Elf64_Half m_stride;
} Elf64_Move;
# 1768 "../elf/elf.h"
typedef union
{
  struct
    {
      Elf32_Word gt_current_g_value;
      Elf32_Word gt_unused;
    } gt_header;
  struct
    {
      Elf32_Word gt_g_value;
      Elf32_Word gt_bytes;
    } gt_entry;
} Elf32_gptab;



typedef struct
{
  Elf32_Word ri_gprmask;
  Elf32_Word ri_cprmask[4];
  Elf32_Sword ri_gp_value;
} Elf32_RegInfo;



typedef struct
{
  unsigned char kind;

  unsigned char size;
  Elf32_Section section;

  Elf32_Word info;
} Elf_Options;
# 1844 "../elf/elf.h"
typedef struct
{
  Elf32_Word hwp_flags1;
  Elf32_Word hwp_flags2;
} Elf_Options_Hw;
# 2012 "../elf/elf.h"
typedef struct
{
  Elf32_Word l_name;
  Elf32_Word l_time_stamp;
  Elf32_Word l_checksum;
  Elf32_Word l_version;
  Elf32_Word l_flags;
} Elf32_Lib;

typedef struct
{
  Elf64_Word l_name;
  Elf64_Word l_time_stamp;
  Elf64_Word l_checksum;
  Elf64_Word l_version;
  Elf64_Word l_flags;
} Elf64_Lib;
# 2043 "../elf/elf.h"
typedef Elf32_Addr Elf32_Conflict;

typedef struct
{

  Elf32_Half version;

  unsigned char isa_level;

  unsigned char isa_rev;

  unsigned char gpr_size;

  unsigned char cpr1_size;

  unsigned char cpr2_size;

  unsigned char fp_abi;

  Elf32_Word isa_ext;

  Elf32_Word ases;

  Elf32_Word flags1;
  Elf32_Word flags2;
} Elf_MIPS_ABIFlags_v0;
# 2119 "../elf/elf.h"
enum
{

  Val_GNU_MIPS_ABI_FP_ANY = 0,

  Val_GNU_MIPS_ABI_FP_DOUBLE = 1,

  Val_GNU_MIPS_ABI_FP_SINGLE = 2,

  Val_GNU_MIPS_ABI_FP_SOFT = 3,

  Val_GNU_MIPS_ABI_FP_OLD_64 = 4,

  Val_GNU_MIPS_ABI_FP_XX = 5,

  Val_GNU_MIPS_ABI_FP_64 = 6,

  Val_GNU_MIPS_ABI_FP_64A = 7,

  Val_GNU_MIPS_ABI_FP_MAX = 7
};
# 3 "../include/elf.h" 2



# 1 "../include/libc-pointer-arith.h" 1
# 22 "../include/libc-pointer-arith.h"
# 1 "../include/stdint.h" 1
# 23 "../include/libc-pointer-arith.h" 2
# 7 "../include/elf.h" 2
# 20 "../include/elf.h"
# 1 "../sysdeps/generic/dl-dtprocnum.h" 1
# 21 "../include/elf.h" 2
# 25 "../sysdeps/s390/stackinfo.h" 2
# 25 "../include/stackinfo.h" 2
# 8 "../include/alloca.h" 2




extern void *__alloca (size_t __size);





extern int __libc_use_alloca (size_t size) __attribute__ ((const));
extern int __libc_alloca_cutoff (size_t size) __attribute__ ((const));
extern __typeof (__libc_alloca_cutoff) __libc_alloca_cutoff __attribute__ ((visibility ("hidden")));



# 1 "../sysdeps/pthread/allocalim.h" 1
# 19 "../sysdeps/pthread/allocalim.h"
# 1 "../include/alloca.h" 1
# 20 "../sysdeps/pthread/allocalim.h" 2
# 1 "../include/limits.h" 1
# 26 "../include/limits.h"
# 1 "../bits/libc-header-start.h" 1
# 27 "../include/limits.h" 2
# 124 "../include/limits.h"
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/limits.h" 1 3 4
# 125 "../include/limits.h" 2
# 195 "../include/limits.h"
# 1 "../include/bits/posix1_lim.h" 1
# 1 "../posix/bits/posix1_lim.h" 1
# 27 "../posix/bits/posix1_lim.h"
# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
# 28 "../posix/bits/posix1_lim.h" 2
# 161 "../posix/bits/posix1_lim.h"
# 1 "../sysdeps/unix/sysv/linux/bits/local_lim.h" 1
# 38 "../sysdeps/unix/sysv/linux/bits/local_lim.h"
# 1 "/usr/include/linux/limits.h" 1 3 4
# 39 "../sysdeps/unix/sysv/linux/bits/local_lim.h" 2
# 81 "../sysdeps/unix/sysv/linux/bits/local_lim.h"
# 1 "../sysdeps/unix/sysv/linux/include/bits/pthread_stack_min-dynamic.h" 1





# 1 "../sysdeps/unix/sysv/linux/bits/pthread_stack_min.h" 1
# 7 "../sysdeps/unix/sysv/linux/include/bits/pthread_stack_min-dynamic.h" 2
# 82 "../sysdeps/unix/sysv/linux/bits/local_lim.h" 2
# 162 "../posix/bits/posix1_lim.h" 2
# 2 "../include/bits/posix1_lim.h" 2
# 196 "../include/limits.h" 2



# 1 "../include/bits/posix2_lim.h" 1
# 1 "../posix/bits/posix2_lim.h" 1
# 2 "../include/bits/posix2_lim.h" 2
# 200 "../include/limits.h" 2



# 1 "../include/bits/xopen_lim.h" 1
# 64 "../include/bits/xopen_lim.h"
# 1 "../sysdeps/unix/sysv/linux/bits/uio_lim.h" 1
# 65 "../include/bits/xopen_lim.h" 2
# 204 "../include/limits.h" 2
# 21 "../sysdeps/pthread/allocalim.h" 2


extern __inline __attribute__ ((__always_inline__))
int
__libc_use_alloca (size_t size)
{
  return (__builtin_expect ((__libc_alloca_cutoff (size)), 1)

          || __builtin_expect ((size <= 16384 / 4), 1)

   );
}
# 25 "../include/alloca.h" 2
# 575 "../stdlib/stdlib.h" 2





extern void *valloc (size_t __size) __attribute__ ((__nothrow__ )) __attribute__ ((__malloc__))
     __attribute__ ((__alloc_size__ (1))) ;




extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
     __attribute__ ((__nothrow__ )) ;




extern void *aligned_alloc (size_t __alignment, size_t __size)
     __attribute__ ((__nothrow__ )) __attribute__ ((__malloc__)) __attribute__ ((__alloc_align__ (1)))
     __attribute__ ((__alloc_size__ (2))) ;



extern void abort (void) __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__));



extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ )) ;







extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ )) ;






extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
     __attribute__ ((__nothrow__ )) ;





extern void exit (int __status) __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__));





extern void quick_exit (int __status) __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__));





extern void _Exit (int __status) __attribute__ ((__nothrow__ )) __attribute__ ((__noreturn__));




extern char *getenv (const char *__name) __attribute__ ((__nothrow__ )) ;




extern char *secure_getenv (const char *__name)
     __attribute__ ((__nothrow__ )) ;






extern int putenv (char *__string) __attribute__ ((__nothrow__ )) ;





extern int setenv (const char *__name, const char *__value, int __replace)
     __attribute__ ((__nothrow__ )) ;


extern int unsetenv (const char *__name) __attribute__ ((__nothrow__ )) ;






extern int clearenv (void) __attribute__ ((__nothrow__ ));
# 682 "../stdlib/stdlib.h"
extern char *mktemp (char *__template) __attribute__ ((__nothrow__ )) ;
# 695 "../stdlib/stdlib.h"
extern int mkstemp (char *__template) ;
# 705 "../stdlib/stdlib.h"
extern int mkstemp64 (char *__template) ;
# 717 "../stdlib/stdlib.h"
extern int mkstemps (char *__template, int __suffixlen) ;
# 727 "../stdlib/stdlib.h"
extern int mkstemps64 (char *__template, int __suffixlen)
     ;
# 738 "../stdlib/stdlib.h"
extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ )) ;
# 749 "../stdlib/stdlib.h"
extern int mkostemp (char *__template, int __flags) ;
# 759 "../stdlib/stdlib.h"
extern int mkostemp64 (char *__template, int __flags) ;
# 769 "../stdlib/stdlib.h"
extern int mkostemps (char *__template, int __suffixlen, int __flags)
     ;
# 781 "../stdlib/stdlib.h"
extern int mkostemps64 (char *__template, int __suffixlen, int __flags)
     ;
# 791 "../stdlib/stdlib.h"
extern int system (const char *__command) ;





extern char *canonicalize_file_name (const char *__name)
     __attribute__ ((__nothrow__ )) __attribute__ ((__malloc__))
     __attribute__ ((__malloc__ (__builtin_free, 1))) ;
# 808 "../stdlib/stdlib.h"
extern char *realpath (const char *__restrict __name,
         char *__restrict __resolved) __attribute__ ((__nothrow__ )) ;






typedef int (*__compar_fn_t) (const void *, const void *);


typedef __compar_fn_t comparison_fn_t;



typedef int (*__compar_d_fn_t) (const void *, const void *, void *);




extern void *bsearch (const void *__key, const void *__base,
        size_t __nmemb, size_t __size, __compar_fn_t __compar)
     ;


# 1 "../bits/stdlib-bsearch.h" 1
# 19 "../bits/stdlib-bsearch.h"
extern __inline void *
bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size,
  __compar_fn_t __compar)
{
  size_t __l, __u, __idx;
  const void *__p;
  int __comparison;

  __l = 0;
  __u = __nmemb;
  while (__l < __u)
    {
      __idx = (__l + __u) / 2;
      __p = (const void *) (((const char *) __base) + (__idx * __size));
      __comparison = (*__compar) (__key, __p);
      if (__comparison < 0)
 __u = __idx;
      else if (__comparison > 0)
 __l = __idx + 1;
      else
 {

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wcast-qual"

   return (void *) __p;

#pragma GCC diagnostic pop

 }
    }

  return 
# 51 "../bits/stdlib-bsearch.h" 3 4
        ((void *)0)
# 51 "../bits/stdlib-bsearch.h"
            ;
}
# 834 "../stdlib/stdlib.h" 2




extern void qsort (void *__base, size_t __nmemb, size_t __size,
     __compar_fn_t __compar) ;

extern void qsort_r (void *__base, size_t __nmemb, size_t __size,
       __compar_d_fn_t __compar, void *__arg)
  ;




extern int abs (int __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)) ;
extern long int labs (long int __x) __attribute__ ((__nothrow__ )) __attribute__ ((__const__)) ;


__extension__ extern long long int llabs (long long int __x)
     __attribute__ ((__nothrow__ )) __attribute__ ((__const__)) ;






extern div_t div (int __numer, int __denom)
     __attribute__ ((__nothrow__ )) __attribute__ ((__const__)) ;
extern ldiv_t ldiv (long int __numer, long int __denom)
     __attribute__ ((__nothrow__ )) __attribute__ ((__const__)) ;


__extension__ extern lldiv_t lldiv (long long int __numer,
        long long int __denom)
     __attribute__ ((__nothrow__ )) __attribute__ ((__const__)) ;
# 880 "../stdlib/stdlib.h"
extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
     int *__restrict __sign) __attribute__ ((__nothrow__ )) ;




extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
     int *__restrict __sign) __attribute__ ((__nothrow__ )) ;




extern char *gcvt (double __value, int __ndigit, char *__buf)
     __attribute__ ((__nothrow__ )) ;




extern char *qecvt (long double __value, int __ndigit,
      int *__restrict __decpt, int *__restrict __sign)
     __attribute__ ((__nothrow__ )) ;
extern char *qfcvt (long double __value, int __ndigit,
      int *__restrict __decpt, int *__restrict __sign)
     __attribute__ ((__nothrow__ )) ;
extern char *qgcvt (long double __value, int __ndigit, char *__buf)
     __attribute__ ((__nothrow__ )) ;




extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
     int *__restrict __sign, char *__restrict __buf,
     size_t __len) __attribute__ ((__nothrow__ )) ;
extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
     int *__restrict __sign, char *__restrict __buf,
     size_t __len) __attribute__ ((__nothrow__ )) ;

extern int qecvt_r (long double __value, int __ndigit,
      int *__restrict __decpt, int *__restrict __sign,
      char *__restrict __buf, size_t __len)
     __attribute__ ((__nothrow__ )) ;
extern int qfcvt_r (long double __value, int __ndigit,
      int *__restrict __decpt, int *__restrict __sign,
      char *__restrict __buf, size_t __len)
     __attribute__ ((__nothrow__ )) ;





extern int mblen (const char *__s, size_t __n) __attribute__ ((__nothrow__ ));


extern int mbtowc (wchar_t *__restrict __pwc,
     const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ ));


extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ ));



extern size_t mbstowcs (wchar_t *__restrict __pwcs,
   const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ ))
    __attribute__ ((__access__ (__read_only__, 2)));

extern size_t wcstombs (char *__restrict __s,
   const wchar_t *__restrict __pwcs, size_t __n)
     __attribute__ ((__nothrow__ ))
  __attribute__ ((__access__ (__write_only__, 1, 3)))
  __attribute__ ((__access__ (__read_only__, 2)));






extern int rpmatch (const char *__response) __attribute__ ((__nothrow__ )) ;
# 967 "../stdlib/stdlib.h"
extern int getsubopt (char **__restrict __optionp,
        char *const *__restrict __tokens,
        char **__restrict __valuep)
     __attribute__ ((__nothrow__ )) ;







extern int posix_openpt (int __oflag) ;







extern int grantpt (int __fd) __attribute__ ((__nothrow__ ));



extern int unlockpt (int __fd) __attribute__ ((__nothrow__ ));




extern char *ptsname (int __fd) __attribute__ ((__nothrow__ )) ;






extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
     __attribute__ ((__nothrow__ )) __attribute__ ((__access__ (__write_only__, 2, 3)));


extern int getpt (void);






extern int getloadavg (double __loadavg[], int __nelem)
     __attribute__ ((__nothrow__ )) ;
# 1023 "../stdlib/stdlib.h"
# 1 "../include/bits/stdlib-float.h" 1





# 1 "../stdlib/bits/stdlib-float.h" 1
# 24 "../stdlib/bits/stdlib-float.h"
extern __inline double
__attribute__ ((__nothrow__ )) atof (const char *__nptr)
{
  return strtod (__nptr, (char **) 
# 27 "../stdlib/bits/stdlib-float.h" 3 4
                                  ((void *)0)
# 27 "../stdlib/bits/stdlib-float.h"
                                      );
}
# 7 "../include/bits/stdlib-float.h" 2
# 1024 "../stdlib/stdlib.h" 2
# 1035 "../stdlib/stdlib.h"

# 16 "../include/stdlib.h" 2



# 1 "../include/sys/stat.h" 1

# 1 "../io/sys/stat.h" 1
# 27 "../io/sys/stat.h"
# 1 "../include/bits/types.h" 1
# 28 "../io/sys/stat.h" 2


# 1 "../include/bits/types/struct_timespec.h" 1
# 31 "../io/sys/stat.h" 2






# 1 "../include/bits/types/time_t.h" 1
# 38 "../io/sys/stat.h" 2
# 99 "../io/sys/stat.h"


# 1 "../sysdeps/unix/sysv/linux/bits/stat.h" 1
# 25 "../sysdeps/unix/sysv/linux/bits/stat.h"
# 1 "../sysdeps/unix/sysv/linux/s390/bits/struct_stat.h" 1
# 26 "../sysdeps/unix/sysv/linux/s390/bits/struct_stat.h"
# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
# 27 "../sysdeps/unix/sysv/linux/s390/bits/struct_stat.h" 2


struct stat
  {
    __dev_t st_dev;
    __ino_t st_ino;
    __nlink_t st_nlink;
    __mode_t st_mode;
    __uid_t st_uid;
    __gid_t st_gid;
    int __glibc_reserved0;
    __dev_t st_rdev;
    __off_t st_size;







    struct timespec st_atim;
    struct timespec st_mtim;
    struct timespec st_ctim;
# 61 "../sysdeps/unix/sysv/linux/s390/bits/struct_stat.h"
    __blksize_t st_blksize;
    __blkcnt_t st_blocks;
    long int __glibc_reserved[3];
  };
# 130 "../sysdeps/unix/sysv/linux/s390/bits/struct_stat.h"
struct stat64
  {
    __dev_t st_dev;
    __ino64_t st_ino;
    __nlink_t st_nlink;
    __mode_t st_mode;
    __uid_t st_uid;
    __gid_t st_gid;
    int __glibc_reserved0;
    __dev_t st_rdev;
    __off_t st_size;







    struct timespec st_atim;
    struct timespec st_mtim;
    struct timespec st_ctim;
# 162 "../sysdeps/unix/sysv/linux/s390/bits/struct_stat.h"
    __blksize_t st_blksize;
    __blkcnt64_t st_blocks;
    long int __glibc_reserved[3];
  };
# 26 "../sysdeps/unix/sysv/linux/bits/stat.h" 2
# 102 "../io/sys/stat.h" 2
# 205 "../io/sys/stat.h"
extern int stat (const char *__restrict __file,
   struct stat *__restrict __buf) __attribute__ ((__nothrow__ )) ;



extern int fstat (int __fd, struct stat *__buf) __attribute__ ((__nothrow__ )) ;
# 240 "../io/sys/stat.h"
extern int stat64 (const char *__restrict __file,
     struct stat64 *__restrict __buf) __attribute__ ((__nothrow__ )) ;
extern int fstat64 (int __fd, struct stat64 *__buf) __attribute__ ((__nothrow__ )) ;
# 264 "../io/sys/stat.h"
extern int fstatat (int __fd, const char *__restrict __file,
      struct stat *__restrict __buf, int __flag)
     __attribute__ ((__nothrow__ )) ;
# 291 "../io/sys/stat.h"
extern int fstatat64 (int __fd, const char *__restrict __file,
        struct stat64 *__restrict __buf, int __flag)
     __attribute__ ((__nothrow__ )) ;
# 313 "../io/sys/stat.h"
extern int lstat (const char *__restrict __file,
    struct stat *__restrict __buf) __attribute__ ((__nothrow__ )) ;
# 338 "../io/sys/stat.h"
extern int lstat64 (const char *__restrict __file,
      struct stat64 *__restrict __buf)
     __attribute__ ((__nothrow__ )) ;
# 352 "../io/sys/stat.h"
extern int chmod (const char *__file, __mode_t __mode)
     __attribute__ ((__nothrow__ )) ;





extern int lchmod (const char *__file, __mode_t __mode)
     __attribute__ ((__nothrow__ )) ;




extern int fchmod (int __fd, __mode_t __mode) __attribute__ ((__nothrow__ ));





extern int fchmodat (int __fd, const char *__file, __mode_t __mode,
       int __flag)
     __attribute__ ((__nothrow__ )) ;






extern __mode_t umask (__mode_t __mask) __attribute__ ((__nothrow__ ));




extern __mode_t getumask (void) __attribute__ ((__nothrow__ ));



extern int mkdir (const char *__path, __mode_t __mode)
     __attribute__ ((__nothrow__ )) ;





extern int mkdirat (int __fd, const char *__path, __mode_t __mode)
     __attribute__ ((__nothrow__ )) ;






extern int mknod (const char *__path, __mode_t __mode, __dev_t __dev)
     __attribute__ ((__nothrow__ )) ;





extern int mknodat (int __fd, const char *__path, __mode_t __mode,
      __dev_t __dev) __attribute__ ((__nothrow__ )) ;





extern int mkfifo (const char *__path, __mode_t __mode)
     __attribute__ ((__nothrow__ )) ;





extern int mkfifoat (int __fd, const char *__path, __mode_t __mode)
     __attribute__ ((__nothrow__ )) ;






extern int utimensat (int __fd, const char *__path,
        const struct timespec __times[2],
        int __flags)
     __attribute__ ((__nothrow__ )) ;
# 452 "../io/sys/stat.h"
extern int futimens (int __fd, const struct timespec __times[2]) __attribute__ ((__nothrow__ ));
# 465 "../io/sys/stat.h"
# 1 "../include/bits/statx.h" 1
# 1 "../io/bits/statx.h" 1
# 26 "../io/bits/statx.h"
# 1 "../include/bits/statx-generic.h" 1
# 1 "../io/bits/statx-generic.h" 1
# 25 "../io/bits/statx-generic.h"
# 1 "../include/bits/types/struct_statx_timestamp.h" 1
# 1 "../io/bits/types/struct_statx_timestamp.h" 1
# 26 "../io/bits/types/struct_statx_timestamp.h"
struct statx_timestamp
{
  __int64_t tv_sec;
  __uint32_t tv_nsec;
  __int32_t __statx_timestamp_pad1[1];
};
# 2 "../include/bits/types/struct_statx_timestamp.h" 2
# 26 "../io/bits/statx-generic.h" 2
# 1 "../include/bits/types/struct_statx.h" 1
# 1 "../io/bits/types/struct_statx.h" 1
# 30 "../io/bits/types/struct_statx.h"
struct statx
{
  __uint32_t stx_mask;
  __uint32_t stx_blksize;
  __uint64_t stx_attributes;
  __uint32_t stx_nlink;
  __uint32_t stx_uid;
  __uint32_t stx_gid;
  __uint16_t stx_mode;
  __uint16_t __statx_pad1[1];
  __uint64_t stx_ino;
  __uint64_t stx_size;
  __uint64_t stx_blocks;
  __uint64_t stx_attributes_mask;
  struct statx_timestamp stx_atime;
  struct statx_timestamp stx_btime;
  struct statx_timestamp stx_ctime;
  struct statx_timestamp stx_mtime;
  __uint32_t stx_rdev_major;
  __uint32_t stx_rdev_minor;
  __uint32_t stx_dev_major;
  __uint32_t stx_dev_minor;
  __uint64_t __statx_pad2[14];
};
# 2 "../include/bits/types/struct_statx.h" 2
# 27 "../io/bits/statx-generic.h" 2
# 57 "../io/bits/statx-generic.h"



int statx (int __dirfd, const char *__restrict __path, int __flags,
           unsigned int __mask, struct statx *__restrict __buf)
  __attribute__ ((__nothrow__ )) ;


# 2 "../include/bits/statx-generic.h" 2
# 27 "../io/bits/statx.h" 2
# 2 "../include/bits/statx.h" 2
# 466 "../io/sys/stat.h" 2



# 3 "../include/sys/stat.h" 2


# 1 "../sysdeps/unix/sysv/linux/s390/xstatver.h" 1



# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
# 5 "../sysdeps/unix/sysv/linux/s390/xstatver.h" 2
# 6 "../include/sys/stat.h" 2
# 1 "../include/struct___timespec64.h" 1
# 7 "../include/sys/stat.h" 2
# 1 "../sysdeps/unix/sysv/linux/struct_stat_time64.h" 1
# 8 "../include/sys/stat.h" 2


static inline 
# 10 "../include/sys/stat.h" 3 4
             _Bool

# 11 "../include/sys/stat.h"
in_ino_t_range (__ino64_t v)
{
  __ino_t s = v;
  return s == v;
}

static inline 
# 17 "../include/sys/stat.h" 3 4
             _Bool

# 18 "../include/sys/stat.h"
in_off_t_range (__off64_t v)
{
  __off_t s = v;
  return s == v;
}

static inline 
# 24 "../include/sys/stat.h" 3 4
             _Bool

# 25 "../include/sys/stat.h"
in_blkcnt_t_range (__blkcnt64_t v)
{
  __blkcnt_t s = v;
  return s == v;
}


extern int __stat (const char *__file, struct stat *__buf);
extern int __stat64 (const char *__file, struct stat64 *__buf);
extern int __fstat (int __fd, struct stat *__buf);
extern int __fstat64 (int __fd, struct stat64 *__buf);
extern int __lstat (const char *__file, struct stat *__buf);
extern int __lstat64 (const char *__file, struct stat64 *__buf);
extern int __fstatat (int dirfd, const char *pathname, struct stat *buf,
        int flags);
extern int __fstatat64 (int dirfd, const char *pathname, struct stat64 *buf,
   int flags);

extern __typeof (__stat64) __stat64 __attribute__ ((visibility ("hidden")));
extern __typeof (__fstat64) __fstat64 __attribute__ ((visibility ("hidden")));
extern __typeof (__lstat64) __lstat64 __attribute__ ((visibility ("hidden")));
extern __typeof (__fstatat64) __fstatat64 __attribute__ ((visibility ("hidden")));
# 66 "../include/sys/stat.h"
extern int __chmod (const char *__file, __mode_t __mode);
extern __typeof (__chmod) __chmod __attribute__ ((visibility ("hidden")));
extern int __fchmod (int __fd, __mode_t __mode);
extern __typeof (fchmodat) fchmodat __attribute__ ((visibility ("hidden")));
extern __mode_t __umask (__mode_t __mask);
extern int __mkdir (const char *__path, __mode_t __mode);
extern __typeof (__mkdir) __mkdir __attribute__ ((visibility ("hidden")));

extern int __mknodat (int fd, const char *path, mode_t mode, dev_t dev);
extern __typeof (__mknodat) __mknodat __attribute__ ((visibility ("hidden")));;
extern int __mknod (const char *__path,
      __mode_t __mode, __dev_t __dev);
extern __typeof (__mknod) __mknod __attribute__ ((visibility ("hidden")));;

extern int __xmknod (int __ver, const char *__path, __mode_t __mode,
       __dev_t *__dev);
extern int __xmknodat (int __ver, int __fd, const char *__path,
         __mode_t __mode, __dev_t *__dev);

int __fxstat (int __ver, int __fildes, struct stat *__stat_buf);
int __xstat (int __ver, const char *__filename,
      struct stat *__stat_buf);
int __lxstat (int __ver, const char *__filename, struct stat *__stat_buf);
int __fxstatat (int __ver, int __fildes, const char *__filename,
  struct stat *__stat_buf, int __flag);
int __fxstat64 (int ver, int __fildes, struct stat64 *__stat_buf);
int __xstat64 (int ver, const char *__filename, struct stat64 *__stat_buf);
int __lxstat64 (int ver, const char *__filename, struct stat64 *__stat_buf);
int __fxstatat64 (int ver, int __fildes, const char *__filename,
    struct stat64 *__stat_buf, int __flag);
# 20 "../include/stdlib.h" 2

# 1 "../include/rtld-malloc.h" 1
# 22 "../include/stdlib.h" 2

extern __typeof (strtol_l) __strtol_l;
extern __typeof (strtoul_l) __strtoul_l;
extern __typeof (strtoll_l) __strtoll_l;
extern __typeof (strtoull_l) __strtoull_l;
extern __typeof (strtod_l) __strtod_l;
extern __typeof (strtof_l) __strtof_l;
extern __typeof (strtold_l) __strtold_l;
extern __typeof (__strtol_l) __strtol_l __attribute__ ((visibility ("hidden")));
extern __typeof (__strtoul_l) __strtoul_l __attribute__ ((visibility ("hidden")));
extern __typeof (__strtoll_l) __strtoll_l __attribute__ ((visibility ("hidden")));
extern __typeof (__strtoull_l) __strtoull_l __attribute__ ((visibility ("hidden")));
extern __typeof (__strtod_l) __strtod_l __attribute__ ((visibility ("hidden")));
extern __typeof (__strtof_l) __strtof_l __attribute__ ((visibility ("hidden")));
extern __typeof (__strtold_l) __strtold_l __attribute__ ((visibility ("hidden")));

extern __typeof (exit) exit __attribute__ ((visibility ("hidden")));
extern __typeof (abort) abort __attribute__ ((visibility ("hidden")));
extern __typeof (getenv) getenv __attribute__ ((visibility ("hidden")));
extern __typeof (secure_getenv) __libc_secure_getenv;
extern __typeof (__libc_secure_getenv) __libc_secure_getenv __attribute__ ((visibility ("hidden")));
extern __typeof (bsearch) bsearch __attribute__ ((visibility ("hidden")));
extern __typeof (qsort) qsort __attribute__ ((visibility ("hidden")));
extern __typeof (qsort_r) __qsort_r;
extern __typeof (__qsort_r) __qsort_r __attribute__ ((visibility ("hidden")));
extern __typeof (lrand48_r) lrand48_r __attribute__ ((visibility ("hidden")));
extern __typeof (wctomb) wctomb __attribute__ ((visibility ("hidden")));

extern long int __random (void) ;
extern void __srandom (unsigned int __seed);
extern char *__initstate (unsigned int __seed, char *__statebuf,
     size_t __statelen);
extern char *__setstate (char *__statebuf);
extern int __random_r (struct random_data *__buf, int32_t *__result)
     ;
extern int __srandom_r (unsigned int __seed, struct random_data *__buf)
     ;
extern int __initstate_r (unsigned int __seed, char *__statebuf,
     size_t __statelen, struct random_data *__buf)
     ;
extern int __setstate_r (char *__statebuf, struct random_data *__buf)
     ;
extern int __rand_r (unsigned int *__seed);
extern int __erand48_r (unsigned short int __xsubi[3],
   struct drand48_data *__buffer, double *__result)
     ;
extern int __nrand48_r (unsigned short int __xsubi[3],
   struct drand48_data *__buffer,
   long int *__result) ;
extern int __jrand48_r (unsigned short int __xsubi[3],
   struct drand48_data *__buffer,
   long int *__result) ;
extern int __srand48_r (long int __seedval,
   struct drand48_data *__buffer) ;
extern int __seed48_r (unsigned short int __seed16v[3],
         struct drand48_data *__buffer) ;
extern int __lcong48_r (unsigned short int __param[7],
   struct drand48_data *__buffer) ;


extern int __drand48_iterate (unsigned short int __xsubi[3],
         struct drand48_data *__buffer)
     ;


extern struct drand48_data __libc_drand48_data ;

extern int __setenv (const char *__name, const char *__value, int __replace)
     ;
extern int __unsetenv (const char *__name) ;
extern int __clearenv (void) ;
extern char *__mktemp (char *__template) __attribute__ ((__nothrow__ )) ;
extern __typeof (__mktemp) __mktemp __attribute__ ((visibility ("hidden")));
extern char *__canonicalize_file_name (const char *__name);
extern char *__realpath (const char *__name, char *__resolved);
extern __typeof (__realpath) __realpath __attribute__ ((visibility ("hidden")));
extern int __ptsname_r (int __fd, char *__buf, size_t __buflen)
     ;

extern int __ptsname_internal (int fd, char *buf, size_t buflen,
          struct stat64 *stp) ;

extern int __getpt (void);
extern int __posix_openpt (int __oflag) ;

extern int __add_to_environ (const char *name, const char *value,
        const char *combines, int replace)
     ;
extern void _quicksort (void *const pbase, size_t total_elems,
   size_t size, __compar_d_fn_t cmp, void *arg);

extern int __on_exit (void (*__func) (int __status, void *__arg), void *__arg);

extern int __cxa_atexit (void (*func) (void *), void *arg, void *d);
extern __typeof (__cxa_atexit) __cxa_atexit __attribute__ ((visibility ("hidden")));;

extern int __cxa_thread_atexit_impl (void (*func) (void *), void *arg,
         void *d);
extern void __call_tls_dtors (void)

  __attribute__ ((weak))

  ;
extern __typeof (__call_tls_dtors) __call_tls_dtors __attribute__ ((visibility ("hidden")));

extern void __cxa_finalize (void *d);

extern int __posix_memalign (void **memptr, size_t alignment, size_t size);

extern void *__libc_memalign (size_t alignment, size_t size)
     __attribute__ ((__malloc__));

extern void *__libc_reallocarray (void *__ptr, size_t __nmemb, size_t __size)
     __attribute__ ((__nothrow__ )) __attribute__ ((__warn_unused_result__));
extern __typeof (__libc_reallocarray) __libc_reallocarray __attribute__ ((visibility ("hidden")));

extern int __libc_system (const char *line);

extern __typeof (getpt) __getpt;
extern __typeof (ptsname_r) __ptsname_r;
extern __typeof (__getpt) __getpt __attribute__ ((visibility ("hidden")));
extern __typeof (__ptsname_r) __ptsname_r __attribute__ ((visibility ("hidden")));
extern __typeof (grantpt) grantpt __attribute__ ((visibility ("hidden")));
extern __typeof (unlockpt) unlockpt __attribute__ ((visibility ("hidden")));

extern double __strtod_internal (const char *__restrict __nptr,
     char **__restrict __endptr, int __group)
     __attribute__ ((__nothrow__ )) ;
extern float __strtof_internal (const char *__restrict __nptr,
    char **__restrict __endptr, int __group)
     __attribute__ ((__nothrow__ )) ;
extern long double __strtold_internal (const char *__restrict __nptr,
           char **__restrict __endptr,
           int __group)
     __attribute__ ((__nothrow__ )) ;
extern long int __strtol_internal (const char *__restrict __nptr,
       char **__restrict __endptr,
       int __base, int __group)
     __attribute__ ((__nothrow__ )) ;
extern unsigned long int __strtoul_internal (const char *__restrict __nptr,
          char **__restrict __endptr,
          int __base, int __group)
     __attribute__ ((__nothrow__ )) ;
__extension__
extern long long int __strtoll_internal (const char *__restrict __nptr,
      char **__restrict __endptr,
      int __base, int __group)
     __attribute__ ((__nothrow__ )) ;
__extension__
extern unsigned long long int __strtoull_internal (const char *
         __restrict __nptr,
         char **__restrict __endptr,
         int __base, int __group)
     __attribute__ ((__nothrow__ )) ;
extern __typeof (__strtof_internal) __strtof_internal __attribute__ ((visibility ("hidden")));
extern __typeof (__strtod_internal) __strtod_internal __attribute__ ((visibility ("hidden")));
extern __typeof (__strtold_internal) __strtold_internal __attribute__ ((visibility ("hidden")));
extern __typeof (__strtol_internal) __strtol_internal __attribute__ ((visibility ("hidden")));
extern __typeof (__strtoll_internal) __strtoll_internal __attribute__ ((visibility ("hidden")));
extern __typeof (__strtoul_internal) __strtoul_internal __attribute__ ((visibility ("hidden")));
extern __typeof (__strtoull_internal) __strtoull_internal __attribute__ ((visibility ("hidden")));

extern double ____strtod_l_internal (const char *__restrict __nptr,
         char **__restrict __endptr, int __group,
         locale_t __loc);
extern float ____strtof_l_internal (const char *__restrict __nptr,
        char **__restrict __endptr, int __group,
        locale_t __loc);
extern long double ____strtold_l_internal (const char *__restrict __nptr,
        char **__restrict __endptr,
        int __group, locale_t __loc);
extern long int ____strtol_l_internal (const char *__restrict __nptr,
           char **__restrict __endptr,
           int __base, int __group,
           locale_t __loc);
extern unsigned long int ____strtoul_l_internal (const char *
       __restrict __nptr,
       char **__restrict __endptr,
       int __base, int __group,
       locale_t __loc);
__extension__
extern long long int ____strtoll_l_internal (const char *__restrict __nptr,
          char **__restrict __endptr,
          int __base, int __group,
          locale_t __loc);
__extension__
extern unsigned long long int ____strtoull_l_internal (const char *
             __restrict __nptr,
             char **
             __restrict __endptr,
             int __base, int __group,
             locale_t __loc);

extern __typeof (____strtof_l_internal) ____strtof_l_internal __attribute__ ((visibility ("hidden")));
extern __typeof (____strtod_l_internal) ____strtod_l_internal __attribute__ ((visibility ("hidden")));
extern __typeof (____strtold_l_internal) ____strtold_l_internal __attribute__ ((visibility ("hidden")));
extern __typeof (____strtol_l_internal) ____strtol_l_internal __attribute__ ((visibility ("hidden")));
extern __typeof (____strtoll_l_internal) ____strtoll_l_internal __attribute__ ((visibility ("hidden")));
extern __typeof (____strtoul_l_internal) ____strtoul_l_internal __attribute__ ((visibility ("hidden")));
extern __typeof (____strtoull_l_internal) ____strtoull_l_internal __attribute__ ((visibility ("hidden")));


extern __typeof (strtof) strtof __attribute__ ((visibility ("hidden")));
extern __typeof (strtod) strtod __attribute__ ((visibility ("hidden")));

extern __typeof (strtold) strtold __attribute__ ((visibility ("hidden")));

extern __typeof (strtol) strtol __attribute__ ((visibility ("hidden")));
extern __typeof (strtoll) strtoll __attribute__ ((visibility ("hidden")));
extern __typeof (strtoul) strtoul __attribute__ ((visibility ("hidden")));
extern __typeof (strtoull) strtoull __attribute__ ((visibility ("hidden")));

extern __typeof (atoi) atoi __attribute__ ((visibility ("hidden")));

extern float __strtof_nan (const char *, char **, char);
extern double __strtod_nan (const char *, char **, char);
extern long double __strtold_nan (const char *, char **, char);
extern float __wcstof_nan (const wchar_t *, wchar_t **, wchar_t);
extern double __wcstod_nan (const wchar_t *, wchar_t **, wchar_t);
extern long double __wcstold_nan (const wchar_t *, wchar_t **, wchar_t);

extern __typeof (__strtof_nan) __strtof_nan __attribute__ ((visibility ("hidden")));
extern __typeof (__strtod_nan) __strtod_nan __attribute__ ((visibility ("hidden")));
extern __typeof (__strtold_nan) __strtold_nan __attribute__ ((visibility ("hidden")));
extern __typeof (__wcstof_nan) __wcstof_nan __attribute__ ((visibility ("hidden")));
extern __typeof (__wcstod_nan) __wcstod_nan __attribute__ ((visibility ("hidden")));
extern __typeof (__wcstold_nan) __wcstold_nan __attribute__ ((visibility ("hidden")));
# 277 "../include/stdlib.h"
extern char *__ecvt (double __value, int __ndigit, int *__restrict __decpt,
       int *__restrict __sign);
extern char *__fcvt (double __value, int __ndigit, int *__restrict __decpt,
       int *__restrict __sign);
extern char *__gcvt (double __value, int __ndigit, char *__buf);
extern int __ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
       int *__restrict __sign, char *__restrict __buf,
       size_t __len);
extern __typeof (__ecvt_r) __ecvt_r __attribute__ ((visibility ("hidden")));
extern int __fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
       int *__restrict __sign, char *__restrict __buf,
       size_t __len);
extern __typeof (__fcvt_r) __fcvt_r __attribute__ ((visibility ("hidden")));
extern char *__qecvt (long double __value, int __ndigit,
        int *__restrict __decpt, int *__restrict __sign);
extern char *__qfcvt (long double __value, int __ndigit,
        int *__restrict __decpt, int *__restrict __sign);
extern char *__qgcvt (long double __value, int __ndigit, char *__buf);
extern int __qecvt_r (long double __value, int __ndigit,
        int *__restrict __decpt, int *__restrict __sign,
        char *__restrict __buf, size_t __len);
extern __typeof (__qecvt_r) __qecvt_r __attribute__ ((visibility ("hidden")));
extern int __qfcvt_r (long double __value, int __ndigit,
        int *__restrict __decpt, int *__restrict __sign,
        char *__restrict __buf, size_t __len);
extern __typeof (__qfcvt_r) __qfcvt_r __attribute__ ((visibility ("hidden")));






struct abort_msg_s
{
  unsigned int size;
  char msg[0];
};
extern struct abort_msg_s *__abort_msg;
extern __typeof (__abort_msg) __abort_msg __attribute__ ((visibility ("hidden")));
# 28 "../sysdeps/s390/nptl/tls.h" 2
# 1 "../include/list.h" 1
# 27 "../include/list.h"
# 1 "../include/list_t.h" 1
# 24 "../include/list_t.h"
typedef struct list_head
{
  struct list_head *next;
  struct list_head *prev;
} list_t;
# 28 "../include/list.h" 2
# 1 "../include/atomic.h" 1
# 49 "../include/atomic.h"
# 1 "../sysdeps/s390/atomic-machine.h" 1
# 18 "../sysdeps/s390/atomic-machine.h"
# 1 "../include/stdint.h" 1
# 19 "../sysdeps/s390/atomic-machine.h" 2

typedef int8_t atomic8_t;
typedef uint8_t uatomic8_t;
typedef int_fast8_t atomic_fast8_t;
typedef uint_fast8_t uatomic_fast8_t;

typedef int16_t atomic16_t;
typedef uint16_t uatomic16_t;
typedef int_fast16_t atomic_fast16_t;
typedef uint_fast16_t uatomic_fast16_t;

typedef int32_t atomic32_t;
typedef uint32_t uatomic32_t;
typedef int_fast32_t atomic_fast32_t;
typedef uint_fast32_t uatomic_fast32_t;

typedef int64_t atomic64_t;
typedef uint64_t uatomic64_t;
typedef int_fast64_t atomic_fast64_t;
typedef uint_fast64_t uatomic_fast64_t;

typedef intptr_t atomicptr_t;
typedef uintptr_t uatomicptr_t;
typedef intmax_t atomic_max_t;
typedef uintmax_t uatomic_max_t;
# 50 "../include/atomic.h" 2
# 542 "../include/atomic.h"
void __atomic_link_error (void);
# 29 "../include/list.h" 2
# 40 "../include/list.h"
static inline void
list_add (list_t *newp, list_t *head)
{
  newp->next = head->next;
  newp->prev = head;
  head->next->prev = newp;
  __asm ("" ::: "memory");
  head->next = newp;
}



static inline void
list_del (list_t *elem)
{
  elem->next->prev = elem->prev;
  elem->prev->next = elem->next;
}



static inline void
list_splice (list_t *add, list_t *head)
{

  if (add != add->next)
    {
      add->next->prev = head;
      add->prev->next = head->next;
      head->next->prev = add->prev;
      head->next = add->next;
    }
}
# 29 "../sysdeps/s390/nptl/tls.h" 2
# 1 "../sysdeps/unix/sysv/linux/s390/kernel-features.h" 1
# 30 "../sysdeps/s390/nptl/tls.h" 2
# 1 "../sysdeps/generic/dl-dtv.h" 1
# 22 "../sysdeps/generic/dl-dtv.h"
struct dtv_pointer
{
  void *val;
  void *to_free;
};


typedef union dtv
{
  size_t counter;
  struct dtv_pointer pointer;
} dtv_t;
# 31 "../sysdeps/s390/nptl/tls.h" 2

typedef struct
{
  void *tcb;

  dtv_t *dtv;
  void *self;
  int multiple_threads;
  uintptr_t sysinfo;
  uintptr_t stack_guard;
  int gscope_flag;
  int __glibc_reserved1;

  void *__private_ss;
} tcbhead_t;
# 62 "../sysdeps/s390/nptl/tls.h"
# 1 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" 1
# 63 "../sysdeps/s390/nptl/tls.h" 2
# 84 "../sysdeps/s390/nptl/tls.h"
# 1 "../nptl/descr.h" 1
# 21 "../nptl/descr.h"
# 1 "../include/limits.h" 1
# 195 "../include/limits.h"
# 1 "../include/bits/posix1_lim.h" 1
# 196 "../include/limits.h" 2



# 1 "../include/bits/posix2_lim.h" 1
# 200 "../include/limits.h" 2
# 22 "../nptl/descr.h" 2
# 1 "../include/sched.h" 1

# 1 "../posix/sched.h" 1
# 25 "../posix/sched.h"
# 1 "../include/bits/types.h" 1
# 26 "../posix/sched.h" 2



# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
# 30 "../posix/sched.h" 2

# 1 "../include/bits/types/time_t.h" 1
# 32 "../posix/sched.h" 2
# 1 "../include/bits/types/struct_timespec.h" 1
# 33 "../posix/sched.h" 2
# 43 "../posix/sched.h"
# 1 "../sysdeps/unix/sysv/linux/bits/sched.h" 1
# 76 "../sysdeps/unix/sysv/linux/bits/sched.h"
# 1 "../bits/types/struct_sched_param.h" 1
# 23 "../bits/types/struct_sched_param.h"
struct sched_param
{
  int sched_priority;
};
# 77 "../sysdeps/unix/sysv/linux/bits/sched.h" 2





extern int clone (int (*__fn) (void *__arg), void *__child_stack,
    int __flags, void *__arg, ...) __attribute__ ((__nothrow__ ));


extern int unshare (int __flags) __attribute__ ((__nothrow__ ));


extern int sched_getcpu (void) __attribute__ ((__nothrow__ ));


extern int getcpu (unsigned int *, unsigned int *) __attribute__ ((__nothrow__ ));


extern int setns (int __fd, int __nstype) __attribute__ ((__nothrow__ ));



# 44 "../posix/sched.h" 2
# 1 "../include/bits/cpu-set.h" 1

# 1 "../posix/bits/cpu-set.h" 1
# 32 "../posix/bits/cpu-set.h"
typedef unsigned long int __cpu_mask;






typedef struct
{
  __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))];
} cpu_set_t;
# 115 "../posix/bits/cpu-set.h"


extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp)
     __attribute__ ((__nothrow__ ));
extern cpu_set_t *__sched_cpualloc (size_t __count) __attribute__ ((__nothrow__ )) ;
extern void __sched_cpufree (cpu_set_t *__set) __attribute__ ((__nothrow__ ));


# 3 "../include/bits/cpu-set.h" 2


int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp);
extern __typeof (__sched_cpucount) __sched_cpucount __attribute__ ((visibility ("hidden")));
# 45 "../posix/sched.h" 2









extern int sched_setparam (__pid_t __pid, const struct sched_param *__param)
     __attribute__ ((__nothrow__ ));


extern int sched_getparam (__pid_t __pid, struct sched_param *__param) __attribute__ ((__nothrow__ ));


extern int sched_setscheduler (__pid_t __pid, int __policy,
          const struct sched_param *__param) __attribute__ ((__nothrow__ ));


extern int sched_getscheduler (__pid_t __pid) __attribute__ ((__nothrow__ ));


extern int sched_yield (void) __attribute__ ((__nothrow__ ));


extern int sched_get_priority_max (int __algorithm) __attribute__ ((__nothrow__ ));


extern int sched_get_priority_min (int __algorithm) __attribute__ ((__nothrow__ ));



extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __attribute__ ((__nothrow__ ));
# 130 "../posix/sched.h"
extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize,
         const cpu_set_t *__cpuset) __attribute__ ((__nothrow__ ));


extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
         cpu_set_t *__cpuset) __attribute__ ((__nothrow__ ));



# 3 "../include/sched.h" 2



extern int __sched_setparam (__pid_t __pid,
        const struct sched_param *__param);
extern __typeof (__sched_setparam) __sched_setparam __attribute__ ((visibility ("hidden")));
extern int __sched_getparam (__pid_t __pid, struct sched_param *__param);
extern __typeof (__sched_getparam) __sched_getparam __attribute__ ((visibility ("hidden")));
extern int __sched_setscheduler (__pid_t __pid, int __policy,
     const struct sched_param *__param);
extern __typeof (__sched_setscheduler) __sched_setscheduler __attribute__ ((visibility ("hidden")));
extern int __sched_getscheduler (__pid_t __pid);
extern __typeof (__sched_getscheduler) __sched_getscheduler __attribute__ ((visibility ("hidden")));
extern int __sched_yield (void);
extern __typeof (__sched_yield) __sched_yield __attribute__ ((visibility ("hidden")));
extern int __sched_get_priority_max (int __algorithm);
extern __typeof (__sched_get_priority_max) __sched_get_priority_max __attribute__ ((visibility ("hidden")));
extern int __sched_get_priority_min (int __algorithm);
extern __typeof (__sched_get_priority_min) __sched_get_priority_min __attribute__ ((visibility ("hidden")));
extern int __sched_rr_get_interval (__pid_t __pid, struct timespec *__t);


extern int __clone (int (*__fn) (void *__arg), void *__child_stack,
      int __flags, void *__arg, ...);
extern __typeof (__clone) __clone __attribute__ ((visibility ("hidden")));
extern int __clone2 (int (*__fn) (void *__arg), void *__child_stack_base,
       size_t __child_stack_size, int __flags, void *__arg, ...);
extern __typeof (__clone2) __clone2 __attribute__ ((visibility ("hidden")));


extern int __getcpu (unsigned int *, unsigned int *);
extern __typeof (__getcpu) __getcpu __attribute__ ((visibility ("hidden")));
# 23 "../nptl/descr.h" 2
# 1 "../include/setjmp.h" 1

# 1 "../setjmp/setjmp.h" 1
# 27 "../setjmp/setjmp.h"


# 1 "../sysdeps/s390/bits/setjmp.h" 1
# 27 "../sysdeps/s390/bits/setjmp.h"
# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
# 28 "../sysdeps/s390/bits/setjmp.h" 2



typedef struct __s390_jmp_buf
{

  long int __gregs[10];



  long __fpregs[8];




} __jmp_buf[1];
# 30 "../setjmp/setjmp.h" 2
# 1 "../include/bits/types/struct___jmp_buf_tag.h" 1
# 1 "../setjmp/bits/types/struct___jmp_buf_tag.h" 1
# 26 "../setjmp/bits/types/struct___jmp_buf_tag.h"
struct __jmp_buf_tag
  {




    __jmp_buf __jmpbuf;
    int __mask_was_saved;
    __sigset_t __saved_mask;
  };
# 2 "../include/bits/types/struct___jmp_buf_tag.h" 2
# 31 "../setjmp/setjmp.h" 2

typedef struct __jmp_buf_tag jmp_buf[1];



extern int setjmp (jmp_buf __env) __attribute__ ((__nothrow__));




extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) __attribute__ ((__nothrow__));



extern int _setjmp (struct __jmp_buf_tag __env[1]) __attribute__ ((__nothrow__));
# 54 "../setjmp/setjmp.h"
extern void longjmp (struct __jmp_buf_tag __env[1], int __val)
     __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));





extern void _longjmp (struct __jmp_buf_tag __env[1], int __val)
     __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));







typedef struct __jmp_buf_tag sigjmp_buf[1];
# 80 "../setjmp/setjmp.h"
extern void siglongjmp (sigjmp_buf __env, int __val)
     __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
# 90 "../setjmp/setjmp.h"

# 3 "../include/setjmp.h" 2





extern void __longjmp (__jmp_buf __env, int __val)
     __attribute__ ((__noreturn__)) ;

extern void ____longjmp_chk (__jmp_buf __env, int __val)
     __attribute__ ((__noreturn__)) ;





extern int __sigjmp_save (jmp_buf __env, int __savemask);

extern void _longjmp_unwind (jmp_buf env, int val);

extern void __libc_siglongjmp (sigjmp_buf env, int val)
   __attribute__ ((noreturn)) ;
extern void __libc_longjmp (sigjmp_buf env, int val)
     __attribute__ ((noreturn)) ;

extern __typeof (_setjmp) _setjmp __attribute__ ((visibility ("hidden")));
extern __typeof (__sigsetjmp) __sigsetjmp __attribute__ ((visibility ("hidden")));






# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
# 36 "../include/setjmp.h" 2
# 1 "../sysdeps/unix/sysv/linux/s390/s390-64/jmp_buf-macros.h" 1
# 37 "../include/setjmp.h" 2
# 55 "../include/setjmp.h"
_Static_assert (sizeof (jmp_buf) == 280, "size of " "jmp_buf" " != " "280");
_Static_assert (sizeof (sigjmp_buf) == 280, "size of " "sigjmp_buf" " != " "280");


_Static_assert (__alignof__ (jmp_buf) == 8, "align of " "jmp_buf" " != " "8");
_Static_assert (__alignof__ (sigjmp_buf) == 8, "align of " "sigjmp_buf" " != " "8");


_Static_assert (
# 63 "../include/setjmp.h" 3 4
__builtin_offsetof (
# 63 "../include/setjmp.h"
struct __jmp_buf_tag
# 63 "../include/setjmp.h" 3 4
, 
# 63 "../include/setjmp.h"
__mask_was_saved
# 63 "../include/setjmp.h" 3 4
) 
# 63 "../include/setjmp.h"
== 144, "offset of " "__mask_was_saved" " field of " "struct __jmp_buf_tag" " != " "144")
                            ;
_Static_assert (
# 65 "../include/setjmp.h" 3 4
__builtin_offsetof (
# 65 "../include/setjmp.h"
struct __jmp_buf_tag
# 65 "../include/setjmp.h" 3 4
, 
# 65 "../include/setjmp.h"
__saved_mask
# 65 "../include/setjmp.h" 3 4
) 
# 65 "../include/setjmp.h"
== 152, "offset of " "__saved_mask" " field of " "struct __jmp_buf_tag" " != " "152")
                        ;
# 24 "../nptl/descr.h" 2

# 1 "../include/sys/types.h" 1
# 26 "../nptl/descr.h" 2
# 1 "../sysdeps/s390/hp-timing.h" 1
# 25 "../sysdeps/s390/hp-timing.h"
# 1 "../sysdeps/generic/hp-timing-common.h" 1
# 37 "../sysdeps/generic/hp-timing-common.h"
# 1 "../include/string.h" 1





# 1 "../include/sys/types.h" 1
# 7 "../include/string.h" 2
# 1 "../include/locale.h" 1

# 1 "../locale/locale.h" 1
# 28 "../locale/locale.h"
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
# 29 "../locale/locale.h" 2
# 1 "../include/bits/locale.h" 1
# 1 "../locale/bits/locale.h" 1
# 2 "../include/bits/locale.h" 2
# 30 "../locale/locale.h" 2


# 51 "../locale/locale.h"
struct lconv
{


  char *decimal_point;
  char *thousands_sep;





  char *grouping;





  char *int_curr_symbol;
  char *currency_symbol;
  char *mon_decimal_point;
  char *mon_thousands_sep;
  char *mon_grouping;
  char *positive_sign;
  char *negative_sign;
  char int_frac_digits;
  char frac_digits;

  char p_cs_precedes;

  char p_sep_by_space;

  char n_cs_precedes;

  char n_sep_by_space;






  char p_sign_posn;
  char n_sign_posn;


  char int_p_cs_precedes;

  char int_p_sep_by_space;

  char int_n_cs_precedes;

  char int_n_sep_by_space;






  char int_p_sign_posn;
  char int_n_sign_posn;
# 118 "../locale/locale.h"
};



extern char *setlocale (int __category, const char *__locale) __attribute__ ((__nothrow__ ));


extern struct lconv *localeconv (void) __attribute__ ((__nothrow__ ));
# 135 "../locale/locale.h"
# 1 "../include/bits/types/locale_t.h" 1
# 136 "../locale/locale.h" 2





extern locale_t newlocale (int __category_mask, const char *__locale,
      locale_t __base) __attribute__ ((__nothrow__ ));
# 176 "../locale/locale.h"
extern locale_t duplocale (locale_t __dataset) __attribute__ ((__nothrow__ ));



extern void freelocale (locale_t __dataset) __attribute__ ((__nothrow__ ));






extern locale_t uselocale (locale_t __dataset) __attribute__ ((__nothrow__ ));








# 3 "../include/locale.h" 2


extern __typeof (uselocale) __uselocale;

extern __typeof (setlocale) setlocale __attribute__ ((visibility ("hidden")));
extern __typeof (__uselocale) __uselocale __attribute__ ((visibility ("hidden")));




extern struct loaded_l10nfile *_nl_locale_file_list[] ;


extern const struct __locale_struct _nl_C_locobj ;



extern struct lconv *__localeconv (void);


extern const char *__current_locale_name (int category) ;
# 8 "../include/string.h" 2

extern void *__memccpy (void *__dest, const void *__src,
   int __c, size_t __n);

extern size_t __strnlen (const char *__string, size_t __maxlen)
     __attribute__ ((__pure__));

extern char *__strsep (char **__stringp, const char *__delim);
extern __typeof (__strsep) __strsep __attribute__ ((visibility ("hidden")));

extern int __strverscmp (const char *__s1, const char *__s2)
     __attribute__ ((__pure__));

extern int __strncasecmp (const char *__s1, const char *__s2,
     size_t __n)
     __attribute__ ((__pure__));

extern int __strcasecmp (const char *__s1, const char *__s2)
     __attribute__ ((__pure__));

extern char *__strcasestr (const char *__haystack, const char *__needle)
     __attribute__ ((__pure__));

extern char *__strdup (const char *__string)
     __attribute__ ((__malloc__));
extern char *__strndup (const char *__string, size_t __n)
     __attribute__ ((__malloc__));

extern void *__rawmemchr (const void *__s, int __c)
     __attribute__ ((__pure__));

extern char *__strchrnul (const char *__s, int __c)
     __attribute__ ((__pure__));

extern void *__memrchr (const void *__s, int __c, size_t __n)
     __attribute__ ((__pure__));

extern void *__memchr (const void *__s, int __c, size_t __n)
     __attribute__ ((__pure__));

extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ )) ;

extern int __ffs (int __i) __attribute__ ((const));

extern char *__strerror_r (int __errnum, char *__buf, size_t __buflen);

extern char *__strerror_l (int __errnum, locale_t __loc);

extern const char *__sigdescr_np (int __errnum);
extern __typeof (__sigdescr_np) __sigdescr_np __attribute__ ((visibility ("hidden")));


# 1 "../sysdeps/s390/string_private.h" 1
# 61 "../include/string.h" 2


# 1 "../string/string.h" 1
# 26 "../string/string.h"
# 1 "../bits/libc-header-start.h" 1
# 27 "../string/string.h" 2






# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
# 34 "../string/string.h" 2
# 43 "../string/string.h"
extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
       size_t __n) __attribute__ ((__nothrow__ )) ;


extern void *memmove (void *__dest, const void *__src, size_t __n)
     __attribute__ ((__nothrow__ )) ;





extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
        int __c, size_t __n)
    __attribute__ ((__nothrow__ )) __attribute__ ((__access__ (__write_only__, 1, 4)));




extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ )) ;


extern int memcmp (const void *__s1, const void *__s2, size_t __n)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;
# 80 "../string/string.h"
extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;
# 107 "../string/string.h"
extern void *memchr (const void *__s, int __c, size_t __n)
      __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;
# 120 "../string/string.h"
extern void *rawmemchr (const void *__s, int __c)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;
# 133 "../string/string.h"
extern void *memrchr (const void *__s, int __c, size_t __n)
      __attribute__ ((__nothrow__ )) __attribute__ ((__pure__))
      __attribute__ ((__access__ (__read_only__, 1, 3)));





extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
     __attribute__ ((__nothrow__ )) ;

extern char *strncpy (char *__restrict __dest,
        const char *__restrict __src, size_t __n)
     __attribute__ ((__nothrow__ )) ;


extern char *strcat (char *__restrict __dest, const char *__restrict __src)
     __attribute__ ((__nothrow__ )) ;

extern char *strncat (char *__restrict __dest, const char *__restrict __src,
        size_t __n) __attribute__ ((__nothrow__ )) ;


extern int strcmp (const char *__s1, const char *__s2)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;

extern int strncmp (const char *__s1, const char *__s2, size_t __n)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;


extern int strcoll (const char *__s1, const char *__s2)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;

extern size_t strxfrm (char *__restrict __dest,
         const char *__restrict __src, size_t __n)
    __attribute__ ((__nothrow__ )) __attribute__ ((__access__ (__write_only__, 1, 3)));



# 1 "../include/bits/types/locale_t.h" 1
# 173 "../string/string.h" 2


extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;


extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
    locale_t __l) __attribute__ ((__nothrow__ ))
     __attribute__ ((__access__ (__write_only__, 1, 3)));





extern char *strdup (const char *__s)
     __attribute__ ((__nothrow__ )) __attribute__ ((__malloc__)) ;






extern char *strndup (const char *__string, size_t __n)
     __attribute__ ((__nothrow__ )) __attribute__ ((__malloc__)) ;
# 246 "../string/string.h"
extern char *strchr (const char *__s, int __c)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;
# 273 "../string/string.h"
extern char *strrchr (const char *__s, int __c)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;
# 286 "../string/string.h"
extern char *strchrnul (const char *__s, int __c)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;





extern size_t strcspn (const char *__s, const char *__reject)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;


extern size_t strspn (const char *__s, const char *__accept)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;
# 323 "../string/string.h"
extern char *strpbrk (const char *__s, const char *__accept)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;
# 350 "../string/string.h"
extern char *strstr (const char *__haystack, const char *__needle)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;




extern char *strtok (char *__restrict __s, const char *__restrict __delim)
     __attribute__ ((__nothrow__ )) ;



extern char *__strtok_r (char *__restrict __s,
    const char *__restrict __delim,
    char **__restrict __save_ptr)
     __attribute__ ((__nothrow__ )) ;

extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
         char **__restrict __save_ptr)
     __attribute__ ((__nothrow__ )) ;
# 380 "../string/string.h"
extern char *strcasestr (const char *__haystack, const char *__needle)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;







extern void *memmem (const void *__haystack, size_t __haystacklen,
       const void *__needle, size_t __needlelen)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__))
    __attribute__ ((__access__ (__read_only__, 1, 2)))
    __attribute__ ((__access__ (__read_only__, 3, 4)));



extern void *__mempcpy (void *__restrict __dest,
   const void *__restrict __src, size_t __n)
     __attribute__ ((__nothrow__ )) ;
extern void *mempcpy (void *__restrict __dest,
        const void *__restrict __src, size_t __n)
     __attribute__ ((__nothrow__ )) ;




extern size_t strlen (const char *__s)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;




extern size_t strnlen (const char *__string, size_t __maxlen)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;




extern char *strerror (int __errnum) __attribute__ ((__nothrow__ ));
# 444 "../string/string.h"
extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
     __attribute__ ((__nothrow__ )) __attribute__ ((__access__ (__write_only__, 2, 3)));




extern const char *strerrordesc_np (int __err) __attribute__ ((__nothrow__ ));

extern const char *strerrorname_np (int __err) __attribute__ ((__nothrow__ ));





extern char *strerror_l (int __errnum, locale_t __l) __attribute__ ((__nothrow__ ));



# 1 "../include/strings.h" 1
# 1 "../string/strings.h" 1
# 23 "../string/strings.h"
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
# 24 "../string/strings.h" 2










extern int bcmp (const void *__s1, const void *__s2, size_t __n)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;


extern void bcopy (const void *__src, void *__dest, size_t __n)
  __attribute__ ((__nothrow__ )) ;


extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ )) ;
# 68 "../string/strings.h"
extern char *index (const char *__s, int __c)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;
# 96 "../string/strings.h"
extern char *rindex (const char *__s, int __c)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;






extern int ffs (int __i) __attribute__ ((__nothrow__ )) __attribute__ ((__const__));





extern int ffsl (long int __l) __attribute__ ((__nothrow__ )) __attribute__ ((__const__));
__extension__ extern int ffsll (long long int __ll)
     __attribute__ ((__nothrow__ )) __attribute__ ((__const__));



extern int strcasecmp (const char *__s1, const char *__s2)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;


extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;



# 1 "../include/bits/types/locale_t.h" 1
# 126 "../string/strings.h" 2


extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;



extern int strncasecmp_l (const char *__s1, const char *__s2,
     size_t __n, locale_t __loc)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;



# 2 "../include/strings.h" 2
# 463 "../string/string.h" 2



extern void explicit_bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ ))
    __attribute__ ((__access__ (__write_only__, 1, 2)));



extern char *strsep (char **__restrict __stringp,
       const char *__restrict __delim)
     __attribute__ ((__nothrow__ )) ;




extern char *strsignal (int __sig) __attribute__ ((__nothrow__ ));



extern const char *sigabbrev_np (int __sig) __attribute__ ((__nothrow__ ));


extern const char *sigdescr_np (int __sig) __attribute__ ((__nothrow__ ));



extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src)
     __attribute__ ((__nothrow__ )) ;
extern char *stpcpy (char *__restrict __dest, const char *__restrict __src)
     __attribute__ ((__nothrow__ )) ;



extern char *__stpncpy (char *__restrict __dest,
   const char *__restrict __src, size_t __n)
     __attribute__ ((__nothrow__ )) ;
extern char *stpncpy (char *__restrict __dest,
        const char *__restrict __src, size_t __n)
     __attribute__ ((__nothrow__ )) ;




extern int strverscmp (const char *__s1, const char *__s2)
     __attribute__ ((__nothrow__ )) __attribute__ ((__pure__)) ;


extern char *strfry (char *__string) __attribute__ ((__nothrow__ )) ;


extern void *memfrob (void *__s, size_t __n) __attribute__ ((__nothrow__ ))
    __attribute__ ((__access__ (__read_write__, 1, 2)));
# 527 "../string/string.h"
extern char *basename (const char *__filename) __attribute__ ((__nothrow__ )) ;
# 539 "../string/string.h"

# 64 "../include/string.h" 2


extern __typeof (strcoll_l) __strcoll_l;
extern __typeof (strxfrm_l) __strxfrm_l;
extern __typeof (strcasecmp_l) __strcasecmp_l;
extern __typeof (strncasecmp_l) __strncasecmp_l;
# 85 "../include/string.h"
extern __typeof (__mempcpy) __mempcpy __attribute__ ((visibility ("hidden")));



extern __typeof (__stpcpy) __stpcpy __attribute__ ((visibility ("hidden")));



extern __typeof (__stpncpy) __stpncpy __attribute__ ((visibility ("hidden")));
extern __typeof (__rawmemchr) __rawmemchr __attribute__ ((visibility ("hidden")));
extern __typeof (__strcasecmp) __strcasecmp __attribute__ ((visibility ("hidden")));
extern __typeof (__strcasecmp_l) __strcasecmp_l __attribute__ ((visibility ("hidden")));
extern __typeof (__strncasecmp_l) __strncasecmp_l __attribute__ ((visibility ("hidden")));
extern __typeof (strncat) __strncat;
extern __typeof (__strncat) __strncat __attribute__ ((visibility ("hidden")));
extern __typeof (__strdup) __strdup __attribute__ ((visibility ("hidden")));
extern __typeof (__strndup) __strndup __attribute__ ((visibility ("hidden")));
extern __typeof (__strerror_r) __strerror_r __attribute__ ((visibility ("hidden")));
extern __typeof (__strverscmp) __strverscmp __attribute__ ((visibility ("hidden")));
extern __typeof (basename) basename __attribute__ ((visibility ("hidden")));
extern char *__basename (const char *__filename) __attribute__ ((__nothrow__ )) ;
extern __typeof (__basename) __basename __attribute__ ((visibility ("hidden")));
extern __typeof (strcoll) strcoll __attribute__ ((visibility ("hidden")));
extern __typeof (__strcoll_l) __strcoll_l __attribute__ ((visibility ("hidden")));
extern __typeof (__strxfrm_l) __strxfrm_l __attribute__ ((visibility ("hidden")));
extern __typeof (__strtok_r) __strtok_r __attribute__ ((visibility ("hidden")));
extern char *__strsep_g (char **__stringp, const char *__delim);
extern __typeof (__strsep_g) __strsep_g __attribute__ ((visibility ("hidden")));
extern __typeof (strnlen) strnlen __attribute__ ((visibility ("hidden")));
extern __typeof (__strnlen) __strnlen __attribute__ ((visibility ("hidden")));
extern __typeof (__memcmpeq) __memcmpeq __attribute__ ((visibility ("hidden")));
extern __typeof (memmem) memmem __attribute__ ((visibility ("hidden")));
extern __typeof (memmem) __memmem;
extern __typeof (__memmem) __memmem __attribute__ ((visibility ("hidden")));
extern __typeof (__ffs) __ffs __attribute__ ((visibility ("hidden")));
extern __typeof (__strerror_l) __strerror_l __attribute__ ((visibility ("hidden")));



void __explicit_bzero_chk_internal (void *, size_t, size_t)
  __attribute__ ((__nothrow__ )) ;
# 134 "../include/string.h"
extern __typeof (memchr) memchr __attribute__ ((visibility ("hidden")));
extern __typeof (memcpy) memcpy __attribute__ ((visibility ("hidden")));
extern __typeof (mempcpy) mempcpy __attribute__ ((visibility ("hidden")));
extern __typeof (memcmp) memcmp __attribute__ ((visibility ("hidden")));
extern __typeof (memmove) memmove __attribute__ ((visibility ("hidden")));
extern __typeof (memset) memset __attribute__ ((visibility ("hidden")));
extern __typeof (strcat) strcat __attribute__ ((visibility ("hidden")));
extern __typeof (strchr) strchr __attribute__ ((visibility ("hidden")));
extern __typeof (strcmp) strcmp __attribute__ ((visibility ("hidden")));
extern __typeof (strcpy) strcpy __attribute__ ((visibility ("hidden")));
extern __typeof (strcspn) strcspn __attribute__ ((visibility ("hidden")));
extern __typeof (strlen) strlen __attribute__ ((visibility ("hidden")));
extern __typeof (strncmp) strncmp __attribute__ ((visibility ("hidden")));
extern __typeof (strncpy) strncpy __attribute__ ((visibility ("hidden")));
extern __typeof (strpbrk) strpbrk __attribute__ ((visibility ("hidden")));
extern __typeof (stpcpy) stpcpy __attribute__ ((visibility ("hidden")));
extern __typeof (strrchr) strrchr __attribute__ ((visibility ("hidden")));
extern __typeof (strspn) strspn __attribute__ ((visibility ("hidden")));
extern __typeof (strstr) strstr __attribute__ ((visibility ("hidden")));
extern __typeof (ffs) ffs __attribute__ ((visibility ("hidden")));
# 179 "../include/string.h"
extern __typeof (mempcpy) mempcpy __asm__ ("__mempcpy");
extern __typeof (stpcpy) stpcpy __asm__ ("__stpcpy");


extern void *__memcpy_chk (void *__restrict __dest,
      const void *__restrict __src, size_t __len,
      size_t __destlen) __attribute__ ((__nothrow__ ));
extern void *__memmove_chk (void *__dest, const void *__src, size_t __len,
       size_t __destlen) __attribute__ ((__nothrow__ ));
extern void *__mempcpy_chk (void *__restrict __dest,
       const void *__restrict __src, size_t __len,
       size_t __destlen) __attribute__ ((__nothrow__ ));
extern void *__memset_chk (void *__dest, int __ch, size_t __len,
      size_t __destlen) __attribute__ ((__nothrow__ ));
extern char *__strcpy_chk (char *__restrict __dest,
      const char *__restrict __src,
      size_t __destlen) __attribute__ ((__nothrow__ ));
extern char *__stpcpy_chk (char *__restrict __dest,
      const char *__restrict __src,
      size_t __destlen) __attribute__ ((__nothrow__ ));
extern char *__strncpy_chk (char *__restrict __dest,
       const char *__restrict __src,
       size_t __len, size_t __destlen) __attribute__ ((__nothrow__ ));
extern char *__strcat_chk (char *__restrict __dest,
      const char *__restrict __src,
      size_t __destlen) __attribute__ ((__nothrow__ ));
extern char *__strncat_chk (char *__restrict __dest,
       const char *__restrict __src,
       size_t __len, size_t __destlen) __attribute__ ((__nothrow__ ));
# 38 "../sysdeps/generic/hp-timing-common.h" 2
# 1 "../include/sys/param.h" 1
# 1 "../misc/sys/param.h" 1
# 23 "../misc/sys/param.h"
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
# 24 "../misc/sys/param.h" 2

# 1 "../include/sys/types.h" 1
# 26 "../misc/sys/param.h" 2
# 1 "../include/limits.h" 1
# 195 "../include/limits.h"
# 1 "../include/bits/posix1_lim.h" 1
# 196 "../include/limits.h" 2



# 1 "../include/bits/posix2_lim.h" 1
# 200 "../include/limits.h" 2
# 27 "../misc/sys/param.h" 2
# 1 "../include/endian.h" 1
# 28 "../misc/sys/param.h" 2
# 1 "../include/signal.h" 1

# 1 "../signal/signal.h" 1
# 27 "../signal/signal.h"


# 1 "../include/bits/types.h" 1
# 30 "../signal/signal.h" 2
# 1 "../bits/signum-generic.h" 1
# 76 "../bits/signum-generic.h"
# 1 "../sysdeps/unix/sysv/linux/bits/signum-arch.h" 1
# 77 "../bits/signum-generic.h" 2
# 31 "../signal/signal.h" 2

# 1 "../include/bits/types/sig_atomic_t.h" 1
# 1 "../signal/bits/types/sig_atomic_t.h" 1



# 1 "../include/bits/types.h" 1
# 5 "../signal/bits/types/sig_atomic_t.h" 2



typedef __sig_atomic_t sig_atomic_t;
# 2 "../include/bits/types/sig_atomic_t.h" 2
# 33 "../signal/signal.h" 2


# 1 "../include/bits/types/sigset_t.h" 1
# 36 "../signal/signal.h" 2
# 53 "../signal/signal.h"
# 1 "../include/bits/types/struct_timespec.h" 1
# 54 "../signal/signal.h" 2



# 1 "../sysdeps/unix/sysv/linux/bits/types/siginfo_t.h" 1



# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
# 5 "../sysdeps/unix/sysv/linux/bits/types/siginfo_t.h" 2
# 1 "../include/bits/types.h" 1
# 6 "../sysdeps/unix/sysv/linux/bits/types/siginfo_t.h" 2
# 1 "../include/bits/types/__sigval_t.h" 1
# 1 "../signal/bits/types/__sigval_t.h" 1
# 24 "../signal/bits/types/__sigval_t.h"
union sigval
{
  int sival_int;
  void *sival_ptr;
};

typedef union sigval __sigval_t;
# 2 "../include/bits/types/__sigval_t.h" 2
# 7 "../sysdeps/unix/sysv/linux/bits/types/siginfo_t.h" 2
# 16 "../sysdeps/unix/sysv/linux/bits/types/siginfo_t.h"
# 1 "../sysdeps/unix/sysv/linux/bits/siginfo-arch.h" 1
# 17 "../sysdeps/unix/sysv/linux/bits/types/siginfo_t.h" 2
# 36 "../sysdeps/unix/sysv/linux/bits/types/siginfo_t.h"
typedef struct
  {
    int si_signo;

    int si_errno;

    int si_code;





    int __pad0;


    union
      {
 int _pad[((128 / sizeof (int)) - 4)];


 struct
   {
     __pid_t si_pid;
     __uid_t si_uid;
   } _kill;


 struct
   {
     int si_tid;
     int si_overrun;
     __sigval_t si_sigval;
   } _timer;


 struct
   {
     __pid_t si_pid;
     __uid_t si_uid;
     __sigval_t si_sigval;
   } _rt;


 struct
   {
     __pid_t si_pid;
     __uid_t si_uid;
     int si_status;
     __clock_t si_utime;
     __clock_t si_stime;
   } _sigchld;


 struct
   {
     void *si_addr;
    
     short int si_addr_lsb;
     union
       {

  struct
    {
      void *_lower;
      void *_upper;
    } _addr_bnd;

  __uint32_t _pkey;
       } _bounds;
   } _sigfault;


 struct
   {
     long int si_band;
     int si_fd;
   } _sigpoll;



 struct
   {
     void *_call_addr;
     int _syscall;
     unsigned int _arch;
   } _sigsys;

      } _sifields;
  } siginfo_t ;
# 58 "../signal/signal.h" 2
# 1 "../sysdeps/unix/sysv/linux/bits/siginfo-consts.h" 1
# 35 "../sysdeps/unix/sysv/linux/bits/siginfo-consts.h"
enum
{
  SI_ASYNCNL = -60,
  SI_DETHREAD = -7,

  SI_TKILL,
  SI_SIGIO,

  SI_ASYNCIO,
  SI_MESGQ,
  SI_TIMER,





  SI_QUEUE,
  SI_USER,
  SI_KERNEL = 0x80
# 66 "../sysdeps/unix/sysv/linux/bits/siginfo-consts.h"
};




enum
{
  ILL_ILLOPC = 1,

  ILL_ILLOPN,

  ILL_ILLADR,

  ILL_ILLTRP,

  ILL_PRVOPC,

  ILL_PRVREG,

  ILL_COPROC,

  ILL_BADSTK,

  ILL_BADIADDR

};


enum
{
  FPE_INTDIV = 1,

  FPE_INTOVF,

  FPE_FLTDIV,

  FPE_FLTOVF,

  FPE_FLTUND,

  FPE_FLTRES,

  FPE_FLTINV,

  FPE_FLTSUB,

  FPE_FLTUNK = 14,

  FPE_CONDTRAP

};


enum
{
  SEGV_MAPERR = 1,

  SEGV_ACCERR,

  SEGV_BNDERR,

  SEGV_PKUERR,

  SEGV_ACCADI,

  SEGV_ADIDERR,

  SEGV_ADIPERR,

  SEGV_MTEAERR,

  SEGV_MTESERR

};


enum
{
  BUS_ADRALN = 1,

  BUS_ADRERR,

  BUS_OBJERR,

  BUS_MCEERR_AR,

  BUS_MCEERR_AO

};




enum
{
  TRAP_BRKPT = 1,

  TRAP_TRACE,

  TRAP_BRANCH,

  TRAP_HWBKPT,

  TRAP_UNK

};




enum
{
  CLD_EXITED = 1,

  CLD_KILLED,

  CLD_DUMPED,

  CLD_TRAPPED,

  CLD_STOPPED,

  CLD_CONTINUED

};


enum
{
  POLL_IN = 1,

  POLL_OUT,

  POLL_MSG,

  POLL_ERR,

  POLL_PRI,

  POLL_HUP

};





# 1 "../sysdeps/unix/sysv/linux/bits/siginfo-consts-arch.h" 1
# 214 "../sysdeps/unix/sysv/linux/bits/siginfo-consts.h" 2
# 59 "../signal/signal.h" 2



# 1 "../include/bits/types/sigval_t.h" 1
# 1 "../signal/bits/types/sigval_t.h" 1



# 1 "../include/bits/types/__sigval_t.h" 1
# 5 "../signal/bits/types/sigval_t.h" 2
# 16 "../signal/bits/types/sigval_t.h"
typedef __sigval_t sigval_t;
# 2 "../include/bits/types/sigval_t.h" 2
# 63 "../signal/signal.h" 2



# 1 "../sysdeps/unix/sysv/linux/bits/types/sigevent_t.h" 1



# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
# 5 "../sysdeps/unix/sysv/linux/bits/types/sigevent_t.h" 2
# 1 "../include/bits/types.h" 1
# 6 "../sysdeps/unix/sysv/linux/bits/types/sigevent_t.h" 2
# 1 "../include/bits/types/__sigval_t.h" 1
# 7 "../sysdeps/unix/sysv/linux/bits/types/sigevent_t.h" 2
# 22 "../sysdeps/unix/sysv/linux/bits/types/sigevent_t.h"
typedef struct sigevent
  {
    __sigval_t sigev_value;
    int sigev_signo;
    int sigev_notify;

    union
      {
 int _pad[((64 / sizeof (int)) - 4)];



 __pid_t _tid;

 struct
   {
     void (*_function) (__sigval_t);
     pthread_attr_t *_attribute;
   } _sigev_thread;
      } _sigev_un;
  } sigevent_t;
# 67 "../signal/signal.h" 2
# 1 "../sysdeps/unix/sysv/linux/bits/sigevent-consts.h" 1
# 27 "../sysdeps/unix/sysv/linux/bits/sigevent-consts.h"
enum
{
  SIGEV_SIGNAL = 0,

  SIGEV_NONE,

  SIGEV_THREAD,


  SIGEV_THREAD_ID = 4


};
# 68 "../signal/signal.h" 2




typedef void (*__sighandler_t) (int);




extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler)
     __attribute__ ((__nothrow__ ));

extern __sighandler_t sysv_signal (int __sig, __sighandler_t __handler)
     __attribute__ ((__nothrow__ ));






extern __sighandler_t signal (int __sig, __sighandler_t __handler)
     __attribute__ ((__nothrow__ ));
# 112 "../signal/signal.h"
extern int kill (__pid_t __pid, int __sig) __attribute__ ((__nothrow__ ));






extern int killpg (__pid_t __pgrp, int __sig) __attribute__ ((__nothrow__ ));



extern int raise (int __sig) __attribute__ ((__nothrow__ ));



extern __sighandler_t ssignal (int __sig, __sighandler_t __handler)
     __attribute__ ((__nothrow__ ));
extern int gsignal (int __sig) __attribute__ ((__nothrow__ ));




extern void psignal (int __sig, const char *__s);


extern void psiginfo (const siginfo_t *__pinfo, const char *__s);
# 151 "../signal/signal.h"
extern int sigpause (int __sig) __asm__ ("__xpg_sigpause")
  __attribute__ ((__deprecated__ ("Use the sigsuspend function instead")));
# 173 "../signal/signal.h"
extern int sigblock (int __mask) __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__));


extern int sigsetmask (int __mask) __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__));


extern int siggetmask (void) __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__));
# 188 "../signal/signal.h"
typedef __sighandler_t sighandler_t;




typedef __sighandler_t sig_t;





extern int sigemptyset (sigset_t *__set) __attribute__ ((__nothrow__ )) ;


extern int sigfillset (sigset_t *__set) __attribute__ ((__nothrow__ )) ;


extern int sigaddset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__ )) ;


extern int sigdelset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__ )) ;


extern int sigismember (const sigset_t *__set, int __signo)
     __attribute__ ((__nothrow__ )) ;



extern int sigisemptyset (const sigset_t *__set) __attribute__ ((__nothrow__ )) ;


extern int sigandset (sigset_t *__set, const sigset_t *__left,
        const sigset_t *__right) __attribute__ ((__nothrow__ )) ;


extern int sigorset (sigset_t *__set, const sigset_t *__left,
       const sigset_t *__right) __attribute__ ((__nothrow__ )) ;




# 1 "../sysdeps/unix/sysv/linux/s390/bits/sigaction.h" 1
# 26 "../sysdeps/unix/sysv/linux/s390/bits/sigaction.h"
# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
# 27 "../sysdeps/unix/sysv/linux/s390/bits/sigaction.h" 2



struct sigaction
  {


    union
      {

 __sighandler_t sa_handler;

 void (*sa_sigaction) (int, siginfo_t *, void *);
      }
    __sigaction_handler;







    int __glibc_reserved0;
    int sa_flags;


    void (*sa_restorer) (void);


    __sigset_t sa_mask;
  };
# 230 "../signal/signal.h" 2


extern int sigprocmask (int __how, const sigset_t *__restrict __set,
   sigset_t *__restrict __oset) __attribute__ ((__nothrow__ ));






extern int sigsuspend (const sigset_t *__set) ;


extern int sigaction (int __sig, const struct sigaction *__restrict __act,
        struct sigaction *__restrict __oact) __attribute__ ((__nothrow__ ));


extern int sigpending (sigset_t *__set) __attribute__ ((__nothrow__ )) ;







extern int sigwait (const sigset_t *__restrict __set, int *__restrict __sig)
     ;







extern int sigwaitinfo (const sigset_t *__restrict __set,
   siginfo_t *__restrict __info) ;







extern int sigtimedwait (const sigset_t *__restrict __set,
    siginfo_t *__restrict __info,
    const struct timespec *__restrict __timeout)
     ;
# 292 "../signal/signal.h"
extern int sigqueue (__pid_t __pid, int __sig, const union sigval __val)
     __attribute__ ((__nothrow__ ));







# 1 "../sysdeps/unix/sysv/linux/bits/sigcontext.h" 1
# 30 "../sysdeps/unix/sysv/linux/bits/sigcontext.h"
# 1 "/usr/include/asm/sigcontext.h" 1 3 4
# 11 "/usr/include/asm/sigcontext.h" 3 4
# 1 "/usr/include/linux/types.h" 1 3 4




# 1 "/usr/include/asm/types.h" 1 3 4
# 11 "/usr/include/asm/types.h" 3 4
# 1 "/usr/include/asm-generic/int-ll64.h" 1 3 4
# 12 "/usr/include/asm-generic/int-ll64.h" 3 4
# 1 "/usr/include/asm/bitsperlong.h" 1 3 4
# 11 "/usr/include/asm/bitsperlong.h" 3 4
# 1 "/usr/include/asm-generic/bitsperlong.h" 1 3 4
# 12 "/usr/include/asm/bitsperlong.h" 2 3 4
# 13 "/usr/include/asm-generic/int-ll64.h" 2 3 4








# 20 "/usr/include/asm-generic/int-ll64.h" 3 4
typedef __signed__ char __s8;
typedef unsigned char __u8;

typedef __signed__ short __s16;
typedef unsigned short __u16;

typedef __signed__ int __s32;
typedef unsigned int __u32;


__extension__ typedef __signed__ long long __s64;
__extension__ typedef unsigned long long __u64;
# 12 "/usr/include/asm/types.h" 2 3 4






typedef unsigned long addr_t;
typedef __signed__ long saddr_t;

typedef struct {
 __u32 u[4];
} __vector128;
# 6 "/usr/include/linux/types.h" 2 3 4



# 1 "/usr/include/linux/posix_types.h" 1 3 4




# 1 "/usr/include/linux/stddef.h" 1 3 4
# 6 "/usr/include/linux/posix_types.h" 2 3 4
# 25 "/usr/include/linux/posix_types.h" 3 4
typedef struct {
 unsigned long fds_bits[1024 / (8 * sizeof(long))];
} __kernel_fd_set;


typedef void (*__kernel_sighandler_t)(int);


typedef int __kernel_key_t;
typedef int __kernel_mqd_t;

# 1 "/usr/include/asm/posix_types.h" 1 3 4
# 16 "/usr/include/asm/posix_types.h" 3 4
typedef unsigned long __kernel_size_t;
typedef long __kernel_ssize_t;


typedef unsigned short __kernel_old_dev_t;
# 35 "/usr/include/asm/posix_types.h" 3 4
typedef unsigned int __kernel_ino_t;
typedef unsigned int __kernel_mode_t;
typedef int __kernel_ipc_pid_t;
typedef unsigned int __kernel_uid_t;
typedef unsigned int __kernel_gid_t;
typedef long __kernel_ptrdiff_t;
typedef unsigned long __kernel_sigset_t;
# 51 "/usr/include/asm/posix_types.h" 3 4
# 1 "/usr/include/asm-generic/posix_types.h" 1 3 4
# 15 "/usr/include/asm-generic/posix_types.h" 3 4
typedef long __kernel_long_t;
typedef unsigned long __kernel_ulong_t;
# 28 "/usr/include/asm-generic/posix_types.h" 3 4
typedef int __kernel_pid_t;
# 41 "/usr/include/asm-generic/posix_types.h" 3 4
typedef __kernel_long_t __kernel_suseconds_t;



typedef int __kernel_daddr_t;



typedef unsigned int __kernel_uid32_t;
typedef unsigned int __kernel_gid32_t;



typedef __kernel_uid_t __kernel_old_uid_t;
typedef __kernel_gid_t __kernel_old_gid_t;
# 79 "/usr/include/asm-generic/posix_types.h" 3 4
typedef struct {
 int val[2];
} __kernel_fsid_t;





typedef __kernel_long_t __kernel_off_t;
typedef long long __kernel_loff_t;
typedef __kernel_long_t __kernel_old_time_t;
typedef __kernel_long_t __kernel_time_t;
typedef long long __kernel_time64_t;
typedef __kernel_long_t __kernel_clock_t;
typedef int __kernel_timer_t;
typedef int __kernel_clockid_t;
typedef char * __kernel_caddr_t;
typedef unsigned short __kernel_uid16_t;
typedef unsigned short __kernel_gid16_t;
# 52 "/usr/include/asm/posix_types.h" 2 3 4
# 37 "/usr/include/linux/posix_types.h" 2 3 4
# 10 "/usr/include/linux/types.h" 2 3 4
# 24 "/usr/include/linux/types.h" 3 4
typedef __u16 __le16;
typedef __u16 __be16;
typedef __u32 __le32;
typedef __u32 __be32;
typedef __u64 __le64;
typedef __u64 __be64;

typedef __u16 __sum16;
typedef __u32 __wsum;
# 47 "/usr/include/linux/types.h" 3 4
typedef unsigned __poll_t;
# 12 "/usr/include/asm/sigcontext.h" 2 3 4
# 41 "/usr/include/asm/sigcontext.h" 3 4
typedef struct
{
        unsigned long mask;
        unsigned long addr;
} __attribute__ ((aligned(8))) _psw_t;

typedef struct
{
 _psw_t psw;
 unsigned long gprs[16];
 unsigned int acrs[16];
} _s390_regs_common;

typedef struct
{
 unsigned int fpc;
 unsigned int pad;
 double fprs[16];
} _s390_fp_regs;

typedef struct
{
 _s390_regs_common regs;
 _s390_fp_regs fpregs;
} _sigregs;

typedef struct
{



 unsigned long long vxrs_low[16];
 __vector128 vxrs_high[16];
 unsigned char __reserved[128];
} _sigregs_ext;

struct sigcontext
{
 unsigned long oldmask[(64 / 64)];
 _sigregs *sregs;
};
# 31 "../sysdeps/unix/sysv/linux/bits/sigcontext.h" 2



# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
# 35 "../sysdeps/unix/sysv/linux/bits/sigcontext.h" 2
# 302 "../signal/signal.h" 2



# 304 "../signal/signal.h"
extern int sigreturn (struct sigcontext *__scp) __attribute__ ((__nothrow__ ));






# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
# 312 "../signal/signal.h" 2

# 1 "../sysdeps/unix/sysv/linux/bits/types/stack_t.h" 1
# 23 "../sysdeps/unix/sysv/linux/bits/types/stack_t.h"
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
# 24 "../sysdeps/unix/sysv/linux/bits/types/stack_t.h" 2


typedef struct
  {
    void *ss_sp;
    int ss_flags;
    size_t ss_size;
  } stack_t;
# 314 "../signal/signal.h" 2


# 1 "../sysdeps/unix/sysv/linux/s390/sys/ucontext.h" 1
# 23 "../sysdeps/unix/sysv/linux/s390/sys/ucontext.h"
# 1 "../include/bits/types/sigset_t.h" 1
# 24 "../sysdeps/unix/sysv/linux/s390/sys/ucontext.h" 2
# 34 "../sysdeps/unix/sysv/linux/s390/sys/ucontext.h"
typedef struct
{
  unsigned long mask;
  unsigned long addr;
} __attribute__ ((__aligned__(8))) __psw_t;


typedef unsigned long greg_t;
# 57 "../sysdeps/unix/sysv/linux/s390/sys/ucontext.h"
typedef greg_t gregset_t[27] __attribute__ ((__aligned__(8)));

typedef union
  {
    double d;
    float f;
  } fpreg_t;


typedef struct
  {
    unsigned int fpc;
    fpreg_t fprs[16];
  } fpregset_t;


typedef struct
  {
    __psw_t psw;
    unsigned long gregs[16];
    unsigned int aregs[16];
    fpregset_t fpregs;
  } mcontext_t;


typedef struct ucontext_t
  {
    unsigned long int uc_flags;
    struct ucontext_t *uc_link;
    stack_t uc_stack;
    mcontext_t uc_mcontext;
    sigset_t uc_sigmask;
  } ucontext_t;
# 317 "../signal/signal.h" 2







extern int siginterrupt (int __sig, int __interrupt) __attribute__ ((__nothrow__ ))
  __attribute__ ((__deprecated__ ("Use sigaction with SA_RESTART instead")));

# 1 "../include/bits/sigstack.h" 1
# 1 "../sysdeps/unix/sysv/linux/bits/sigstack.h" 1
# 2 "../include/bits/sigstack.h" 2
# 328 "../signal/signal.h" 2
# 1 "../include/bits/sigstksz.h" 1
# 329 "../signal/signal.h" 2
# 1 "../sysdeps/unix/sysv/linux/bits/ss_flags.h" 1
# 27 "../sysdeps/unix/sysv/linux/bits/ss_flags.h"
enum
{
  SS_ONSTACK = 1,

  SS_DISABLE

};
# 330 "../signal/signal.h" 2



extern int sigaltstack (const stack_t *__restrict __ss,
   stack_t *__restrict __oss) __attribute__ ((__nothrow__ ));




# 1 "../include/bits/types/struct_sigstack.h" 1
# 1 "../signal/bits/types/struct_sigstack.h" 1
# 23 "../signal/bits/types/struct_sigstack.h"
struct sigstack
  {
    void *ss_sp;
    int ss_onstack;
  };
# 2 "../include/bits/types/struct_sigstack.h" 2
# 340 "../signal/signal.h" 2







extern int sigstack (struct sigstack *__ss, struct sigstack *__oss)
     __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__));






extern int sighold (int __sig) __attribute__ ((__nothrow__ ))
  __attribute__ ((__deprecated__ ("Use the sigprocmask function instead")));


extern int sigrelse (int __sig) __attribute__ ((__nothrow__ ))
  __attribute__ ((__deprecated__ ("Use the sigprocmask function instead")));


extern int sigignore (int __sig) __attribute__ ((__nothrow__ ))
  __attribute__ ((__deprecated__ ("Use the signal function instead")));


extern __sighandler_t sigset (int __sig, __sighandler_t __disp) __attribute__ ((__nothrow__ ))
  __attribute__ ((__deprecated__ ("Use the signal and sigprocmask functions instead")))
                                                        ;






# 1 "../sysdeps/pthread/bits/sigthread.h" 1
# 31 "../sysdeps/pthread/bits/sigthread.h"
extern int pthread_sigmask (int __how,
       const __sigset_t *__restrict __newmask,
       __sigset_t *__restrict __oldmask)__attribute__ ((__nothrow__ ));


extern int pthread_kill (pthread_t __threadid, int __signo) __attribute__ ((__nothrow__ ));



extern int pthread_sigqueue (pthread_t __threadid, int __signo,
        const union sigval __value) __attribute__ ((__nothrow__ ));
# 377 "../signal/signal.h" 2






extern int __libc_current_sigrtmin (void) __attribute__ ((__nothrow__ ));

extern int __libc_current_sigrtmax (void) __attribute__ ((__nothrow__ ));





# 1 "../sysdeps/unix/sysv/linux/bits/signal_ext.h" 1
# 29 "../sysdeps/unix/sysv/linux/bits/signal_ext.h"
extern int tgkill (__pid_t __tgid, __pid_t __tid, int __signal);
# 392 "../signal/signal.h" 2


# 3 "../include/signal.h" 2


# 1 "../sysdeps/unix/sysv/linux/sigsetops.h" 1
# 22 "../sysdeps/unix/sysv/linux/sigsetops.h"
# 1 "../include/signal.h" 1
# 23 "../sysdeps/unix/sysv/linux/sigsetops.h" 2
# 1 "../include/limits.h" 1
# 195 "../include/limits.h"
# 1 "../include/bits/posix1_lim.h" 1
# 196 "../include/limits.h" 2



# 1 "../include/bits/posix2_lim.h" 1
# 200 "../include/limits.h" 2
# 24 "../sysdeps/unix/sysv/linux/sigsetops.h" 2







static inline unsigned long int
__sigword (int sig)
{
  return (sig - 1) / 64;
}





_Static_assert (((((((64 + 1) - 1)) + (64) - 1) & -((__typeof__ ((((64 + 1) - 1)) + (64) - 1)) ((64)))) / 64) <= (1024 / (8 * sizeof (unsigned long int))), "__NSIG_WORDS > _SIGSET_WORDS")
                                 ;






static inline void
__sigemptyset (sigset_t *set)
{
  int cnt = ((((((64 + 1) - 1)) + (64) - 1) & -((__typeof__ ((((64 + 1) - 1)) + (64) - 1)) ((64)))) / 64);
  while (--cnt >= 0)
   set->__val[cnt] = 0;
}

static inline void
__sigfillset (sigset_t *set)
{
  int cnt = ((((((64 + 1) - 1)) + (64) - 1) & -((__typeof__ ((((64 + 1) - 1)) + (64) - 1)) ((64)))) / 64);
  while (--cnt >= 0)
   set->__val[cnt] = ~0UL;
}

static inline int
__sigisemptyset (const sigset_t *set)
{
  int cnt = ((((((64 + 1) - 1)) + (64) - 1) & -((__typeof__ ((((64 + 1) - 1)) + (64) - 1)) ((64)))) / 64);
  int ret = set->__val[--cnt];
  while (ret == 0 && --cnt >= 0)
    ret = set->__val[cnt];
  return ret == 0;
}

static inline void
__sigandset (sigset_t *dest, const sigset_t *left, const sigset_t *right)
{
  int cnt = ((((((64 + 1) - 1)) + (64) - 1) & -((__typeof__ ((((64 + 1) - 1)) + (64) - 1)) ((64)))) / 64);
  while (--cnt >= 0)
    dest->__val[cnt] = left->__val[cnt] & right->__val[cnt];
}

static inline void
__sigorset (sigset_t *dest, const sigset_t *left, const sigset_t *right)
{
  int cnt = ((((((64 + 1) - 1)) + (64) - 1) & -((__typeof__ ((((64 + 1) - 1)) + (64) - 1)) ((64)))) / 64);
  while (--cnt >= 0)
    dest->__val[cnt] = left->__val[cnt] | right->__val[cnt];
}

static inline int
__sigismember (const sigset_t *set, int sig)
{
  unsigned long int mask = (1UL << (((sig) - 1) % 64));
  unsigned long int word = __sigword (sig);
  return set->__val[word] & mask ? 1 : 0;
}

static inline void
__sigaddset (sigset_t *set, int sig)
{
  unsigned long int mask = (1UL << (((sig) - 1) % 64));
  unsigned long int word = __sigword (sig);
  set->__val[word] |= mask;
}

static inline void
__sigdelset (sigset_t *set, int sig)
{
  unsigned long int mask = (1UL << (((sig) - 1) % 64));
  unsigned long int word = __sigword (sig);
  set->__val[word] &= ~mask;
}
# 6 "../include/signal.h" 2

extern __typeof (sigemptyset) sigemptyset __attribute__ ((visibility ("hidden")));
extern __typeof (sigfillset) sigfillset __attribute__ ((visibility ("hidden")));
extern __typeof (sigaddset) sigaddset __attribute__ ((visibility ("hidden")));
extern __typeof (sigdelset) sigdelset __attribute__ ((visibility ("hidden")));
extern __typeof (sigismember) sigismember __attribute__ ((visibility ("hidden")));
extern int __sigpause (int sig_or_mask, int is_sig);
extern __typeof (__sigpause) __sigpause __attribute__ ((visibility ("hidden")));
extern __typeof (raise) raise __attribute__ ((visibility ("hidden")));
extern __typeof (__libc_current_sigrtmin) __libc_current_sigrtmin __attribute__ ((visibility ("hidden")));
extern __typeof (__libc_current_sigrtmax) __libc_current_sigrtmax __attribute__ ((visibility ("hidden")));
extern const char * const __sys_siglist[(64 + 1)];
extern __typeof (__sys_siglist) __sys_siglist __attribute__ ((visibility ("hidden")));
extern const char * const __sys_sigabbrev[(64 + 1)];
extern __typeof (__sys_sigabbrev) __sys_sigabbrev __attribute__ ((visibility ("hidden")));


extern __sighandler_t __bsd_signal (int __sig, __sighandler_t __handler);
extern int __kill (__pid_t __pid, int __sig);
extern __typeof (__kill) __kill __attribute__ ((visibility ("hidden")));
extern int __sigaction (int __sig, const struct sigaction *__restrict __act,
   struct sigaction *__restrict __oact);
extern __typeof (__sigaction) __sigaction __attribute__ ((visibility ("hidden")));
extern int __sigblock (int __mask);
extern __typeof (__sigblock) __sigblock __attribute__ ((visibility ("hidden")));
extern int __sigsetmask (int __mask);
extern int __sigprocmask (int __how,
     const sigset_t *__set, sigset_t *__oset);
extern __typeof (__sigprocmask) __sigprocmask __attribute__ ((visibility ("hidden")));
extern int __sigsuspend (const sigset_t *__set);
extern __typeof (__sigsuspend) __sigsuspend __attribute__ ((visibility ("hidden")));
extern int __sigwait (const sigset_t *__set, int *__sig);
extern __typeof (__sigwait) __sigwait __attribute__ ((visibility ("hidden")));
extern int __sigwaitinfo (const sigset_t *__set, siginfo_t *__info);
extern __typeof (__sigwaitinfo) __sigwaitinfo __attribute__ ((visibility ("hidden")));
# 49 "../include/signal.h"
extern int __sigtimedwait (const sigset_t *__set, siginfo_t *__info,
      const struct timespec *__timeout);
extern __typeof (__sigtimedwait) __sigtimedwait __attribute__ ((visibility ("hidden")));
extern int __sigqueue (__pid_t __pid, int __sig,
         const union sigval __val);

extern int __sigreturn (struct sigcontext *__scp);

extern int __sigaltstack (const stack_t *__ss,
     stack_t *__oss);
extern __typeof (__sigaltstack) __sigaltstack __attribute__ ((visibility ("hidden")));
extern int __libc_sigaction (int sig, const struct sigaction *act,
        struct sigaction *oact);
extern __typeof (__libc_sigaction) __libc_sigaction __attribute__ ((visibility ("hidden")));

extern int __default_sigpause (int mask);
extern int __xpg_sigpause (int sig);


extern int __libc_allocate_rtsig (int __high);
# 29 "../misc/sys/param.h" 2


# 1 "../sysdeps/unix/sysv/linux/bits/param.h" 1
# 28 "../sysdeps/unix/sysv/linux/bits/param.h"
# 1 "/usr/include/linux/param.h" 1 3 4




# 1 "/usr/include/asm/param.h" 1 3 4
# 1 "/usr/include/asm-generic/param.h" 1 3 4
# 2 "/usr/include/asm/param.h" 2 3 4
# 6 "/usr/include/linux/param.h" 2 3 4
# 29 "../sysdeps/unix/sysv/linux/bits/param.h" 2
# 32 "../misc/sys/param.h" 2
# 2 "../include/sys/param.h" 2
# 39 "../sysdeps/generic/hp-timing-common.h" 2
# 1 "../sysdeps/generic/_itoa.h" 1
# 22 "../sysdeps/generic/_itoa.h"
# 1 "../include/limits.h" 1
# 195 "../include/limits.h"
# 1 "../include/bits/posix1_lim.h" 1
# 196 "../include/limits.h" 2



# 1 "../include/bits/posix2_lim.h" 1
# 200 "../include/limits.h" 2
# 23 "../sysdeps/generic/_itoa.h" 2
# 44 "../sysdeps/generic/_itoa.h"
extern char *_itoa (unsigned long long int value, char *buflim,
      unsigned int base, int upper_case) ;

extern const char _itoa_upper_digits[];
extern const char _itoa_lower_digits[];

extern __typeof (_itoa_upper_digits) _itoa_upper_digits __attribute__ ((visibility ("hidden")));
extern __typeof (_itoa_lower_digits) _itoa_lower_digits __attribute__ ((visibility ("hidden")));



extern char *_itoa_word (unsigned long int value, char *buflim,
    unsigned int base,
    int upper_case) ;
# 91 "../sysdeps/generic/_itoa.h"
extern char *_fitoa_word (unsigned long int value, char *buf,
     unsigned int base,
     int upper_case) ;
extern char *_fitoa (unsigned long long value, char *buf, unsigned int base,
       int upper_case) ;
# 40 "../sysdeps/generic/hp-timing-common.h" 2
# 26 "../sysdeps/s390/hp-timing.h" 2



typedef unsigned long long int hp_timing_t;
# 27 "../nptl/descr.h" 2

# 1 "../sysdeps/nptl/lowlevellock.h" 1
# 23 "../sysdeps/nptl/lowlevellock.h"
# 1 "../sysdeps/unix/sysv/linux/s390/elision-conf.h" 1
# 21 "../sysdeps/unix/sysv/linux/s390/elision-conf.h"
# 1 "../include/pthread.h" 1
# 1 "../sysdeps/nptl/pthread.h" 1
# 23 "../sysdeps/nptl/pthread.h"
# 1 "../include/time.h" 1

# 1 "../time/time.h" 1
# 29 "../time/time.h"
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
# 30 "../time/time.h" 2



# 1 "../sysdeps/unix/sysv/linux/bits/time.h" 1
# 26 "../sysdeps/unix/sysv/linux/bits/time.h"
# 1 "../include/bits/types.h" 1
# 27 "../sysdeps/unix/sysv/linux/bits/time.h" 2
# 73 "../sysdeps/unix/sysv/linux/bits/time.h"
# 1 "../sysdeps/unix/sysv/linux/bits/timex.h" 1
# 21 "../sysdeps/unix/sysv/linux/bits/timex.h"
# 1 "../include/bits/types.h" 1
# 22 "../sysdeps/unix/sysv/linux/bits/timex.h" 2
# 1 "../include/bits/types/struct_timeval.h" 1
# 23 "../sysdeps/unix/sysv/linux/bits/timex.h" 2



struct timex
{
# 58 "../sysdeps/unix/sysv/linux/bits/timex.h"
  unsigned int modes;
  __syscall_slong_t offset;
  __syscall_slong_t freq;
  __syscall_slong_t maxerror;
  __syscall_slong_t esterror;
  int status;
  __syscall_slong_t constant;
  __syscall_slong_t precision;
  __syscall_slong_t tolerance;
  struct timeval time;
  __syscall_slong_t tick;
  __syscall_slong_t ppsfreq;
  __syscall_slong_t jitter;
  int shift;
  __syscall_slong_t stabil;
  __syscall_slong_t jitcnt;
  __syscall_slong_t calcnt;
  __syscall_slong_t errcnt;
  __syscall_slong_t stbcnt;

  int tai;


  int :32; int :32; int :32; int :32;
  int :32; int :32; int :32; int :32;
  int :32; int :32; int :32;

};
# 74 "../sysdeps/unix/sysv/linux/bits/time.h" 2




extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __attribute__ ((__nothrow__ ));
# 90 "../sysdeps/unix/sysv/linux/bits/time.h"

# 34 "../time/time.h" 2



# 1 "../include/bits/types/clock_t.h" 1
# 38 "../time/time.h" 2
# 1 "../include/bits/types/time_t.h" 1
# 39 "../time/time.h" 2
# 1 "../include/bits/types/struct_tm.h" 1
# 1 "../time/bits/types/struct_tm.h" 1



# 1 "../include/bits/types.h" 1
# 5 "../time/bits/types/struct_tm.h" 2


struct tm
{
  int tm_sec;
  int tm_min;
  int tm_hour;
  int tm_mday;
  int tm_mon;
  int tm_year;
  int tm_wday;
  int tm_yday;
  int tm_isdst;


  long int tm_gmtoff;
  const char *tm_zone;




};
# 2 "../include/bits/types/struct_tm.h" 2
# 40 "../time/time.h" 2


# 1 "../include/bits/types/struct_timespec.h" 1
# 43 "../time/time.h" 2



# 1 "../include/bits/types/clockid_t.h" 1
# 47 "../time/time.h" 2
# 1 "../include/bits/types/timer_t.h" 1
# 48 "../time/time.h" 2
# 1 "../include/bits/types/struct_itimerspec.h" 1
# 1 "../time/bits/types/struct_itimerspec.h" 1



# 1 "../include/bits/types.h" 1
# 5 "../time/bits/types/struct_itimerspec.h" 2
# 1 "../include/bits/types/struct_timespec.h" 1
# 6 "../time/bits/types/struct_itimerspec.h" 2


struct itimerspec
  {
    struct timespec it_interval;
    struct timespec it_value;
  };
# 2 "../include/bits/types/struct_itimerspec.h" 2
# 49 "../time/time.h" 2
struct sigevent;
# 60 "../time/time.h"
# 1 "../include/bits/types/locale_t.h" 1
# 61 "../time/time.h" 2











extern clock_t clock (void) __attribute__ ((__nothrow__ ));



extern time_t time (time_t *__timer) __attribute__ ((__nothrow__ ));


extern double difftime (time_t __time1, time_t __time0)
     __attribute__ ((__nothrow__ )) __attribute__ ((__const__));


extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__ ));
# 100 "../time/time.h"
extern size_t strftime (char *__restrict __s, size_t __maxsize,
   const char *__restrict __format,
   const struct tm *__restrict __tp) __attribute__ ((__nothrow__ ));




extern char *strptime (const char *__restrict __s,
         const char *__restrict __fmt, struct tm *__tp)
     __attribute__ ((__nothrow__ ));






extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
     const char *__restrict __format,
     const struct tm *__restrict __tp,
     locale_t __loc) __attribute__ ((__nothrow__ ));



extern char *strptime_l (const char *__restrict __s,
    const char *__restrict __fmt, struct tm *__tp,
    locale_t __loc) __attribute__ ((__nothrow__ ));






extern struct tm *gmtime (const time_t *__timer) __attribute__ ((__nothrow__ ));



extern struct tm *localtime (const time_t *__timer) __attribute__ ((__nothrow__ ));
# 154 "../time/time.h"
extern struct tm *gmtime_r (const time_t *__restrict __timer,
       struct tm *__restrict __tp) __attribute__ ((__nothrow__ ));



extern struct tm *localtime_r (const time_t *__restrict __timer,
          struct tm *__restrict __tp) __attribute__ ((__nothrow__ ));
# 179 "../time/time.h"
extern char *asctime (const struct tm *__tp) __attribute__ ((__nothrow__ ));



extern char *ctime (const time_t *__timer) __attribute__ ((__nothrow__ ));
# 197 "../time/time.h"
extern char *asctime_r (const struct tm *__restrict __tp,
   char *__restrict __buf) __attribute__ ((__nothrow__ ));



extern char *ctime_r (const time_t *__restrict __timer,
        char *__restrict __buf) __attribute__ ((__nothrow__ ));
# 217 "../time/time.h"
extern char *__tzname[2];
extern int __daylight;
extern long int __timezone;




extern char *tzname[2];



extern void tzset (void) __attribute__ ((__nothrow__ ));



extern int daylight;
extern long int timezone;
# 249 "../time/time.h"
extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__ ));

extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__ ));
# 262 "../time/time.h"
extern int dysize (int __year) __attribute__ ((__nothrow__ )) __attribute__ ((__const__));
# 272 "../time/time.h"
extern int nanosleep (const struct timespec *__requested_time,
        struct timespec *__remaining);


extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__ ));


extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__ ));


extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp)
     __attribute__ ((__nothrow__ ));
# 311 "../time/time.h"
extern int clock_nanosleep (clockid_t __clock_id, int __flags,
       const struct timespec *__req,
       struct timespec *__rem);
# 326 "../time/time.h"
extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__ ));




extern int timer_create (clockid_t __clock_id,
    struct sigevent *__restrict __evp,
    timer_t *__restrict __timerid) __attribute__ ((__nothrow__ ));


extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__ ));



extern int timer_settime (timer_t __timerid, int __flags,
     const struct itimerspec *__restrict __value,
     struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__ ));


extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
     __attribute__ ((__nothrow__ ));
# 364 "../time/time.h"
extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__ ));






extern int timespec_get (struct timespec *__ts, int __base)
     __attribute__ ((__nothrow__ )) ;
# 387 "../time/time.h"
extern int timespec_getres (struct timespec *__ts, int __base)
     __attribute__ ((__nothrow__ ));
# 413 "../time/time.h"
extern int getdate_err;
# 422 "../time/time.h"
extern struct tm *getdate (const char *__string);
# 436 "../time/time.h"
extern int getdate_r (const char *__restrict __string,
        struct tm *__restrict __resbufp);



# 3 "../include/time.h" 2


# 1 "../include/bits/types/struct_timeval.h" 1
# 6 "../include/time.h" 2

# 1 "../include/struct___timeval64.h" 1
# 8 "../include/time.h" 2
# 1 "../include/bits/types/locale_t.h" 1
# 9 "../include/time.h" 2

# 1 "../time/mktime-internal.h" 1
# 33 "../time/mktime-internal.h"
typedef long int mktime_offset_t;
# 76 "../time/mktime-internal.h"
extern time_t __mktime_internal (struct tm *tp,
                                     struct tm *(*func) (time_t const *,
                                                         struct tm *),
                                     mktime_offset_t *offset) ;
# 11 "../include/time.h" 2
# 1 "../include/sys/time.h" 1
# 20 "../include/sys/time.h"
# 1 "../time/sys/time.h" 1
# 23 "../time/sys/time.h"
# 1 "../include/bits/types.h" 1
# 24 "../time/sys/time.h" 2
# 1 "../include/bits/types/time_t.h" 1
# 25 "../time/sys/time.h" 2
# 1 "../include/bits/types/struct_timeval.h" 1
# 26 "../time/sys/time.h" 2
# 34 "../time/sys/time.h"

# 52 "../time/sys/time.h"
struct timezone
  {
    int tz_minuteswest;
    int tz_dsttime;
  };
# 67 "../time/sys/time.h"
extern int gettimeofday (struct timeval *__restrict __tv,
    void *__restrict __tz) __attribute__ ((__nothrow__ )) ;
# 86 "../time/sys/time.h"
extern int settimeofday (const struct timeval *__tv,
    const struct timezone *__tz)
     __attribute__ ((__nothrow__ ));





extern int adjtime (const struct timeval *__delta,
      struct timeval *__olddelta) __attribute__ ((__nothrow__ ));
# 114 "../time/sys/time.h"
enum __itimer_which
  {

    ITIMER_REAL = 0,


    ITIMER_VIRTUAL = 1,



    ITIMER_PROF = 2

  };



struct itimerval
  {

    struct timeval it_interval;

    struct timeval it_value;
  };




typedef enum __itimer_which __itimer_which_t;







extern int getitimer (__itimer_which_t __which,
        struct itimerval *__value) __attribute__ ((__nothrow__ ));




extern int setitimer (__itimer_which_t __which,
        const struct itimerval *__restrict __new,
        struct itimerval *__restrict __old) __attribute__ ((__nothrow__ ));




extern int utimes (const char *__file, const struct timeval __tvp[2])
     __attribute__ ((__nothrow__ )) ;
# 189 "../time/sys/time.h"
extern int lutimes (const char *__file, const struct timeval __tvp[2])
     __attribute__ ((__nothrow__ )) ;


extern int futimes (int __fd, const struct timeval __tvp[2]) __attribute__ ((__nothrow__ ));
# 214 "../time/sys/time.h"
extern int futimesat (int __fd, const char *__file,
        const struct timeval __tvp[2]) __attribute__ ((__nothrow__ ));
# 258 "../time/sys/time.h"

# 21 "../include/sys/time.h" 2


extern int __gettimeofday (struct timeval *__tv,
      void *__tz);
extern int __settimezone (const struct timezone *__tz)
 ;
extern int __adjtime (const struct timeval *__delta,
        struct timeval *__olddelta);
# 38 "../include/sys/time.h"
extern int __getitimer (enum __itimer_which __which,
   struct itimerval *__value);
extern int __setitimer (enum __itimer_which __which,
   const struct itimerval *__restrict __new,
   struct itimerval *__restrict __old)
 ;
extern int __utimes (const char *__file, const struct timeval __tvp[2])
 ;
extern int __futimes (int fd, const struct timeval tvp[2]) ;
# 12 "../include/time.h" 2
# 1 "../sysdeps/unix/sysv/linux/time-clockid.h" 1
# 13 "../include/time.h" 2

# 1 "../include/stdint.h" 1
# 15 "../include/time.h" 2

extern __typeof (strftime_l) __strftime_l;
extern __typeof (__strftime_l) __strftime_l __attribute__ ((visibility ("hidden")));
extern __typeof (strptime_l) __strptime_l;

extern __typeof (asctime) asctime __attribute__ ((visibility ("hidden")));
extern __typeof (mktime) mktime __attribute__ ((visibility ("hidden")));
extern __typeof (timelocal) timelocal __attribute__ ((visibility ("hidden")));
extern __typeof (localtime) localtime __attribute__ ((visibility ("hidden")));
extern __typeof (strftime) strftime __attribute__ ((visibility ("hidden")));
extern __typeof (strptime) strptime __attribute__ ((visibility ("hidden")));

extern __typeof (clock_gettime) __clock_gettime;
extern __typeof (__clock_gettime) __clock_gettime __attribute__ ((visibility ("hidden")));
extern __typeof (clock_settime) __clock_settime;
extern __typeof (__clock_settime) __clock_settime __attribute__ ((visibility ("hidden")));

extern __typeof (clock_getres) __clock_getres;
extern __typeof (__clock_getres) __clock_getres __attribute__ ((visibility ("hidden")));

extern __typeof (clock_nanosleep) __clock_nanosleep;
extern __typeof (__clock_nanosleep) __clock_nanosleep __attribute__ ((visibility ("hidden")));;


extern __typeof (clock_adjtime) __clock_adjtime;
extern __typeof (__clock_adjtime) __clock_adjtime __attribute__ ((visibility ("hidden")));;



struct tm;


extern const unsigned short int __mon_yday[2][13] ;


extern struct tm _tmbuf ;


extern char *__tzstring (const char *string) ;

extern int __use_tzfile ;

extern void __tzfile_read (const char *file, size_t extra,
      char **extrap) ;
extern void __tzfile_compute (time_t timer, int use_localtime,
         long int *leap_correct, int *leap_hit,
         struct tm *tp) ;
extern void __tzfile_default (const char *std, const char *dst,
         int stdoff, int dstoff)
  ;
extern void __tzset_parse_tz (const char *tz) ;
extern void __tz_compute (time_t timer, struct tm *tm, int use_localtime)
  __attribute__ ((__nothrow__ )) ;
# 136 "../include/time.h"
extern struct tm *__localtime_r (const time_t *__timer,
     struct tm *__tp) ;
# 147 "../include/time.h"
extern struct tm *__gmtime_r (const time_t *__restrict __timer,
         struct tm *__restrict __tp);
extern __typeof (__gmtime_r) __gmtime_r __attribute__ ((visibility ("hidden")));
# 195 "../include/time.h"
extern int __utimensat64_helper (int fd, const char *file,
                                 const struct timespec tsp[2], int flags);
extern __typeof (__utimensat64_helper) __utimensat64_helper __attribute__ ((visibility ("hidden")));;
# 271 "../include/time.h"
extern int __offtime (time_t __timer,
        long int __offset,
        struct tm *__tp) ;

extern char *__asctime_r (const struct tm *__tp, char *__buf)
  ;
extern void __tzset (void) ;


extern struct tm *__tz_convert (time_t timer, int use_localtime,
    struct tm *tp) ;

extern int __nanosleep (const struct timespec *__requested_time,
   struct timespec *__remaining);
extern __typeof (__nanosleep) __nanosleep __attribute__ ((visibility ("hidden")));
# 295 "../include/time.h"
extern int __getdate_r (const char *__string, struct tm *__resbufp);
extern __typeof (__getdate_r) __getdate_r __attribute__ ((visibility ("hidden")));;



extern int __getclktck (void) ;



extern char * __strptime_internal (const char *rp, const char *fmt,
       struct tm *tm, void *statep,
       locale_t locparam) ;
# 315 "../include/time.h"
extern double __difftime (time_t time1, time_t time0);
# 348 "../include/time.h"
static inline 
# 348 "../include/time.h" 3 4
             _Bool

# 349 "../include/time.h"
in_time_t_range (time_t t)
{
  int32_t s = t;
  return s == t;
}


static inline struct timespec
valid_timeval_to_timespec64 (const struct timeval tv)
{
  struct timespec ts64;

  ts64.tv_sec = tv.tv_sec;
  ts64.tv_nsec = tv.tv_usec * 1000;

  return ts64;
}


static inline struct timeval
valid_timeval_to_timeval64 (const struct timeval tv)
{
  struct timeval tv64;

  tv64.tv_sec = tv.tv_sec;
  tv64.tv_usec = tv.tv_usec;

  return tv64;
}



static inline struct timeval
valid_timeval64_to_timeval (const struct timeval tv64)
{
  struct timeval tv;

  tv.tv_sec = (time_t) tv64.tv_sec;
  tv.tv_usec = (suseconds_t) tv64.tv_usec;

  return tv;
}


static inline struct timespec
timeval64_to_timespec64 (const struct timeval tv64)
{
  struct timespec ts64;

  ts64.tv_sec = tv64.tv_sec;
  ts64.tv_nsec = tv64.tv_usec * 1000;

  return ts64;
}


static inline struct timespec
valid_timespec_to_timespec64 (const struct timespec ts)
{
  struct timespec ts64;

  ts64.tv_sec = ts.tv_sec;
  ts64.tv_nsec = ts.tv_nsec;

  return ts64;
}



static inline struct timespec
valid_timespec64_to_timespec (const struct timespec ts64)
{
  struct timespec ts;

  ts.tv_sec = (time_t) ts64.tv_sec;
  ts.tv_nsec = ts64.tv_nsec;

  return ts;
}



static inline struct timeval
valid_timespec64_to_timeval (const struct timespec ts64)
{
  struct timeval tv;

  tv.tv_sec = (time_t) ts64.tv_sec;
  tv.tv_usec = ts64.tv_nsec / 1000;

  return tv;
}


static inline struct timeval
timespec64_to_timeval64 (const struct timespec ts64)
{
  struct timeval tv64;

  tv64.tv_sec = ts64.tv_sec;
  tv64.tv_usec = ts64.tv_nsec / 1000;

  return tv64;
}



struct __timeval32
{
  int32_t tv_sec;
  int32_t tv_usec;
};


static inline struct timeval
valid_timeval32_to_timeval64 (const struct __timeval32 tv)
{
  return (struct timeval) { tv.tv_sec, tv.tv_usec };
}

static inline struct __timeval32
valid_timeval64_to_timeval32 (const struct timeval tv64)
{
  return (struct __timeval32) { tv64.tv_sec, tv64.tv_usec };
}

static inline struct timeval
valid_timeval32_to_timeval (const struct __timeval32 tv)
{
  return (struct timeval) { tv.tv_sec, tv.tv_usec };
}

static inline struct __timeval32
valid_timeval_to_timeval32 (const struct timeval tv)
{
  return (struct __timeval32) { tv.tv_sec, tv.tv_usec };
}

static inline struct timespec
valid_timeval32_to_timespec (const struct __timeval32 tv)
{
  return (struct timespec) { tv.tv_sec, tv.tv_usec * 1000 };
}

static inline struct __timeval32
valid_timespec_to_timeval32 (const struct timespec ts)
{
  return (struct __timeval32) { (time_t) ts.tv_sec, ts.tv_nsec / 1000 };
}

static inline struct timeval
valid_timespec_to_timeval64 (const struct timespec ts)
{
  return (struct timeval) { (time_t) ts.tv_sec, ts.tv_nsec / 1000 };
}



static inline 
# 507 "../include/time.h" 3 4
             _Bool

# 508 "../include/time.h"
valid_nanoseconds (__syscall_slong_t ns)
{
  return __builtin_expect ((0 <= ns && ns < 1000000000), 1);
}


static inline time_t
time_now (void)
{
  struct timespec ts;
  __clock_gettime (5, &ts);
  return ts.tv_sec;
}

static inline time_t
time64_now (void)
{
  struct timespec ts;
  __clock_gettime (5, &ts);
  return ts.tv_sec;
}
# 24 "../sysdeps/nptl/pthread.h" 2

# 1 "../include/bits/endian.h" 1
# 26 "../sysdeps/nptl/pthread.h" 2


# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
# 29 "../sysdeps/nptl/pthread.h" 2
# 1 "../include/bits/types/struct_timespec.h" 1
# 30 "../sysdeps/nptl/pthread.h" 2

# 1 "../include/bits/types/struct___jmp_buf_tag.h" 1
# 32 "../sysdeps/nptl/pthread.h" 2

# 1 "../sysdeps/unix/sysv/linux/include/bits/pthread_stack_min-dynamic.h" 1





# 1 "../sysdeps/unix/sysv/linux/bits/pthread_stack_min.h" 1
# 7 "../sysdeps/unix/sysv/linux/include/bits/pthread_stack_min-dynamic.h" 2
# 34 "../sysdeps/nptl/pthread.h" 2



enum
{
  PTHREAD_CREATE_JOINABLE,

  PTHREAD_CREATE_DETACHED

};



enum
{
  PTHREAD_MUTEX_TIMED_NP,
  PTHREAD_MUTEX_RECURSIVE_NP,
  PTHREAD_MUTEX_ERRORCHECK_NP,
  PTHREAD_MUTEX_ADAPTIVE_NP

  ,
  PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP,
  PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
  PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
  PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL



  , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP

};




enum
{
  PTHREAD_MUTEX_STALLED,
  PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED,
  PTHREAD_MUTEX_ROBUST,
  PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST
};





enum
{
  PTHREAD_PRIO_NONE,
  PTHREAD_PRIO_INHERIT,
  PTHREAD_PRIO_PROTECT
};
# 104 "../sysdeps/nptl/pthread.h"
enum
{
  PTHREAD_RWLOCK_PREFER_READER_NP,
  PTHREAD_RWLOCK_PREFER_WRITER_NP,
  PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
  PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP
};
# 124 "../sysdeps/nptl/pthread.h"
enum
{
  PTHREAD_INHERIT_SCHED,

  PTHREAD_EXPLICIT_SCHED

};



enum
{
  PTHREAD_SCOPE_SYSTEM,

  PTHREAD_SCOPE_PROCESS

};



enum
{
  PTHREAD_PROCESS_PRIVATE,

  PTHREAD_PROCESS_SHARED

};
# 159 "../sysdeps/nptl/pthread.h"
struct _pthread_cleanup_buffer
{
  void (*__routine) (void *);
  void *__arg;
  int __canceltype;
  struct _pthread_cleanup_buffer *__prev;
};


enum
{
  PTHREAD_CANCEL_ENABLE,

  PTHREAD_CANCEL_DISABLE

};
enum
{
  PTHREAD_CANCEL_DEFERRED,

  PTHREAD_CANCEL_ASYNCHRONOUS

};
# 197 "../sysdeps/nptl/pthread.h"





extern int pthread_create (pthread_t *__restrict __newthread,
      const pthread_attr_t *__restrict __attr,
      void *(*__start_routine) (void *),
      void *__restrict __arg) __attribute__ ((__nothrow__)) ;





extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__));







extern int pthread_join (pthread_t __th, void **__thread_return);




extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) __attribute__ ((__nothrow__ ));
# 233 "../sysdeps/nptl/pthread.h"
extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
     const struct timespec *__abstime);
# 243 "../sysdeps/nptl/pthread.h"
extern int pthread_clockjoin_np (pthread_t __th, void **__thread_return,
                                 clockid_t __clockid,
     const struct timespec *__abstime);
# 269 "../sysdeps/nptl/pthread.h"
extern int pthread_detach (pthread_t __th) __attribute__ ((__nothrow__ ));



extern pthread_t pthread_self (void) __attribute__ ((__nothrow__ )) __attribute__ ((__const__));


extern int pthread_equal (pthread_t __thread1, pthread_t __thread2)
  __attribute__ ((__nothrow__ )) __attribute__ ((__const__));







extern int pthread_attr_init (pthread_attr_t *__attr) __attribute__ ((__nothrow__ )) ;


extern int pthread_attr_destroy (pthread_attr_t *__attr)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr,
     int *__detachstate)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
     int __detachstate)
     __attribute__ ((__nothrow__ )) ;



extern int pthread_attr_getguardsize (const pthread_attr_t *__attr,
          size_t *__guardsize)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
          size_t __guardsize)
     __attribute__ ((__nothrow__ )) ;



extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr,
           struct sched_param *__restrict __param)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
           const struct sched_param *__restrict
           __param) __attribute__ ((__nothrow__ )) ;


extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict
     __attr, int *__restrict __policy)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict
      __attr, int *__restrict __inherit)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
      int __inherit)
     __attribute__ ((__nothrow__ )) ;



extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr,
      int *__restrict __scope)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict
          __attr, void **__restrict __stackaddr)
     __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__));





extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
          void *__stackaddr)
     __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__));


extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict
          __attr, size_t *__restrict __stacksize)
     __attribute__ ((__nothrow__ )) ;




extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
          size_t __stacksize)
     __attribute__ ((__nothrow__ )) ;



extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr,
      void **__restrict __stackaddr,
      size_t *__restrict __stacksize)
     __attribute__ ((__nothrow__ )) ;




extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
      size_t __stacksize) __attribute__ ((__nothrow__ )) ;





extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr,
     size_t __cpusetsize,
     const cpu_set_t *__cpuset)
     __attribute__ ((__nothrow__ )) ;



extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr,
     size_t __cpusetsize,
     cpu_set_t *__cpuset)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_getattr_default_np (pthread_attr_t *__attr)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_attr_setsigmask_np (pthread_attr_t *__attr,
           const __sigset_t *sigmask);




extern int pthread_attr_getsigmask_np (const pthread_attr_t *__attr,
           __sigset_t *sigmask);







extern int pthread_setattr_default_np (const pthread_attr_t *__attr)
     __attribute__ ((__nothrow__ )) ;




extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr)
     __attribute__ ((__nothrow__ )) ;







extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
      const struct sched_param *__param)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_getschedparam (pthread_t __target_thread,
      int *__restrict __policy,
      struct sched_param *__restrict __param)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_setschedprio (pthread_t __target_thread, int __prio)
     __attribute__ ((__nothrow__ ));




extern int pthread_getname_np (pthread_t __target_thread, char *__buf,
          size_t __buflen)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_setname_np (pthread_t __target_thread, const char *__name)
     __attribute__ ((__nothrow__ )) ;





extern int pthread_getconcurrency (void) __attribute__ ((__nothrow__ ));


extern int pthread_setconcurrency (int __level) __attribute__ ((__nothrow__ ));



extern int pthread_yield (void) __attribute__ ((__nothrow__ ));

extern int pthread_yield (void) __asm__ ("" "sched_yield") __attribute__ ((__nothrow__ ))
  __attribute__ ((__deprecated__ ("pthread_yield is deprecated, use sched_yield instead")))
                                                      ;







extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize,
       const cpu_set_t *__cpuset)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize,
       cpu_set_t *__cpuset)
     __attribute__ ((__nothrow__ )) ;
# 509 "../sysdeps/nptl/pthread.h"
extern int pthread_once (pthread_once_t *__once_control,
    void (*__init_routine) (void)) ;
# 521 "../sysdeps/nptl/pthread.h"
extern int pthread_setcancelstate (int __state, int *__oldstate);



extern int pthread_setcanceltype (int __type, int *__oldtype);


extern int pthread_cancel (pthread_t __th);




extern void pthread_testcancel (void);




struct __cancel_jmp_buf_tag
{
  __jmp_buf __cancel_jmp_buf;
  int __mask_was_saved;
};

typedef struct
{
  struct __cancel_jmp_buf_tag __cancel_jmp_buf[1];
  void *__pad[4];
} __pthread_unwind_buf_t __attribute__ ((__aligned__));
# 557 "../sysdeps/nptl/pthread.h"
struct __pthread_cleanup_frame
{
  void (*__cancel_routine) (void *);
  void *__cancel_arg;
  int __do_it;
  int __cancel_type;
};
# 697 "../sysdeps/nptl/pthread.h"
extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf)
     ;
# 709 "../sysdeps/nptl/pthread.h"
extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf)
  ;
# 732 "../sysdeps/nptl/pthread.h"
extern void __pthread_register_cancel_defer (__pthread_unwind_buf_t *__buf)
     ;
# 745 "../sysdeps/nptl/pthread.h"
extern void __pthread_unregister_cancel_restore (__pthread_unwind_buf_t *__buf)
  ;



extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf)
     __attribute__ ((__noreturn__))

     __attribute__ ((__weak__))

     ;
# 766 "../sysdeps/nptl/pthread.h"
extern int __sigsetjmp_cancel (struct __cancel_jmp_buf_tag __env[1], int __savemask) __asm__ ("" "__sigsetjmp") __attribute__ ((__nothrow__))


                     __attribute__ ((__returns_twice__));
# 781 "../sysdeps/nptl/pthread.h"
extern int pthread_mutex_init (pthread_mutex_t *__mutex,
          const pthread_mutexattr_t *__mutexattr)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_mutex_destroy (pthread_mutex_t *__mutex)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_mutex_trylock (pthread_mutex_t *__mutex)
     __attribute__ ((__nothrow__)) ;


extern int pthread_mutex_lock (pthread_mutex_t *__mutex)
     __attribute__ ((__nothrow__)) ;




extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
        const struct timespec *__restrict
        __abstime) __attribute__ ((__nothrow__)) ;
# 817 "../sysdeps/nptl/pthread.h"
extern int pthread_mutex_clocklock (pthread_mutex_t *__restrict __mutex,
        clockid_t __clockid,
        const struct timespec *__restrict
        __abstime) __attribute__ ((__nothrow__)) ;
# 835 "../sysdeps/nptl/pthread.h"
extern int pthread_mutex_unlock (pthread_mutex_t *__mutex)
     __attribute__ ((__nothrow__)) ;



extern int pthread_mutex_getprioceiling (const pthread_mutex_t *
      __restrict __mutex,
      int *__restrict __prioceiling)
     __attribute__ ((__nothrow__ )) ;



extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex,
      int __prioceiling,
      int *__restrict __old_ceiling)
     __attribute__ ((__nothrow__ )) ;




extern int pthread_mutex_consistent (pthread_mutex_t *__mutex)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_mutex_consistent_np (pthread_mutex_t *) __asm__ ("" "pthread_mutex_consistent") __attribute__ ((__nothrow__ ))

  __attribute__ ((__deprecated__ ("pthread_mutex_consistent_np is deprecated, use pthread_mutex_consistent")))
                                                                         ;
# 874 "../sysdeps/nptl/pthread.h"
extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t *
      __restrict __attr,
      int *__restrict __pshared)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
      int __pshared)
     __attribute__ ((__nothrow__ )) ;



extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict
          __attr, int *__restrict __kind)
     __attribute__ ((__nothrow__ )) ;




extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
     __attribute__ ((__nothrow__ )) ;



extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t *
       __restrict __attr,
       int *__restrict __protocol)
     __attribute__ ((__nothrow__ )) ;



extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr,
       int __protocol)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t *
          __restrict __attr,
          int *__restrict __prioceiling)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr,
          int __prioceiling)
     __attribute__ ((__nothrow__ )) ;



extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr,
     int *__robustness)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_mutexattr_getrobust_np (pthread_mutexattr_t *, int *) __asm__ ("" "pthread_mutexattr_getrobust") __attribute__ ((__nothrow__ ))


  __attribute__ ((__deprecated__ ("pthread_mutexattr_getrobust_np is deprecated, use pthread_mutexattr_getrobust")))
                                                                               ;






extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr,
     int __robustness)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *, int) __asm__ ("" "pthread_mutexattr_setrobust") __attribute__ ((__nothrow__ ))


  __attribute__ ((__deprecated__ ("pthread_mutexattr_setrobust_np is deprecated, use pthread_mutexattr_setrobust")))
                                                                               ;
# 967 "../sysdeps/nptl/pthread.h"
extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
    const pthread_rwlockattr_t *__restrict
    __attr) __attribute__ ((__nothrow__ )) ;


extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock)
     __attribute__ ((__nothrow__)) ;


extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock)
  __attribute__ ((__nothrow__)) ;




extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
           const struct timespec *__restrict
           __abstime) __attribute__ ((__nothrow__)) ;
# 1004 "../sysdeps/nptl/pthread.h"
extern int pthread_rwlock_clockrdlock (pthread_rwlock_t *__restrict __rwlock,
           clockid_t __clockid,
           const struct timespec *__restrict
           __abstime) __attribute__ ((__nothrow__)) ;
# 1023 "../sysdeps/nptl/pthread.h"
extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock)
     __attribute__ ((__nothrow__)) ;


extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock)
     __attribute__ ((__nothrow__)) ;




extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
           const struct timespec *__restrict
           __abstime) __attribute__ ((__nothrow__)) ;
# 1051 "../sysdeps/nptl/pthread.h"
extern int pthread_rwlock_clockwrlock (pthread_rwlock_t *__restrict __rwlock,
           clockid_t __clockid,
           const struct timespec *__restrict
           __abstime) __attribute__ ((__nothrow__)) ;
# 1071 "../sysdeps/nptl/pthread.h"
extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock)
     __attribute__ ((__nothrow__)) ;





extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *
       __restrict __attr,
       int *__restrict __pshared)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
       int __pshared)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t *
       __restrict __attr,
       int *__restrict __pref)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
       int __pref) __attribute__ ((__nothrow__ )) ;







extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
         const pthread_condattr_t *__restrict __cond_attr)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_cond_destroy (pthread_cond_t *__cond)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_cond_signal (pthread_cond_t *__cond)
     __attribute__ ((__nothrow__)) ;


extern int pthread_cond_broadcast (pthread_cond_t *__cond)
     __attribute__ ((__nothrow__)) ;






extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
         pthread_mutex_t *__restrict __mutex)
     ;
# 1145 "../sysdeps/nptl/pthread.h"
extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
       pthread_mutex_t *__restrict __mutex,
       const struct timespec *__restrict __abstime)
     ;
# 1171 "../sysdeps/nptl/pthread.h"
extern int pthread_cond_clockwait (pthread_cond_t *__restrict __cond,
       pthread_mutex_t *__restrict __mutex,
       __clockid_t __clock_id,
       const struct timespec *__restrict __abstime)
     ;
# 1194 "../sysdeps/nptl/pthread.h"
extern int pthread_condattr_init (pthread_condattr_t *__attr)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_condattr_destroy (pthread_condattr_t *__attr)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_condattr_getpshared (const pthread_condattr_t *
     __restrict __attr,
     int *__restrict __pshared)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
     int __pshared) __attribute__ ((__nothrow__ )) ;



extern int pthread_condattr_getclock (const pthread_condattr_t *
          __restrict __attr,
          __clockid_t *__restrict __clock_id)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_condattr_setclock (pthread_condattr_t *__attr,
          __clockid_t __clock_id)
     __attribute__ ((__nothrow__ )) ;
# 1230 "../sysdeps/nptl/pthread.h"
extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_spin_destroy (pthread_spinlock_t *__lock)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_spin_lock (pthread_spinlock_t *__lock)
     __attribute__ ((__nothrow__)) ;


extern int pthread_spin_trylock (pthread_spinlock_t *__lock)
     __attribute__ ((__nothrow__)) ;


extern int pthread_spin_unlock (pthread_spinlock_t *__lock)
     __attribute__ ((__nothrow__)) ;






extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
     const pthread_barrierattr_t *__restrict
     __attr, unsigned int __count)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_barrier_destroy (pthread_barrier_t *__barrier)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_barrier_wait (pthread_barrier_t *__barrier)
     __attribute__ ((__nothrow__)) ;



extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t *
        __restrict __attr,
        int *__restrict __pshared)
     __attribute__ ((__nothrow__ )) ;


extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,
        int __pshared)
     __attribute__ ((__nothrow__ )) ;
# 1297 "../sysdeps/nptl/pthread.h"
extern int pthread_key_create (pthread_key_t *__key,
          void (*__destr_function) (void *))
     __attribute__ ((__nothrow__ )) ;


extern int pthread_key_delete (pthread_key_t __key) __attribute__ ((__nothrow__ ));


extern void *pthread_getspecific (pthread_key_t __key) __attribute__ ((__nothrow__ ));


extern int pthread_setspecific (pthread_key_t __key,
    const void *__pointer)
  __attribute__ ((__nothrow__ )) __attribute__ ((__access__ (__none__, 2)));




extern int pthread_getcpuclockid (pthread_t __thread_id,
      __clockid_t *__clock_id)
     __attribute__ ((__nothrow__ )) ;
# 1332 "../sysdeps/nptl/pthread.h"
extern int pthread_atfork (void (*__prepare) (void),
      void (*__parent) (void),
      void (*__child) (void)) __attribute__ ((__nothrow__ ));




extern __inline int
__attribute__ ((__nothrow__ )) pthread_equal (pthread_t __thread1, pthread_t __thread2)
{
  return __thread1 == __thread2;
}



# 2 "../include/pthread.h" 2





extern int __pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
     const pthread_barrierattr_t *__restrict
     __attr, unsigned int __count)
     __attribute__ ((__nothrow__ )) ;

extern __typeof (__pthread_barrier_init) __pthread_barrier_init __attribute__ ((visibility ("hidden")));

extern int __pthread_barrier_wait (pthread_barrier_t *__barrier)
     __attribute__ ((__nothrow__)) ;

extern __typeof (__pthread_barrier_wait) __pthread_barrier_wait __attribute__ ((visibility ("hidden")));



extern void __pthread_initialize (void) __attribute__ ((weak));

extern int __pthread_kill (pthread_t threadid, int signo);

extern pthread_t __pthread_self (void);
# 22 "../sysdeps/unix/sysv/linux/s390/elision-conf.h" 2







struct elision_config
{
  int skip_lock_busy;
  int skip_lock_internal_abort;
  int skip_lock_out_of_tbegin_retries;
  int try_tbegin;
  int skip_trylock_internal_abort;
};

extern struct elision_config __elision_aconf ;
# 24 "../sysdeps/nptl/lowlevellock.h" 2
# 1 "../sysdeps/nptl/lowlevellock-futex.h" 1
# 24 "../sysdeps/nptl/lowlevellock-futex.h"
# 1 "../sysdeps/unix/sysv/linux/sysdep-cancel.h" 1
# 24 "../sysdeps/unix/sysv/linux/sysdep-cancel.h"
# 1 "../sysdeps/s390/nptl/tls.h" 1
# 25 "../sysdeps/unix/sysv/linux/sysdep-cancel.h" 2



extern int __pthread_enable_asynccancel (void);
extern __typeof (__pthread_enable_asynccancel) __pthread_enable_asynccancel __attribute__ ((visibility ("hidden")));



extern void __pthread_disable_asynccancel (int oldtype);
extern __typeof (__pthread_disable_asynccancel) __pthread_disable_asynccancel __attribute__ ((visibility ("hidden")));
# 25 "../sysdeps/nptl/lowlevellock-futex.h" 2
# 1 "../sysdeps/unix/sysv/linux/s390/kernel-features.h" 1
# 26 "../sysdeps/nptl/lowlevellock-futex.h" 2
# 25 "../sysdeps/nptl/lowlevellock.h" 2
# 79 "../sysdeps/nptl/lowlevellock.h"
extern void __lll_lock_wait_private (int *futex);
extern __typeof (__lll_lock_wait_private) __lll_lock_wait_private __attribute__ ((visibility ("hidden")));
extern void __lll_lock_wait (int *futex, int private);
extern __typeof (__lll_lock_wait) __lll_lock_wait __attribute__ ((visibility ("hidden")));
# 128 "../sysdeps/nptl/lowlevellock.h"
extern void __lll_lock_wake_private (int *futex);
extern __typeof (__lll_lock_wake_private) __lll_lock_wake_private __attribute__ ((visibility ("hidden")));
extern void __lll_lock_wake (int *futex, int private);
extern __typeof (__lll_lock_wake) __lll_lock_wake __attribute__ ((visibility ("hidden")));
# 181 "../sysdeps/nptl/lowlevellock.h"
extern int __pthread_force_elision;
extern __typeof (__pthread_force_elision) __pthread_force_elision __attribute__ ((visibility ("hidden")));

extern void __lll_elision_init (void) ;
extern int __lll_clocklock_elision (int *futex, short *adapt_count,
                                    clockid_t clockid,
        const struct timespec *timeout,
        int private);
extern __typeof (__lll_clocklock_elision) __lll_clocklock_elision __attribute__ ((visibility ("hidden")));

extern int __lll_lock_elision (int *futex, short *adapt_count, int private);
extern __typeof (__lll_lock_elision) __lll_lock_elision __attribute__ ((visibility ("hidden")));


extern int __lll_unlock_elision (int *lock, short *adapt_count, int private);



extern __typeof (__lll_unlock_elision) __lll_unlock_elision __attribute__ ((visibility ("hidden")));

extern int __lll_trylock_elision (int *lock, short *adapt_count);
extern __typeof (__lll_trylock_elision) __lll_trylock_elision __attribute__ ((visibility ("hidden")));
# 29 "../nptl/descr.h" 2
# 1 "../sysdeps/s390/nptl/pthreaddef.h" 1
# 30 "../nptl/descr.h" 2
# 1 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 1
# 19 "../sysdeps/unix/sysv/linux/dl-sysdep.h"
# 1 "../sysdeps/generic/dl-sysdep.h" 1
# 20 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 2
# 31 "../sysdeps/unix/sysv/linux/dl-sysdep.h"
extern int _dl_discover_osversion (void) ;
# 31 "../nptl/descr.h" 2
# 1 "../sysdeps/nptl/thread_db.h" 1
# 25 "../sysdeps/nptl/thread_db.h"
# 1 "../include/pthread.h" 1






extern int __pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
     const pthread_barrierattr_t *__restrict
     __attr, unsigned int __count)
     __attribute__ ((__nothrow__ )) ;

extern __typeof (__pthread_barrier_init) __pthread_barrier_init __attribute__ ((visibility ("hidden")));

extern int __pthread_barrier_wait (pthread_barrier_t *__barrier)
     __attribute__ ((__nothrow__)) ;

extern __typeof (__pthread_barrier_wait) __pthread_barrier_wait __attribute__ ((visibility ("hidden")));



extern void __pthread_initialize (void) __attribute__ ((weak));

extern int __pthread_kill (pthread_t threadid, int signo);

extern pthread_t __pthread_self (void);
# 26 "../sysdeps/nptl/thread_db.h" 2
# 1 "../include/stdint.h" 1
# 27 "../sysdeps/nptl/thread_db.h" 2
# 1 "../include/sys/types.h" 1
# 28 "../sysdeps/nptl/thread_db.h" 2
# 1 "../sysdeps/unix/sysv/linux/sys/procfs.h" 1
# 34 "../sysdeps/unix/sysv/linux/sys/procfs.h"
# 1 "../include/sys/types.h" 1
# 35 "../sysdeps/unix/sysv/linux/sys/procfs.h" 2
# 1 "../sysdeps/unix/sysv/linux/s390/sys/user.h" 1
# 25 "../sysdeps/unix/sysv/linux/s390/sys/user.h"
struct _user_psw_struct
{
  unsigned long mask;
  unsigned long addr;
};

struct _user_fpregs_struct
{
  unsigned int fpc;
  double fprs[16];
};

struct _user_per_struct
{
  unsigned long control_regs[3];
  unsigned single_step : 1;
  unsigned instruction_fetch : 1;
  unsigned : 30;
  unsigned long starting_addr;
  unsigned long ending_addr;
  unsigned short perc_atmid;
  unsigned long address;
  unsigned char access_id;
};

struct _user_regs_struct
{
  struct _user_psw_struct psw;
  unsigned long gprs[16];
  unsigned int acrs[16];
  unsigned long orig_gpr2;
  struct _user_fpregs_struct fp_regs;
  struct _user_per_struct per_info;
  unsigned long ieee_instruction_pointer;
};

struct user {
  struct _user_regs_struct regs;
  unsigned long int u_tsize;
  unsigned long int u_dsize;
  unsigned long int u_ssize;
  unsigned long start_code;
  unsigned long start_stack;
  long int signal;
  struct _user_regs_struct *u_ar0;
  unsigned long magic;
  char u_comm[32];
};
# 36 "../sysdeps/unix/sysv/linux/sys/procfs.h" 2




# 1 "../sysdeps/unix/sysv/linux/s390/bits/procfs.h" 1
# 25 "../sysdeps/unix/sysv/linux/s390/bits/procfs.h"
typedef greg_t elf_greg_t;

typedef gregset_t elf_gregset_t;
typedef fpreg_t elf_fpreg_t;
typedef fpregset_t elf_fpregset_t;
# 41 "../sysdeps/unix/sysv/linux/sys/procfs.h" 2



# 1 "../sysdeps/unix/sysv/linux/s390/bits/procfs-id.h" 1
# 25 "../sysdeps/unix/sysv/linux/s390/bits/procfs-id.h"
typedef unsigned int __pr_uid_t;
typedef unsigned int __pr_gid_t;
# 45 "../sysdeps/unix/sysv/linux/sys/procfs.h" 2




struct elf_siginfo
  {
    int si_signo;
    int si_code;
    int si_errno;
  };
# 63 "../sysdeps/unix/sysv/linux/sys/procfs.h"
struct elf_prstatus
  {
    struct elf_siginfo pr_info;
    short int pr_cursig;
    unsigned long int pr_sigpend;
    unsigned long int pr_sighold;
    __pid_t pr_pid;
    __pid_t pr_ppid;
    __pid_t pr_pgrp;
    __pid_t pr_sid;
    struct timeval pr_utime;
    struct timeval pr_stime;
    struct timeval pr_cutime;
    struct timeval pr_cstime;
    elf_gregset_t pr_reg;
    int pr_fpvalid;
  };




struct elf_prpsinfo
  {
    char pr_state;
    char pr_sname;
    char pr_zomb;
    char pr_nice;
    unsigned long int pr_flag;
    __pr_uid_t pr_uid;
    __pr_gid_t pr_gid;
    int pr_pid, pr_ppid, pr_pgrp, pr_sid;

    char pr_fname[16];
    char pr_psargs[(80)];
  };






typedef void *psaddr_t;

# 1 "../sysdeps/unix/sysv/linux/bits/procfs-prregset.h" 1
# 24 "../sysdeps/unix/sysv/linux/bits/procfs-prregset.h"
typedef elf_gregset_t __prgregset_t;
typedef elf_fpregset_t __prfpregset_t;
# 107 "../sysdeps/unix/sysv/linux/sys/procfs.h" 2


typedef __prgregset_t prgregset_t;
typedef __prfpregset_t prfpregset_t;



typedef __pid_t lwpid_t;


typedef struct elf_prstatus prstatus_t;
typedef struct elf_prpsinfo prpsinfo_t;





# 1 "../sysdeps/unix/sysv/linux/s390/bits/procfs-extra.h" 1
# 28 "../sysdeps/unix/sysv/linux/s390/bits/procfs-extra.h"
typedef unsigned int elf_greg_t32;
typedef elf_greg_t32
  elf_gregset_t32[36] __attribute__ ((__aligned__ (8)));
typedef elf_fpregset_t elf_fpregset_t32;

struct elf_prstatus32
  {
    struct elf_siginfo pr_info;
    short int pr_cursig;
    unsigned int pr_sigpend;
    unsigned int pr_sighold;
    __pid_t pr_pid;
    __pid_t pr_ppid;
    __pid_t pr_pgrp;
    __pid_t pr_sid;
    struct
      {
 int tv_sec, tv_usec;
      } pr_utime,
        pr_stime,
        pr_cutime,
        pr_cstime;
    elf_gregset_t32 pr_reg;
    int pr_fpvalid;
  };

struct elf_prpsinfo32
  {
    char pr_state;
    char pr_sname;
    char pr_zomb;
    char pr_nice;
    unsigned int pr_flag;
    unsigned short int pr_uid;
    unsigned short int pr_gid;
    int pr_pid, pr_ppid, pr_pgrp, pr_sid;

    char pr_fname[16];
    char pr_psargs[(80)];
  };

typedef elf_gregset_t32 prgregset32_t;
typedef elf_fpregset_t32 prfpregset32_t;

typedef struct elf_prstatus32 prstatus32_t;
typedef struct elf_prpsinfo32 prpsinfo32_t;
# 125 "../sysdeps/unix/sysv/linux/sys/procfs.h" 2
# 29 "../sysdeps/nptl/thread_db.h" 2



typedef enum
{
  TD_OK,
  TD_ERR,
  TD_NOTHR,
  TD_NOSV,
  TD_NOLWP,
  TD_BADPH,
  TD_BADTH,
  TD_BADSH,
  TD_BADTA,
  TD_BADKEY,
  TD_NOMSG,
  TD_NOFPREGS,
  TD_NOLIBTHREAD,
  TD_NOEVENT,
  TD_NOCAPAB,
  TD_DBERR,
  TD_NOAPLIC,
  TD_NOTSD,
  TD_MALLOC,
  TD_PARTIALREG,
  TD_NOXREGS,
  TD_TLSDEFER,
  TD_NOTALLOC = TD_TLSDEFER,
  TD_VERSION,
  TD_NOTLS
} td_err_e;




typedef enum
{
  TD_THR_ANY_STATE,
  TD_THR_UNKNOWN,
  TD_THR_STOPPED,
  TD_THR_RUN,
  TD_THR_ACTIVE,
  TD_THR_ZOMBIE,
  TD_THR_SLEEP,
  TD_THR_STOPPED_ASLEEP
} td_thr_state_e;



typedef enum
{
  TD_THR_ANY_TYPE,
  TD_THR_USER,
  TD_THR_SYSTEM
} td_thr_type_e;





typedef struct td_thragent td_thragent_t;


typedef struct td_thrhandle
{
  td_thragent_t *th_ta_p;
  psaddr_t th_unique;
} td_thrhandle_t;



struct link_map;
# 115 "../sysdeps/nptl/thread_db.h"
typedef struct td_thr_events
{
  uint32_t event_bits[2];
} td_thr_events_t;
# 154 "../sysdeps/nptl/thread_db.h"
typedef enum
{
  TD_ALL_EVENTS,
  TD_EVENT_NONE = TD_ALL_EVENTS,
  TD_READY,
  TD_SLEEP,
  TD_SWITCHTO,
  TD_SWITCHFROM,
  TD_LOCK_TRY,
  TD_CATCHSIG,
  TD_IDLE,
  TD_CREATE,
  TD_DEATH,
  TD_PREEMPT,
  TD_PRI_INHERIT,
  TD_REAP,
  TD_CONCURRENCY,
  TD_TIMEOUT,
  TD_MIN_EVENT_NUM = TD_READY,
  TD_MAX_EVENT_NUM = TD_TIMEOUT,
  TD_EVENTS_ENABLE = 31
} td_event_e;


typedef enum
{
  NOTIFY_BPT,
  NOTIFY_AUTOBPT,

  NOTIFY_SYSCALL
} td_notify_e;


typedef struct td_notify
{
  td_notify_e type;
  union
  {
    psaddr_t bptaddr;
    int syscallno;
  } u;
} td_notify_t;


typedef struct td_event_msg
{
  td_event_e event;
  const td_thrhandle_t *th_p;
  union
  {



    uintptr_t data;
  } msg;
} td_event_msg_t;


typedef struct
{
  td_thr_events_t eventmask;
  td_event_e eventnum;
  void *eventdata;
} td_eventbuf_t;



typedef struct td_ta_stats
{
  int nthreads;
  int r_concurrency;
  int nrunnable_num;
  int nrunnable_den;
  int a_concurrency_num;
  int a_concurrency_den;
  int nlwps_num;

  int nlwps_den;

  int nidle_num;

  int nidle_den;

} td_ta_stats_t;




typedef pthread_t thread_t;
typedef pthread_key_t thread_key_t;



typedef int td_thr_iter_f (const td_thrhandle_t *, void *);


typedef int td_key_iter_f (thread_key_t, void (*) (void *), void *);




struct ps_prochandle;



typedef struct td_thrinfo
{
  td_thragent_t *ti_ta_p;
  unsigned int ti_user_flags;
  thread_t ti_tid;

  char *ti_tls;
  psaddr_t ti_startfunc;

  psaddr_t ti_stkbase;
  long int ti_stksize;
  psaddr_t ti_ro_area;
  int ti_ro_size;
  td_thr_state_e ti_state;
  unsigned char ti_db_suspended;
  td_thr_type_e ti_type;

  intptr_t ti_pc;
  intptr_t ti_sp;
  short int ti_flags;
  int ti_pri;
  lwpid_t ti_lid;
  sigset_t ti_sigmask;
  unsigned char ti_traceme;

  unsigned char ti_preemptflag;
  unsigned char ti_pirecflag;
  sigset_t ti_pending;
  td_thr_events_t ti_events;
} td_thrinfo_t;






extern td_err_e td_init (void);


extern td_err_e td_log (void);


extern const char **td_symbol_list (void);


extern td_err_e td_ta_new (struct ps_prochandle *__ps, td_thragent_t **__ta);


extern td_err_e td_ta_delete (td_thragent_t *__ta);


extern td_err_e td_ta_get_nthreads (const td_thragent_t *__ta, int *__np);



extern td_err_e td_ta_get_ph (const td_thragent_t *__ta,
         struct ps_prochandle **__ph);



extern td_err_e td_ta_map_id2thr (const td_thragent_t *__ta, pthread_t __pt,
      td_thrhandle_t *__th);



extern td_err_e td_ta_map_lwp2thr (const td_thragent_t *__ta, lwpid_t __lwpid,
       td_thrhandle_t *__th);




extern td_err_e td_ta_thr_iter (const td_thragent_t *__ta,
    td_thr_iter_f *__callback, void *__cbdata_p,
    td_thr_state_e __state, int __ti_pri,
    sigset_t *__ti_sigmask_p,
    unsigned int __ti_user_flags);


extern td_err_e td_ta_tsd_iter (const td_thragent_t *__ta, td_key_iter_f *__ki,
    void *__p);



extern td_err_e td_ta_event_addr (const td_thragent_t *__ta,
      td_event_e __event, td_notify_t *__ptr);


extern td_err_e td_ta_set_event (const td_thragent_t *__ta,
     td_thr_events_t *__event);


extern td_err_e td_ta_clear_event (const td_thragent_t *__ta,
       td_thr_events_t *__event);


extern td_err_e td_ta_event_getmsg (const td_thragent_t *__ta,
        td_event_msg_t *__msg);



extern td_err_e td_ta_setconcurrency (const td_thragent_t *__ta, int __level);



extern td_err_e td_ta_enable_stats (const td_thragent_t *__ta, int __enable);


extern td_err_e td_ta_reset_stats (const td_thragent_t *__ta);


extern td_err_e td_ta_get_stats (const td_thragent_t *__ta,
     td_ta_stats_t *__statsp);



extern td_err_e td_thr_validate (const td_thrhandle_t *__th);


extern td_err_e td_thr_get_info (const td_thrhandle_t *__th,
     td_thrinfo_t *__infop);


extern td_err_e td_thr_getfpregs (const td_thrhandle_t *__th,
      prfpregset_t *__regset);


extern td_err_e td_thr_getgregs (const td_thrhandle_t *__th,
     prgregset_t __gregs);


extern td_err_e td_thr_getxregs (const td_thrhandle_t *__th, void *__xregs);


extern td_err_e td_thr_getxregsize (const td_thrhandle_t *__th, int *__sizep);


extern td_err_e td_thr_setfpregs (const td_thrhandle_t *__th,
      const prfpregset_t *__fpregs);


extern td_err_e td_thr_setgregs (const td_thrhandle_t *__th,
     prgregset_t __gregs);


extern td_err_e td_thr_setxregs (const td_thrhandle_t *__th,
     const void *__addr);



extern td_err_e td_thr_tlsbase (const td_thrhandle_t *__th,
    unsigned long int __modid,
    psaddr_t *__base);


extern td_err_e td_thr_tls_get_addr (const td_thrhandle_t *__th,
         psaddr_t __map_address, size_t __offset,
         psaddr_t *__address);



extern td_err_e td_thr_event_enable (const td_thrhandle_t *__th, int __event);


extern td_err_e td_thr_set_event (const td_thrhandle_t *__th,
      td_thr_events_t *__event);


extern td_err_e td_thr_clear_event (const td_thrhandle_t *__th,
        td_thr_events_t *__event);


extern td_err_e td_thr_event_getmsg (const td_thrhandle_t *__th,
         td_event_msg_t *__msg);



extern td_err_e td_thr_setprio (const td_thrhandle_t *__th, int __prio);



extern td_err_e td_thr_setsigpending (const td_thrhandle_t *__th,
          unsigned char __n, const sigset_t *__ss);


extern td_err_e td_thr_sigsetmask (const td_thrhandle_t *__th,
       const sigset_t *__ss);



extern td_err_e td_thr_tsd (const td_thrhandle_t *__th,
       const thread_key_t __tk, void **__data);



extern td_err_e td_thr_dbsuspend (const td_thrhandle_t *__th);


extern td_err_e td_thr_dbresume (const td_thrhandle_t *__th);
# 32 "../nptl/descr.h" 2

# 1 "../sysdeps/generic/unwind.h" 1
# 34 "../sysdeps/generic/unwind.h"
typedef unsigned _Unwind_Word __attribute__((__mode__(__unwind_word__)));
typedef signed _Unwind_Sword __attribute__((__mode__(__unwind_word__)));



typedef unsigned _Unwind_Ptr __attribute__((__mode__(__pointer__)));

typedef unsigned _Unwind_Internal_Ptr __attribute__((__mode__(__pointer__)));





typedef unsigned _Unwind_Exception_Class __attribute__((__mode__(__DI__)));



typedef enum
{
  _URC_NO_REASON = 0,
  _URC_FOREIGN_EXCEPTION_CAUGHT = 1,
  _URC_FATAL_PHASE2_ERROR = 2,
  _URC_FATAL_PHASE1_ERROR = 3,
  _URC_NORMAL_STOP = 4,
  _URC_END_OF_STACK = 5,
  _URC_HANDLER_FOUND = 6,
  _URC_INSTALL_CONTEXT = 7,
  _URC_CONTINUE_UNWIND = 8
} _Unwind_Reason_Code;
# 71 "../sysdeps/generic/unwind.h"
struct _Unwind_Exception;

typedef void (*_Unwind_Exception_Cleanup_Fn) (_Unwind_Reason_Code,
           struct _Unwind_Exception *);

struct _Unwind_Exception
{
  union
  {
    struct
    {
      _Unwind_Exception_Class exception_class;
      _Unwind_Exception_Cleanup_Fn exception_cleanup;
      _Unwind_Word private_1;
      _Unwind_Word private_2;
    };


    _Unwind_Word unwind_exception_align[2]
      __attribute__ ((__aligned__ (2 * sizeof (_Unwind_Word))));
  };
};




typedef int _Unwind_Action;
# 109 "../sysdeps/generic/unwind.h"
struct _Unwind_Context;


extern _Unwind_Reason_Code _Unwind_RaiseException (struct _Unwind_Exception *);



typedef _Unwind_Reason_Code (*_Unwind_Stop_Fn)
     (int, _Unwind_Action, _Unwind_Exception_Class,
      struct _Unwind_Exception *, struct _Unwind_Context *, void *);

extern _Unwind_Reason_Code _Unwind_ForcedUnwind (struct _Unwind_Exception *,
       _Unwind_Stop_Fn,
       void *);


extern void _Unwind_DeleteException (struct _Unwind_Exception *);



extern void _Unwind_Resume (struct _Unwind_Exception *);




typedef _Unwind_Reason_Code (*_Unwind_Trace_Fn)
     (struct _Unwind_Context *, void *);

extern _Unwind_Reason_Code _Unwind_Backtrace (_Unwind_Trace_Fn, void *);






extern _Unwind_Word _Unwind_GetGR (struct _Unwind_Context *, int);
extern void _Unwind_SetGR (struct _Unwind_Context *, int, _Unwind_Word);

extern _Unwind_Ptr _Unwind_GetIP (struct _Unwind_Context *);
extern void _Unwind_SetIP (struct _Unwind_Context *, _Unwind_Ptr);


extern _Unwind_Word _Unwind_GetCFA (struct _Unwind_Context *);

extern void *_Unwind_GetLanguageSpecificData (struct _Unwind_Context *);

extern _Unwind_Ptr _Unwind_GetRegionStart (struct _Unwind_Context *);
# 172 "../sysdeps/generic/unwind.h"
typedef _Unwind_Reason_Code (*_Unwind_Personality_Fn)
     (int, _Unwind_Action, _Unwind_Exception_Class,
      struct _Unwind_Exception *, struct _Unwind_Context *);




struct SjLj_Function_Context;
extern void _Unwind_SjLj_Register (struct SjLj_Function_Context *);
extern void _Unwind_SjLj_Unregister (struct SjLj_Function_Context *);

extern _Unwind_Reason_Code _Unwind_SjLj_RaiseException
     (struct _Unwind_Exception *);
extern _Unwind_Reason_Code _Unwind_SjLj_ForcedUnwind
     (struct _Unwind_Exception *, _Unwind_Stop_Fn, void *);
extern void _Unwind_SjLj_Resume (struct _Unwind_Exception *);
# 213 "../sysdeps/generic/unwind.h"
extern _Unwind_Ptr _Unwind_GetDataRelBase (struct _Unwind_Context *);
extern _Unwind_Ptr _Unwind_GetTextRelBase (struct _Unwind_Context *);




extern void * _Unwind_FindEnclosingFunction (void *pc);
# 34 "../nptl/descr.h" 2
# 1 "../include/bits/types/res_state.h" 1
# 1 "../resolv/bits/types/res_state.h" 1



# 1 "../include/sys/types.h" 1
# 5 "../resolv/bits/types/res_state.h" 2
# 1 "../include/netinet/in.h" 1


# 1 "../inet/netinet/in.h" 1
# 23 "../inet/netinet/in.h"
# 1 "../include/sys/socket.h" 1

# 1 "../socket/sys/socket.h" 1
# 24 "../socket/sys/socket.h"


# 1 "../include/bits/types/struct_iovec.h" 1
# 1 "../misc/bits/types/struct_iovec.h" 1
# 23 "../misc/bits/types/struct_iovec.h"
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
# 24 "../misc/bits/types/struct_iovec.h" 2


struct iovec
  {
    void *iov_base;
    size_t iov_len;
  };
# 2 "../include/bits/types/struct_iovec.h" 2
# 27 "../socket/sys/socket.h" 2

# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
# 29 "../socket/sys/socket.h" 2




# 1 "../sysdeps/unix/sysv/linux/bits/socket.h" 1
# 27 "../sysdeps/unix/sysv/linux/bits/socket.h"
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
# 28 "../sysdeps/unix/sysv/linux/bits/socket.h" 2

# 1 "../include/sys/types.h" 1
# 30 "../sysdeps/unix/sysv/linux/bits/socket.h" 2



typedef __socklen_t socklen_t;




# 1 "../sysdeps/unix/sysv/linux/bits/socket_type.h" 1
# 24 "../sysdeps/unix/sysv/linux/bits/socket_type.h"
enum __socket_type
{
  SOCK_STREAM = 1,


  SOCK_DGRAM = 2,


  SOCK_RAW = 3,

  SOCK_RDM = 4,

  SOCK_SEQPACKET = 5,


  SOCK_DCCP = 6,

  SOCK_PACKET = 10,







  SOCK_CLOEXEC = 02000000,


  SOCK_NONBLOCK = 00004000


};
# 39 "../sysdeps/unix/sysv/linux/bits/socket.h" 2
# 175 "../sysdeps/unix/sysv/linux/bits/socket.h"
# 1 "../bits/sockaddr.h" 1
# 28 "../bits/sockaddr.h"
typedef unsigned short int sa_family_t;
# 176 "../sysdeps/unix/sysv/linux/bits/socket.h" 2


struct sockaddr
  {
    sa_family_t sa_family;
    char sa_data[14];
  };
# 191 "../sysdeps/unix/sysv/linux/bits/socket.h"
struct sockaddr_storage
  {
    sa_family_t ss_family;
    char __ss_padding[(128 - (sizeof (unsigned short int)) - sizeof (unsigned long int))];
    unsigned long int __ss_align;
  };



enum
  {
    MSG_OOB = 0x01,

    MSG_PEEK = 0x02,

    MSG_DONTROUTE = 0x04,



    MSG_TRYHARD = MSG_DONTROUTE,


    MSG_CTRUNC = 0x08,

    MSG_PROXY = 0x10,

    MSG_TRUNC = 0x20,

    MSG_DONTWAIT = 0x40,

    MSG_EOR = 0x80,

    MSG_WAITALL = 0x100,

    MSG_FIN = 0x200,

    MSG_SYN = 0x400,

    MSG_CONFIRM = 0x800,

    MSG_RST = 0x1000,

    MSG_ERRQUEUE = 0x2000,

    MSG_NOSIGNAL = 0x4000,

    MSG_MORE = 0x8000,

    MSG_WAITFORONE = 0x10000,

    MSG_BATCH = 0x40000,

    MSG_ZEROCOPY = 0x4000000,

    MSG_FASTOPEN = 0x20000000,


    MSG_CMSG_CLOEXEC = 0x40000000



  };




struct msghdr
  {
    void *msg_name;
    socklen_t msg_namelen;

    struct iovec *msg_iov;
    size_t msg_iovlen;

    void *msg_control;
    size_t msg_controllen;




    int msg_flags;
  };


struct cmsghdr
  {
    size_t cmsg_len;




    int cmsg_level;
    int cmsg_type;

    __extension__ unsigned char __cmsg_data [];

  };
# 305 "../sysdeps/unix/sysv/linux/bits/socket.h"
extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
          struct cmsghdr *__cmsg) __attribute__ ((__nothrow__ ));




extern __inline struct cmsghdr *
__attribute__ ((__nothrow__ )) __cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)
{
  if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))

    return (struct cmsghdr *) 0;

  __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
          + (((__cmsg->cmsg_len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1)));
  if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control
     + __mhdr->msg_controllen)
      || ((unsigned char *) __cmsg + (((__cmsg->cmsg_len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1))
   > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))

    return (struct cmsghdr *) 0;
  return __cmsg;
}




enum
  {
    SCM_RIGHTS = 0x01


    , SCM_CREDENTIALS = 0x02


  };



struct ucred
{
  pid_t pid;
  uid_t uid;
  gid_t gid;
};



# 1 "../include/bits/types/time_t.h" 1
# 354 "../sysdeps/unix/sysv/linux/bits/socket.h" 2
# 1 "/usr/include/asm/socket.h" 1 3 4
# 1 "/usr/include/asm-generic/socket.h" 1 3 4





# 1 "/usr/include/asm/sockios.h" 1 3 4
# 1 "/usr/include/asm-generic/sockios.h" 1 3 4
# 2 "/usr/include/asm/sockios.h" 2 3 4
# 7 "/usr/include/asm-generic/socket.h" 2 3 4
# 2 "/usr/include/asm/socket.h" 2 3 4
# 355 "../sysdeps/unix/sysv/linux/bits/socket.h" 2






struct linger
  {
    int l_onoff;
    int l_linger;
  };
# 34 "../socket/sys/socket.h" 2


# 1 "../include/bits/types/struct_osockaddr.h" 1
# 1 "../socket/bits/types/struct_osockaddr.h" 1





struct osockaddr
{
  unsigned short int sa_family;
  unsigned char sa_data[14];
};
# 2 "../include/bits/types/struct_osockaddr.h" 2
# 37 "../socket/sys/socket.h" 2




enum
{
  SHUT_RD = 0,

  SHUT_WR,

  SHUT_RDWR

};
# 79 "../socket/sys/socket.h"
typedef union { struct sockaddr *__restrict __sockaddr__; struct sockaddr_at *__restrict __sockaddr_at__; struct sockaddr_ax25 *__restrict __sockaddr_ax25__; struct sockaddr_dl *__restrict __sockaddr_dl__; struct sockaddr_eon *__restrict __sockaddr_eon__; struct sockaddr_in *__restrict __sockaddr_in__; struct sockaddr_in6 *__restrict __sockaddr_in6__; struct sockaddr_inarp *__restrict __sockaddr_inarp__; struct sockaddr_ipx *__restrict __sockaddr_ipx__; struct sockaddr_iso *__restrict __sockaddr_iso__; struct sockaddr_ns *__restrict __sockaddr_ns__; struct sockaddr_un *__restrict __sockaddr_un__; struct sockaddr_x25 *__restrict __sockaddr_x25__;
       } __SOCKADDR_ARG __attribute__ ((__transparent_union__));


typedef union { const struct sockaddr *__restrict __sockaddr__; const struct sockaddr_at *__restrict __sockaddr_at__; const struct sockaddr_ax25 *__restrict __sockaddr_ax25__; const struct sockaddr_dl *__restrict __sockaddr_dl__; const struct sockaddr_eon *__restrict __sockaddr_eon__; const struct sockaddr_in *__restrict __sockaddr_in__; const struct sockaddr_in6 *__restrict __sockaddr_in6__; const struct sockaddr_inarp *__restrict __sockaddr_inarp__; const struct sockaddr_ipx *__restrict __sockaddr_ipx__; const struct sockaddr_iso *__restrict __sockaddr_iso__; const struct sockaddr_ns *__restrict __sockaddr_ns__; const struct sockaddr_un *__restrict __sockaddr_un__; const struct sockaddr_x25 *__restrict __sockaddr_x25__;
       } __CONST_SOCKADDR_ARG __attribute__ ((__transparent_union__));





struct mmsghdr
  {
    struct msghdr msg_hdr;
    unsigned int msg_len;

  };






extern int socket (int __domain, int __type, int __protocol) __attribute__ ((__nothrow__ ));





extern int socketpair (int __domain, int __type, int __protocol,
         int __fds[2]) __attribute__ ((__nothrow__ ));


extern int bind (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len)
     __attribute__ ((__nothrow__ ));


extern int getsockname (int __fd, __SOCKADDR_ARG __addr,
   socklen_t *__restrict __len) __attribute__ ((__nothrow__ ));
# 126 "../socket/sys/socket.h"
extern int connect (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len);



extern int getpeername (int __fd, __SOCKADDR_ARG __addr,
   socklen_t *__restrict __len) __attribute__ ((__nothrow__ ));






extern ssize_t send (int __fd, const void *__buf, size_t __n, int __flags);






extern ssize_t recv (int __fd, void *__buf, size_t __n, int __flags);






extern ssize_t sendto (int __fd, const void *__buf, size_t __n,
         int __flags, __CONST_SOCKADDR_ARG __addr,
         socklen_t __addr_len);
# 163 "../socket/sys/socket.h"
extern ssize_t recvfrom (int __fd, void *__restrict __buf, size_t __n,
    int __flags, __SOCKADDR_ARG __addr,
    socklen_t *__restrict __addr_len);
# 174 "../socket/sys/socket.h"
extern ssize_t sendmsg (int __fd, const struct msghdr *__message,
   int __flags);
# 195 "../socket/sys/socket.h"
extern int sendmmsg (int __fd, struct mmsghdr *__vmessages,
       unsigned int __vlen, int __flags);
# 216 "../socket/sys/socket.h"
extern ssize_t recvmsg (int __fd, struct msghdr *__message, int __flags);
# 235 "../socket/sys/socket.h"
extern int recvmmsg (int __fd, struct mmsghdr *__vmessages,
       unsigned int __vlen, int __flags,
       struct timespec *__tmo);
# 255 "../socket/sys/socket.h"
extern int getsockopt (int __fd, int __level, int __optname,
         void *__restrict __optval,
         socklen_t *__restrict __optlen) __attribute__ ((__nothrow__ ));
# 277 "../socket/sys/socket.h"
extern int setsockopt (int __fd, int __level, int __optname,
         const void *__optval, socklen_t __optlen) __attribute__ ((__nothrow__ ));
# 296 "../socket/sys/socket.h"
extern int listen (int __fd, int __n) __attribute__ ((__nothrow__ ));
# 306 "../socket/sys/socket.h"
extern int accept (int __fd, __SOCKADDR_ARG __addr,
     socklen_t *__restrict __addr_len);






extern int accept4 (int __fd, __SOCKADDR_ARG __addr,
      socklen_t *__restrict __addr_len, int __flags);
# 324 "../socket/sys/socket.h"
extern int shutdown (int __fd, int __how) __attribute__ ((__nothrow__ ));




extern int sockatmark (int __fd) __attribute__ ((__nothrow__ ));







extern int isfdtype (int __fd, int __fdtype) __attribute__ ((__nothrow__ ));
# 346 "../socket/sys/socket.h"

# 3 "../include/sys/socket.h" 2







extern int __socket (int __domain, int __type,
       int __protocol);
extern __typeof (__socket) __socket __attribute__ ((visibility ("hidden")));





extern int __socketpair (int __domain, int __type, int __protocol,
    int __fds[2]) ;



extern int __opensock (void) ;



extern int __getpeername (int __fd, __SOCKADDR_ARG __addr,
     socklen_t *__len) ;


extern ssize_t __libc_send (int __fd, const void *__buf, size_t __n,
       int __flags);
extern ssize_t __send (int __fd, const void *__buf, size_t __n, int __flags);
extern __typeof (__send) __send __attribute__ ((visibility ("hidden")));



extern ssize_t __libc_recv (int __fd, void *__buf, size_t __n, int __flags);



extern ssize_t __libc_sendto (int __fd, const void *__buf, size_t __n,
         int __flags, __CONST_SOCKADDR_ARG __addr,
         socklen_t __addr_len);





extern ssize_t __libc_recvfrom (int __fd, void *__restrict __buf, size_t __n,
    int __flags, __SOCKADDR_ARG __addr,
    socklen_t *__restrict __addr_len);





extern int __libc_connect (int __fd, __CONST_SOCKADDR_ARG __addr,
      socklen_t __len);
extern int __connect (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len);
extern __typeof (__connect) __connect __attribute__ ((visibility ("hidden")));






extern ssize_t __recv (int __fd, void *__buf, size_t __n, int __flags);
extern __typeof (__recv) __recv __attribute__ ((visibility ("hidden")));



extern ssize_t __libc_sendto (int __fd, const void *__buf, size_t __n,
         int __flags, __CONST_SOCKADDR_ARG __addr,
         socklen_t __addr_len);
extern ssize_t __sendto (int __fd, const void *__buf, size_t __n,
    int __flags, __CONST_SOCKADDR_ARG __addr,
    socklen_t __addr_len) ;





extern ssize_t __recvfrom (int __fd, void *__restrict __buf, size_t __n,
      int __flags, __SOCKADDR_ARG __addr,
      socklen_t *__restrict __addr_len) ;



extern ssize_t __libc_sendmsg (int __fd, const struct msghdr *__message,
          int __flags);
extern ssize_t __sendmsg (int __fd, const struct msghdr *__message,
     int __flags) ;


extern int __sendmmsg (int __fd, struct mmsghdr *__vmessages,
                       unsigned int __vlen, int __flags);
extern __typeof (__sendmmsg) __sendmmsg __attribute__ ((visibility ("hidden")));




extern ssize_t __libc_recvmsg (int __fd, struct msghdr *__message,
          int __flags);
extern ssize_t __recvmsg (int __fd, struct msghdr *__message,
     int __flags) ;
# 119 "../include/sys/socket.h"
extern int __setsockopt (int __fd, int __level, int __optname,
    const void *__optval,
    socklen_t __optlen);
extern __typeof (__setsockopt) __setsockopt __attribute__ ((visibility ("hidden")));




extern int __getsockopt (int __fd, int __level, int __optname,
    void *__restrict __optval,
    socklen_t *__restrict __optlen) ;


extern int __getsockname (int __fd, __SOCKADDR_ARG __addr,
     socklen_t *__restrict __len) ;


extern int __bind (int __fd, __CONST_SOCKADDR_ARG __addr,
     socklen_t __len) ;




extern int __listen (int __fd, int __n) ;






extern int __libc_accept (int __fd, __SOCKADDR_ARG __addr,
     socklen_t *__restrict __addr_len)
     __attribute__ ((__nothrow__ )) ;
extern __typeof (accept) accept __attribute__ ((visibility ("hidden")));
extern int __libc_accept4 (int __fd, __SOCKADDR_ARG __addr,
      socklen_t *__restrict __addr_len, int __flags)
     __attribute__ ((__nothrow__ )) ;





extern int __libc_sa_len (sa_family_t __af);
extern __typeof (__libc_sa_len) __libc_sa_len __attribute__ ((visibility ("hidden")));



extern __typeof (__cmsg_nxthdr) __cmsg_nxthdr __attribute__ ((visibility ("hidden")));
# 24 "../inet/netinet/in.h" 2
# 1 "../include/bits/types.h" 1
# 25 "../inet/netinet/in.h" 2





typedef uint32_t in_addr_t;
struct in_addr
  {
    in_addr_t s_addr;
  };


# 1 "../sysdeps/unix/sysv/linux/bits/in.h" 1
# 143 "../sysdeps/unix/sysv/linux/bits/in.h"
struct ip_opts
  {
    struct in_addr ip_dst;
    char ip_opts[40];
  };


struct ip_mreqn
  {
    struct in_addr imr_multiaddr;
    struct in_addr imr_address;
    int imr_ifindex;
  };


struct in_pktinfo
  {
    int ipi_ifindex;
    struct in_addr ipi_spec_dst;
    struct in_addr ipi_addr;
  };
# 38 "../inet/netinet/in.h" 2


enum
  {
    IPPROTO_IP = 0,

    IPPROTO_ICMP = 1,

    IPPROTO_IGMP = 2,

    IPPROTO_IPIP = 4,

    IPPROTO_TCP = 6,

    IPPROTO_EGP = 8,

    IPPROTO_PUP = 12,

    IPPROTO_UDP = 17,

    IPPROTO_IDP = 22,

    IPPROTO_TP = 29,

    IPPROTO_DCCP = 33,

    IPPROTO_IPV6 = 41,

    IPPROTO_RSVP = 46,

    IPPROTO_GRE = 47,

    IPPROTO_ESP = 50,

    IPPROTO_AH = 51,

    IPPROTO_MTP = 92,

    IPPROTO_BEETPH = 94,

    IPPROTO_ENCAP = 98,

    IPPROTO_PIM = 103,

    IPPROTO_COMP = 108,

    IPPROTO_SCTP = 132,

    IPPROTO_UDPLITE = 136,

    IPPROTO_MPLS = 137,

    IPPROTO_ETHERNET = 143,

    IPPROTO_RAW = 255,

    IPPROTO_MPTCP = 262,

    IPPROTO_MAX
  };





enum
  {
    IPPROTO_HOPOPTS = 0,

    IPPROTO_ROUTING = 43,

    IPPROTO_FRAGMENT = 44,

    IPPROTO_ICMPV6 = 58,

    IPPROTO_NONE = 59,

    IPPROTO_DSTOPTS = 60,

    IPPROTO_MH = 135

  };



typedef uint16_t in_port_t;


enum
  {
    IPPORT_ECHO = 7,
    IPPORT_DISCARD = 9,
    IPPORT_SYSTAT = 11,
    IPPORT_DAYTIME = 13,
    IPPORT_NETSTAT = 15,
    IPPORT_FTP = 21,
    IPPORT_TELNET = 23,
    IPPORT_SMTP = 25,
    IPPORT_TIMESERVER = 37,
    IPPORT_NAMESERVER = 42,
    IPPORT_WHOIS = 43,
    IPPORT_MTP = 57,

    IPPORT_TFTP = 69,
    IPPORT_RJE = 77,
    IPPORT_FINGER = 79,
    IPPORT_TTYLINK = 87,
    IPPORT_SUPDUP = 95,


    IPPORT_EXECSERVER = 512,
    IPPORT_LOGINSERVER = 513,
    IPPORT_CMDSERVER = 514,
    IPPORT_EFSSERVER = 520,


    IPPORT_BIFFUDP = 512,
    IPPORT_WHOSERVER = 513,
    IPPORT_ROUTESERVER = 520,


    IPPORT_RESERVED = 1024,


    IPPORT_USERRESERVED = 5000
  };
# 219 "../inet/netinet/in.h"
struct in6_addr
  {
    union
      {
 uint8_t __u6_addr8[16];
 uint16_t __u6_addr16[8];
 uint32_t __u6_addr32[4];
      } __in6_u;





  };


extern const struct in6_addr in6addr_any;
extern const struct in6_addr in6addr_loopback;
# 245 "../inet/netinet/in.h"
struct sockaddr_in
  {
    sa_family_t sin_family;
    in_port_t sin_port;
    struct in_addr sin_addr;


    unsigned char sin_zero[sizeof (struct sockaddr)
      - (sizeof (unsigned short int))
      - sizeof (in_port_t)
      - sizeof (struct in_addr)];
  };



struct sockaddr_in6
  {
    sa_family_t sin6_family;
    in_port_t sin6_port;
    uint32_t sin6_flowinfo;
    struct in6_addr sin6_addr;
    uint32_t sin6_scope_id;
  };




struct ip_mreq
  {

    struct in_addr imr_multiaddr;


    struct in_addr imr_interface;
  };

struct ip_mreq_source
  {

    struct in_addr imr_multiaddr;


    struct in_addr imr_interface;


    struct in_addr imr_sourceaddr;
  };




struct ipv6_mreq
  {

    struct in6_addr ipv6mr_multiaddr;


    unsigned int ipv6mr_interface;
  };




struct group_req
  {

    uint32_t gr_interface;


    struct sockaddr_storage gr_group;
  };

struct group_source_req
  {

    uint32_t gsr_interface;


    struct sockaddr_storage gsr_group;


    struct sockaddr_storage gsr_source;
  };



struct ip_msfilter
  {

    struct in_addr imsf_multiaddr;


    struct in_addr imsf_interface;


    uint32_t imsf_fmode;


    uint32_t imsf_numsrc;

    struct in_addr imsf_slist[1];
  };





struct group_filter
  {

    uint32_t gf_interface;


    struct sockaddr_storage gf_group;


    uint32_t gf_fmode;


    uint32_t gf_numsrc;

    struct sockaddr_storage gf_slist[1];
};
# 382 "../inet/netinet/in.h"
extern uint32_t ntohl (uint32_t __netlong) __attribute__ ((__nothrow__ )) __attribute__ ((__const__));
extern uint16_t ntohs (uint16_t __netshort)
     __attribute__ ((__nothrow__ )) __attribute__ ((__const__));
extern uint32_t htonl (uint32_t __hostlong)
     __attribute__ ((__nothrow__ )) __attribute__ ((__const__));
extern uint16_t htons (uint16_t __hostshort)
     __attribute__ ((__nothrow__ )) __attribute__ ((__const__));

# 1 "../include/endian.h" 1
# 391 "../inet/netinet/in.h" 2


# 1 "../bits/byteswap.h" 1
# 394 "../inet/netinet/in.h" 2
# 1 "../bits/uintn-identity.h" 1
# 395 "../inet/netinet/in.h" 2
# 510 "../inet/netinet/in.h"
extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in) __attribute__ ((__nothrow__ ));


extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in)
     __attribute__ ((__nothrow__ ));
# 540 "../inet/netinet/in.h"
struct cmsghdr;



struct in6_pktinfo
  {
    struct in6_addr ipi6_addr;
    unsigned int ipi6_ifindex;
  };


struct ip6_mtuinfo
  {
    struct sockaddr_in6 ip6m_addr;
    uint32_t ip6m_mtu;
  };



extern int inet6_option_space (int __nbytes)
     __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__));
extern int inet6_option_init (void *__bp, struct cmsghdr **__cmsgp,
         int __type) __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__));
extern int inet6_option_append (struct cmsghdr *__cmsg,
    const uint8_t *__typep, int __multx,
    int __plusy) __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__));
extern uint8_t *inet6_option_alloc (struct cmsghdr *__cmsg, int __datalen,
        int __multx, int __plusy)
     __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__));
extern int inet6_option_next (const struct cmsghdr *__cmsg,
         uint8_t **__tptrp)
     __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__));
extern int inet6_option_find (const struct cmsghdr *__cmsg,
         uint8_t **__tptrp, int __type)
     __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__));



extern int inet6_opt_init (void *__extbuf, socklen_t __extlen) __attribute__ ((__nothrow__ ));
extern int inet6_opt_append (void *__extbuf, socklen_t __extlen, int __offset,
        uint8_t __type, socklen_t __len, uint8_t __align,
        void **__databufp) __attribute__ ((__nothrow__ ));
extern int inet6_opt_finish (void *__extbuf, socklen_t __extlen, int __offset)
     __attribute__ ((__nothrow__ ));
extern int inet6_opt_set_val (void *__databuf, int __offset, void *__val,
         socklen_t __vallen) __attribute__ ((__nothrow__ ));
extern int inet6_opt_next (void *__extbuf, socklen_t __extlen, int __offset,
      uint8_t *__typep, socklen_t *__lenp,
      void **__databufp) __attribute__ ((__nothrow__ ));
extern int inet6_opt_find (void *__extbuf, socklen_t __extlen, int __offset,
      uint8_t __type, socklen_t *__lenp,
      void **__databufp) __attribute__ ((__nothrow__ ));
extern int inet6_opt_get_val (void *__databuf, int __offset, void *__val,
         socklen_t __vallen) __attribute__ ((__nothrow__ ));



extern socklen_t inet6_rth_space (int __type, int __segments) __attribute__ ((__nothrow__ ));
extern void *inet6_rth_init (void *__bp, socklen_t __bp_len, int __type,
        int __segments) __attribute__ ((__nothrow__ ));
extern int inet6_rth_add (void *__bp, const struct in6_addr *__addr) __attribute__ ((__nothrow__ ));
extern int inet6_rth_reverse (const void *__in, void *__out) __attribute__ ((__nothrow__ ));
extern int inet6_rth_segments (const void *__bp) __attribute__ ((__nothrow__ ));
extern struct in6_addr *inet6_rth_getaddr (const void *__bp, int __index)
     __attribute__ ((__nothrow__ ));





extern int getipv4sourcefilter (int __s, struct in_addr __interface_addr,
    struct in_addr __group, uint32_t *__fmode,
    uint32_t *__numsrc, struct in_addr *__slist)
     __attribute__ ((__nothrow__ ));


extern int setipv4sourcefilter (int __s, struct in_addr __interface_addr,
    struct in_addr __group, uint32_t __fmode,
    uint32_t __numsrc,
    const struct in_addr *__slist)
     __attribute__ ((__nothrow__ ));



extern int getsourcefilter (int __s, uint32_t __interface_addr,
       const struct sockaddr *__group,
       socklen_t __grouplen, uint32_t *__fmode,
       uint32_t *__numsrc,
       struct sockaddr_storage *__slist) __attribute__ ((__nothrow__ ));


extern int setsourcefilter (int __s, uint32_t __interface_addr,
       const struct sockaddr *__group,
       socklen_t __grouplen, uint32_t __fmode,
       uint32_t __numsrc,
       const struct sockaddr_storage *__slist) __attribute__ ((__nothrow__ ));



# 4 "../include/netinet/in.h" 2


extern __typeof (bindresvport) bindresvport __attribute__ ((visibility ("hidden")));
extern __typeof (in6addr_loopback) in6addr_loopback __attribute__ ((visibility ("hidden")));
extern __typeof (in6addr_loopback) __in6addr_loopback;
extern __typeof (__in6addr_loopback) __in6addr_loopback __attribute__ ((visibility ("hidden")));
extern __typeof (in6addr_any) in6addr_any __attribute__ ((visibility ("hidden")));
extern __typeof (in6addr_any) __in6addr_any;
extern __typeof (__in6addr_any) __in6addr_any __attribute__ ((visibility ("hidden")));
# 6 "../resolv/bits/types/res_state.h" 2







struct __res_state {
 int retrans;
 int retry;
 unsigned long options;
 int nscount;
 struct sockaddr_in
  nsaddr_list[3];
 unsigned short id;

 char *dnsrch[6 +1];
 char defdname[256];
 unsigned long pfcode;
 unsigned ndots:4;
 unsigned nsort:4;
 unsigned ipv6_unavail:1;
 unsigned unused:23;
 struct {
  struct in_addr addr;
  uint32_t mask;
 } sort_list[10];

 void * __glibc_unused_qhook;
 void * __glibc_unused_rhook;
 int res_h_errno;
 int _vcsock;
 unsigned int _flags;

 union {
  char pad[52];
  struct {
   uint16_t nscount;
   uint16_t nsmap[3];
   int nssocks[3];
   uint16_t nscount6;
   uint16_t nsinit;
   struct sockaddr_in6 *nsaddrs[3];

   unsigned long long int __glibc_extension_index
     __attribute__((packed));



  } _ext;
 } _u;
};

typedef struct __res_state *res_state;
# 2 "../include/bits/types/res_state.h" 2
# 35 "../nptl/descr.h" 2
# 1 "../sysdeps/unix/sysv/linux/s390/kernel-features.h" 1
# 36 "../nptl/descr.h" 2
# 1 "../sysdeps/generic/tls-internal-struct.h" 1
# 22 "../sysdeps/generic/tls-internal-struct.h"
struct tls_internal_t
{
  char *strsignal_buf;
  char *strerror_l_buf;
};
# 37 "../nptl/descr.h" 2
# 62 "../nptl/descr.h"
struct pthread_unwind_buf
{
  struct
  {
    __jmp_buf jmp_buf;
    int mask_was_saved;
  } cancel_jmp_buf[1];

  union
  {

    void *pad[4];

    struct
    {

      struct pthread_unwind_buf *prev;




      struct _pthread_cleanup_buffer *cleanup;


      int canceltype;
    } data;
  } priv;
};




struct xid_command
{
  int syscall_no;






  unsigned long int id[3];
  volatile int cntr;
  volatile int error;
};



struct robust_list_head
{
  void *list;
  long int futex_offset;
  void *list_op_pending;
};



struct priority_protection_data
{
  int priomax;
  unsigned int priomap[];
};



struct pthread
{
  union
  {


    tcbhead_t header;
# 161 "../nptl/descr.h"
    void *__padding[24];
  };



  list_t list;



  pid_t tid;


  pid_t pid_ununsed;



  void *robust_prev;
  struct robust_list_head robust_head;
# 271 "../nptl/descr.h"
  struct _pthread_cleanup_buffer *cleanup;


  struct pthread_unwind_buf *cleanup_jmp_buf;



  int cancelhandling;
# 293 "../nptl/descr.h"
  int flags;



  struct pthread_key_data
  {



    uintptr_t seq;


    void *data;
  } specific_1stblock[32];


  struct pthread_key_data *specific[((1024 + 32 - 1) / 32)];


  
# 312 "../nptl/descr.h" 3 4
 _Bool 
# 312 "../nptl/descr.h"
      specific_used;


  
# 315 "../nptl/descr.h" 3 4
 _Bool 
# 315 "../nptl/descr.h"
      report_events;


  
# 318 "../nptl/descr.h" 3 4
 _Bool 
# 318 "../nptl/descr.h"
      user_stack;


  
# 321 "../nptl/descr.h" 3 4
 _Bool 
# 321 "../nptl/descr.h"
      stopped_start;



  int setup_failed;


  int lock;


  unsigned int setxid_futex;


  hp_timing_t cpuclock_offset_ununsed;
# 343 "../nptl/descr.h"
  struct pthread *joinid;




  void *result;


  struct sched_param schedparam;
  int schedpolicy;



  void *(*start_routine) (void *);
  void *arg;


  td_eventbuf_t eventbuf;

  struct pthread *nextevent;


  struct _Unwind_Exception exc;


  void *stackblock;

  size_t stackblock_size;

  size_t guardsize;

  size_t reported_guardsize;


  struct priority_protection_data *tpp;


  struct __res_state res;




  sigset_t sigmask;


  
# 388 "../nptl/descr.h" 3 4
 _Bool 
# 388 "../nptl/descr.h"
      c11;



  unsigned char cancelstate;



  unsigned char canceltype;




  
# 401 "../nptl/descr.h" 3 4
 _Bool 
# 401 "../nptl/descr.h"
      exiting;
  int exit_lock;


  struct tls_internal_t tls_state;


  char end_padding[];



} __attribute ((aligned (16)));
# 85 "../sysdeps/s390/nptl/tls.h" 2
# 28 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" 2
# 20 "../sysdeps/s390/s390-64/__longjmp.c" 2



# 1 "../include/unistd.h" 1

# 1 "../posix/unistd.h" 1
# 27 "../posix/unistd.h"

# 202 "../posix/unistd.h"
# 1 "../sysdeps/unix/sysv/linux/bits/posix_opt.h" 1
# 203 "../posix/unistd.h" 2



# 1 "../sysdeps/unix/sysv/linux/s390/bits/environments.h" 1
# 22 "../sysdeps/unix/sysv/linux/s390/bits/environments.h"
# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
# 23 "../sysdeps/unix/sysv/linux/s390/bits/environments.h" 2
# 207 "../posix/unistd.h" 2
# 217 "../posix/unistd.h"
# 1 "../include/bits/types.h" 1
# 218 "../posix/unistd.h" 2
# 226 "../posix/unistd.h"
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
# 227 "../posix/unistd.h" 2
# 287 "../posix/unistd.h"
extern int access (const char *__name, int __type) __attribute__ ((__nothrow__ )) ;




extern int euidaccess (const char *__name, int __type)
     __attribute__ ((__nothrow__ )) ;


extern int eaccess (const char *__name, int __type)
     __attribute__ ((__nothrow__ )) ;


extern int execveat (int __fd, const char *__path, char *const __argv[],
                     char *const __envp[], int __flags)
    __attribute__ ((__nothrow__ )) ;






extern int faccessat (int __fd, const char *__file, int __type, int __flag)
     __attribute__ ((__nothrow__ )) ;
# 339 "../posix/unistd.h"
extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__ ));
# 350 "../posix/unistd.h"
extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence)
     __attribute__ ((__nothrow__ ));






extern int close (int __fd);




extern void closefrom (int __lowfd) __attribute__ ((__nothrow__ ));







extern ssize_t read (int __fd, void *__buf, size_t __nbytes)
    __attribute__ ((__access__ (__write_only__, 2, 3)));





extern ssize_t write (int __fd, const void *__buf, size_t __n)
    __attribute__ ((__access__ (__read_only__, 2, 3)));
# 389 "../posix/unistd.h"
extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
        __off_t __offset)
    __attribute__ ((__access__ (__write_only__, 2, 3)));






extern ssize_t pwrite (int __fd, const void *__buf, size_t __n,
         __off_t __offset)
    __attribute__ ((__access__ (__read_only__, 2, 3)));
# 422 "../posix/unistd.h"
extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes,
   __off64_t __offset)
    __attribute__ ((__access__ (__write_only__, 2, 3)));


extern ssize_t pwrite64 (int __fd, const void *__buf, size_t __n,
    __off64_t __offset)
    __attribute__ ((__access__ (__read_only__, 2, 3)));







extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__ )) ;




extern int pipe2 (int __pipedes[2], int __flags) __attribute__ ((__nothrow__ )) ;
# 452 "../posix/unistd.h"
extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__ ));
# 464 "../posix/unistd.h"
extern unsigned int sleep (unsigned int __seconds);







extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
     __attribute__ ((__nothrow__ ));






extern int usleep (__useconds_t __useconds);
# 489 "../posix/unistd.h"
extern int pause (void);



extern int chown (const char *__file, __uid_t __owner, __gid_t __group)
     __attribute__ ((__nothrow__ )) ;



extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__ )) ;




extern int lchown (const char *__file, __uid_t __owner, __gid_t __group)
     __attribute__ ((__nothrow__ )) ;






extern int fchownat (int __fd, const char *__file, __uid_t __owner,
       __gid_t __group, int __flag)
     __attribute__ ((__nothrow__ )) ;



extern int chdir (const char *__path) __attribute__ ((__nothrow__ )) ;



extern int fchdir (int __fd) __attribute__ ((__nothrow__ )) ;
# 531 "../posix/unistd.h"
extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__ )) ;





extern char *get_current_dir_name (void) __attribute__ ((__nothrow__ ));







extern char *getwd (char *__buf)
     __attribute__ ((__nothrow__ )) __attribute__ ((__deprecated__))
    __attribute__ ((__access__ (__write_only__, 1)));




extern int dup (int __fd) __attribute__ ((__nothrow__ )) ;


extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__ ));




extern int dup3 (int __fd, int __fd2, int __flags) __attribute__ ((__nothrow__ ));



extern char **__environ;

extern char **environ;





extern int execve (const char *__path, char *const __argv[],
     char *const __envp[]) __attribute__ ((__nothrow__ )) ;




extern int fexecve (int __fd, char *const __argv[], char *const __envp[])
     __attribute__ ((__nothrow__ )) ;




extern int execv (const char *__path, char *const __argv[])
     __attribute__ ((__nothrow__ )) ;



extern int execle (const char *__path, const char *__arg, ...)
     __attribute__ ((__nothrow__ )) ;



extern int execl (const char *__path, const char *__arg, ...)
     __attribute__ ((__nothrow__ )) ;



extern int execvp (const char *__file, char *const __argv[])
     __attribute__ ((__nothrow__ )) ;




extern int execlp (const char *__file, const char *__arg, ...)
     __attribute__ ((__nothrow__ )) ;




extern int execvpe (const char *__file, char *const __argv[],
      char *const __envp[])
     __attribute__ ((__nothrow__ )) ;





extern int nice (int __inc) __attribute__ ((__nothrow__ )) ;




extern void _exit (int __status) __attribute__ ((__noreturn__));





# 1 "../bits/confname.h" 1
# 24 "../bits/confname.h"
enum
  {
    _PC_LINK_MAX,

    _PC_MAX_CANON,

    _PC_MAX_INPUT,

    _PC_NAME_MAX,

    _PC_PATH_MAX,

    _PC_PIPE_BUF,

    _PC_CHOWN_RESTRICTED,

    _PC_NO_TRUNC,

    _PC_VDISABLE,

    _PC_SYNC_IO,

    _PC_ASYNC_IO,

    _PC_PRIO_IO,

    _PC_SOCK_MAXBUF,

    _PC_FILESIZEBITS,

    _PC_REC_INCR_XFER_SIZE,

    _PC_REC_MAX_XFER_SIZE,

    _PC_REC_MIN_XFER_SIZE,

    _PC_REC_XFER_ALIGN,

    _PC_ALLOC_SIZE_MIN,

    _PC_SYMLINK_MAX,

    _PC_2_SYMLINKS

  };


enum
  {
    _SC_ARG_MAX,

    _SC_CHILD_MAX,

    _SC_CLK_TCK,

    _SC_NGROUPS_MAX,

    _SC_OPEN_MAX,

    _SC_STREAM_MAX,

    _SC_TZNAME_MAX,

    _SC_JOB_CONTROL,

    _SC_SAVED_IDS,

    _SC_REALTIME_SIGNALS,

    _SC_PRIORITY_SCHEDULING,

    _SC_TIMERS,

    _SC_ASYNCHRONOUS_IO,

    _SC_PRIORITIZED_IO,

    _SC_SYNCHRONIZED_IO,

    _SC_FSYNC,

    _SC_MAPPED_FILES,

    _SC_MEMLOCK,

    _SC_MEMLOCK_RANGE,

    _SC_MEMORY_PROTECTION,

    _SC_MESSAGE_PASSING,

    _SC_SEMAPHORES,

    _SC_SHARED_MEMORY_OBJECTS,

    _SC_AIO_LISTIO_MAX,

    _SC_AIO_MAX,

    _SC_AIO_PRIO_DELTA_MAX,

    _SC_DELAYTIMER_MAX,

    _SC_MQ_OPEN_MAX,

    _SC_MQ_PRIO_MAX,

    _SC_VERSION,

    _SC_PAGESIZE,


    _SC_RTSIG_MAX,

    _SC_SEM_NSEMS_MAX,

    _SC_SEM_VALUE_MAX,

    _SC_SIGQUEUE_MAX,

    _SC_TIMER_MAX,




    _SC_BC_BASE_MAX,

    _SC_BC_DIM_MAX,

    _SC_BC_SCALE_MAX,

    _SC_BC_STRING_MAX,

    _SC_COLL_WEIGHTS_MAX,

    _SC_EQUIV_CLASS_MAX,

    _SC_EXPR_NEST_MAX,

    _SC_LINE_MAX,

    _SC_RE_DUP_MAX,

    _SC_CHARCLASS_NAME_MAX,


    _SC_2_VERSION,

    _SC_2_C_BIND,

    _SC_2_C_DEV,

    _SC_2_FORT_DEV,

    _SC_2_FORT_RUN,

    _SC_2_SW_DEV,

    _SC_2_LOCALEDEF,


    _SC_PII,

    _SC_PII_XTI,

    _SC_PII_SOCKET,

    _SC_PII_INTERNET,

    _SC_PII_OSI,

    _SC_POLL,

    _SC_SELECT,

    _SC_UIO_MAXIOV,

    _SC_IOV_MAX = _SC_UIO_MAXIOV,

    _SC_PII_INTERNET_STREAM,

    _SC_PII_INTERNET_DGRAM,

    _SC_PII_OSI_COTS,

    _SC_PII_OSI_CLTS,

    _SC_PII_OSI_M,

    _SC_T_IOV_MAX,



    _SC_THREADS,

    _SC_THREAD_SAFE_FUNCTIONS,

    _SC_GETGR_R_SIZE_MAX,

    _SC_GETPW_R_SIZE_MAX,

    _SC_LOGIN_NAME_MAX,

    _SC_TTY_NAME_MAX,

    _SC_THREAD_DESTRUCTOR_ITERATIONS,

    _SC_THREAD_KEYS_MAX,

    _SC_THREAD_STACK_MIN,

    _SC_THREAD_THREADS_MAX,

    _SC_THREAD_ATTR_STACKADDR,

    _SC_THREAD_ATTR_STACKSIZE,

    _SC_THREAD_PRIORITY_SCHEDULING,

    _SC_THREAD_PRIO_INHERIT,

    _SC_THREAD_PRIO_PROTECT,

    _SC_THREAD_PROCESS_SHARED,


    _SC_NPROCESSORS_CONF,

    _SC_NPROCESSORS_ONLN,

    _SC_PHYS_PAGES,

    _SC_AVPHYS_PAGES,

    _SC_ATEXIT_MAX,

    _SC_PASS_MAX,


    _SC_XOPEN_VERSION,

    _SC_XOPEN_XCU_VERSION,

    _SC_XOPEN_UNIX,

    _SC_XOPEN_CRYPT,

    _SC_XOPEN_ENH_I18N,

    _SC_XOPEN_SHM,


    _SC_2_CHAR_TERM,

    _SC_2_C_VERSION,

    _SC_2_UPE,


    _SC_XOPEN_XPG2,

    _SC_XOPEN_XPG3,

    _SC_XOPEN_XPG4,


    _SC_CHAR_BIT,

    _SC_CHAR_MAX,

    _SC_CHAR_MIN,

    _SC_INT_MAX,

    _SC_INT_MIN,

    _SC_LONG_BIT,

    _SC_WORD_BIT,

    _SC_MB_LEN_MAX,

    _SC_NZERO,

    _SC_SSIZE_MAX,

    _SC_SCHAR_MAX,

    _SC_SCHAR_MIN,

    _SC_SHRT_MAX,

    _SC_SHRT_MIN,

    _SC_UCHAR_MAX,

    _SC_UINT_MAX,

    _SC_ULONG_MAX,

    _SC_USHRT_MAX,


    _SC_NL_ARGMAX,

    _SC_NL_LANGMAX,

    _SC_NL_MSGMAX,

    _SC_NL_NMAX,

    _SC_NL_SETMAX,

    _SC_NL_TEXTMAX,


    _SC_XBS5_ILP32_OFF32,

    _SC_XBS5_ILP32_OFFBIG,

    _SC_XBS5_LP64_OFF64,

    _SC_XBS5_LPBIG_OFFBIG,


    _SC_XOPEN_LEGACY,

    _SC_XOPEN_REALTIME,

    _SC_XOPEN_REALTIME_THREADS,


    _SC_ADVISORY_INFO,

    _SC_BARRIERS,

    _SC_BASE,

    _SC_C_LANG_SUPPORT,

    _SC_C_LANG_SUPPORT_R,

    _SC_CLOCK_SELECTION,

    _SC_CPUTIME,

    _SC_THREAD_CPUTIME,

    _SC_DEVICE_IO,

    _SC_DEVICE_SPECIFIC,

    _SC_DEVICE_SPECIFIC_R,

    _SC_FD_MGMT,

    _SC_FIFO,

    _SC_PIPE,

    _SC_FILE_ATTRIBUTES,

    _SC_FILE_LOCKING,

    _SC_FILE_SYSTEM,

    _SC_MONOTONIC_CLOCK,

    _SC_MULTI_PROCESS,

    _SC_SINGLE_PROCESS,

    _SC_NETWORKING,

    _SC_READER_WRITER_LOCKS,

    _SC_SPIN_LOCKS,

    _SC_REGEXP,

    _SC_REGEX_VERSION,

    _SC_SHELL,

    _SC_SIGNALS,

    _SC_SPAWN,

    _SC_SPORADIC_SERVER,

    _SC_THREAD_SPORADIC_SERVER,

    _SC_SYSTEM_DATABASE,

    _SC_SYSTEM_DATABASE_R,

    _SC_TIMEOUTS,

    _SC_TYPED_MEMORY_OBJECTS,

    _SC_USER_GROUPS,

    _SC_USER_GROUPS_R,

    _SC_2_PBS,

    _SC_2_PBS_ACCOUNTING,

    _SC_2_PBS_LOCATE,

    _SC_2_PBS_MESSAGE,

    _SC_2_PBS_TRACK,

    _SC_SYMLOOP_MAX,

    _SC_STREAMS,

    _SC_2_PBS_CHECKPOINT,


    _SC_V6_ILP32_OFF32,

    _SC_V6_ILP32_OFFBIG,

    _SC_V6_LP64_OFF64,

    _SC_V6_LPBIG_OFFBIG,


    _SC_HOST_NAME_MAX,

    _SC_TRACE,

    _SC_TRACE_EVENT_FILTER,

    _SC_TRACE_INHERIT,

    _SC_TRACE_LOG,


    _SC_LEVEL1_ICACHE_SIZE,

    _SC_LEVEL1_ICACHE_ASSOC,

    _SC_LEVEL1_ICACHE_LINESIZE,

    _SC_LEVEL1_DCACHE_SIZE,

    _SC_LEVEL1_DCACHE_ASSOC,

    _SC_LEVEL1_DCACHE_LINESIZE,

    _SC_LEVEL2_CACHE_SIZE,

    _SC_LEVEL2_CACHE_ASSOC,

    _SC_LEVEL2_CACHE_LINESIZE,

    _SC_LEVEL3_CACHE_SIZE,

    _SC_LEVEL3_CACHE_ASSOC,

    _SC_LEVEL3_CACHE_LINESIZE,

    _SC_LEVEL4_CACHE_SIZE,

    _SC_LEVEL4_CACHE_ASSOC,

    _SC_LEVEL4_CACHE_LINESIZE,



    _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,

    _SC_RAW_SOCKETS,


    _SC_V7_ILP32_OFF32,

    _SC_V7_ILP32_OFFBIG,

    _SC_V7_LP64_OFF64,

    _SC_V7_LPBIG_OFFBIG,


    _SC_SS_REPL_MAX,


    _SC_TRACE_EVENT_NAME_MAX,

    _SC_TRACE_NAME_MAX,

    _SC_TRACE_SYS_MAX,

    _SC_TRACE_USER_EVENT_MAX,


    _SC_XOPEN_STREAMS,


    _SC_THREAD_ROBUST_PRIO_INHERIT,

    _SC_THREAD_ROBUST_PRIO_PROTECT,


    _SC_MINSIGSTKSZ,


    _SC_SIGSTKSZ

  };


enum
  {
    _CS_PATH,


    _CS_V6_WIDTH_RESTRICTED_ENVS,



    _CS_GNU_LIBC_VERSION,

    _CS_GNU_LIBPTHREAD_VERSION,


    _CS_V5_WIDTH_RESTRICTED_ENVS,



    _CS_V7_WIDTH_RESTRICTED_ENVS,



    _CS_LFS_CFLAGS = 1000,

    _CS_LFS_LDFLAGS,

    _CS_LFS_LIBS,

    _CS_LFS_LINTFLAGS,

    _CS_LFS64_CFLAGS,

    _CS_LFS64_LDFLAGS,

    _CS_LFS64_LIBS,

    _CS_LFS64_LINTFLAGS,


    _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,

    _CS_XBS5_ILP32_OFF32_LDFLAGS,

    _CS_XBS5_ILP32_OFF32_LIBS,

    _CS_XBS5_ILP32_OFF32_LINTFLAGS,

    _CS_XBS5_ILP32_OFFBIG_CFLAGS,

    _CS_XBS5_ILP32_OFFBIG_LDFLAGS,

    _CS_XBS5_ILP32_OFFBIG_LIBS,

    _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,

    _CS_XBS5_LP64_OFF64_CFLAGS,

    _CS_XBS5_LP64_OFF64_LDFLAGS,

    _CS_XBS5_LP64_OFF64_LIBS,

    _CS_XBS5_LP64_OFF64_LINTFLAGS,

    _CS_XBS5_LPBIG_OFFBIG_CFLAGS,

    _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,

    _CS_XBS5_LPBIG_OFFBIG_LIBS,

    _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,


    _CS_POSIX_V6_ILP32_OFF32_CFLAGS,

    _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,

    _CS_POSIX_V6_ILP32_OFF32_LIBS,

    _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,

    _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,

    _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,

    _CS_POSIX_V6_ILP32_OFFBIG_LIBS,

    _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,

    _CS_POSIX_V6_LP64_OFF64_CFLAGS,

    _CS_POSIX_V6_LP64_OFF64_LDFLAGS,

    _CS_POSIX_V6_LP64_OFF64_LIBS,

    _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,

    _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,

    _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,

    _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,

    _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,


    _CS_POSIX_V7_ILP32_OFF32_CFLAGS,

    _CS_POSIX_V7_ILP32_OFF32_LDFLAGS,

    _CS_POSIX_V7_ILP32_OFF32_LIBS,

    _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS,

    _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS,

    _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS,

    _CS_POSIX_V7_ILP32_OFFBIG_LIBS,

    _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS,

    _CS_POSIX_V7_LP64_OFF64_CFLAGS,

    _CS_POSIX_V7_LP64_OFF64_LDFLAGS,

    _CS_POSIX_V7_LP64_OFF64_LIBS,

    _CS_POSIX_V7_LP64_OFF64_LINTFLAGS,

    _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS,

    _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS,

    _CS_POSIX_V7_LPBIG_OFFBIG_LIBS,

    _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS,


    _CS_V6_ENV,

    _CS_V7_ENV

  };
# 631 "../posix/unistd.h" 2


extern long int pathconf (const char *__path, int __name)
     __attribute__ ((__nothrow__ )) ;


extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__ ));


extern long int sysconf (int __name) __attribute__ ((__nothrow__ ));



extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__ ))
    __attribute__ ((__access__ (__write_only__, 2, 3)));




extern __pid_t getpid (void) __attribute__ ((__nothrow__ ));


extern __pid_t getppid (void) __attribute__ ((__nothrow__ ));


extern __pid_t getpgrp (void) __attribute__ ((__nothrow__ ));


extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__ ));

extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__ ));






extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__ ));
# 682 "../posix/unistd.h"
extern int setpgrp (void) __attribute__ ((__nothrow__ ));






extern __pid_t setsid (void) __attribute__ ((__nothrow__ ));



extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__ ));



extern __uid_t getuid (void) __attribute__ ((__nothrow__ ));


extern __uid_t geteuid (void) __attribute__ ((__nothrow__ ));


extern __gid_t getgid (void) __attribute__ ((__nothrow__ ));


extern __gid_t getegid (void) __attribute__ ((__nothrow__ ));




extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__ ))
    __attribute__ ((__access__ (__write_only__, 2, 1)));


extern int group_member (__gid_t __gid) __attribute__ ((__nothrow__ ));






extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__ )) ;




extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__ )) ;




extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__ )) ;






extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__ )) ;




extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__ )) ;




extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__ )) ;





extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid)
     __attribute__ ((__nothrow__ ));



extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid)
     __attribute__ ((__nothrow__ ));



extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid)
     __attribute__ ((__nothrow__ )) ;



extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid)
     __attribute__ ((__nothrow__ )) ;






extern __pid_t fork (void) __attribute__ ((__nothrow__));







extern __pid_t vfork (void) __attribute__ ((__nothrow__ ));






extern __pid_t _Fork (void) __attribute__ ((__nothrow__ ));





extern char *ttyname (int __fd) __attribute__ ((__nothrow__ ));



extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
     __attribute__ ((__nothrow__ ))
     __attribute__ ((__access__ (__write_only__, 2, 3)));



extern int isatty (int __fd) __attribute__ ((__nothrow__ ));




extern int ttyslot (void) __attribute__ ((__nothrow__ ));




extern int link (const char *__from, const char *__to)
     __attribute__ ((__nothrow__ )) ;




extern int linkat (int __fromfd, const char *__from, int __tofd,
     const char *__to, int __flags)
     __attribute__ ((__nothrow__ )) ;




extern int symlink (const char *__from, const char *__to)
     __attribute__ ((__nothrow__ )) ;




extern ssize_t readlink (const char *__restrict __path,
    char *__restrict __buf, size_t __len)
     __attribute__ ((__nothrow__ ))
     __attribute__ ((__access__ (__write_only__, 2, 3)));





extern int symlinkat (const char *__from, int __tofd,
        const char *__to) __attribute__ ((__nothrow__ )) ;


extern ssize_t readlinkat (int __fd, const char *__restrict __path,
      char *__restrict __buf, size_t __len)
     __attribute__ ((__nothrow__ ))
     __attribute__ ((__access__ (__write_only__, 3, 4)));



extern int unlink (const char *__name) __attribute__ ((__nothrow__ )) ;



extern int unlinkat (int __fd, const char *__name, int __flag)
     __attribute__ ((__nothrow__ )) ;



extern int rmdir (const char *__path) __attribute__ ((__nothrow__ )) ;



extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__ ));


extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__ ));






extern char *getlogin (void);







extern int getlogin_r (char *__name, size_t __name_len)
    __attribute__ ((__access__ (__write_only__, 1, 2)));




extern int setlogin (const char *__name) __attribute__ ((__nothrow__ )) ;







# 1 "../include/bits/getopt_posix.h" 1
# 1 "../posix/bits/getopt_posix.h" 1
# 27 "../posix/bits/getopt_posix.h"
# 1 "../include/bits/getopt_core.h" 1
# 1 "../posix/bits/getopt_core.h" 1
# 28 "../posix/bits/getopt_core.h"








extern char *optarg;
# 50 "../posix/bits/getopt_core.h"
extern int optind;




extern int opterr;



extern int optopt;
# 91 "../posix/bits/getopt_core.h"
extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
       __attribute__ ((__nothrow__ )) ;


# 2 "../include/bits/getopt_core.h" 2
# 28 "../posix/bits/getopt_posix.h" 2


# 49 "../posix/bits/getopt_posix.h"

# 2 "../include/bits/getopt_posix.h" 2
# 904 "../posix/unistd.h" 2







extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__ ))
    __attribute__ ((__access__ (__write_only__, 1, 2)));






extern int sethostname (const char *__name, size_t __len)
     __attribute__ ((__nothrow__ )) __attribute__ ((__access__ (__read_only__, 1, 2)));



extern int sethostid (long int __id) __attribute__ ((__nothrow__ )) ;





extern int getdomainname (char *__name, size_t __len)
     __attribute__ ((__nothrow__ ))
     __attribute__ ((__access__ (__write_only__, 1, 2)));
extern int setdomainname (const char *__name, size_t __len)
     __attribute__ ((__nothrow__ )) __attribute__ ((__access__ (__read_only__, 1, 2)));




extern int vhangup (void) __attribute__ ((__nothrow__ ));


extern int revoke (const char *__file) __attribute__ ((__nothrow__ )) ;







extern int profil (unsigned short int *__sample_buffer, size_t __size,
     size_t __offset, unsigned int __scale)
     __attribute__ ((__nothrow__ )) ;





extern int acct (const char *__name) __attribute__ ((__nothrow__ ));



extern char *getusershell (void) __attribute__ ((__nothrow__ ));
extern void endusershell (void) __attribute__ ((__nothrow__ ));
extern void setusershell (void) __attribute__ ((__nothrow__ ));





extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__ )) ;






extern int chroot (const char *__path) __attribute__ ((__nothrow__ )) ;



extern char *getpass (const char *__prompt) ;







extern int fsync (int __fd);





extern int syncfs (int __fd) __attribute__ ((__nothrow__ ));






extern long int gethostid (void);


extern void sync (void) __attribute__ ((__nothrow__ ));





extern int getpagesize (void) __attribute__ ((__nothrow__ )) __attribute__ ((__const__));




extern int getdtablesize (void) __attribute__ ((__nothrow__ ));
# 1026 "../posix/unistd.h"
extern int truncate (const char *__file, __off_t __length)
     __attribute__ ((__nothrow__ )) ;
# 1038 "../posix/unistd.h"
extern int truncate64 (const char *__file, __off64_t __length)
     __attribute__ ((__nothrow__ )) ;
# 1049 "../posix/unistd.h"
extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__ )) ;
# 1059 "../posix/unistd.h"
extern int ftruncate64 (int __fd, __off64_t __length) __attribute__ ((__nothrow__ )) ;
# 1070 "../posix/unistd.h"
extern int brk (void *__addr) __attribute__ ((__nothrow__ )) ;





extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__ ));
# 1091 "../posix/unistd.h"
extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__ ));
# 1114 "../posix/unistd.h"
extern int lockf (int __fd, int __cmd, __off_t __len) ;
# 1124 "../posix/unistd.h"
extern int lockf64 (int __fd, int __cmd, __off64_t __len) ;
# 1142 "../posix/unistd.h"
ssize_t copy_file_range (int __infd, __off64_t *__pinoff,
    int __outfd, __off64_t *__poutoff,
    size_t __length, unsigned int __flags);





extern int fdatasync (int __fildes);
# 1159 "../posix/unistd.h"
extern char *crypt (const char *__key, const char *__salt)
     __attribute__ ((__nothrow__ )) ;







extern void swab (const void *__restrict __from, void *__restrict __to,
    ssize_t __n) __attribute__ ((__nothrow__ ))
    __attribute__ ((__access__ (__read_only__, 1, 3)))
    __attribute__ ((__access__ (__write_only__, 2, 3)));
# 1198 "../posix/unistd.h"
int getentropy (void *__buffer, size_t __length)
    __attribute__ ((__access__ (__write_only__, 1, 2)));
# 1208 "../posix/unistd.h"
# 1 "../include/bits/unistd_ext.h" 1
# 1 "../sysdeps/unix/sysv/linux/bits/unistd_ext.h" 1
# 34 "../sysdeps/unix/sysv/linux/bits/unistd_ext.h"
extern __pid_t gettid (void) __attribute__ ((__nothrow__ ));



# 1 "/usr/include/linux/close_range.h" 1 3 4
# 39 "../sysdeps/unix/sysv/linux/bits/unistd_ext.h" 2
# 56 "../sysdeps/unix/sysv/linux/bits/unistd_ext.h"
extern int close_range (unsigned int __fd, unsigned int __max_fd,
   int __flags) __attribute__ ((__nothrow__ ));
# 2 "../include/bits/unistd_ext.h" 2


extern int __close_range (unsigned int lowfd, unsigned int highfd, int flags);
extern __typeof (__close_range) __close_range __attribute__ ((visibility ("hidden")));;
# 1209 "../posix/unistd.h" 2


# 3 "../include/unistd.h" 2



extern __typeof (_exit) _exit __attribute__ ((visibility ("hidden"), __noreturn__));



extern __typeof (alarm) alarm __attribute__ ((visibility ("hidden")));
extern size_t __confstr (int name, char *buf, size_t len);
extern __typeof (__confstr) __confstr __attribute__ ((visibility ("hidden")));
extern __typeof (confstr) confstr __attribute__ ((visibility ("hidden")));
extern __typeof (execl) execl __attribute__ ((visibility ("hidden")));
extern __typeof (execle) execle __attribute__ ((visibility ("hidden")));
extern __typeof (execlp) execlp __attribute__ ((visibility ("hidden")));
extern __typeof (execvp) execvp __attribute__ ((visibility ("hidden")));
extern __typeof (getpid) getpid __attribute__ ((visibility ("hidden")));
extern __typeof (getsid) getsid __attribute__ ((visibility ("hidden")));
extern __typeof (getdomainname) getdomainname __attribute__ ((visibility ("hidden")));
extern __typeof (getlogin_r) __getlogin_r ;
extern __typeof (__getlogin_r) __getlogin_r __attribute__ ((visibility ("hidden")));
extern __typeof (getlogin_r) getlogin_r __attribute__ ((visibility ("hidden")));
extern __typeof (seteuid) seteuid __attribute__ ((visibility ("hidden")));
extern __typeof (setegid) setegid __attribute__ ((visibility ("hidden")));
extern __typeof (tcgetpgrp) tcgetpgrp __attribute__ ((visibility ("hidden")));
extern __typeof (readlinkat) readlinkat __attribute__ ((visibility ("hidden")));
extern __typeof (fsync) fsync __attribute__ ((visibility ("hidden")));
extern __typeof (fdatasync) fdatasync __attribute__ ((visibility ("hidden")));


extern int __access (const char *__name, int __type);
extern __typeof (__access) __access __attribute__ ((visibility ("hidden")));
extern int __euidaccess (const char *__name, int __type);
extern int __faccessat (int __fd, const char *__file, int __type, int __flag);
extern int __faccessat_noerrno (int __fd, const char *__file, int __type,
           int __flag);
extern __off64_t __lseek64 (int __fd, __off64_t __offset, int __whence);
extern __off_t __lseek (int __fd, __off_t __offset, int __whence);
extern __typeof (__lseek) __lseek __attribute__ ((visibility ("hidden")));
extern __off_t __libc_lseek (int __fd, __off_t __offset, int __whence);
extern __off64_t __libc_lseek64 (int __fd, __off64_t __offset, int __whence);
extern ssize_t __pread (int __fd, void *__buf, size_t __nbytes,
   __off_t __offset);
extern __typeof (__pread) __pread __attribute__ ((visibility ("hidden")));;
extern ssize_t __libc_pread (int __fd, void *__buf, size_t __nbytes,
        __off_t __offset);
extern ssize_t __pread64 (int __fd, void *__buf, size_t __nbytes,
     __off64_t __offset);
extern __typeof (__pread64) __pread64 __attribute__ ((visibility ("hidden")));;
extern ssize_t __libc_pread64 (int __fd, void *__buf, size_t __nbytes,
          __off64_t __offset);
extern ssize_t __pwrite (int __fd, const void *__buf, size_t __n,
    __off_t __offset);
extern __typeof (__pwrite) __pwrite __attribute__ ((visibility ("hidden")));
extern ssize_t __libc_pwrite (int __fd, const void *__buf, size_t __n,
         __off_t __offset);
extern ssize_t __pwrite64 (int __fd, const void *__buf, size_t __n,
      __off64_t __offset);
extern __typeof (__pwrite64) __pwrite64 __attribute__ ((visibility ("hidden")));
extern ssize_t __libc_pwrite64 (int __fd, const void *__buf, size_t __n,
    __off64_t __offset);
extern ssize_t __libc_read (int __fd, void *__buf, size_t __n);
extern __typeof (__libc_read) __libc_read __attribute__ ((visibility ("hidden")));
extern __typeof (read) read __attribute__ ((visibility ("hidden")));
extern ssize_t __libc_write (int __fd, const void *__buf, size_t __n);
extern __typeof (__libc_write) __libc_write __attribute__ ((visibility ("hidden")));
extern __typeof (write) write __attribute__ ((visibility ("hidden")));
extern int __pipe (int __pipedes[2]);
extern __typeof (__pipe) __pipe __attribute__ ((visibility ("hidden")));
extern int __pipe2 (int __pipedes[2], int __flags) ;
extern unsigned int __sleep (unsigned int __seconds) ;
extern int __chown (const char *__file,
      __uid_t __owner, __gid_t __group);
extern __typeof (__chown) __chown __attribute__ ((visibility ("hidden")));
extern int __fchown (int __fd,
       __uid_t __owner, __gid_t __group);
extern int __lchown (const char *__file, __uid_t __owner,
       __gid_t __group);
extern int __chdir (const char *__path) ;
extern int __fchdir (int __fd) ;
extern char *__getcwd (char *__buf, size_t __size);
extern __typeof (__getcwd) __getcwd __attribute__ ((visibility ("hidden")));
extern int __rmdir (const char *__path) ;
extern int __execvpe (const char *file, char *const argv[],
        char *const envp[]) ;
extern int __execvpex (const char *file, char *const argv[],
         char *const envp[]) ;







char *__canonicalize_directory_name_internal (const char *__thisdir,
           char *__buf,
           size_t __size) ;

extern int __dup (int __fd);
extern __typeof (__dup) __dup __attribute__ ((visibility ("hidden")));
extern int __dup2 (int __fd, int __fd2);
extern __typeof (__dup2) __dup2 __attribute__ ((visibility ("hidden")));
extern int __dup3 (int __fd, int __fd2, int flags);
extern __typeof (__dup3) __dup3 __attribute__ ((visibility ("hidden")));
extern int __execve (const char *__path, char *const __argv[],
       char *const __envp[]) ;
extern int __execveat (int dirfd, const char *__path, char *const __argv[],
         char *const __envp[], int flags) ;
extern long int __pathconf (const char *__path, int __name);
extern long int __fpathconf (int __fd, int __name);
extern long int __sysconf (int __name);
extern __typeof (__sysconf) __sysconf __attribute__ ((visibility ("hidden")));
extern __pid_t __getpid (void);
extern __typeof (__getpid) __getpid __attribute__ ((visibility ("hidden")));
extern __pid_t __getppid (void);
extern __pid_t __setsid (void) ;
extern __uid_t __getuid (void) ;
extern __uid_t __geteuid (void) ;
extern __gid_t __getgid (void) ;
extern __gid_t __getegid (void) ;
extern int __getgroups (int __size, __gid_t __list[]) ;
extern __typeof (__getpgid) __getpgid __attribute__ ((visibility ("hidden")));
extern int __group_member (__gid_t __gid) ;
extern int __setuid (__uid_t __uid);
extern int __setreuid (__uid_t __ruid, __uid_t __euid);
extern int __setgid (__gid_t __gid);
extern int __setpgid (__pid_t __pid, __pid_t __pgid);
extern __typeof (__setpgid) __setpgid __attribute__ ((visibility ("hidden")));
extern int __setregid (__gid_t __rgid, __gid_t __egid);
extern int __getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid);
extern int __getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid);
extern int __setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid);
extern int __setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid);
extern __typeof (__getresuid) __getresuid __attribute__ ((visibility ("hidden")));
extern __typeof (__getresgid) __getresgid __attribute__ ((visibility ("hidden")));
extern __typeof (__setresuid) __setresuid __attribute__ ((visibility ("hidden")));
extern __typeof (__setresgid) __setresgid __attribute__ ((visibility ("hidden")));
extern __pid_t __vfork (void);
extern __typeof (__vfork) __vfork __attribute__ ((visibility ("hidden")));
extern int __ttyname_r (int __fd, char *__buf, size_t __buflen);
extern __typeof (__ttyname_r) __ttyname_r __attribute__ ((visibility ("hidden")));
extern __pid_t _Fork (void);
extern __typeof (_Fork) _Fork __attribute__ ((visibility ("hidden")));;
extern int __isatty (int __fd) ;
extern int __link (const char *__from, const char *__to);
extern int __symlink (const char *__from, const char *__to);
extern ssize_t __readlink (const char *__path, char *__buf, size_t __len)
     ;
extern int __unlink (const char *__name) ;
extern int __gethostname (char *__name, size_t __len) ;
extern int __revoke (const char *__file);
extern int __profil (unsigned short int *__sample_buffer, size_t __size,
       size_t __offset, unsigned int __scale)
     ;
extern int __getdtablesize (void) ;
extern int __brk (void *__addr) ;
extern int __close (int __fd);
extern __typeof (__close) __close __attribute__ ((visibility ("hidden")));
extern int __libc_close (int __fd);
extern _Bool __closefrom_fallback (int __lowfd, _Bool) ;
extern ssize_t __read (int __fd, void *__buf, size_t __nbytes);
extern __typeof (__read) __read __attribute__ ((visibility ("hidden")));
extern ssize_t __write (int __fd, const void *__buf, size_t __n);
extern __typeof (__write) __write __attribute__ ((visibility ("hidden")));
extern __pid_t __fork (void);
extern __typeof (__fork) __fork __attribute__ ((visibility ("hidden")));
extern int __getpagesize (void) __attribute__ ((__const__));
extern __typeof (__getpagesize) __getpagesize __attribute__ ((visibility ("hidden")));
extern int __ftruncate (int __fd, __off_t __length) ;
extern int __ftruncate64 (int __fd, __off64_t __length) ;
extern int __truncate (const char *path, __off_t __length);
extern void *__sbrk (intptr_t __delta);
extern __typeof (__sbrk) __sbrk __attribute__ ((visibility ("hidden")));







extern int __libc_enable_secure __attribute__ ((section (".data.rel.ro")));
extern int __libc_enable_secure_decided;




extern void __libc_check_standard_fds (void) ;



extern __pid_t __libc_fork (void);



extern int __libc_pause (void);

extern int __getlogin_r_loginuid (char *name, size_t namesize)
     ;
# 24 "../sysdeps/s390/s390-64/__longjmp.c" 2
# 1 "../include/stap-probe.h" 1
# 24 "../include/stap-probe.h"
# 1 "../sysdeps/generic/stap-probe-machine.h" 1
# 25 "../include/stap-probe.h" 2
# 1 "/usr/include/sys/sdt.h" 1 3 4
# 187 "/usr/include/sys/sdt.h" 3 4

# 187 "/usr/include/sys/sdt.h" 3 4
__extension__ extern unsigned long long __sdt_unsp;
# 248 "/usr/include/sys/sdt.h" 3 4
# 1 "/usr/include/sys/sdt-config.h" 1 3 4
# 249 "/usr/include/sys/sdt.h" 2 3 4
# 26 "../include/stap-probe.h" 2
# 25 "../sysdeps/s390/s390-64/__longjmp.c" 2




# 28 "../sysdeps/s390/s390-64/__longjmp.c"
void
__longjmp (__jmp_buf env, int val)
{

  uintptr_t guard = ((struct pthread *) __builtin_thread_pointer ())->header.stack_guard;






  register long int r2 __asm__ ("%r2") = val == 0 ? 1 : val;

  register uintptr_t r3 __asm__ ("%r3") = guard;
  register void *r1 __asm__ ("%r1") = (void *) env;


  __asm__ __volatile__ (



   "lmg  %%r4,%%r5,64(%1)\n\t"
   "xgr  %%r4,%2\n\t"
   "xgr  %%r5,%2\n\t"
   ".altmacro" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".macro _SDT_SIGN x" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".pushsection .note.stapsdt" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  "\"\"" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  "\"note\"" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".iflt \\x" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".ascii \"-\"" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".endif" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".popsection" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".endm" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".macro _SDT_SIZE_ x" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".pushsection .note.stapsdt" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  "\"\"" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  "\"note\"" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".ascii \"\\x\"" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".popsection" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".endm" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".macro _SDT_SIZE x" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  "_SDT_SIZE_ %%((-(-\\x*((-\\x>0)-(-\\x<0))))>>8)" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".endm" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".macro _SDT_TYPE_ x" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".pushsection .note.stapsdt" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  "\"\"" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  "\"note\"" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".ifc 8" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  "\\x" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".ascii \"f\"" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".endif" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".ascii \"@\"" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".popsection" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".endm" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".macro _SDT_TYPE x" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  "_SDT_TYPE_ %%((\\x)&(0xff))" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".endm" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  "990: nop 0" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".pushsection .note.stapsdt" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  "\"?\"" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  "\"note\"" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".balign 4" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".4byte 992f-991f" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  "994f-993f" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  "3" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  "991: .asciz \"stapsdt\"" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  "992: .balign 4" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  "993: .8byte 990b" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".8byte _.stapsdt.base" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".8byte 0" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".asciz \"libc\"" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".asciz \"longjmp\"" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  8@%1 -4@%0 8@%%r4 ".ascii \"\\x00\"" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".purgem _SDT_SIGN" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".purgem _SDT_SIZE_" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".purgem _SDT_SIZE" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".purgem _SDT_TYPE_" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".purgem _SDT_TYPE" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  "994: .balign 4" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".popsection" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".ifndef _.stapsdt.base" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".pushsection .stapsdt.base" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  "\"aG\"" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  "\"progbits\"" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".stapsdt.base" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  "comdat" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".weak _.stapsdt.base" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".hidden _.stapsdt.base" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  "_.stapsdt.base: .space 1" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".size _.stapsdt.base" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  "1" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".popsection" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c"
  ".endif" 
# 52 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n"





   
# 58 "../sysdeps/s390/s390-64/__longjmp.c"
  "ld    %%f8,80(%1)\n\t"
   "ld    %%f9,88(%1)\n\t"
   "ld    %%f10,96(%1)\n\t"
   "ld    %%f11,104(%1)\n\t"
   "ld    %%f12,112(%1)\n\t"
   "ld    %%f13,120(%1)\n\t"
   "ld    %%f14,128(%1)\n\t"
   "ld    %%f15,136(%1)\n\t"



   "lmg  %%r6,%%r13,0(%1)\n\t"
   "lgr  %%r15,%%r5\n\t"
   ".altmacro" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".macro _SDT_SIGN x" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".pushsection .note.stapsdt" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  "\"\"" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  "\"note\"" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".iflt \\x" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".ascii \"-\"" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".endif" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".popsection" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".endm" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".macro _SDT_SIZE_ x" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".pushsection .note.stapsdt" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  "\"\"" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  "\"note\"" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".ascii \"\\x\"" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".popsection" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".endm" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".macro _SDT_SIZE x" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  "_SDT_SIZE_ %%((-(-\\x*((-\\x>0)-(-\\x<0))))>>8)" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".endm" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".macro _SDT_TYPE_ x" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".pushsection .note.stapsdt" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  "\"\"" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  "\"note\"" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".ifc 8" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  "\\x" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".ascii \"f\"" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".endif" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".ascii \"@\"" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".popsection" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".endm" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".macro _SDT_TYPE x" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  "_SDT_TYPE_ %%((\\x)&(0xff))" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".endm" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  "990: nop 0" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".pushsection .note.stapsdt" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  "\"?\"" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  "\"note\"" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".balign 4" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".4byte 992f-991f" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  "994f-993f" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  "3" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  "991: .asciz \"stapsdt\"" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  "992: .balign 4" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  "993: .8byte 990b" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".8byte _.stapsdt.base" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".8byte 0" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".asciz \"libc\"" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".asciz \"longjmp_target\"" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  8@%1 -4@%0 8@%%r4 ".ascii \"\\x00\"" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".purgem _SDT_SIGN" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".purgem _SDT_SIZE_" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".purgem _SDT_SIZE" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".purgem _SDT_TYPE_" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".purgem _SDT_TYPE" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  "994: .balign 4" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".popsection" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".ifndef _.stapsdt.base" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".pushsection .stapsdt.base" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  "\"aG\"" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  "\"progbits\"" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".stapsdt.base" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  "comdat" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".weak _.stapsdt.base" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".hidden _.stapsdt.base" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  "_.stapsdt.base: .space 1" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".size _.stapsdt.base" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "," 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  "1" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".popsection" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c"
  ".endif" 
# 71 "../sysdeps/s390/s390-64/__longjmp.c" 3 4
  "\n"
   
# 72 "../sysdeps/s390/s390-64/__longjmp.c"
  "br   %%r4"





   : : "r" (r2),

     "r" (r1), "r" (r3)



   );


  for (;;);
}

[-- Attachment #3: directives.i --]
[-- Type: text/plain, Size: 1032188 bytes --]

# 0 "../sysdeps/s390/s390-64/__longjmp.c"
# 1 "/root/git/setjmp//"
# 0 "<built-in>"
#define __STDC__ 1
# 0 "<built-in>"
#define __STDC_VERSION__ 201112L
# 0 "<built-in>"
#define __STDC_UTF_16__ 1
# 0 "<built-in>"
#define __STDC_UTF_32__ 1
# 0 "<built-in>"
#define __STDC_HOSTED__ 1
# 0 "<built-in>"
#define __GNUC__ 11
# 0 "<built-in>"
#define __GNUC_MINOR__ 2
# 0 "<built-in>"
#define __GNUC_PATCHLEVEL__ 1
# 0 "<built-in>"
#define __VERSION__ "11.2.1 20211019 (Red Hat 11.2.1-6)"
# 0 "<built-in>"
#define __GNUC_RH_RELEASE__ 6
# 0 "<built-in>"
#define __ATOMIC_RELAXED 0
# 0 "<built-in>"
#define __ATOMIC_SEQ_CST 5
# 0 "<built-in>"
#define __ATOMIC_ACQUIRE 2
# 0 "<built-in>"
#define __ATOMIC_RELEASE 3
# 0 "<built-in>"
#define __ATOMIC_ACQ_REL 4
# 0 "<built-in>"
#define __ATOMIC_CONSUME 1
# 0 "<built-in>"
#define __OPTIMIZE__ 1
# 0 "<built-in>"
#define __FINITE_MATH_ONLY__ 0
# 0 "<built-in>"
#define _LP64 1
# 0 "<built-in>"
#define __LP64__ 1
# 0 "<built-in>"
#define __SIZEOF_INT__ 4
# 0 "<built-in>"
#define __SIZEOF_LONG__ 8
# 0 "<built-in>"
#define __SIZEOF_LONG_LONG__ 8
# 0 "<built-in>"
#define __SIZEOF_SHORT__ 2
# 0 "<built-in>"
#define __SIZEOF_FLOAT__ 4
# 0 "<built-in>"
#define __SIZEOF_DOUBLE__ 8
# 0 "<built-in>"
#define __SIZEOF_LONG_DOUBLE__ 16
# 0 "<built-in>"
#define __SIZEOF_SIZE_T__ 8
# 0 "<built-in>"
#define __CHAR_BIT__ 8
# 0 "<built-in>"
#define __BIGGEST_ALIGNMENT__ 8
# 0 "<built-in>"
#define __ORDER_LITTLE_ENDIAN__ 1234
# 0 "<built-in>"
#define __ORDER_BIG_ENDIAN__ 4321
# 0 "<built-in>"
#define __ORDER_PDP_ENDIAN__ 3412
# 0 "<built-in>"
#define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__
# 0 "<built-in>"
#define __FLOAT_WORD_ORDER__ __ORDER_BIG_ENDIAN__
# 0 "<built-in>"
#define __SIZEOF_POINTER__ 8
# 0 "<built-in>"
#define __GNUC_EXECUTION_CHARSET_NAME "UTF-8"
# 0 "<built-in>"
#define __GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32BE"
# 0 "<built-in>"
#define __SIZE_TYPE__ long unsigned int
# 0 "<built-in>"
#define __PTRDIFF_TYPE__ long int
# 0 "<built-in>"
#define __WCHAR_TYPE__ int
# 0 "<built-in>"
#define __WINT_TYPE__ unsigned int
# 0 "<built-in>"
#define __INTMAX_TYPE__ long int
# 0 "<built-in>"
#define __UINTMAX_TYPE__ long unsigned int
# 0 "<built-in>"
#define __CHAR16_TYPE__ short unsigned int
# 0 "<built-in>"
#define __CHAR32_TYPE__ unsigned int
# 0 "<built-in>"
#define __SIG_ATOMIC_TYPE__ int
# 0 "<built-in>"
#define __INT8_TYPE__ signed char
# 0 "<built-in>"
#define __INT16_TYPE__ short int
# 0 "<built-in>"
#define __INT32_TYPE__ int
# 0 "<built-in>"
#define __INT64_TYPE__ long int
# 0 "<built-in>"
#define __UINT8_TYPE__ unsigned char
# 0 "<built-in>"
#define __UINT16_TYPE__ short unsigned int
# 0 "<built-in>"
#define __UINT32_TYPE__ unsigned int
# 0 "<built-in>"
#define __UINT64_TYPE__ long unsigned int
# 0 "<built-in>"
#define __INT_LEAST8_TYPE__ signed char
# 0 "<built-in>"
#define __INT_LEAST16_TYPE__ short int
# 0 "<built-in>"
#define __INT_LEAST32_TYPE__ int
# 0 "<built-in>"
#define __INT_LEAST64_TYPE__ long int
# 0 "<built-in>"
#define __UINT_LEAST8_TYPE__ unsigned char
# 0 "<built-in>"
#define __UINT_LEAST16_TYPE__ short unsigned int
# 0 "<built-in>"
#define __UINT_LEAST32_TYPE__ unsigned int
# 0 "<built-in>"
#define __UINT_LEAST64_TYPE__ long unsigned int
# 0 "<built-in>"
#define __INT_FAST8_TYPE__ signed char
# 0 "<built-in>"
#define __INT_FAST16_TYPE__ long int
# 0 "<built-in>"
#define __INT_FAST32_TYPE__ long int
# 0 "<built-in>"
#define __INT_FAST64_TYPE__ long int
# 0 "<built-in>"
#define __UINT_FAST8_TYPE__ unsigned char
# 0 "<built-in>"
#define __UINT_FAST16_TYPE__ long unsigned int
# 0 "<built-in>"
#define __UINT_FAST32_TYPE__ long unsigned int
# 0 "<built-in>"
#define __UINT_FAST64_TYPE__ long unsigned int
# 0 "<built-in>"
#define __INTPTR_TYPE__ long int
# 0 "<built-in>"
#define __UINTPTR_TYPE__ long unsigned int
# 0 "<built-in>"
#define __GXX_ABI_VERSION 1016
# 0 "<built-in>"
#define __SCHAR_MAX__ 0x7f
# 0 "<built-in>"
#define __SHRT_MAX__ 0x7fff
# 0 "<built-in>"
#define __INT_MAX__ 0x7fffffff
# 0 "<built-in>"
#define __LONG_MAX__ 0x7fffffffffffffffL
# 0 "<built-in>"
#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL
# 0 "<built-in>"
#define __WCHAR_MAX__ 0x7fffffff
# 0 "<built-in>"
#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1)
# 0 "<built-in>"
#define __WINT_MAX__ 0xffffffffU
# 0 "<built-in>"
#define __WINT_MIN__ 0U
# 0 "<built-in>"
#define __PTRDIFF_MAX__ 0x7fffffffffffffffL
# 0 "<built-in>"
#define __SIZE_MAX__ 0xffffffffffffffffUL
# 0 "<built-in>"
#define __SCHAR_WIDTH__ 8
# 0 "<built-in>"
#define __SHRT_WIDTH__ 16
# 0 "<built-in>"
#define __INT_WIDTH__ 32
# 0 "<built-in>"
#define __LONG_WIDTH__ 64
# 0 "<built-in>"
#define __LONG_LONG_WIDTH__ 64
# 0 "<built-in>"
#define __WCHAR_WIDTH__ 32
# 0 "<built-in>"
#define __WINT_WIDTH__ 32
# 0 "<built-in>"
#define __PTRDIFF_WIDTH__ 64
# 0 "<built-in>"
#define __SIZE_WIDTH__ 64
# 0 "<built-in>"
#define __INTMAX_MAX__ 0x7fffffffffffffffL
# 0 "<built-in>"
#define __INTMAX_C(c) c ## L
# 0 "<built-in>"
#define __UINTMAX_MAX__ 0xffffffffffffffffUL
# 0 "<built-in>"
#define __UINTMAX_C(c) c ## UL
# 0 "<built-in>"
#define __INTMAX_WIDTH__ 64
# 0 "<built-in>"
#define __SIG_ATOMIC_MAX__ 0x7fffffff
# 0 "<built-in>"
#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)
# 0 "<built-in>"
#define __SIG_ATOMIC_WIDTH__ 32
# 0 "<built-in>"
#define __INT8_MAX__ 0x7f
# 0 "<built-in>"
#define __INT16_MAX__ 0x7fff
# 0 "<built-in>"
#define __INT32_MAX__ 0x7fffffff
# 0 "<built-in>"
#define __INT64_MAX__ 0x7fffffffffffffffL
# 0 "<built-in>"
#define __UINT8_MAX__ 0xff
# 0 "<built-in>"
#define __UINT16_MAX__ 0xffff
# 0 "<built-in>"
#define __UINT32_MAX__ 0xffffffffU
# 0 "<built-in>"
#define __UINT64_MAX__ 0xffffffffffffffffUL
# 0 "<built-in>"
#define __INT_LEAST8_MAX__ 0x7f
# 0 "<built-in>"
#define __INT8_C(c) c
# 0 "<built-in>"
#define __INT_LEAST8_WIDTH__ 8
# 0 "<built-in>"
#define __INT_LEAST16_MAX__ 0x7fff
# 0 "<built-in>"
#define __INT16_C(c) c
# 0 "<built-in>"
#define __INT_LEAST16_WIDTH__ 16
# 0 "<built-in>"
#define __INT_LEAST32_MAX__ 0x7fffffff
# 0 "<built-in>"
#define __INT32_C(c) c
# 0 "<built-in>"
#define __INT_LEAST32_WIDTH__ 32
# 0 "<built-in>"
#define __INT_LEAST64_MAX__ 0x7fffffffffffffffL
# 0 "<built-in>"
#define __INT64_C(c) c ## L
# 0 "<built-in>"
#define __INT_LEAST64_WIDTH__ 64
# 0 "<built-in>"
#define __UINT_LEAST8_MAX__ 0xff
# 0 "<built-in>"
#define __UINT8_C(c) c
# 0 "<built-in>"
#define __UINT_LEAST16_MAX__ 0xffff
# 0 "<built-in>"
#define __UINT16_C(c) c
# 0 "<built-in>"
#define __UINT_LEAST32_MAX__ 0xffffffffU
# 0 "<built-in>"
#define __UINT32_C(c) c ## U
# 0 "<built-in>"
#define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL
# 0 "<built-in>"
#define __UINT64_C(c) c ## UL
# 0 "<built-in>"
#define __INT_FAST8_MAX__ 0x7f
# 0 "<built-in>"
#define __INT_FAST8_WIDTH__ 8
# 0 "<built-in>"
#define __INT_FAST16_MAX__ 0x7fffffffffffffffL
# 0 "<built-in>"
#define __INT_FAST16_WIDTH__ 64
# 0 "<built-in>"
#define __INT_FAST32_MAX__ 0x7fffffffffffffffL
# 0 "<built-in>"
#define __INT_FAST32_WIDTH__ 64
# 0 "<built-in>"
#define __INT_FAST64_MAX__ 0x7fffffffffffffffL
# 0 "<built-in>"
#define __INT_FAST64_WIDTH__ 64
# 0 "<built-in>"
#define __UINT_FAST8_MAX__ 0xff
# 0 "<built-in>"
#define __UINT_FAST16_MAX__ 0xffffffffffffffffUL
# 0 "<built-in>"
#define __UINT_FAST32_MAX__ 0xffffffffffffffffUL
# 0 "<built-in>"
#define __UINT_FAST64_MAX__ 0xffffffffffffffffUL
# 0 "<built-in>"
#define __INTPTR_MAX__ 0x7fffffffffffffffL
# 0 "<built-in>"
#define __INTPTR_WIDTH__ 64
# 0 "<built-in>"
#define __UINTPTR_MAX__ 0xffffffffffffffffUL
# 0 "<built-in>"
#define __GCC_IEC_559 2
# 0 "<built-in>"
#define __GCC_IEC_559_COMPLEX 2
# 0 "<built-in>"
#define __FLT_EVAL_METHOD__ 0
# 0 "<built-in>"
#define __FLT_EVAL_METHOD_TS_18661_3__ 0
# 0 "<built-in>"
#define __DEC_EVAL_METHOD__ 2
# 0 "<built-in>"
#define __FLT_RADIX__ 2
# 0 "<built-in>"
#define __FLT_MANT_DIG__ 24
# 0 "<built-in>"
#define __FLT_DIG__ 6
# 0 "<built-in>"
#define __FLT_MIN_EXP__ (-125)
# 0 "<built-in>"
#define __FLT_MIN_10_EXP__ (-37)
# 0 "<built-in>"
#define __FLT_MAX_EXP__ 128
# 0 "<built-in>"
#define __FLT_MAX_10_EXP__ 38
# 0 "<built-in>"
#define __FLT_DECIMAL_DIG__ 9
# 0 "<built-in>"
#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F
# 0 "<built-in>"
#define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F
# 0 "<built-in>"
#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F
# 0 "<built-in>"
#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F
# 0 "<built-in>"
#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F
# 0 "<built-in>"
#define __FLT_HAS_DENORM__ 1
# 0 "<built-in>"
#define __FLT_HAS_INFINITY__ 1
# 0 "<built-in>"
#define __FLT_HAS_QUIET_NAN__ 1
# 0 "<built-in>"
#define __FP_FAST_FMAF 1
# 0 "<built-in>"
#define __FLT_IS_IEC_60559__ 2
# 0 "<built-in>"
#define __DBL_MANT_DIG__ 53
# 0 "<built-in>"
#define __DBL_DIG__ 15
# 0 "<built-in>"
#define __DBL_MIN_EXP__ (-1021)
# 0 "<built-in>"
#define __DBL_MIN_10_EXP__ (-307)
# 0 "<built-in>"
#define __DBL_MAX_EXP__ 1024
# 0 "<built-in>"
#define __DBL_MAX_10_EXP__ 308
# 0 "<built-in>"
#define __DBL_DECIMAL_DIG__ 17
# 0 "<built-in>"
#define __DBL_MAX__ ((double)1.79769313486231570814527423731704357e+308L)
# 0 "<built-in>"
#define __DBL_NORM_MAX__ ((double)1.79769313486231570814527423731704357e+308L)
# 0 "<built-in>"
#define __DBL_MIN__ ((double)2.22507385850720138309023271733240406e-308L)
# 0 "<built-in>"
#define __DBL_EPSILON__ ((double)2.22044604925031308084726333618164062e-16L)
# 0 "<built-in>"
#define __DBL_DENORM_MIN__ ((double)4.94065645841246544176568792868221372e-324L)
# 0 "<built-in>"
#define __DBL_HAS_DENORM__ 1
# 0 "<built-in>"
#define __DBL_HAS_INFINITY__ 1
# 0 "<built-in>"
#define __DBL_HAS_QUIET_NAN__ 1
# 0 "<built-in>"
#define __FP_FAST_FMA 1
# 0 "<built-in>"
#define __DBL_IS_IEC_60559__ 2
# 0 "<built-in>"
#define __LDBL_MANT_DIG__ 113
# 0 "<built-in>"
#define __LDBL_DIG__ 33
# 0 "<built-in>"
#define __LDBL_MIN_EXP__ (-16381)
# 0 "<built-in>"
#define __LDBL_MIN_10_EXP__ (-4931)
# 0 "<built-in>"
#define __LDBL_MAX_EXP__ 16384
# 0 "<built-in>"
#define __LDBL_MAX_10_EXP__ 4932
# 0 "<built-in>"
#define __DECIMAL_DIG__ 36
# 0 "<built-in>"
#define __LDBL_DECIMAL_DIG__ 36
# 0 "<built-in>"
#define __LDBL_MAX__ 1.18973149535723176508575932662800702e+4932L
# 0 "<built-in>"
#define __LDBL_NORM_MAX__ 1.18973149535723176508575932662800702e+4932L
# 0 "<built-in>"
#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L
# 0 "<built-in>"
#define __LDBL_EPSILON__ 1.92592994438723585305597794258492732e-34L
# 0 "<built-in>"
#define __LDBL_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966L
# 0 "<built-in>"
#define __LDBL_HAS_DENORM__ 1
# 0 "<built-in>"
#define __LDBL_HAS_INFINITY__ 1
# 0 "<built-in>"
#define __LDBL_HAS_QUIET_NAN__ 1
# 0 "<built-in>"
#define __LDBL_IS_IEC_60559__ 2
# 0 "<built-in>"
#define __FLT32_MANT_DIG__ 24
# 0 "<built-in>"
#define __FLT32_DIG__ 6
# 0 "<built-in>"
#define __FLT32_MIN_EXP__ (-125)
# 0 "<built-in>"
#define __FLT32_MIN_10_EXP__ (-37)
# 0 "<built-in>"
#define __FLT32_MAX_EXP__ 128
# 0 "<built-in>"
#define __FLT32_MAX_10_EXP__ 38
# 0 "<built-in>"
#define __FLT32_DECIMAL_DIG__ 9
# 0 "<built-in>"
#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32
# 0 "<built-in>"
#define __FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32
# 0 "<built-in>"
#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32
# 0 "<built-in>"
#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32
# 0 "<built-in>"
#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32
# 0 "<built-in>"
#define __FLT32_HAS_DENORM__ 1
# 0 "<built-in>"
#define __FLT32_HAS_INFINITY__ 1
# 0 "<built-in>"
#define __FLT32_HAS_QUIET_NAN__ 1
# 0 "<built-in>"
#define __FP_FAST_FMAF32 1
# 0 "<built-in>"
#define __FLT32_IS_IEC_60559__ 2
# 0 "<built-in>"
#define __FLT64_MANT_DIG__ 53
# 0 "<built-in>"
#define __FLT64_DIG__ 15
# 0 "<built-in>"
#define __FLT64_MIN_EXP__ (-1021)
# 0 "<built-in>"
#define __FLT64_MIN_10_EXP__ (-307)
# 0 "<built-in>"
#define __FLT64_MAX_EXP__ 1024
# 0 "<built-in>"
#define __FLT64_MAX_10_EXP__ 308
# 0 "<built-in>"
#define __FLT64_DECIMAL_DIG__ 17
# 0 "<built-in>"
#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64
# 0 "<built-in>"
#define __FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64
# 0 "<built-in>"
#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64
# 0 "<built-in>"
#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64
# 0 "<built-in>"
#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64
# 0 "<built-in>"
#define __FLT64_HAS_DENORM__ 1
# 0 "<built-in>"
#define __FLT64_HAS_INFINITY__ 1
# 0 "<built-in>"
#define __FLT64_HAS_QUIET_NAN__ 1
# 0 "<built-in>"
#define __FP_FAST_FMAF64 1
# 0 "<built-in>"
#define __FLT64_IS_IEC_60559__ 2
# 0 "<built-in>"
#define __FLT128_MANT_DIG__ 113
# 0 "<built-in>"
#define __FLT128_DIG__ 33
# 0 "<built-in>"
#define __FLT128_MIN_EXP__ (-16381)
# 0 "<built-in>"
#define __FLT128_MIN_10_EXP__ (-4931)
# 0 "<built-in>"
#define __FLT128_MAX_EXP__ 16384
# 0 "<built-in>"
#define __FLT128_MAX_10_EXP__ 4932
# 0 "<built-in>"
#define __FLT128_DECIMAL_DIG__ 36
# 0 "<built-in>"
#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128
# 0 "<built-in>"
#define __FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128
# 0 "<built-in>"
#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128
# 0 "<built-in>"
#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128
# 0 "<built-in>"
#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128
# 0 "<built-in>"
#define __FLT128_HAS_DENORM__ 1
# 0 "<built-in>"
#define __FLT128_HAS_INFINITY__ 1
# 0 "<built-in>"
#define __FLT128_HAS_QUIET_NAN__ 1
# 0 "<built-in>"
#define __FLT128_IS_IEC_60559__ 2
# 0 "<built-in>"
#define __FLT32X_MANT_DIG__ 53
# 0 "<built-in>"
#define __FLT32X_DIG__ 15
# 0 "<built-in>"
#define __FLT32X_MIN_EXP__ (-1021)
# 0 "<built-in>"
#define __FLT32X_MIN_10_EXP__ (-307)
# 0 "<built-in>"
#define __FLT32X_MAX_EXP__ 1024
# 0 "<built-in>"
#define __FLT32X_MAX_10_EXP__ 308
# 0 "<built-in>"
#define __FLT32X_DECIMAL_DIG__ 17
# 0 "<built-in>"
#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x
# 0 "<built-in>"
#define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x
# 0 "<built-in>"
#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x
# 0 "<built-in>"
#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x
# 0 "<built-in>"
#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x
# 0 "<built-in>"
#define __FLT32X_HAS_DENORM__ 1
# 0 "<built-in>"
#define __FLT32X_HAS_INFINITY__ 1
# 0 "<built-in>"
#define __FLT32X_HAS_QUIET_NAN__ 1
# 0 "<built-in>"
#define __FP_FAST_FMAF32x 1
# 0 "<built-in>"
#define __FLT32X_IS_IEC_60559__ 2
# 0 "<built-in>"
#define __FLT64X_MANT_DIG__ 113
# 0 "<built-in>"
#define __FLT64X_DIG__ 33
# 0 "<built-in>"
#define __FLT64X_MIN_EXP__ (-16381)
# 0 "<built-in>"
#define __FLT64X_MIN_10_EXP__ (-4931)
# 0 "<built-in>"
#define __FLT64X_MAX_EXP__ 16384
# 0 "<built-in>"
#define __FLT64X_MAX_10_EXP__ 4932
# 0 "<built-in>"
#define __FLT64X_DECIMAL_DIG__ 36
# 0 "<built-in>"
#define __FLT64X_MAX__ 1.18973149535723176508575932662800702e+4932F64x
# 0 "<built-in>"
#define __FLT64X_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F64x
# 0 "<built-in>"
#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x
# 0 "<built-in>"
#define __FLT64X_EPSILON__ 1.92592994438723585305597794258492732e-34F64x
# 0 "<built-in>"
#define __FLT64X_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F64x
# 0 "<built-in>"
#define __FLT64X_HAS_DENORM__ 1
# 0 "<built-in>"
#define __FLT64X_HAS_INFINITY__ 1
# 0 "<built-in>"
#define __FLT64X_HAS_QUIET_NAN__ 1
# 0 "<built-in>"
#define __FLT64X_IS_IEC_60559__ 2
# 0 "<built-in>"
#define __DEC32_MANT_DIG__ 7
# 0 "<built-in>"
#define __DEC32_MIN_EXP__ (-94)
# 0 "<built-in>"
#define __DEC32_MAX_EXP__ 97
# 0 "<built-in>"
#define __DEC32_MIN__ 1E-95DF
# 0 "<built-in>"
#define __DEC32_MAX__ 9.999999E96DF
# 0 "<built-in>"
#define __DEC32_EPSILON__ 1E-6DF
# 0 "<built-in>"
#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF
# 0 "<built-in>"
#define __DEC64_MANT_DIG__ 16
# 0 "<built-in>"
#define __DEC64_MIN_EXP__ (-382)
# 0 "<built-in>"
#define __DEC64_MAX_EXP__ 385
# 0 "<built-in>"
#define __DEC64_MIN__ 1E-383DD
# 0 "<built-in>"
#define __DEC64_MAX__ 9.999999999999999E384DD
# 0 "<built-in>"
#define __DEC64_EPSILON__ 1E-15DD
# 0 "<built-in>"
#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD
# 0 "<built-in>"
#define __DEC128_MANT_DIG__ 34
# 0 "<built-in>"
#define __DEC128_MIN_EXP__ (-6142)
# 0 "<built-in>"
#define __DEC128_MAX_EXP__ 6145
# 0 "<built-in>"
#define __DEC128_MIN__ 1E-6143DL
# 0 "<built-in>"
#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL
# 0 "<built-in>"
#define __DEC128_EPSILON__ 1E-33DL
# 0 "<built-in>"
#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL
# 0 "<built-in>"
#define __REGISTER_PREFIX__ 
# 0 "<built-in>"
#define __USER_LABEL_PREFIX__ 
# 0 "<built-in>"
#define __GNUC_GNU_INLINE__ 1
# 0 "<built-in>"
#define __CHAR_UNSIGNED__ 1
# 0 "<built-in>"
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
# 0 "<built-in>"
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
# 0 "<built-in>"
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
# 0 "<built-in>"
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
# 0 "<built-in>"
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 1
# 0 "<built-in>"
#define __GCC_ATOMIC_BOOL_LOCK_FREE 2
# 0 "<built-in>"
#define __GCC_ATOMIC_CHAR_LOCK_FREE 2
# 0 "<built-in>"
#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2
# 0 "<built-in>"
#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2
# 0 "<built-in>"
#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2
# 0 "<built-in>"
#define __GCC_ATOMIC_SHORT_LOCK_FREE 2
# 0 "<built-in>"
#define __GCC_ATOMIC_INT_LOCK_FREE 2
# 0 "<built-in>"
#define __GCC_ATOMIC_LONG_LOCK_FREE 2
# 0 "<built-in>"
#define __GCC_ATOMIC_LLONG_LOCK_FREE 2
# 0 "<built-in>"
#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1
# 0 "<built-in>"
#define __GCC_ATOMIC_POINTER_LOCK_FREE 2
# 0 "<built-in>"
#define __HAVE_SPECULATION_SAFE_VALUE 1
# 0 "<built-in>"
#define __GCC_HAVE_DWARF2_CFI_ASM 1
# 0 "<built-in>"
#define __PRAGMA_REDEFINE_EXTNAME 1
# 0 "<built-in>"
#define __SIZEOF_INT128__ 16
# 0 "<built-in>"
#define __SIZEOF_WCHAR_T__ 4
# 0 "<built-in>"
#define __SIZEOF_WINT_T__ 4
# 0 "<built-in>"
#define __SIZEOF_PTRDIFF_T__ 8
# 0 "<built-in>"
#define __s390__ 1
# 0 "<built-in>"
#define __zarch__ 1
# 0 "<built-in>"
#define __s390x__ 1
# 0 "<built-in>"
#define __LONG_DOUBLE_128__ 1
# 0 "<built-in>"
#define __HTM__ 1
# 0 "<built-in>"
#define __VX__ 1
# 0 "<built-in>"
#undef __ARCH__
# 0 "<built-in>"
#define __ARCH__ 12
# 0 "<built-in>"
#define __LONG_DOUBLE_VX__ 1
# 0 "<built-in>"
#define __gnu_linux__ 1
# 0 "<built-in>"
#define __linux 1
# 0 "<built-in>"
#define __linux__ 1
# 0 "<built-in>"
#define linux 1
# 0 "<built-in>"
#define __unix 1
# 0 "<built-in>"
#define __unix__ 1
# 0 "<built-in>"
#define unix 1
# 0 "<built-in>"
#define __ELF__ 1
# 0 "<command-line>"
#define _LIBC_REENTRANT 1
# 0 "<command-line>"
#define MODULE_NAME libc
# 0 "<command-line>"
#define TOP_NAMESPACE glibc
# 0 "<command-line>"
# 1 "../include/stdc-predef.h" 1
/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _STDC_PREDEF_H 1

/* This header is separate from features.h so that the compiler can
   include it implicitly at the start of every compilation.  It must
   not itself include <features.h> or any other header that includes
   <features.h> because the implicit include comes before any feature
   test macros that may be defined in a source file before it first
   explicitly includes a system header.  GCC knows the name of this
   header in order to preinclude it.  */

/* glibc's intent is to support the IEC 559 math functionality, real
   and complex.  If the GCC (4.9 and later) predefined macros
   specifying compiler intent are available, use them to determine
   whether the overall intent is to support these features; otherwise,
   presume an older compiler has intent to support these features and
   define these macros by default.  */



#define __STDC_IEC_559__ 1
#define __STDC_IEC_60559_BFP__ 201404L








#define __STDC_IEC_559_COMPLEX__ 1
#define __STDC_IEC_60559_COMPLEX__ 201404L






/* wchar_t uses Unicode 10.0.0.  Version 10.0 of the Unicode Standard is
   synchronized with ISO/IEC 10646:2017, fifth edition, plus
   the following additions from Amendment 1 to the fifth edition:
   - 56 emoji characters
   - 285 hentaigana
   - 3 additional Zanabazar Square characters */
#define __STDC_ISO_10646__ 201706L

# 0 "<command-line>" 2
# 1 "/root/build/libc-modules.h" 1
/* AUTOGENERATED BY gen-libc-modules.awk, DO NOT EDIT.  */

#define MODULE_iconvprogs 1
#define MODULE_iconvdata 2
#define MODULE_ldconfig 3
#define MODULE_lddlibc4 4
#define MODULE_libmemusage 5
#define MODULE_libSegFault 6
#define MODULE_libpcprofile 7
#define MODULE_librpcsvc 8
#define MODULE_locale_programs 9
#define MODULE_memusagestat 10
#define MODULE_nonlib 11
#define MODULE_nscd 12
#define MODULE_extramodules 13
#define MODULE_libnldbl 14
#define MODULE_libsupport 15
#define MODULE_testsuite 16
#define MODULE_LIBS_BEGIN 17
#define MODULE_rtld 18
#define MODULE_libc 19
#define MODULE_libBrokenLocale 20
#define MODULE_libpthread 21
#define MODULE_libthread_db 22
#define MODULE_libcrypt 23
#define MODULE_libdl 24
#define MODULE_libgcc_s 25
#define MODULE_libnss_test1 26
#define MODULE_libnsl 27
#define MODULE_libc_malloc_debug 28
#define MODULE_libutil 29
#define MODULE_libnss_ldap 30
#define MODULE_libnss_test2 31
#define MODULE_libnss_dns 32
#define MODULE_libnss_compat 33
#define MODULE_libmvec 34
#define MODULE_libresolv 35
#define MODULE_libnss_db 36
#define MODULE_libm 37
#define MODULE_libnss_files 38
#define MODULE_librt 39
#define MODULE_libnss_hesiod 40
#define MODULE_libanl 41
# 0 "<command-line>" 2
# 1 "./../include/libc-symbols.h" 1
/* Support macros for making weak and strong aliases for symbols,
   and for using symbol sets and linker warnings with GNU ld.
   Copyright (C) 1995-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _LIBC_SYMBOLS_H 1

/* This file is included implicitly in the compilation of every source file,
   using -include.  It includes config.h.  */

/* Enable declarations of GNU extensions, since we are compiling them.  */
#define _GNU_SOURCE 1



/* Use `#if IS_IN (module)` to detect what component is being compiled.  */
#define PASTE_NAME1(a,b) a ##b
#define PASTE_NAME(a,b) PASTE_NAME1 (a,b)
#define IN_MODULE PASTE_NAME (MODULE_, MODULE_NAME)
#define IS_IN(lib) (IN_MODULE == MODULE_ ##lib)

/* True if the current module is a versioned library.  Versioned
   library names culled from shlib-versions files are assigned a
   MODULE_* value greater than MODULE_LIBS_BEGIN.  */
#define IS_IN_LIB (IN_MODULE > MODULE_LIBS_BEGIN)

/* The testsuite, and some other ancillary code, should be compiled against
   as close an approximation to the installed headers as possible.
   Defining this symbol disables most internal-use-only declarations
   provided by this header, and all those provided by other internal
   wrapper headers.  */




# 61 "./../include/libc-symbols.h"



/* This is defined for the compilation of all C library code.  features.h
   tests this to avoid inclusion of stubs.h while compiling the library,
   before stubs.h has been generated.  Some library code that is shared
   with other packages also tests this symbol to see if it is being
   compiled as part of the C library.  We must define this before including
   config.h, because it makes some definitions conditional on whether libc
   itself is being compiled, or just some generator program.  */
#define _LIBC 1

/* Some files must be compiled with optimization on.  */




/* -ffast-math cannot be applied to the C library, as it alters the ABI.
   Some test components that use -ffast-math are currently not part of
   IS_IN (testsuite) for technical reasons, so we have a secondary override.  */




# 1 "/root/build/config.h" 1
/* config.h.  Generated from config.h.in by configure.  */
/* Define if building with SELinux support.  Set by --with-selinux.  */
/* #undef HAVE_SELINUX */

/* Defined if building with SELinux support & audit libs are detected. */
/* #undef HAVE_LIBAUDIT */

/* Defined if building with SELinux support & libcap libs are detected.  */
/* #undef HAVE_LIBCAP */

/* Define to the assembler line separator character for multiple
   assembler instructions per line.  Default is `;'  */
/* #undef ASM_LINE_SEP */

/* Define if __attribute__((section("foo"))) puts quotes around foo.  */
/* #undef HAVE_SECTION_QUOTES */

/* Define if the assembler supports the `.set' directive.  */
#define HAVE_ASM_SET_DIRECTIVE 1

/* On powerpc64, use overlapping .opd entries.  */
/* #undef USE_PPC64_OVERLAPPING_OPD */

/* On powerpc64, use @notoc.  */
/* #undef USE_PPC64_NOTOC */

/* On powerpc64, define if the compiler supports -mcpu=power10.  */
/* #undef USE_PPC64_MCPU_POWER10 */

/* On powerpc*, define if scv should be used for syscalls (when available).  */
#define USE_PPC_SCV 1

/* Define if _Unwind_Find_FDE should be exported from glibc.  */
#define EXPORT_UNWIND_FIND_FDE 1

/* Define if static NSS modules are wanted.  */
/* #undef DO_STATIC_NSS */

/* Assume that the compiler supports __builtin_expect.
   This macro is necessary for proper compilation of code
   shared between GNU libc and GNU gettext projects.  */
#define HAVE_BUILTIN_EXPECT 1

/* Define if the compiler supports __builtin_memset.  */
#define HAVE_BUILTIN_MEMSET 1

/* Define if compiler accepts -ftree-loop-distribute-patterns.  */
#define HAVE_CC_INHIBIT_LOOP_TO_LIBCALL 1

/* Define if compiler accepts -fno-stack-protector in an
   __attribute__ ((__optimize__)).  */
#define HAVE_CC_NO_STACK_PROTECTOR 1

/* The level of stack protection in use for glibc as a whole.
   May be overridden on a file-by-file basis.  */

#define STACK_PROTECTOR_LEVEL 0


/* Define if the linker supports the -z combreloc option.  */
#define HAVE_Z_COMBRELOC 1

/* Define if _rtld_local structure should be forced into .sdata section.  */
/* #undef HAVE_SDATA_SECTION */

/* Define if assembler supports z10 zarch instructions as default on S390.  */
#define HAVE_S390_MIN_Z10_ZARCH_ASM_SUPPORT 1

/* Define if assembler supports z196 zarch instructions as default on S390.  */
#define HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT 1

/* Define if assembler supports z13 zarch instructions as default on S390.  */
#define HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT 1

/* Define if assembler supports arch13 zarch instruction as default on S390.  */
/* #undef HAVE_S390_MIN_ARCH13_ZARCH_ASM_SUPPORT */

/* Define if assembler supports vector instructions on S390.  */
#define HAVE_S390_VX_ASM_SUPPORT 1

/* Define if gcc supports vector registers as clobbers in inline assembly
   on S390.  */
#define HAVE_S390_VX_GCC_SUPPORT 1

/* Define if assembler supports arch13 instructions on S390.  */
#define HAVE_S390_ARCH13_ASM_SUPPORT 1

/* Define if the compiler\'s exception support is based on libunwind.  */
/* #undef HAVE_CC_WITH_LIBUNWIND */

/* Define if the access to static and hidden variables is position independent
   and does not need relocations.  */
#define PI_STATIC_AND_HIDDEN 1

/* Define this to disable the 'hidden_proto' et al macros in
   include/libc-symbols.h that avoid PLT slots in PIE.  */
/* #undef NO_HIDDEN_EXTERN_FUNC_IN_PIE */

/* Define this to disable the 'hidden_proto' et al macros in
   include/libc-symbols.h that avoid PLT slots in the shared objects.  */
/* #undef NO_HIDDEN */

/* Define this to disable in rtld the 'hidden_proto' et al macros in
   include/libc-symbols.h that avoid PLT slots in the shared objects.  */
/* #undef NO_RTLD_HIDDEN */

/* Define this to disable lazy relocations in DSOs.  */
/* #undef BIND_NOW */

/* AArch64 big endian ABI */
/* #undef HAVE_AARCH64_BE */

/* AArch64 BTI support enabled.  */
#define HAVE_AARCH64_BTI 0

/* AArch64 PAC-RET code generation is enabled.  */
#define HAVE_AARCH64_PAC_RET 0

/* Assembler support ARMv8.2-A SVE.
   This macro becomes obsolete when glibc increased the minimum
   required version of GNU 'binutils' to 2.28 or later. */
#define HAVE_AARCH64_SVE_ASM 0

/* ARC big endian ABI */
/* #undef HAVE_ARC_BE */

/* C-SKY ABI version.  */
/* #undef CSKYABI */

/* C-SKY floating-point ABI.  */
/* #undef CSKY_HARD_FLOAT */

/* RISC-V integer ABI for ld.so.  */
/* #undef RISCV_ABI_XLEN */

/* RISC-V floating-point ABI for ld.so.  */
/* #undef RISCV_ABI_FLEN */

/* Linux specific: minimum supported kernel version.  */
#define __LINUX_KERNEL_VERSION (3 * 65536 + 2 * 256 + 0)

/* Override abi-tags ABI version if necessary.  */
#define __ABI_TAG_VERSION 3,2,0

/* Mach/Hurd specific: define if mig supports the `retcode' keyword.  */
/* #undef HAVE_MIG_RETCODE */

/* Mach specific: define if the `host_page_size' RPC is available.  */
/* #undef HAVE_HOST_PAGE_SIZE */

/* Mach/i386 specific: define if the `i386_io_perm_*' RPCs are available.  */
/* #undef HAVE_I386_IO_PERM_MODIFY */

/* Mach/i386 specific: define if the `i386_set_gdt' RPC is available.  */
/* #undef HAVE_I386_SET_GDT */

/* Define if inlined system calls are available.  */
#define HAVE_INLINED_SYSCALLS 1

/* Define if your compiler defaults to -msecure-plt mode on ppc.  */
/* #undef HAVE_PPC_SECURE_PLT */

/* Define if memory tagging support should be enabled.  */
/* #undef USE_MTAG */

/* Package description.  */
#define PKGVERSION "(GNU libc) "

/* Bug reporting address.  */
#define REPORT_BUGS_TO "<https://www.gnu.org/software/libc/bugs.html>"

/* Define if multi-arch DSOs should be generated.  */
#define USE_MULTIARCH 1

/* Define if Systemtap <sys/sdt.h> probes should be defined.  */
#define USE_STAP_PROBE 1

/* Define if library functions should try to contact the nscd daemon.  */
#define USE_NSCD 1

/* Define if the dynamic linker should consult an ld.so.cache file.  */
#define USE_LDCONFIG 1

/* Define to 1 if STT_GNU_IFUNC support actually works.  */
#define HAVE_IFUNC 1

/* Define if gcc supports attribute ifunc.  */
#define HAVE_GCC_IFUNC 1

/* Define if CC supports attribute retain.  */
/* #undef HAVE_GNU_RETAIN */

/* Define to 1 if the assembler needs intermediate aliases to define
   multiple symbol versions for one symbol.  */
#define SYMVER_NEEDS_ALIAS 0

/* Define to 1 if libpthread actually resides in libc.  */
#define PTHREAD_IN_LIBC 1

/*
\f */

# 226 "/root/build/config.h"

/*
\f */



/* The zic and zdump programs need these definitions.  */

#define HAVE_STRERROR 1

/* The locale code needs these definitions.  */

#define HAVE_REGEX 1

/* The ARM hard-float ABI is being used.  */
/* #undef HAVE_ARM_PCS_VFP */

/* The ARM movw/movt instructions using PC-relative relocs work right.  */
#define ARM_PCREL_MOVW_OK 0

/* The pt_chown binary is being built and used by grantpt.  */
#define HAVE_PT_CHOWN 0

/* Define if the compiler supports __builtin_trap without
   any external dependencies such as making a function call.  */
#define HAVE_BUILTIN_TRAP 1

/* ports/sysdeps/mips/configure.in  */
/* Define if using the IEEE 754-2008 NaN encoding on the MIPS target.  */
/* #undef HAVE_MIPS_NAN2008 */

/* The PowerPC64 ELFv2 ABI is being used.  */
/* #undef HAVE_ELFV2_ABI */

/* PowerPC32 uses fcfid for integer to floating point conversions.  */
#define HAVE_PPC_FCFID 0

/* PowerPC32 uses fctidz for floating point to long long conversions.  */
#define HAVE_PPC_FCTIDZ 0

/* Build glibc with tunables support.  */
#define HAVE_TUNABLES 1

/* Define if static PIE is supported.  */
/* #undef SUPPORT_STATIC_PIE */

/* Define if static PIE is enabled.  */
#define ENABLE_STATIC_PIE 0

/* Some compiler options may now allow to use ebp in __asm__ (used mainly
   in i386 6 argument syscall issue).  */
#define CAN_USE_REGISTER_ASM_EBP 0

/* The default value of x86 CET control.  */
#define DEFAULT_DL_X86_CET_CONTROL cet_elf_property

/* Define if x86 ISA level should be included in shared libraries.  */
/* #undef INCLUDE_X86_ISA_LEVEL */

/* Define if -msahf is enabled by default on x86.  */
/* #undef HAVE_X86_LAHF_SAHF */

/* Define if -mmovbe is enabled by default on x86.  */
/* #undef HAVE_X86_MOVBE */

# 86 "./../include/libc-symbols.h" 2

/* Obtain the definition of symbol_version_reference.  */
# 1 "../sysdeps/generic/libc-symver.h" 1
/* Symbol version management.
   Copyright (C) 1995-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/* This file is included from <libc-symbols.h> for !_ISOMAC, and
   unconditionally from <shlib-compat.h>.  */


#define _LIBC_SYMVER_H 1

# 1 "/root/build/config.h" 1
/* config.h.  Generated from config.h.in by configure.  */
/* Define if building with SELinux support.  Set by --with-selinux.  */
/* #undef HAVE_SELINUX */

/* Defined if building with SELinux support & audit libs are detected. */
/* #undef HAVE_LIBAUDIT */

/* Defined if building with SELinux support & libcap libs are detected.  */
/* #undef HAVE_LIBCAP */

/* Define to the assembler line separator character for multiple
   assembler instructions per line.  Default is `;'  */
/* #undef ASM_LINE_SEP */

/* Define if __attribute__((section("foo"))) puts quotes around foo.  */
/* #undef HAVE_SECTION_QUOTES */

/* Define if the assembler supports the `.set' directive.  */
#define HAVE_ASM_SET_DIRECTIVE 1

/* On powerpc64, use overlapping .opd entries.  */
/* #undef USE_PPC64_OVERLAPPING_OPD */

/* On powerpc64, use @notoc.  */
/* #undef USE_PPC64_NOTOC */

/* On powerpc64, define if the compiler supports -mcpu=power10.  */
/* #undef USE_PPC64_MCPU_POWER10 */

/* On powerpc*, define if scv should be used for syscalls (when available).  */
#define USE_PPC_SCV 1

/* Define if _Unwind_Find_FDE should be exported from glibc.  */
#define EXPORT_UNWIND_FIND_FDE 1

/* Define if static NSS modules are wanted.  */
/* #undef DO_STATIC_NSS */

/* Assume that the compiler supports __builtin_expect.
   This macro is necessary for proper compilation of code
   shared between GNU libc and GNU gettext projects.  */
#define HAVE_BUILTIN_EXPECT 1

/* Define if the compiler supports __builtin_memset.  */
#define HAVE_BUILTIN_MEMSET 1

/* Define if compiler accepts -ftree-loop-distribute-patterns.  */
#define HAVE_CC_INHIBIT_LOOP_TO_LIBCALL 1

/* Define if compiler accepts -fno-stack-protector in an
   __attribute__ ((__optimize__)).  */
#define HAVE_CC_NO_STACK_PROTECTOR 1

/* The level of stack protection in use for glibc as a whole.
   May be overridden on a file-by-file basis.  */




/* Define if the linker supports the -z combreloc option.  */
#define HAVE_Z_COMBRELOC 1

/* Define if _rtld_local structure should be forced into .sdata section.  */
/* #undef HAVE_SDATA_SECTION */

/* Define if assembler supports z10 zarch instructions as default on S390.  */
#define HAVE_S390_MIN_Z10_ZARCH_ASM_SUPPORT 1

/* Define if assembler supports z196 zarch instructions as default on S390.  */
#define HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT 1

/* Define if assembler supports z13 zarch instructions as default on S390.  */
#define HAVE_S390_MIN_Z13_ZARCH_ASM_SUPPORT 1

/* Define if assembler supports arch13 zarch instruction as default on S390.  */
/* #undef HAVE_S390_MIN_ARCH13_ZARCH_ASM_SUPPORT */

/* Define if assembler supports vector instructions on S390.  */
#define HAVE_S390_VX_ASM_SUPPORT 1

/* Define if gcc supports vector registers as clobbers in inline assembly
   on S390.  */
#define HAVE_S390_VX_GCC_SUPPORT 1

/* Define if assembler supports arch13 instructions on S390.  */
#define HAVE_S390_ARCH13_ASM_SUPPORT 1

/* Define if the compiler\'s exception support is based on libunwind.  */
/* #undef HAVE_CC_WITH_LIBUNWIND */

/* Define if the access to static and hidden variables is position independent
   and does not need relocations.  */
#define PI_STATIC_AND_HIDDEN 1

/* Define this to disable the 'hidden_proto' et al macros in
   include/libc-symbols.h that avoid PLT slots in PIE.  */
/* #undef NO_HIDDEN_EXTERN_FUNC_IN_PIE */

/* Define this to disable the 'hidden_proto' et al macros in
   include/libc-symbols.h that avoid PLT slots in the shared objects.  */
/* #undef NO_HIDDEN */

/* Define this to disable in rtld the 'hidden_proto' et al macros in
   include/libc-symbols.h that avoid PLT slots in the shared objects.  */
/* #undef NO_RTLD_HIDDEN */

/* Define this to disable lazy relocations in DSOs.  */
/* #undef BIND_NOW */

/* AArch64 big endian ABI */
/* #undef HAVE_AARCH64_BE */

/* AArch64 BTI support enabled.  */
#define HAVE_AARCH64_BTI 0

/* AArch64 PAC-RET code generation is enabled.  */
#define HAVE_AARCH64_PAC_RET 0

/* Assembler support ARMv8.2-A SVE.
   This macro becomes obsolete when glibc increased the minimum
   required version of GNU 'binutils' to 2.28 or later. */
#define HAVE_AARCH64_SVE_ASM 0

/* ARC big endian ABI */
/* #undef HAVE_ARC_BE */

/* C-SKY ABI version.  */
/* #undef CSKYABI */

/* C-SKY floating-point ABI.  */
/* #undef CSKY_HARD_FLOAT */

/* RISC-V integer ABI for ld.so.  */
/* #undef RISCV_ABI_XLEN */

/* RISC-V floating-point ABI for ld.so.  */
/* #undef RISCV_ABI_FLEN */

/* Linux specific: minimum supported kernel version.  */
#define __LINUX_KERNEL_VERSION (3 * 65536 + 2 * 256 + 0)

/* Override abi-tags ABI version if necessary.  */
#define __ABI_TAG_VERSION 3,2,0

/* Mach/Hurd specific: define if mig supports the `retcode' keyword.  */
/* #undef HAVE_MIG_RETCODE */

/* Mach specific: define if the `host_page_size' RPC is available.  */
/* #undef HAVE_HOST_PAGE_SIZE */

/* Mach/i386 specific: define if the `i386_io_perm_*' RPCs are available.  */
/* #undef HAVE_I386_IO_PERM_MODIFY */

/* Mach/i386 specific: define if the `i386_set_gdt' RPC is available.  */
/* #undef HAVE_I386_SET_GDT */

/* Define if inlined system calls are available.  */
#define HAVE_INLINED_SYSCALLS 1

/* Define if your compiler defaults to -msecure-plt mode on ppc.  */
/* #undef HAVE_PPC_SECURE_PLT */

/* Define if memory tagging support should be enabled.  */
/* #undef USE_MTAG */

/* Package description.  */
#define PKGVERSION "(GNU libc) "

/* Bug reporting address.  */
#define REPORT_BUGS_TO "<https://www.gnu.org/software/libc/bugs.html>"

/* Define if multi-arch DSOs should be generated.  */
#define USE_MULTIARCH 1

/* Define if Systemtap <sys/sdt.h> probes should be defined.  */
#define USE_STAP_PROBE 1

/* Define if library functions should try to contact the nscd daemon.  */
#define USE_NSCD 1

/* Define if the dynamic linker should consult an ld.so.cache file.  */
#define USE_LDCONFIG 1

/* Define to 1 if STT_GNU_IFUNC support actually works.  */
#define HAVE_IFUNC 1

/* Define if gcc supports attribute ifunc.  */
#define HAVE_GCC_IFUNC 1

/* Define if CC supports attribute retain.  */
/* #undef HAVE_GNU_RETAIN */

/* Define to 1 if the assembler needs intermediate aliases to define
   multiple symbol versions for one symbol.  */
#define SYMVER_NEEDS_ALIAS 0

/* Define to 1 if libpthread actually resides in libc.  */
#define PTHREAD_IN_LIBC 1

/*
\f */

# 226 "/root/build/config.h"

/*
\f */



/* The zic and zdump programs need these definitions.  */

#define HAVE_STRERROR 1

/* The locale code needs these definitions.  */

#define HAVE_REGEX 1

/* The ARM hard-float ABI is being used.  */
/* #undef HAVE_ARM_PCS_VFP */

/* The ARM movw/movt instructions using PC-relative relocs work right.  */
#define ARM_PCREL_MOVW_OK 0

/* The pt_chown binary is being built and used by grantpt.  */
#define HAVE_PT_CHOWN 0

/* Define if the compiler supports __builtin_trap without
   any external dependencies such as making a function call.  */
#define HAVE_BUILTIN_TRAP 1

/* ports/sysdeps/mips/configure.in  */
/* Define if using the IEEE 754-2008 NaN encoding on the MIPS target.  */
/* #undef HAVE_MIPS_NAN2008 */

/* The PowerPC64 ELFv2 ABI is being used.  */
/* #undef HAVE_ELFV2_ABI */

/* PowerPC32 uses fcfid for integer to floating point conversions.  */
#define HAVE_PPC_FCFID 0

/* PowerPC32 uses fctidz for floating point to long long conversions.  */
#define HAVE_PPC_FCTIDZ 0

/* Build glibc with tunables support.  */
#define HAVE_TUNABLES 1

/* Define if static PIE is supported.  */
/* #undef SUPPORT_STATIC_PIE */

/* Define if static PIE is enabled.  */
#define ENABLE_STATIC_PIE 0

/* Some compiler options may now allow to use ebp in __asm__ (used mainly
   in i386 6 argument syscall issue).  */
#define CAN_USE_REGISTER_ASM_EBP 0

/* The default value of x86 CET control.  */
#define DEFAULT_DL_X86_CET_CONTROL cet_elf_property

/* Define if x86 ISA level should be included in shared libraries.  */
/* #undef INCLUDE_X86_ISA_LEVEL */

/* Define if -msahf is enabled by default on x86.  */
/* #undef HAVE_X86_LAHF_SAHF */

/* Define if -mmovbe is enabled by default on x86.  */
/* #undef HAVE_X86_MOVBE */

# 26 "../sysdeps/generic/libc-symver.h" 2

/* Use symbol_version_reference to specify the version a symbol
   reference should link to.  Use symbol_version or
   default_symbol_version for the definition of a versioned symbol.
   The difference is that the latter is a no-op in non-shared
   builds.

   _set_symbol_version is similar to symbol_version_reference, except
   that this macro expects the name and symbol version as a single
   string or token sequence, with an @ or @@ separator.  (A string is
   used in C mode and a token sequence in assembler mode.)
   _set_symbol_version only be used for definitions because it may
   introduce an alias symbol that would not be globally unique for
   mere references.  The _set_symbol_version macro is used to define
   default_symbol_version and compat_symbol.  */





#define symbol_version_reference(real,name,version) __asm__ (".symver " #real "," #name "@" #version)



# 78 "../sysdeps/generic/libc-symver.h"




#define _set_symbol_version(real,name_version) __asm__ (".symver " #real "," name_version)





# 89 "./../include/libc-symbols.h" 2

/* When PIC is defined and SHARED isn't defined, we are building PIE
   by default.  */



#define BUILD_PIE_DEFAULT 0


/* Define this for the benefit of portable GNU code that wants to check it.
   Code that checks with #if will not #include <config.h> again, since we've
   already done it (and this file is implicitly included in every compile,
   via -include).  Code that checks with #ifdef will #include <config.h>,
   but that file should always be idempotent (i.e., it's just #define/#undef
   and nothing else anywhere should be changing the macro state it touches),
   so it's harmless.  */
#define HAVE_CONFIG_H 0

/* Define these macros for the benefit of portable GNU code that wants to check
   them.  Of course, STDC_HEADERS is never false when building libc!  */
#define STDC_HEADERS 1
#define HAVE_MBSTATE_T 1
#define HAVE_MBSRTOWCS 1
#define HAVE_LIBINTL_H 1
#define HAVE_WCTYPE_H 1
#define HAVE_ISWCTYPE 1
#define ENABLE_NLS 1

/* The symbols in all the user (non-_) macros are C symbols.  */


#define __SYMBOL_PREFIX 



#define C_SYMBOL_NAME(name) name



#define ASM_LINE_SEP ;



/* Provide an empty definition when cdefs.h is not included.  */
#define __attribute_copy__(arg) 



/* GCC understands weak symbols and aliases; use its interface where
   possible, instead of embedded assembly language.  */

/* Define ALIASNAME as a strong alias for NAME.  */
#define strong_alias(name,aliasname) _strong_alias(name, aliasname)
#define _strong_alias(name,aliasname) extern __typeof (name) aliasname __attribute__ ((alias (#name))) __attribute_copy__ (name);



/* This comes between the return type and function name in
   a function definition to make that definition weak.  */
#define weak_function __attribute__ ((weak))
#define weak_const_function __attribute__ ((weak, __const__))

/* Define ALIASNAME as a weak alias for NAME.
   If weak aliases are not available, this defines a strong alias.  */
#define weak_alias(name,aliasname) _weak_alias (name, aliasname)
#define _weak_alias(name,aliasname) extern __typeof (name) aliasname __attribute__ ((weak, alias (#name))) __attribute_copy__ (name);



/* Same as WEAK_ALIAS, but mark symbol as hidden.  */
#define weak_hidden_alias(name,aliasname) _weak_hidden_alias (name, aliasname)

#define _weak_hidden_alias(name,aliasname) extern __typeof (name) aliasname __attribute__ ((weak, alias (#name), __visibility__ ("hidden"))) __attribute_copy__ (name);




/* Declare SYMBOL as weak undefined symbol (resolved to 0 if not defined).  */
#define weak_extern(symbol) _weak_extern (weak symbol)
#define _weak_extern(expr) _Pragma (#expr)

/* In shared builds, the expression call_function_static_weak
   (FUNCTION-SYMBOL, ARGUMENTS) invokes FUNCTION-SYMBOL (an
   identifier) unconditionally, with the (potentially empty) argument
   list ARGUMENTS.  In static builds, if FUNCTION-SYMBOL has a
   definition, the function is invoked as before; if FUNCTION-SYMBOL
   is NULL, no call is performed.  */



#define call_function_static_weak(func,...) ({ extern __typeof__ (func) func weak_function; (func != NULL ? func (__VA_ARGS__) : (void)0); })






# 208 "./../include/libc-symbols.h"

/* Determine the return address.  */
#define RETURN_ADDRESS(nr) __builtin_extract_return_addr (__builtin_return_address (nr))


/* When a reference to SYMBOL is encountered, the linker will emit a
   warning message MSG.  */
/* We want the .gnu.warning.SYMBOL section to be unallocated.  */
#define __make_section_unallocated(section_string) asm (".section " section_string "\n\t.previous");


/* Tacking on "\n\t#" to the section name makes gcc put it's bogus
   section attributes on what looks like a comment to the assembler.  */



#define __sec_comment "\n\t#"

#define link_warning(symbol,msg) __make_section_unallocated (".gnu.warning." #symbol) static const char __evoke_link_warning_ ##symbol[] __attribute__ ((used, section (".gnu.warning." #symbol __sec_comment))) = msg;





/* A canned warning for sysdeps/stub functions.  */
#define stub_warning(name) __make_section_unallocated (".gnu.glibc-stub." #name) link_warning (name, #name " is not implemented and will always fail")



/* Warning for linking functions calling dlopen into static binaries.  */



#define static_link_warning(name) static_link_warning1(name)
#define static_link_warning1(name) link_warning(name, "Using '" #name "' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking")





/* Resource Freeing Hooks:

   Normally a process exits and the OS cleans up any allocated
   memory.  However, when tooling like mtrace or valgrind is monitoring
   the process we need to free all resources that are part of the
   process in order to provide the consistency required to track
   memory leaks.

   A single public API exists and is __libc_freeres(), and this is used
   by applications like valgrind to freee resouces.

   There are 3 cases:

   (a) __libc_freeres

	In this case all you need to do is define the freeing routine:

	foo.c:
	libfoo_freeres_fn (foo_freeres)
	{
	  complex_free (mem);
	}

	This ensures the function is called at the right point to free
	resources.

   (b) __libc_freeres_ptr

	The framework for (a) iterates over the list of pointers-to-free
	in (b) and frees them.

	foo.c:
	libc_freeres_ptr (static char *foo_buffer);

	Freeing these resources alaways happens last and is equivalent
	to registering a function that does 'free (foo_buffer)'.

   (c) Explicit lists of free routines to call or objects to free.

	It is the intended goal to remove (a) and (b) which have some
	non-determinism based on link order, and instead use explicit
	lists of functions and frees to resolve cleanup ordering issues
	and make it easy to debug and maintain.

	As of today the following subsystems use (c):

	Per-thread cleanup:
	* malloc/thread-freeres.c

	libdl cleanup:
	* dlfcn/dlfreeres.c

	libpthread cleanup:
	* nptl/nptlfreeres.c

	So if you need any shutdown routines to run you should add them
	directly to the appropriate subsystem's shutdown list.  */

/* Resource pointers to free in libc.so.  */
#define libc_freeres_ptr(decl) __make_section_unallocated ("__libc_freeres_ptrs, \"aw\", %nobits") decl __attribute__ ((section ("__libc_freeres_ptrs" __sec_comment)))



/* Resource freeing functions from libc.so go in this section.  */
#define __libc_freeres_fn_section __attribute__ ((__used__, section ("__libc_freeres_fn")))


/* Resource freeing functions for libc.so.  */
#define libc_freeres_fn(name) static void name (void) __attribute_used__ __libc_freeres_fn_section; text_set_element (__libc_subfreeres, name); static void name (void)




/* Declare SYMBOL to be TYPE (`function' or `object') of SIZE bytes
   alias to ORIGINAL, when the assembler supports such declarations
   (such as in ELF).
   This is only necessary when defining something in assembly, or playing
   funny alias games where the size should be other than what the compiler
   thinks it is.  */
#define declare_symbol_alias(symbol,original,type,size) declare_symbol_alias_1 (symbol, original, type, size)







#define declare_symbol_alias_1(symbol,original,type,size) asm (".globl " __SYMBOL_PREFIX #symbol "\n\t" declare_symbol_alias_1_alias (symbol, original) "\n\t.type " __SYMBOL_PREFIX #symbol ", " "%" #type "\n\t.size " __SYMBOL_PREFIX #symbol ", " #size);






#define declare_symbol_alias_1_alias(symbol,original) ".set " __SYMBOL_PREFIX #symbol ", " __SYMBOL_PREFIX #original








/*
\f
*/




#define attribute_used_retain __attribute__ ((__used__))


/* Symbol set support macros.  */

/* Make SYMBOL, which is in the text segment, an element of SET.  */
#define text_set_element(set,symbol) _elf_set_element(set, symbol)
/* Make SYMBOL, which is in the data segment, an element of SET.  */
#define data_set_element(set,symbol) _elf_set_element(set, symbol)
/* Make SYMBOL, which is in the bss segment, an element of SET.  */
#define bss_set_element(set,symbol) _elf_set_element(set, symbol)

/* These are all done the same way in ELF.
   There is a new section created for each set.  */







#define _elf_set_element(set,symbol) static const void *const __elf_set_ ##set ##_element_ ##symbol ##__ attribute_used_retain __attribute__ ((section (#set))) = &(symbol)




/* Define SET as a symbol set.  This may be required (it is in a.out) to
   be able to use the set's contents.  */
#define symbol_set_define(set) symbol_set_declare(set)

/* Declare SET for use in this module, if defined in another module.
   In a shared library, this is always local to that shared object.
   For static linking, the set might be wholly absent and so we use
   weak references.  */
#define symbol_set_declare(set) extern char const __start_ ##set[] __symbol_set_attribute; extern char const __stop_ ##set[] __symbol_set_attribute;





#define __symbol_set_attribute __attribute__ ((weak))


/* Return a pointer (void *const *) to the first element of SET.  */
#define symbol_set_first_element(set) ((void *const *) (&__start_ ##set))

/* Return true iff PTR (a void *const *) has been incremented
   past the last element in SET.  */
#define symbol_set_end_p(set,ptr) ((ptr) >= (void *const *) &__stop_ ##set)

# 429 "./../include/libc-symbols.h"
#define symbol_version(real,name,version) 
#define default_symbol_version(real,name,version) strong_alias(real, name)







#define attribute_hidden 


#define attribute_tls_model_ie __attribute__ ((tls_model ("initial-exec")))

#define attribute_relro __attribute__ ((section (".data.rel.ro")))


/* Used to disable stack protection in sensitive places, like ifunc
   resolvers and early static TLS init.  */

#define inhibit_stack_protector __attribute__ ((__optimize__ ("-fno-stack-protector")))





/* The following macros are used for PLT bypassing within libc.so
   (and if needed other libraries similarly).
   First of all, you need to have the function prototyped somewhere,
   say in foo/foo.h:

   int foo (int __bar);

   If calls to foo within libc.so should always go to foo defined in libc.so,
   then in include/foo.h you add:

   libc_hidden_proto (foo)

   line and after the foo function definition:

   int foo (int __bar)
   {
     return __bar;
   }
   libc_hidden_def (foo)

   or

   int foo (int __bar)
   {
     return __bar;
   }
   libc_hidden_weak (foo)

   Similarly for global data.  If references to foo within libc.so should
   always go to foo defined in libc.so, then in include/foo.h you add:

   libc_hidden_proto (foo)

   line and after foo's definition:

   int foo = INITIAL_FOO_VALUE;
   libc_hidden_data_def (foo)

   or

   int foo = INITIAL_FOO_VALUE;
   libc_hidden_data_weak (foo)

   If foo is normally just an alias (strong or weak) to some other function,
   you should use the normal strong_alias first, then add libc_hidden_def
   or libc_hidden_weak:

   int baz (int __bar)
   {
     return __bar;
   }
   strong_alias (baz, foo)
   libc_hidden_weak (foo)

   If the function should be internal to multiple objects, say ld.so and
   libc.so, the best way is to use:

   #if IS_IN (libc) || IS_IN (rtld)
   hidden_proto (foo)
   #endif

   in include/foo.h and the normal macros at all function definitions
   depending on what DSO they belong to.

   If versioned_symbol macro is used to define foo,
   libc_hidden_ver macro should be used, as in:

   int __real_foo (int __bar)
   {
     return __bar;
   }
   versioned_symbol (libc, __real_foo, foo, GLIBC_2_1);
   libc_hidden_ver (__real_foo, foo)  */

# 591 "./../include/libc-symbols.h"




#define __hidden_proto_hiddenattr(attrs...) __attribute__ ((visibility ("hidden"), ##attrs))

#define hidden_proto(name,attrs...) __hidden_proto (name, , name, ##attrs)

#define hidden_tls_proto(name,attrs...) __hidden_proto (name, __thread, name, ##attrs)

#define __hidden_proto(name,thread,internal,attrs...) extern thread __typeof (name) name __hidden_proto_hiddenattr (attrs);








#define hidden_weak(name) 
#define hidden_def(name) 
#define hidden_ver(local,name) 
#define hidden_data_weak(name) 
#define hidden_data_def(name) 
#define hidden_tls_def(name) 
#define hidden_data_ver(local,name) 
#define hidden_nolink(name,lib,version) 



#define libc_hidden_proto(name,attrs...) hidden_proto (name, ##attrs)
#define libc_hidden_tls_proto(name,attrs...) hidden_tls_proto (name, ##attrs)
#define libc_hidden_def(name) hidden_def (name)
#define libc_hidden_weak(name) hidden_weak (name)
#define libc_hidden_nolink_sunrpc(name,version) hidden_nolink (name, libc, version)
#define libc_hidden_ver(local,name) hidden_ver (local, name)
#define libc_hidden_data_def(name) hidden_data_def (name)
#define libc_hidden_tls_def(name) hidden_tls_def (name)
#define libc_hidden_data_weak(name) hidden_data_weak (name)
#define libc_hidden_data_ver(local,name) hidden_data_ver (local, name)
# 642 "./../include/libc-symbols.h"

# 654 "./../include/libc-symbols.h"
#define rtld_hidden_proto(name,attrs...) 
#define rtld_hidden_tls_proto(name,attrs...) 
#define rtld_hidden_def(name) 
#define rtld_hidden_weak(name) 
#define rtld_hidden_ver(local,name) 
#define rtld_hidden_data_def(name) 
#define rtld_hidden_tls_def(name) 
#define rtld_hidden_data_weak(name) 
#define rtld_hidden_data_ver(local,name) 


# 676 "./../include/libc-symbols.h"
#define libm_hidden_proto(name,attrs...) 
#define libm_hidden_tls_proto(name,attrs...) 
#define libm_hidden_def(name) 
#define libm_hidden_weak(name) 
#define libm_hidden_ver(local,name) 
#define libm_hidden_data_def(name) 
#define libm_hidden_tls_def(name) 
#define libm_hidden_data_weak(name) 
#define libm_hidden_data_ver(local,name) 


# 698 "./../include/libc-symbols.h"
#define libmvec_hidden_proto(name,attrs...) 
#define libmvec_hidden_tls_proto(name,attrs...) 
#define libmvec_hidden_def(name) 
#define libmvec_hidden_weak(name) 
#define libmvec_hidden_ver(local,name) 
#define libmvec_hidden_data_def(name) 
#define libmvec_hidden_tls_def(name) 
#define libmvec_hidden_data_weak(name) 
#define libmvec_hidden_data_ver(local,name) 


# 721 "./../include/libc-symbols.h"
#define libresolv_hidden_proto(name,attrs...) 
#define libresolv_hidden_tls_proto(name,attrs...) 
#define libresolv_hidden_def(name) 
#define libresolv_hidden_weak(name) 
#define libresolv_hidden_ver(local,name) 
#define libresolv_hidden_data_def(name) 
#define libresolv_hidden_tls_def(name) 
#define libresolv_hidden_data_weak(name) 
#define libresolv_hidden_data_ver(local,name) 


# 744 "./../include/libc-symbols.h"
#define libpthread_hidden_proto(name,attrs...) 
#define libpthread_hidden_tls_proto(name,attrs...) 
#define libpthread_hidden_def(name) 
#define libpthread_hidden_weak(name) 
#define libpthread_hidden_ver(local,name) 
#define libpthread_hidden_data_def(name) 
#define libpthread_hidden_tls_def(name) 
#define libpthread_hidden_data_weak(name) 
#define libpthread_hidden_data_ver(local,name) 


# 767 "./../include/libc-symbols.h"
#define librt_hidden_proto(name,attrs...) 
#define librt_hidden_tls_proto(name,attrs...) 
#define librt_hidden_def(name) 
#define librt_hidden_weak(name) 
#define librt_hidden_ver(local,name) 
#define librt_hidden_data_def(name) 
#define librt_hidden_tls_def(name) 
#define librt_hidden_data_weak(name) 
#define librt_hidden_data_ver(local,name) 


# 790 "./../include/libc-symbols.h"
#define libdl_hidden_proto(name,attrs...) 
#define libdl_hidden_tls_proto(name,attrs...) 
#define libdl_hidden_def(name) 
#define libdl_hidden_weak(name) 
#define libdl_hidden_ver(local,name) 
#define libdl_hidden_data_def(name) 
#define libdl_hidden_tls_def(name) 
#define libdl_hidden_data_weak(name) 
#define libdl_hidden_data_ver(local,name) 


# 813 "./../include/libc-symbols.h"
#define libnsl_hidden_proto(name,attrs...) 
#define libnsl_hidden_tls_proto(name,attrs...) 
#define libnsl_hidden_weak(name) 
#define libnsl_hidden_ver(local,name) 
#define libnsl_hidden_data_def(name) 
#define libnsl_hidden_tls_def(name) 
#define libnsl_hidden_data_weak(name) 
#define libnsl_hidden_data_ver(local,name) 


#define libc_hidden_builtin_proto(name,attrs...) libc_hidden_proto (name, ##attrs)
#define libc_hidden_builtin_def(name) libc_hidden_def (name)
#define libc_hidden_builtin_weak(name) libc_hidden_weak (name)
#define libc_hidden_builtin_ver(local,name) libc_hidden_ver (local, name)

#define libc_hidden_ldbl_proto(name,attrs...) libc_hidden_proto (name, ##attrs)




# 845 "./../include/libc-symbols.h"
#define libutil_hidden_proto(name,attrs...) 
#define libutil_hidden_tls_proto(name,attrs...) 
#define libutil_hidden_def(name) 
#define libutil_hidden_weak(name) 
#define libutil_hidden_ver(local,name) 
#define libutil_hidden_data_def(name) 
#define libutil_hidden_tls_def(name) 
#define libutil_hidden_data_weak(name) 
#define libutil_hidden_data_ver(local,name) 






#define libanl_hidden_proto(name,attrs...) 
#define libanl_hidden_def(name) 


/* Get some dirty hacks.  */
# 1 "../sysdeps/generic/symbol-hacks.h" 1
/* Some compiler optimizations may transform loops into memset/memmove
   calls and without proper declaration it may generate PLT calls.  */
# 866 "./../include/libc-symbols.h" 2

/* Move compatibility symbols out of the way by placing them all in a
   special section.  */

#define attribute_compat_text_section __attribute__ ((section (".text.compat")))

#define attribute_compat_data_section __attribute__ ((section (".data.compat")))






/* Helper / base  macros for indirect function symbols.  */
#define __ifunc_resolver(type_name,name,expr,arg,init,classifier) classifier inhibit_stack_protector __typeof (type_name) *name ##_ifunc (arg) { init (); __typeof (type_name) *res = expr; return res; }









#define __ifunc(type_name,name,expr,arg,init) extern __typeof (type_name) name __attribute__ ((ifunc (#name "_ifunc"))); __ifunc_resolver (type_name, name, expr, arg, init, static)




#define __ifunc_hidden(type_name,name,expr,arg,init) __ifunc (type_name, name, expr, arg, init)

# 918 "./../include/libc-symbols.h"

/* The following macros are used for indirect function symbols in libc.so.
   First of all, you need to have the function prototyped somewhere,
   say in foo.h:

   int foo (int __bar);

   If you have an implementation for foo which e.g. uses a special hardware
   feature which isn't available on all machines where this libc.so will be
   used but decideable if available at runtime e.g. via hwcaps, you can provide
   two or multiple implementations of foo:

   int __foo_default (int __bar)
   {
     return __bar;
   }

   int __foo_special (int __bar)
   {
     return __bar;
   }

   If your function foo has no libc_hidden_proto (foo) defined for PLT
   bypassing, you can use:

   #define INIT_ARCH() unsigned long int hwcap = __GLRO(dl_hwcap);

   libc_ifunc (foo, (hwcap & HWCAP_SPECIAL) ? __foo_special : __foo_default);

   This will define a resolver function for foo which returns __foo_special or
   __foo_default depending on your specified expression.  Please note that you
   have to define a macro function INIT_ARCH before using libc_ifunc macro as
   it is called by the resolver function before evaluating the specified
   expression.  In this example it is used to prepare the hwcap variable.
   The resolver function is assigned to an ifunc'ed symbol foo.  Calls to foo
   from inside or outside of libc.so will be indirected by a PLT call.

   If your function foo has a libc_hidden_proto (foo) defined for PLT bypassing
   and calls to foo within libc.so should always go to one specific
   implementation of foo e.g. __foo_default then you have to add:

   __hidden_ver1 (__foo_default, __GI_foo, __foo_default);

   or a tweaked definition of libc_hidden_def macro after the __foo_default
   function definition.  Calls to foo within libc.so will always go directly to
   __foo_default.  Calls to foo from outside libc.so will be indirected by a
   PLT call to ifunc'ed symbol foo which you have to define in a separate
   compile unit:

   #define foo __redirect_foo
   #include <foo.h>
   #undef foo

   extern __typeof (__redirect_foo) __foo_default attribute_hidden;
   extern __typeof (__redirect_foo) __foo_special attribute_hidden;

   libc_ifunc_redirected (__redirect_foo, foo,
			  (hwcap & HWCAP_SPECIAL)
			  ? __foo_special
			  : __foo_default);

   This will define the ifunc'ed symbol foo like above.  The redirection of foo
   in header file is needed to omit an additional defintion of __GI_foo which
   would end in a linker error while linking libc.so.  You have to specify
   __redirect_foo as first parameter which is used within libc_ifunc_redirected
   macro in conjunction with typeof to define the ifunc'ed symbol foo.

   If your function foo has a libc_hidden_proto (foo) defined and calls to foo
   within or from outside libc.so should go via ifunc'ed symbol, then you have
   to use:

   libc_ifunc_hidden (foo, foo,
		      (hwcap & HWCAP_SPECIAL)
		      ? __foo_special
		      : __foo_default);
   libc_hidden_def (foo)

   The first parameter foo of libc_ifunc_hidden macro is used in the same way
   as for libc_ifunc_redirected macro.  */

#define libc_ifunc(name,expr) __ifunc (name, name, expr, void, INIT_ARCH)

#define libc_ifunc_redirected(redirected_name,name,expr) __ifunc (redirected_name, name, expr, void, INIT_ARCH)


#define libc_ifunc_hidden(redirected_name,name,expr) __ifunc_hidden (redirected_name, name, expr, void, INIT_ARCH)


/* The body of the function is supposed to use __get_cpu_features
   which will, if necessary, initialize the data first.  */
#define libm_ifunc_init() 
#define libm_ifunc(name,expr) __ifunc (name, name, expr, void, libm_ifunc_init)


/* Add the compiler optimization to inhibit loop transformation to library
   calls.  This is used to avoid recursive calls in memset and memmove
   default implementations.  */

#define inhibit_loop_to_libcall __attribute__ ((__optimize__ ("-fno-tree-loop-distribute-patterns")))




\f
/* These macros facilitate sharing source files with gnulib.

   They are here instead of sys/cdefs.h because they should not be
   used in public header files.

   Their definitions should be kept consistent with the definitions in
   gnulib-common.m4, but it is not necessary to cater to old non-GCC
   compilers, since they will only be used while building glibc itself.
   (Note that _GNUC_PREREQ cannot be used in this file.)  */

/* Define as a marker that can be attached to declarations that might not
    be used.  This helps to reduce warnings, such as from
    GCC -Wunused-parameter.  */

#define _GL_UNUSED __attribute__ ((__unused__))




/* gcc supports the "unused" attribute on possibly unused labels, and
   g++ has since version 4.5.  Note to support C++ as well as C,
   _GL_UNUSED_LABEL should be used with a trailing ;  */


#define _GL_UNUSED_LABEL _GL_UNUSED




/* The __pure__ attribute was added in gcc 2.96.  */

#define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))




/* The __const__ attribute was added in gcc 2.95.  */

#define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))





# 0 "<command-line>" 2
# 1 "../sysdeps/s390/s390-64/__longjmp.c"
/* Copyright (C) 2001-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

# 1 "../include/errno.h" 1

# 1 "../stdlib/errno.h" 1
/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/*
 *	ISO C99 Standard: 7.5 Errors	<errno.h>
 */


#define _ERRNO_H 1

# 1 "../include/features.h" 1
/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _FEATURES_H 1

/* These are defined by the user (or the compiler)
   to specify the desired environment:

   __STRICT_ANSI__	ISO Standard C.
   _ISOC99_SOURCE	Extensions to ISO C89 from ISO C99.
   _ISOC11_SOURCE	Extensions to ISO C99 from ISO C11.
   _ISOC2X_SOURCE	Extensions to ISO C99 from ISO C2X.
   __STDC_WANT_LIB_EXT2__
			Extensions to ISO C99 from TR 27431-2:2010.
   __STDC_WANT_IEC_60559_BFP_EXT__
			Extensions to ISO C11 from TS 18661-1:2014.
   __STDC_WANT_IEC_60559_FUNCS_EXT__
			Extensions to ISO C11 from TS 18661-4:2015.
   __STDC_WANT_IEC_60559_TYPES_EXT__
			Extensions to ISO C11 from TS 18661-3:2015.
   __STDC_WANT_IEC_60559_EXT__
			ISO C2X interfaces defined only in Annex F.

   _POSIX_SOURCE	IEEE Std 1003.1.
   _POSIX_C_SOURCE	If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
			if >=199309L, add IEEE Std 1003.1b-1993;
			if >=199506L, add IEEE Std 1003.1c-1995;
			if >=200112L, all of IEEE 1003.1-2004
			if >=200809L, all of IEEE 1003.1-2008
   _XOPEN_SOURCE	Includes POSIX and XPG things.  Set to 500 if
			Single Unix conformance is wanted, to 600 for the
			sixth revision, to 700 for the seventh revision.
   _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
   _LARGEFILE_SOURCE	Some more functions for correct standard I/O.
   _LARGEFILE64_SOURCE	Additional functionality from LFS for large files.
   _FILE_OFFSET_BITS=N	Select default filesystem interface.
   _ATFILE_SOURCE	Additional *at interfaces.
   _DYNAMIC_STACK_SIZE_SOURCE Select correct (but non compile-time constant)
			MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN.
   _GNU_SOURCE		All of the above, plus GNU extensions.
   _DEFAULT_SOURCE	The default set of features (taking precedence over
			__STRICT_ANSI__).

   _FORTIFY_SOURCE	Add security hardening to many library functions.
			Set to 1 or 2; 2 performs stricter checks than 1.

   _REENTRANT, _THREAD_SAFE
			Obsolete; equivalent to _POSIX_C_SOURCE=199506L.

   The `-ansi' switch to the GNU C compiler, and standards conformance
   options such as `-std=c99', define __STRICT_ANSI__.  If none of
   these are defined, or if _DEFAULT_SOURCE is defined, the default is
   to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
   200809L, as well as enabling miscellaneous functions from BSD and
   SVID.  If more than one of these are defined, they accumulate.  For
   example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
   give you ISO C, 1003.1, and 1003.2, but nothing else.

   These are defined by this file and are used by the
   header files to decide what to declare or define:

   __GLIBC_USE (F)	Define things from feature set F.  This is defined
			to 1 or 0; the subsequent macros are either defined
			or undefined, and those tests should be moved to
			__GLIBC_USE.
   __USE_ISOC11		Define ISO C11 things.
   __USE_ISOC99		Define ISO C99 things.
   __USE_ISOC95		Define ISO C90 AMD1 (C95) things.
   __USE_ISOCXX11	Define ISO C++11 things.
   __USE_POSIX		Define IEEE Std 1003.1 things.
   __USE_POSIX2		Define IEEE Std 1003.2 things.
   __USE_POSIX199309	Define IEEE Std 1003.1, and .1b things.
   __USE_POSIX199506	Define IEEE Std 1003.1, .1b, .1c and .1i things.
   __USE_XOPEN		Define XPG things.
   __USE_XOPEN_EXTENDED	Define X/Open Unix things.
   __USE_UNIX98		Define Single Unix V2 things.
   __USE_XOPEN2K        Define XPG6 things.
   __USE_XOPEN2KXSI     Define XPG6 XSI things.
   __USE_XOPEN2K8       Define XPG7 things.
   __USE_XOPEN2K8XSI    Define XPG7 XSI things.
   __USE_LARGEFILE	Define correct standard I/O things.
   __USE_LARGEFILE64	Define LFS things with separate names.
   __USE_FILE_OFFSET64	Define 64bit interface as default.
   __USE_MISC		Define things from 4.3BSD or System V Unix.
   __USE_ATFILE		Define *at interfaces and AT_* constants for them.
   __USE_DYNAMIC_STACK_SIZE Define correct (but non compile-time constant)
			MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN.
   __USE_GNU		Define GNU extensions.
   __USE_FORTIFY_LEVEL	Additional security measures used, according to level.

   The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
   defined by this file unconditionally.  `__GNU_LIBRARY__' is provided
   only for compatibility.  All new code should use the other symbols
   to test for features.

   All macros listed above as possibly being defined by this file are
   explicitly undefined if they are not explicitly defined.
   Feature-test macros that are not defined by the user or compiler
   but are implied by the other feature-test macros defined (or by the
   lack of any definitions) are defined by the file.

   ISO C feature test macros depend on the definition of the macro
   when an affected header is included, not when the first system
   header is included, and so they are handled in
   <bits/libc-header-start.h>, which does not have a multiple include
   guard.  Feature test macros that can be handled from the first
   system header included are handled here.  */


/* Undefine everything, so we get a clean slate.  */
#undef __USE_ISOC11
#undef __USE_ISOC99
#undef __USE_ISOC95
#undef __USE_ISOCXX11
#undef __USE_POSIX
#undef __USE_POSIX2
#undef __USE_POSIX199309
#undef __USE_POSIX199506
#undef __USE_XOPEN
#undef __USE_XOPEN_EXTENDED
#undef __USE_UNIX98
#undef __USE_XOPEN2K
#undef __USE_XOPEN2KXSI
#undef __USE_XOPEN2K8
#undef __USE_XOPEN2K8XSI
#undef __USE_LARGEFILE
#undef __USE_LARGEFILE64
#undef __USE_FILE_OFFSET64
#undef __USE_MISC
#undef __USE_ATFILE
#undef __USE_DYNAMIC_STACK_SIZE
#undef __USE_GNU
#undef __USE_FORTIFY_LEVEL
#undef __KERNEL_STRICT_NAMES
#undef __GLIBC_USE_ISOC2X
#undef __GLIBC_USE_DEPRECATED_GETS
#undef __GLIBC_USE_DEPRECATED_SCANF

/* Suppress kernel-name space pollution unless user expressedly asks
   for it.  */

#define __KERNEL_STRICT_NAMES 


/* Convenience macro to test the version of gcc.
   Use like this:
   #if __GNUC_PREREQ (2,8)
   ... code requiring gcc 2.8 or later ...
   #endif
   Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
   added in 2.0.  */

#define __GNUC_PREREQ(maj,min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))





/* Similarly for clang.  Features added to GCC after version 4.2 may
   or may not also be available in clang, and clang's definitions of
   __GNUC(_MINOR)__ are fixed at 4 and 2 respectively.  Not all such
   features can be queried via __has_extension/__has_feature.  */




#define __glibc_clang_prereq(maj,min) 0


/* Whether to use feature set F.  */
#define __GLIBC_USE(F) __GLIBC_USE_ ## F

/* _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
   _DEFAULT_SOURCE.  If _DEFAULT_SOURCE is present we do not
   issue a warning; the expectation is that the source is being
   transitioned to use the new macro.  */







/* If _GNU_SOURCE was defined by the user, turn on all the other features.  */

#undef _ISOC95_SOURCE
#define _ISOC95_SOURCE 1
#undef _ISOC99_SOURCE
#define _ISOC99_SOURCE 1
#undef _ISOC11_SOURCE
#define _ISOC11_SOURCE 1
#undef _ISOC2X_SOURCE
#define _ISOC2X_SOURCE 1
#undef _POSIX_SOURCE
#define _POSIX_SOURCE 1
#undef _POSIX_C_SOURCE
#define _POSIX_C_SOURCE 200809L
#undef _XOPEN_SOURCE
#define _XOPEN_SOURCE 700
#undef _XOPEN_SOURCE_EXTENDED
#define _XOPEN_SOURCE_EXTENDED 1
#undef _LARGEFILE64_SOURCE
#define _LARGEFILE64_SOURCE 1
#undef _DEFAULT_SOURCE
#define _DEFAULT_SOURCE 1
#undef _ATFILE_SOURCE
#define _ATFILE_SOURCE 1
#undef _DYNAMIC_STACK_SIZE_SOURCE
#define _DYNAMIC_STACK_SIZE_SOURCE 1


/* If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined,
   define _DEFAULT_SOURCE.  */






#undef _DEFAULT_SOURCE
#define _DEFAULT_SOURCE 1


/* This is to enable the ISO C2X extension.  */


#define __GLIBC_USE_ISOC2X 1




/* This is to enable the ISO C11 extension.  */


#define __USE_ISOC11 1


/* This is to enable the ISO C99 extension.  */



#define __USE_ISOC99 1


/* This is to enable the ISO C90 Amendment 1:1995 extension.  */



#define __USE_ISOC95 1


# 279 "../include/features.h"

/* If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
   is defined, use POSIX.1-2008 (or another version depending on
   _XOPEN_SOURCE).  */




#undef _POSIX_SOURCE
#define _POSIX_SOURCE 1
#undef _POSIX_C_SOURCE
#define _POSIX_C_SOURCE 200809L


# 308 "../include/features.h"

/* Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
   defined in all multithreaded code.  GNU libc has not required this
   for many years.  We now treat them as compatibility synonyms for
   _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
   comprehensive support for multithreaded code.  Using them never
   lowers the selected level of POSIX conformance, only raises it.  */










#define __USE_POSIX 1



#define __USE_POSIX2 1



#define __USE_POSIX199309 1



#define __USE_POSIX199506 1



#define __USE_XOPEN2K 1
#undef __USE_ISOC95
#define __USE_ISOC95 1
#undef __USE_ISOC99
#define __USE_ISOC99 1



#define __USE_XOPEN2K8 1
#undef _ATFILE_SOURCE
#define _ATFILE_SOURCE 1



#define __USE_XOPEN 1

#define __USE_XOPEN_EXTENDED 1
#define __USE_UNIX98 1
#undef _LARGEFILE_SOURCE
#define _LARGEFILE_SOURCE 1


#define __USE_XOPEN2K8 1
#define __USE_XOPEN2K8XSI 1

#define __USE_XOPEN2K 1
#define __USE_XOPEN2KXSI 1
#undef __USE_ISOC95
#define __USE_ISOC95 1
#undef __USE_ISOC99
#define __USE_ISOC99 1









#define __USE_LARGEFILE 1



#define __USE_LARGEFILE64 1






# 1 "../include/features-time64.h" 1
# 1 "../sysdeps/unix/sysv/linux/features-time64.h" 1
/* Features part to handle 64-bit time_t support.
   Copyright (C) 2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/* We need to know the word size in order to check the time size.  */
# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
/* Determine the wordsize from the preprocessor defines.  */


#define __WORDSIZE 64






#define __WORDSIZE_TIME64_COMPAT32 0
# 21 "../sysdeps/unix/sysv/linux/features-time64.h" 2
# 1 "../bits/timesize.h" 1
/* Bit size of the time_t type at glibc build time, general case.
   Copyright (C) 2018-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
/* Determine the wordsize from the preprocessor defines.  */


#define __WORDSIZE 64






#define __WORDSIZE_TIME64_COMPAT32 0
# 20 "../bits/timesize.h" 2

/* Size in bits of the 'time_t' type of the default ABI.  */
#define __TIMESIZE __WORDSIZE
# 22 "../sysdeps/unix/sysv/linux/features-time64.h" 2

# 2 "../include/features-time64.h" 2
# 393 "../include/features.h" 2


#define __USE_MISC 1



#define __USE_ATFILE 1



#define __USE_DYNAMIC_STACK_SIZE 1



#define __USE_GNU 1


# 429 "../include/features.h"

#define __USE_FORTIFY_LEVEL 0


/* The function 'gets' existed in C89, but is impossible to use
   safely.  It has been removed from ISO C11 and ISO C++14.  Note: for
   compatibility with various implementations of <cstdio>, this test
   must consider only the value of __cplusplus when compiling C++.  */

#define __GLIBC_USE_DEPRECATED_GETS 0




/* GNU formerly extended the scanf functions with modified format
   specifiers %as, %aS, and %a[...] that allocate a buffer for the
   input using malloc.  This extension conflicts with ISO C99, which
   defines %a as a standalone format specifier that reads a floating-
   point number; moreover, POSIX.1-2008 provides the same feature
   using the modifier letter 'm' instead (%ms, %mS, %m[...]).

   We now follow C99 unless GNU extensions are active and the compiler
   is specifically in C89 or C++98 mode (strict or not).  For
   instance, with GCC, -std=gnu11 will have C99-compliant scanf with
   or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the
   old extension.  */






#define __GLIBC_USE_DEPRECATED_SCANF 0


/* Get definitions of __STDC_* predefined macros, if the compiler has
   not preincluded this header automatically.  */


/* This macro indicates that the installed library is the GNU C Library.
   For historic reasons the value now is 6 and this will stay from now
   on.  The use of this variable is deprecated.  Use __GLIBC__ and
   __GLIBC_MINOR__ now (see below) when you want to test for a specific
   GNU C library version and use the values in <gnu/lib-names.h> to get
   the sonames of the shared libraries.  */
#undef __GNU_LIBRARY__
#define __GNU_LIBRARY__ 6

/* Major and minor version number of the GNU C library package.  Use
   these macros to test for features in specific releases.  */
#define __GLIBC__ 2
#define __GLIBC_MINOR__ 34

#define __GLIBC_PREREQ(maj,min) ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min))


/* This is here only because every header file already includes this one.  */


# 1 "../include/sys/cdefs.h" 1


/* This is outside of _ISOMAC to enforce that _Static_assert always
   uses the two-argument form.  This can be removed once the minimum
   GCC version used to compile glibc is GCC 9.1.  */

#define _Static_assert(expr,diagnostic) _Static_assert (expr, diagnostic)


# 1 "../misc/sys/cdefs.h" 1
/* Copyright (C) 1992-2021 Free Software Foundation, Inc.
   Copyright The GNU Toolchain Authors.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _SYS_CDEFS_H 1

/* We are almost always included from features.h. */




/* The GNU libc does not support any K&R compilers or the traditional mode
   of ISO C compilers anymore.  Check for some of the combinations not
   supported anymore.  */




/* Some user header file might have defined this before.  */
#undef __P
#undef __PMT

/* Compilers that lack __has_attribute may object to
       #if defined __has_attribute && __has_attribute (...)
   even though they do not need to evaluate the right-hand side of the &&.
   Similarly for __has_builtin, etc.  */



#define __glibc_has_attribute(attr) __has_attribute (attr)




#define __glibc_has_builtin(name) __has_builtin (name)






#define __glibc_has_extension(ext) 0




/* All functions, except those with callbacks or those that
   synchronize memory, are leaf functions.  */




#define __LEAF 
#define __LEAF_ATTR 


/* GCC can always grok prototypes.  For C++ programs we add throw()
   to help it optimize the function calls.  But this only works with
   gcc 2.8.x and egcs.  For gcc 3.4 and up we even mark C functions
   as non-throwing using a function attribute since programs can use
   the -fexceptions options for C code as well.  */


#define __THROW __attribute__ ((__nothrow__ __LEAF))
#define __THROWNL __attribute__ ((__nothrow__))
#define __NTH(fct) __attribute__ ((__nothrow__ __LEAF)) fct
#define __NTHNL(fct) __attribute__ ((__nothrow__)) fct
# 100 "../misc/sys/cdefs.h"

# 115 "../misc/sys/cdefs.h"

/* These two macros are not used in glibc anymore.  They are kept here
   only because some other projects expect the macros to be defined.  */
#define __P(args) args
#define __PMT(args) args

/* For these things, GCC behaves the ANSI way normally,
   and the non-ANSI way under -traditional.  */

#define __CONCAT(x,y) x ## y
#define __STRING(x) #x

/* This is not a typedef so `const __ptr_t' does the right thing.  */
#define __ptr_t void *


/* C++ needs to know that types and declarations are C, not C++.  */




#define __BEGIN_DECLS 
#define __END_DECLS 



/* Fortify support.  */
#define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)
#define __bos0(ptr) __builtin_object_size (ptr, 0)

/* Use __builtin_dynamic_object_size at _FORTIFY_SOURCE=3 when available.  */




#define __glibc_objsize0(__o) __bos0 (__o)
#define __glibc_objsize(__o) __bos (__o)


/* Compile time conditions to choose between the regular, _chk and _chk_warn
   variants.  These conditions should get evaluated to constant and optimized
   away.  */

#define __glibc_safe_len_cond(__l,__s,__osz) ((__l) <= (__osz) / (__s))
#define __glibc_unsigned_or_positive(__l) ((__typeof (__l)) 0 < (__typeof (__l)) -1 || (__builtin_constant_p (__l) && (__l) > 0))



/* Length is known to be safe at compile time if the __L * __S <= __OBJSZ
   condition can be folded to a constant and if it is true.  The -1 check is
   redundant because since it implies that __glibc_safe_len_cond is true.  */
#define __glibc_safe_or_unknown_len(__l,__s,__osz) (__glibc_unsigned_or_positive (__l) && __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), __s, __osz)) && __glibc_safe_len_cond ((__SIZE_TYPE__) (__l), __s, __osz))





/* Conversely, we know at compile time that the length is safe if the
   __L * __S <= __OBJSZ condition can be folded to a constant and if it is
   false.  */
#define __glibc_unsafe_len(__l,__s,__osz) (__glibc_unsigned_or_positive (__l) && __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), __s, __osz)) && !__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), __s, __osz))





/* Fortify function f.  __f_alias, __f_chk and __f_chk_warn must be
   declared.  */

#define __glibc_fortify(f,__l,__s,__osz,...) (__glibc_safe_or_unknown_len (__l, __s, __osz) ? __ ## f ## _alias (__VA_ARGS__) : (__glibc_unsafe_len (__l, __s, __osz) ? __ ## f ## _chk_warn (__VA_ARGS__, __osz) : __ ## f ## _chk (__VA_ARGS__, __osz)))






/* Fortify function f, where object size argument passed to f is the number of
   elements and not total size.  */

#define __glibc_fortify_n(f,__l,__s,__osz,...) (__glibc_safe_or_unknown_len (__l, __s, __osz) ? __ ## f ## _alias (__VA_ARGS__) : (__glibc_unsafe_len (__l, __s, __osz) ? __ ## f ## _chk_warn (__VA_ARGS__, (__osz) / (__s)) : __ ## f ## _chk (__VA_ARGS__, (__osz) / (__s))))







#define __warnattr(msg) __attribute__((__warning__ (msg)))
#define __errordecl(name,msg) extern void name (void) __attribute__((__error__ (msg)))






/* Support for flexible arrays.
   Headers that should use flexible arrays only if they're "real"
   (e.g. only if they won't affect sizeof()) should test
   #if __glibc_c99_flexarr_available.  */

#define __flexarr []
#define __glibc_c99_flexarr_available 1
# 232 "../misc/sys/cdefs.h"


/* __asm__ ("xyz") is used throughout the headers to rename functions
   at the assembly language level.  This is wrapped by the __REDIRECT
   macro, in order to support compilers that can do this some other
   way.  When compilers don't support asm-names at all, we have to do
   preprocessor tricks instead (which don't have exactly the right
   semantics, but it's the best we can do).

   Example:
   int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); */



#define __REDIRECT(name,proto,alias) name proto __asm__ (__ASMNAME (#alias))






#define __REDIRECT_NTH(name,proto,alias) name proto __asm__ (__ASMNAME (#alias)) __THROW

#define __REDIRECT_NTHNL(name,proto,alias) name proto __asm__ (__ASMNAME (#alias)) __THROWNL


#define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname)
#define __ASMNAME2(prefix,cname) __STRING (prefix) cname

/*
#elif __SOME_OTHER_COMPILER__

# define __REDIRECT(name, proto, alias) name proto; \
	_Pragma("let " #name " = " #alias)
*/


/* GCC and clang have various useful declarations that can be made with
   the '__attribute__' syntax.  All of the ways we use this do fine if
   they are omitted for compilers that don't understand it.  */




/* At some point during the gcc 2.96 development the `malloc' attribute
   for functions was introduced.  We don't want to use it unconditionally
   (although this would be possible) since it generates warnings.  */

#define __attribute_malloc__ __attribute__ ((__malloc__))




/* Tell the compiler which arguments to an allocation function
   indicate the size of the allocation.  */

#define __attribute_alloc_size__(params) __attribute__ ((__alloc_size__ params))





/* Tell the compiler which argument to an allocation function
   indicates the alignment of the allocation.  */

#define __attribute_alloc_align__(param) __attribute__ ((__alloc_align__ param))





/* At some point during the gcc 2.96 development the `pure' attribute
   for functions was introduced.  We don't want to use it unconditionally
   (although this would be possible) since it generates warnings.  */

#define __attribute_pure__ __attribute__ ((__pure__))




/* This declaration tells the compiler that the value is constant.  */

#define __attribute_const__ __attribute__ ((__const__))





#define __attribute_maybe_unused__ __attribute__ ((__unused__))




/* At some point during the gcc 3.1 development the `used' attribute
   for functions was introduced.  We don't want to use it unconditionally
   (although this would be possible) since it generates warnings.  */

#define __attribute_used__ __attribute__ ((__used__))
#define __attribute_noinline__ __attribute__ ((__noinline__))





/* Since version 3.2, gcc allows marking deprecated functions.  */

#define __attribute_deprecated__ __attribute__ ((__deprecated__))




/* Since version 4.5, gcc also allows one to specify the message printed
   when a deprecated function is used.  clang claims to be gcc 4.2, but
   may also support this feature.  */


#define __attribute_deprecated_msg__(msg) __attribute__ ((__deprecated__ (msg)))





/* At some point during the gcc 2.8 development the `format_arg' attribute
   for functions was introduced.  We don't want to use it unconditionally
   (although this would be possible) since it generates warnings.
   If several `format_arg' attributes are given for the same function, in
   gcc-3.0 and older, all but the last one are ignored.  In newer gccs,
   all designated arguments are considered.  */

#define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x)))




/* At some point during the gcc 2.97 development the `strfmon' format
   attribute for functions was introduced.  We don't want to use it
   unconditionally (although this would be possible) since it
   generates warnings.  */

#define __attribute_format_strfmon__(a,b) __attribute__ ((__format__ (__strfmon__, a, b)))





/* The nonnull function attribute marks pointer parameters that
   must not be NULL.  This has the name __nonnull in glibc,
   and __attribute_nonnull__ in files shared with Gnulib to avoid
   collision with a different __nonnull in DragonFlyBSD 5.9.  */


#define __attribute_nonnull__(params) __attribute__ ((__nonnull__ params))





#define __nonnull(params) __attribute_nonnull__ (params)


/* The returns_nonnull function attribute marks the return type of the function
   as always being non-null.  */


#define __returns_nonnull __attribute__ ((__returns_nonnull__))





/* If fortification mode, we warn about unused results of certain
   function calls which can lead to problems.  */

#define __attribute_warn_unused_result__ __attribute__ ((__warn_unused_result__))








#define __wur 


/* Forces a function to be always inlined.  */

/* The Linux kernel defines __always_inline in stddef.h (283d7573), and
   it conflicts with this definition.  Therefore undefine it first to
   allow either header to be included first.  */
#undef __always_inline
#define __always_inline __inline __attribute__ ((__always_inline__))





/* Associate error messages with the source location of the call site rather
   than with the source location inside the function.  */

#define __attribute_artificial__ __attribute__ ((__artificial__))




/* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
   inline semantics, unless -fgnu89-inline is used.  Using __GNUC_STDC_INLINE__
   or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
   older than 4.3 may define these macros and still not guarantee GNU inlining
   semantics.

   clang++ identifies itself as gcc-4.2, but has support for GNU inlining
   semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and
   __GNUC_GNU_INLINE__ macro definitions.  */








#define __extern_inline extern __inline
#define __extern_always_inline extern __always_inline




#define __fortify_function __extern_always_inline __attribute_artificial__


/* GCC 4.3 and above allow passing all anonymous arguments of an
   __extern_always_inline function to some other vararg function.  */

#define __va_arg_pack() __builtin_va_arg_pack ()
#define __va_arg_pack_len() __builtin_va_arg_pack_len ()


/* It is possible to compile containing GCC extensions even if GCC is
   run in pedantic mode if the uses are carefully marked using the
   `__extension__' keyword.  But this is not generally available before
   version 2.8.  */




/* __restrict is known in EGCS 1.2 and above, and in clang.
   It works also in C++ mode (outside of arrays), but only when spelled
   as '__restrict', not 'restrict'.  */








/* ISO C99 also allows to declare arrays as non-overlapping.  The syntax is
     array_name[restrict]
   GCC 3.1 and clang support this.
   This syntax is not usable in C++ mode.  */

#define __restrict_arr __restrict
# 507 "../misc/sys/cdefs.h"


#define __glibc_unlikely(cond) __builtin_expect ((cond), 0)
#define __glibc_likely(cond) __builtin_expect ((cond), 1)





# 526 "../misc/sys/cdefs.h"


/* Describes a char array whose address can safely be passed as the first
   argument to strncpy and strncat, as the char array is not necessarily
   a NUL-terminated string.  */
#define __attribute_nonstring__ __attribute__ ((__nonstring__))




/* Undefine (also defined in libc-symbols.h).  */
#undef __attribute_copy__

/* Copies attributes from the declaration or type referenced by
   the argument.  */
#define __attribute_copy__(arg) __attribute__ ((__copy__ (arg)))




# 554 "../misc/sys/cdefs.h"

/* Gnulib avoids including these, as they don't work on non-glibc or
   older glibc platforms.  */

# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
/* Determine the wordsize from the preprocessor defines.  */


#define __WORDSIZE 64






#define __WORDSIZE_TIME64_COMPAT32 0
# 559 "../misc/sys/cdefs.h" 2
# 1 "../sysdeps/ieee754/ldbl-opt/bits/long-double.h" 1
/* Properties of long double type.  ldbl-opt version.
   Copyright (C) 2016-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License  published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define __LONG_DOUBLE_MATH_OPTIONAL 1




#define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0
# 560 "../misc/sys/cdefs.h" 2


# 613 "../misc/sys/cdefs.h"


#define __LDBL_REDIR1(name,proto,alias) name proto
#define __LDBL_REDIR(name,proto) name proto
#define __LDBL_REDIR1_NTH(name,proto,alias) name proto __THROW
#define __LDBL_REDIR_NTH(name,proto) name proto __THROW
#define __LDBL_REDIR2_DECL(name) 
#define __LDBL_REDIR_DECL(name) 

#define __REDIRECT_LDBL(name,proto,alias) __REDIRECT (name, proto, alias)
#define __REDIRECT_NTH_LDBL(name,proto,alias) __REDIRECT_NTH (name, proto, alias)




/* __glibc_macro_warning (MESSAGE) issues warning MESSAGE.  This is
   intended for use in preprocessor macros.

   Note: MESSAGE must be a _single_ string; concatenation of string
   literals is not supported.  */

#define __glibc_macro_warning1(message) _Pragma (#message)
#define __glibc_macro_warning(message) __glibc_macro_warning1 (GCC warning message)





/* Generic selection (ISO C11) is a C-only feature, available in GCC
   since version 4.9.  Previous versions do not provide generic
   selection, even though they might set __STDC_VERSION__ to 201112L,
   when in -std=c11 mode.  Thus, we must check for !defined __GNUC__
   when testing __STDC_VERSION__ for generic selection support.
   On the other hand, Clang also defines __GNUC__, so a clang-specific
   check is required to enable the use of generic selection.  */





#define __HAVE_GENERIC_SELECTION 1





/* Designates a 1-based positional argument ref-index of pointer type
   that can be used to access size-index elements of the pointed-to
   array according to access mode, or at least one element when
   size-index is not provided:
     access (access-mode, <ref-index> [, <size-index>])  */
#define __attr_access(x) __attribute__ ((__access__ x))
/* For _FORTIFY_SOURCE == 3 we use __builtin_dynamic_object_size, which may
   use the access attribute to get object sizes from function definition
   arguments, so we can't use them on functions we fortify.  Drop the object
   size hints for such functions.  */



#define __fortified_attr_access(a,o,s) __attr_access ((a, o, s))


#define __attr_access_none(argno) __attribute__ ((__access__ (__none__, argno)))










/* Designates dealloc as a function to call to deallocate objects
   allocated by the declared function.  */
#define __attr_dealloc(dealloc,argno) __attribute__ ((__malloc__ (dealloc, argno)))

#define __attr_dealloc_free __attr_dealloc (__builtin_free, 1)





/* Specify that a function such as setjmp or vfork may return
   twice.  */

#define __attribute_returns_twice__ __attribute__ ((__returns_twice__))




# 11 "../include/sys/cdefs.h" 2


/* The compiler will optimize based on the knowledge the parameter is
   not NULL.  This will omit tests.  A robust implementation cannot allow
   this so when compiling glibc itself we ignore this attribute.  */
#undef __nonnull
#define __nonnull(params) 

extern void __chk_fail (void) __attribute__ ((__noreturn__));
libc_hidden_proto (__chk_fail)
rtld_hidden_proto (__chk_fail)

/* If we are using redirects internally to support long double,
   we need to tweak some macros to ensure the PLT bypass tricks
   continue to work in libc. */
# 42 "../include/sys/cdefs.h"



# 489 "../include/features.h" 2


/* If we don't have __REDIRECT, prototypes will be missing if
   __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. */







/* Decide whether we can define 'extern inline' functions in headers.  */



#define __USE_EXTERN_INLINES 1



/* This is here only because every header file already includes this one.
   Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
   <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
   that will always return failure (and set errno to ENOSYS).  */
# 1 "../include/gnu/stubs.h" 1
/* This is a placeholder used only while compiling libc.
   The installed gnu/stubs.h file is created by make install.  */
# 513 "../include/features.h" 2


# 26 "../stdlib/errno.h" 2

/* The system-specific definitions of the E* constants, as macros.  */
# 1 "../sysdeps/unix/sysv/linux/bits/errno.h" 1
/* Error constants.  Linux specific version.
   Copyright (C) 1996-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _BITS_ERRNO_H 1





# 1 "/usr/include/linux/errno.h" 1 3 4
# 1 "/usr/include/asm/errno.h" 1 3 4
# 1 "/usr/include/asm-generic/errno.h" 1 3 4
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */

#define _ASM_GENERIC_ERRNO_H 

# 1 "/usr/include/asm-generic/errno-base.h" 1 3 4
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */

#define _ASM_GENERIC_ERRNO_BASE_H 

#define EPERM 1
#define ENOENT 2
#define ESRCH 3
#define EINTR 4
#define EIO 5
#define ENXIO 6
#define E2BIG 7
#define ENOEXEC 8
#define EBADF 9
#define ECHILD 10
#define EAGAIN 11
#define ENOMEM 12
#define EACCES 13
#define EFAULT 14
#define ENOTBLK 15
#define EBUSY 16
#define EEXIST 17
#define EXDEV 18
#define ENODEV 19
#define ENOTDIR 20
#define EISDIR 21
#define EINVAL 22
#define ENFILE 23
#define EMFILE 24
#define ENOTTY 25
#define ETXTBSY 26
#define EFBIG 27
#define ENOSPC 28
#define ESPIPE 29
#define EROFS 30
#define EMLINK 31
#define EPIPE 32
#define EDOM 33
#define ERANGE 34

# 6 "/usr/include/asm-generic/errno.h" 2 3 4

#define EDEADLK 35
#define ENAMETOOLONG 36
#define ENOLCK 37

/*
 * This error code is special: arch syscall entry code will return
 * -ENOSYS if users try to call a syscall that doesn't exist.  To keep
 * failures of syscalls that really do exist distinguishable from
 * failures due to attempts to use a nonexistent syscall, syscall
 * implementations should refrain from returning -ENOSYS.
 */
#define ENOSYS 38

#define ENOTEMPTY 39
#define ELOOP 40
#define EWOULDBLOCK EAGAIN
#define ENOMSG 42
#define EIDRM 43
#define ECHRNG 44
#define EL2NSYNC 45
#define EL3HLT 46
#define EL3RST 47
#define ELNRNG 48
#define EUNATCH 49
#define ENOCSI 50
#define EL2HLT 51
#define EBADE 52
#define EBADR 53
#define EXFULL 54
#define ENOANO 55
#define EBADRQC 56
#define EBADSLT 57

#define EDEADLOCK EDEADLK

#define EBFONT 59
#define ENOSTR 60
#define ENODATA 61
#define ETIME 62
#define ENOSR 63
#define ENONET 64
#define ENOPKG 65
#define EREMOTE 66
#define ENOLINK 67
#define EADV 68
#define ESRMNT 69
#define ECOMM 70
#define EPROTO 71
#define EMULTIHOP 72
#define EDOTDOT 73
#define EBADMSG 74
#define EOVERFLOW 75
#define ENOTUNIQ 76
#define EBADFD 77
#define EREMCHG 78
#define ELIBACC 79
#define ELIBBAD 80
#define ELIBSCN 81
#define ELIBMAX 82
#define ELIBEXEC 83
#define EILSEQ 84
#define ERESTART 85
#define ESTRPIPE 86
#define EUSERS 87
#define ENOTSOCK 88
#define EDESTADDRREQ 89
#define EMSGSIZE 90
#define EPROTOTYPE 91
#define ENOPROTOOPT 92
#define EPROTONOSUPPORT 93
#define ESOCKTNOSUPPORT 94
#define EOPNOTSUPP 95
#define EPFNOSUPPORT 96
#define EAFNOSUPPORT 97
#define EADDRINUSE 98
#define EADDRNOTAVAIL 99
#define ENETDOWN 100
#define ENETUNREACH 101
#define ENETRESET 102
#define ECONNABORTED 103
#define ECONNRESET 104
#define ENOBUFS 105
#define EISCONN 106
#define ENOTCONN 107
#define ESHUTDOWN 108
#define ETOOMANYREFS 109
#define ETIMEDOUT 110
#define ECONNREFUSED 111
#define EHOSTDOWN 112
#define EHOSTUNREACH 113
#define EALREADY 114
#define EINPROGRESS 115
#define ESTALE 116
#define EUCLEAN 117
#define ENOTNAM 118
#define ENAVAIL 119
#define EISNAM 120
#define EREMOTEIO 121
#define EDQUOT 122

#define ENOMEDIUM 123
#define EMEDIUMTYPE 124
#define ECANCELED 125
#define ENOKEY 126
#define EKEYEXPIRED 127
#define EKEYREVOKED 128
#define EKEYREJECTED 129

/* for robust mutexes */
#define EOWNERDEAD 130
#define ENOTRECOVERABLE 131

#define ERFKILL 132

#define EHWPOISON 133

# 2 "/usr/include/asm/errno.h" 2 3 4
# 2 "/usr/include/linux/errno.h" 2 3 4
# 27 "../sysdeps/unix/sysv/linux/bits/errno.h" 2

/* Older Linux headers do not define these constants.  */

#define ENOTSUP EOPNOTSUPP






















# 29 "../stdlib/errno.h" 2

/* When included from assembly language, this header only provides the
   E* constants.  */


__BEGIN_DECLS

/* The error code set by various library functions.  */
extern int *__errno_location (void) __THROW __attribute_const__;
#define errno (*__errno_location ())



/* The full and simple forms of the name with which the program was
   invoked.  These variables are set up automatically at startup based on
   the value of argv[0].  */
extern char *program_invocation_name;
extern char *program_invocation_short_name;

# 1 "../bits/types/error_t.h" 1
/* Define error_t.
   Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define __error_t_defined 1

typedef int error_t;

# 49 "../stdlib/errno.h" 2



__END_DECLS


# 3 "../include/errno.h" 2








#define RTLD_PRIVATE_ERRNO 0


# 24 "../include/errno.h"

#undef errno

#define errno __libc_errno



extern __thread int errno attribute_tls_model_ie;



#define __set_errno(val) (errno = (val))

extern int *__errno_location (void) __THROW __attribute_const__



;
libc_hidden_proto (__errno_location)


# 19 "../sysdeps/s390/s390-64/__longjmp.c" 2
# 1 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" 1
/* Assembler macros for 64 bit S/390.
   Copyright (C) 2001-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _LINUX_S390_SYSDEP_H 

# 1 "../sysdeps/s390/s390-64/sysdep.h" 1
/* Assembler macros for 64 bit S/390.
   Copyright (C) 2001-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

# 1 "../sysdeps/generic/sysdep.h" 1
/* Generic asm macros used on many machines.
   Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */



/* Define a macro we can use to construct the asm name for a C symbol.  */
#define C_LABEL(name) name ##:



# 37 "../sysdeps/generic/sysdep.h"

/* Makros to generate eh_frame unwind information.  */
# 60 "../sysdeps/generic/sysdep.h"

#define CFI_STRINGIFY(Name) CFI_STRINGIFY2 (Name)
#define CFI_STRINGIFY2(Name) #Name
#define CFI_STARTPROC ".cfi_startproc"
#define CFI_ENDPROC ".cfi_endproc"
#define CFI_DEF_CFA(reg,off) ".cfi_def_cfa " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)

#define CFI_DEF_CFA_REGISTER(reg) ".cfi_def_cfa_register " CFI_STRINGIFY(reg)

#define CFI_DEF_CFA_OFFSET(off) ".cfi_def_cfa_offset " CFI_STRINGIFY(off)

#define CFI_ADJUST_CFA_OFFSET(off) ".cfi_adjust_cfa_offset " CFI_STRINGIFY(off)

#define CFI_OFFSET(reg,off) ".cfi_offset " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)

#define CFI_REL_OFFSET(reg,off) ".cfi_rel_offset " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)

#define CFI_REGISTER(r1,r2) ".cfi_register " CFI_STRINGIFY(r1) "," CFI_STRINGIFY(r2)

#define CFI_RETURN_COLUMN(reg) ".cfi_return_column " CFI_STRINGIFY(reg)

#define CFI_RESTORE(reg) ".cfi_restore " CFI_STRINGIFY(reg)

#define CFI_UNDEFINED(reg) ".cfi_undefined " CFI_STRINGIFY(reg)

#define CFI_REMEMBER_STATE ".cfi_remember_state"

#define CFI_RESTORE_STATE ".cfi_restore_state"

#define CFI_WINDOW_SAVE ".cfi_window_save"

#define CFI_PERSONALITY(enc,exp) ".cfi_personality " CFI_STRINGIFY(enc) "," CFI_STRINGIFY(exp)

#define CFI_LSDA(enc,exp) ".cfi_lsda " CFI_STRINGIFY(enc) "," CFI_STRINGIFY(exp)



# 1 "../sysdeps/generic/dwarf2.h" 1
/* Declarations and definitions of codes relating to the DWARF2 symbolic
   debugging information format.
   Copyright (C) 1992-2021 Free Software Foundation, Inc.

   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _DWARF2_H 1

/* This file is derived from the DWARF specification (a public document)
   Revision 2.0.0 (July 27, 1993) developed by the UNIX International
   Programming Languages Special Interest Group (UI/PLSIG) and distributed
   by UNIX International.  Copies of this specification are available from
   UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.  */

/* This file is shared between GCC and GDB, and should not contain
   prototypes.  */


/* Tag names and codes.  */

enum dwarf_tag
  {
    DW_TAG_padding = 0x00,
    DW_TAG_array_type = 0x01,
    DW_TAG_class_type = 0x02,
    DW_TAG_entry_point = 0x03,
    DW_TAG_enumeration_type = 0x04,
    DW_TAG_formal_parameter = 0x05,
    DW_TAG_imported_declaration = 0x08,
    DW_TAG_label = 0x0a,
    DW_TAG_lexical_block = 0x0b,
    DW_TAG_member = 0x0d,
    DW_TAG_pointer_type = 0x0f,
    DW_TAG_reference_type = 0x10,
    DW_TAG_compile_unit = 0x11,
    DW_TAG_string_type = 0x12,
    DW_TAG_structure_type = 0x13,
    DW_TAG_subroutine_type = 0x15,
    DW_TAG_typedef = 0x16,
    DW_TAG_union_type = 0x17,
    DW_TAG_unspecified_parameters = 0x18,
    DW_TAG_variant = 0x19,
    DW_TAG_common_block = 0x1a,
    DW_TAG_common_inclusion = 0x1b,
    DW_TAG_inheritance = 0x1c,
    DW_TAG_inlined_subroutine = 0x1d,
    DW_TAG_module = 0x1e,
    DW_TAG_ptr_to_member_type = 0x1f,
    DW_TAG_set_type = 0x20,
    DW_TAG_subrange_type = 0x21,
    DW_TAG_with_stmt = 0x22,
    DW_TAG_access_declaration = 0x23,
    DW_TAG_base_type = 0x24,
    DW_TAG_catch_block = 0x25,
    DW_TAG_const_type = 0x26,
    DW_TAG_constant = 0x27,
    DW_TAG_enumerator = 0x28,
    DW_TAG_file_type = 0x29,
    DW_TAG_friend = 0x2a,
    DW_TAG_namelist = 0x2b,
    DW_TAG_namelist_item = 0x2c,
    DW_TAG_packed_type = 0x2d,
    DW_TAG_subprogram = 0x2e,
    DW_TAG_template_type_param = 0x2f,
    DW_TAG_template_value_param = 0x30,
    DW_TAG_thrown_type = 0x31,
    DW_TAG_try_block = 0x32,
    DW_TAG_variant_part = 0x33,
    DW_TAG_variable = 0x34,
    DW_TAG_volatile_type = 0x35,
    /* SGI/MIPS Extensions */
    DW_TAG_MIPS_loop = 0x4081,
    /* GNU extensions */
    DW_TAG_format_label = 0x4101,	/* for FORTRAN 77 and Fortran 90 */
    DW_TAG_function_template = 0x4102,	/* for C++ */
    DW_TAG_class_template = 0x4103,	/* for C++ */
    DW_TAG_GNU_BINCL = 0x4104,
    DW_TAG_GNU_EINCL = 0x4105
  };

#define DW_TAG_lo_user 0x4080
#define DW_TAG_hi_user 0xffff

/* flag that tells whether entry has a child or not */
#define DW_children_no 0
#define DW_children_yes 1

/* Form names and codes.  */
enum dwarf_form
  {
    DW_FORM_addr = 0x01,
    DW_FORM_block2 = 0x03,
    DW_FORM_block4 = 0x04,
    DW_FORM_data2 = 0x05,
    DW_FORM_data4 = 0x06,
    DW_FORM_data8 = 0x07,
    DW_FORM_string = 0x08,
    DW_FORM_block = 0x09,
    DW_FORM_block1 = 0x0a,
    DW_FORM_data1 = 0x0b,
    DW_FORM_flag = 0x0c,
    DW_FORM_sdata = 0x0d,
    DW_FORM_strp = 0x0e,
    DW_FORM_udata = 0x0f,
    DW_FORM_ref_addr = 0x10,
    DW_FORM_ref1 = 0x11,
    DW_FORM_ref2 = 0x12,
    DW_FORM_ref4 = 0x13,
    DW_FORM_ref8 = 0x14,
    DW_FORM_ref_udata = 0x15,
    DW_FORM_indirect = 0x16
  };

/* Attribute names and codes.  */

enum dwarf_attribute
  {
    DW_AT_sibling = 0x01,
    DW_AT_location = 0x02,
    DW_AT_name = 0x03,
    DW_AT_ordering = 0x09,
    DW_AT_subscr_data = 0x0a,
    DW_AT_byte_size = 0x0b,
    DW_AT_bit_offset = 0x0c,
    DW_AT_bit_size = 0x0d,
    DW_AT_element_list = 0x0f,
    DW_AT_stmt_list = 0x10,
    DW_AT_low_pc = 0x11,
    DW_AT_high_pc = 0x12,
    DW_AT_language = 0x13,
    DW_AT_member = 0x14,
    DW_AT_discr = 0x15,
    DW_AT_discr_value = 0x16,
    DW_AT_visibility = 0x17,
    DW_AT_import = 0x18,
    DW_AT_string_length = 0x19,
    DW_AT_common_reference = 0x1a,
    DW_AT_comp_dir = 0x1b,
    DW_AT_const_value = 0x1c,
    DW_AT_containing_type = 0x1d,
    DW_AT_default_value = 0x1e,
    DW_AT_inline = 0x20,
    DW_AT_is_optional = 0x21,
    DW_AT_lower_bound = 0x22,
    DW_AT_producer = 0x25,
    DW_AT_prototyped = 0x27,
    DW_AT_return_addr = 0x2a,
    DW_AT_start_scope = 0x2c,
    DW_AT_stride_size = 0x2e,
    DW_AT_upper_bound = 0x2f,
    DW_AT_abstract_origin = 0x31,
    DW_AT_accessibility = 0x32,
    DW_AT_address_class = 0x33,
    DW_AT_artificial = 0x34,
    DW_AT_base_types = 0x35,
    DW_AT_calling_convention = 0x36,
    DW_AT_count = 0x37,
    DW_AT_data_member_location = 0x38,
    DW_AT_decl_column = 0x39,
    DW_AT_decl_file = 0x3a,
    DW_AT_decl_line = 0x3b,
    DW_AT_declaration = 0x3c,
    DW_AT_discr_list = 0x3d,
    DW_AT_encoding = 0x3e,
    DW_AT_external = 0x3f,
    DW_AT_frame_base = 0x40,
    DW_AT_friend = 0x41,
    DW_AT_identifier_case = 0x42,
    DW_AT_macro_info = 0x43,
    DW_AT_namelist_items = 0x44,
    DW_AT_priority = 0x45,
    DW_AT_segment = 0x46,
    DW_AT_specification = 0x47,
    DW_AT_static_link = 0x48,
    DW_AT_type = 0x49,
    DW_AT_use_location = 0x4a,
    DW_AT_variable_parameter = 0x4b,
    DW_AT_virtuality = 0x4c,
    DW_AT_vtable_elem_location = 0x4d,
    /* SGI/MIPS Extensions */
    DW_AT_MIPS_fde = 0x2001,
    DW_AT_MIPS_loop_begin = 0x2002,
    DW_AT_MIPS_tail_loop_begin = 0x2003,
    DW_AT_MIPS_epilog_begin = 0x2004,
    DW_AT_MIPS_loop_unroll_factor = 0x2005,
    DW_AT_MIPS_software_pipeline_depth = 0x2006,
    DW_AT_MIPS_linkage_name = 0x2007,
    DW_AT_MIPS_stride = 0x2008,
    DW_AT_MIPS_abstract_name = 0x2009,
    DW_AT_MIPS_clone_origin = 0x200a,
    DW_AT_MIPS_has_inlines = 0x200b,
    /* GNU extensions.  */
    DW_AT_sf_names = 0x2101,
    DW_AT_src_info = 0x2102,
    DW_AT_mac_info = 0x2103,
    DW_AT_src_coords = 0x2104,
    DW_AT_body_begin = 0x2105,
    DW_AT_body_end = 0x2106
  };

#define DW_AT_lo_user 0x2000
#define DW_AT_hi_user 0x3ff0

/* Location atom names and codes.  */

enum dwarf_location_atom
  {
    DW_OP_addr = 0x03,
    DW_OP_deref = 0x06,
    DW_OP_const1u = 0x08,
    DW_OP_const1s = 0x09,
    DW_OP_const2u = 0x0a,
    DW_OP_const2s = 0x0b,
    DW_OP_const4u = 0x0c,
    DW_OP_const4s = 0x0d,
    DW_OP_const8u = 0x0e,
    DW_OP_const8s = 0x0f,
    DW_OP_constu = 0x10,
    DW_OP_consts = 0x11,
    DW_OP_dup = 0x12,
    DW_OP_drop = 0x13,
    DW_OP_over = 0x14,
    DW_OP_pick = 0x15,
    DW_OP_swap = 0x16,
    DW_OP_rot = 0x17,
    DW_OP_xderef = 0x18,
    DW_OP_abs = 0x19,
    DW_OP_and = 0x1a,
    DW_OP_div = 0x1b,
    DW_OP_minus = 0x1c,
    DW_OP_mod = 0x1d,
    DW_OP_mul = 0x1e,
    DW_OP_neg = 0x1f,
    DW_OP_not = 0x20,
    DW_OP_or = 0x21,
    DW_OP_plus = 0x22,
    DW_OP_plus_uconst = 0x23,
    DW_OP_shl = 0x24,
    DW_OP_shr = 0x25,
    DW_OP_shra = 0x26,
    DW_OP_xor = 0x27,
    DW_OP_bra = 0x28,
    DW_OP_eq = 0x29,
    DW_OP_ge = 0x2a,
    DW_OP_gt = 0x2b,
    DW_OP_le = 0x2c,
    DW_OP_lt = 0x2d,
    DW_OP_ne = 0x2e,
    DW_OP_skip = 0x2f,
    DW_OP_lit0 = 0x30,
    DW_OP_lit1 = 0x31,
    DW_OP_lit2 = 0x32,
    DW_OP_lit3 = 0x33,
    DW_OP_lit4 = 0x34,
    DW_OP_lit5 = 0x35,
    DW_OP_lit6 = 0x36,
    DW_OP_lit7 = 0x37,
    DW_OP_lit8 = 0x38,
    DW_OP_lit9 = 0x39,
    DW_OP_lit10 = 0x3a,
    DW_OP_lit11 = 0x3b,
    DW_OP_lit12 = 0x3c,
    DW_OP_lit13 = 0x3d,
    DW_OP_lit14 = 0x3e,
    DW_OP_lit15 = 0x3f,
    DW_OP_lit16 = 0x40,
    DW_OP_lit17 = 0x41,
    DW_OP_lit18 = 0x42,
    DW_OP_lit19 = 0x43,
    DW_OP_lit20 = 0x44,
    DW_OP_lit21 = 0x45,
    DW_OP_lit22 = 0x46,
    DW_OP_lit23 = 0x47,
    DW_OP_lit24 = 0x48,
    DW_OP_lit25 = 0x49,
    DW_OP_lit26 = 0x4a,
    DW_OP_lit27 = 0x4b,
    DW_OP_lit28 = 0x4c,
    DW_OP_lit29 = 0x4d,
    DW_OP_lit30 = 0x4e,
    DW_OP_lit31 = 0x4f,
    DW_OP_reg0 = 0x50,
    DW_OP_reg1 = 0x51,
    DW_OP_reg2 = 0x52,
    DW_OP_reg3 = 0x53,
    DW_OP_reg4 = 0x54,
    DW_OP_reg5 = 0x55,
    DW_OP_reg6 = 0x56,
    DW_OP_reg7 = 0x57,
    DW_OP_reg8 = 0x58,
    DW_OP_reg9 = 0x59,
    DW_OP_reg10 = 0x5a,
    DW_OP_reg11 = 0x5b,
    DW_OP_reg12 = 0x5c,
    DW_OP_reg13 = 0x5d,
    DW_OP_reg14 = 0x5e,
    DW_OP_reg15 = 0x5f,
    DW_OP_reg16 = 0x60,
    DW_OP_reg17 = 0x61,
    DW_OP_reg18 = 0x62,
    DW_OP_reg19 = 0x63,
    DW_OP_reg20 = 0x64,
    DW_OP_reg21 = 0x65,
    DW_OP_reg22 = 0x66,
    DW_OP_reg23 = 0x67,
    DW_OP_reg24 = 0x68,
    DW_OP_reg25 = 0x69,
    DW_OP_reg26 = 0x6a,
    DW_OP_reg27 = 0x6b,
    DW_OP_reg28 = 0x6c,
    DW_OP_reg29 = 0x6d,
    DW_OP_reg30 = 0x6e,
    DW_OP_reg31 = 0x6f,
    DW_OP_breg0 = 0x70,
    DW_OP_breg1 = 0x71,
    DW_OP_breg2 = 0x72,
    DW_OP_breg3 = 0x73,
    DW_OP_breg4 = 0x74,
    DW_OP_breg5 = 0x75,
    DW_OP_breg6 = 0x76,
    DW_OP_breg7 = 0x77,
    DW_OP_breg8 = 0x78,
    DW_OP_breg9 = 0x79,
    DW_OP_breg10 = 0x7a,
    DW_OP_breg11 = 0x7b,
    DW_OP_breg12 = 0x7c,
    DW_OP_breg13 = 0x7d,
    DW_OP_breg14 = 0x7e,
    DW_OP_breg15 = 0x7f,
    DW_OP_breg16 = 0x80,
    DW_OP_breg17 = 0x81,
    DW_OP_breg18 = 0x82,
    DW_OP_breg19 = 0x83,
    DW_OP_breg20 = 0x84,
    DW_OP_breg21 = 0x85,
    DW_OP_breg22 = 0x86,
    DW_OP_breg23 = 0x87,
    DW_OP_breg24 = 0x88,
    DW_OP_breg25 = 0x89,
    DW_OP_breg26 = 0x8a,
    DW_OP_breg27 = 0x8b,
    DW_OP_breg28 = 0x8c,
    DW_OP_breg29 = 0x8d,
    DW_OP_breg30 = 0x8e,
    DW_OP_breg31 = 0x8f,
    DW_OP_regx = 0x90,
    DW_OP_fbreg = 0x91,
    DW_OP_bregx = 0x92,
    DW_OP_piece = 0x93,
    DW_OP_deref_size = 0x94,
    DW_OP_xderef_size = 0x95,
    DW_OP_nop = 0x96
  };

#define DW_OP_lo_user 0x80
#define DW_OP_hi_user 0xff

/* Type encodings.  */

enum dwarf_type
  {
    DW_ATE_void = 0x0,
    DW_ATE_address = 0x1,
    DW_ATE_boolean = 0x2,
    DW_ATE_complex_float = 0x3,
    DW_ATE_float = 0x4,
    DW_ATE_signed = 0x5,
    DW_ATE_signed_char = 0x6,
    DW_ATE_unsigned = 0x7,
    DW_ATE_unsigned_char = 0x8
  };

#define DW_ATE_lo_user 0x80
#define DW_ATE_hi_user 0xff

/* Array ordering names and codes.  */
enum dwarf_array_dim_ordering
  {
    DW_ORD_row_major = 0,
    DW_ORD_col_major = 1
  };

/* access attribute */
enum dwarf_access_attribute
  {
    DW_ACCESS_public = 1,
    DW_ACCESS_protected = 2,
    DW_ACCESS_private = 3
  };

/* visibility */
enum dwarf_visibility_attribute
  {
    DW_VIS_local = 1,
    DW_VIS_exported = 2,
    DW_VIS_qualified = 3
  };

/* virtuality */
enum dwarf_virtuality_attribute
  {
    DW_VIRTUALITY_none = 0,
    DW_VIRTUALITY_virtual = 1,
    DW_VIRTUALITY_pure_virtual = 2
  };

/* case sensitivity */
enum dwarf_id_case
  {
    DW_ID_case_sensitive = 0,
    DW_ID_up_case = 1,
    DW_ID_down_case = 2,
    DW_ID_case_insensitive = 3
  };

/* calling convention */
enum dwarf_calling_convention
  {
    DW_CC_normal = 0x1,
    DW_CC_program = 0x2,
    DW_CC_nocall = 0x3
  };

#define DW_CC_lo_user 0x40
#define DW_CC_hi_user 0xff

/* inline attribute */
enum dwarf_inline_attribute
  {
    DW_INL_not_inlined = 0,
    DW_INL_inlined = 1,
    DW_INL_declared_not_inlined = 2,
    DW_INL_declared_inlined = 3
  };

/* discriminant lists */
enum dwarf_discrim_list
  {
    DW_DSC_label = 0,
    DW_DSC_range = 1
  };

/* line number opcodes */
enum dwarf_line_number_ops
  {
    DW_LNS_extended_op = 0,
    DW_LNS_copy = 1,
    DW_LNS_advance_pc = 2,
    DW_LNS_advance_line = 3,
    DW_LNS_set_file = 4,
    DW_LNS_set_column = 5,
    DW_LNS_negate_stmt = 6,
    DW_LNS_set_basic_block = 7,
    DW_LNS_const_add_pc = 8,
    DW_LNS_fixed_advance_pc = 9
  };

/* line number extended opcodes */
enum dwarf_line_number_x_ops
  {
    DW_LNE_end_sequence = 1,
    DW_LNE_set_address = 2,
    DW_LNE_define_file = 3
  };

/* call frame information */
enum dwarf_call_frame_info
  {
    DW_CFA_advance_loc = 0x40,
    DW_CFA_offset = 0x80,
    DW_CFA_restore = 0xc0,
    DW_CFA_nop = 0x00,
    DW_CFA_set_loc = 0x01,
    DW_CFA_advance_loc1 = 0x02,
    DW_CFA_advance_loc2 = 0x03,
    DW_CFA_advance_loc4 = 0x04,
    DW_CFA_offset_extended = 0x05,
    DW_CFA_restore_extended = 0x06,
    DW_CFA_undefined = 0x07,
    DW_CFA_same_value = 0x08,
    DW_CFA_register = 0x09,
    DW_CFA_remember_state = 0x0a,
    DW_CFA_restore_state = 0x0b,
    DW_CFA_def_cfa = 0x0c,
    DW_CFA_def_cfa_register = 0x0d,
    DW_CFA_def_cfa_offset = 0x0e,
    DW_CFA_def_cfa_expression = 0x0f,
    DW_CFA_expression = 0x10,
    /* Dwarf 2.1 */
    DW_CFA_offset_extended_sf = 0x11,
    DW_CFA_def_cfa_sf = 0x12,
    DW_CFA_def_cfa_offset_sf = 0x13,

    /* SGI/MIPS specific */
    DW_CFA_MIPS_advance_loc8 = 0x1d,

    /* GNU extensions */
    DW_CFA_GNU_window_save = 0x2d,
    DW_CFA_GNU_args_size = 0x2e,
    DW_CFA_GNU_negative_offset_extended = 0x2f
  };

#define DW_CIE_ID 0xffffffff
#define DW_CIE_VERSION 1

#define DW_CFA_extended 0
#define DW_CFA_low_user 0x1c
#define DW_CFA_high_user 0x3f

#define DW_CHILDREN_no 0x00
#define DW_CHILDREN_yes 0x01

#define DW_ADDR_none 0

/* Source language names and codes.  */

enum dwarf_source_language
  {
    DW_LANG_C89 = 0x0001,
    DW_LANG_C = 0x0002,
    DW_LANG_Ada83 = 0x0003,
    DW_LANG_C_plus_plus = 0x0004,
    DW_LANG_Cobol74 = 0x0005,
    DW_LANG_Cobol85 = 0x0006,
    DW_LANG_Fortran77 = 0x0007,
    DW_LANG_Fortran90 = 0x0008,
    DW_LANG_Pascal83 = 0x0009,
    DW_LANG_Modula2 = 0x000a,
    DW_LANG_Java = 0x000b,
    DW_LANG_Mips_Assembler = 0x8001
  };


#define DW_LANG_lo_user 0x8000
#define DW_LANG_hi_user 0xffff

/* Names and codes for macro information.  */

enum dwarf_macinfo_record_type
  {
    DW_MACINFO_define = 1,
    DW_MACINFO_undef = 2,
    DW_MACINFO_start_file = 3,
    DW_MACINFO_end_file = 4,
    DW_MACINFO_vendor_ext = 255
  };


\f
/* @@@ For use with GNU frame unwind information.  */

#define DW_EH_PE_absptr 0x00
#define DW_EH_PE_omit 0xff

#define DW_EH_PE_uleb128 0x01
#define DW_EH_PE_udata2 0x02
#define DW_EH_PE_udata4 0x03
#define DW_EH_PE_udata8 0x04
#define DW_EH_PE_sleb128 0x09
#define DW_EH_PE_sdata2 0x0A
#define DW_EH_PE_sdata4 0x0B
#define DW_EH_PE_sdata8 0x0C
#define DW_EH_PE_signed 0x08

#define DW_EH_PE_pcrel 0x10
#define DW_EH_PE_textrel 0x20
#define DW_EH_PE_datarel 0x30
#define DW_EH_PE_funcrel 0x40
#define DW_EH_PE_aligned 0x50

#define DW_EH_PE_indirect 0x80

# 98 "../sysdeps/generic/sysdep.h" 2
# 20 "../sysdeps/s390/s390-64/sysdep.h" 2

# 23 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" 2
# 1 "../sysdeps/unix/sysdep.h" 1
/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

# 1 "../sysdeps/generic/sysdep.h" 1
/* Generic asm macros used on many machines.
   Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */








# 37 "../sysdeps/generic/sysdep.h"

/* Makros to generate eh_frame unwind information.  */
# 60 "../sysdeps/generic/sysdep.h"

#define CFI_STRINGIFY(Name) CFI_STRINGIFY2 (Name)
#define CFI_STRINGIFY2(Name) #Name
#define CFI_STARTPROC ".cfi_startproc"
#define CFI_ENDPROC ".cfi_endproc"
#define CFI_DEF_CFA(reg,off) ".cfi_def_cfa " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)

#define CFI_DEF_CFA_REGISTER(reg) ".cfi_def_cfa_register " CFI_STRINGIFY(reg)

#define CFI_DEF_CFA_OFFSET(off) ".cfi_def_cfa_offset " CFI_STRINGIFY(off)

#define CFI_ADJUST_CFA_OFFSET(off) ".cfi_adjust_cfa_offset " CFI_STRINGIFY(off)

#define CFI_OFFSET(reg,off) ".cfi_offset " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)

#define CFI_REL_OFFSET(reg,off) ".cfi_rel_offset " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)

#define CFI_REGISTER(r1,r2) ".cfi_register " CFI_STRINGIFY(r1) "," CFI_STRINGIFY(r2)

#define CFI_RETURN_COLUMN(reg) ".cfi_return_column " CFI_STRINGIFY(reg)

#define CFI_RESTORE(reg) ".cfi_restore " CFI_STRINGIFY(reg)

#define CFI_UNDEFINED(reg) ".cfi_undefined " CFI_STRINGIFY(reg)

#define CFI_REMEMBER_STATE ".cfi_remember_state"

#define CFI_RESTORE_STATE ".cfi_restore_state"

#define CFI_WINDOW_SAVE ".cfi_window_save"

#define CFI_PERSONALITY(enc,exp) ".cfi_personality " CFI_STRINGIFY(enc) "," CFI_STRINGIFY(exp)

#define CFI_LSDA(enc,exp) ".cfi_lsda " CFI_STRINGIFY(enc) "," CFI_STRINGIFY(exp)



# 19 "../sysdeps/unix/sysdep.h" 2
# 1 "../sysdeps/unix/sysv/linux/single-thread.h" 1
/* Single thread optimization, Linux version.
   Copyright (C) 2019-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _SINGLE_THREAD_H 

/* The default way to check if the process is single thread is by using the
   pthread_t 'multiple_threads' field.  However, for some architectures it is
   faster to either use an extra field on TCB or global variables (the TCB
   field is also used on x86 for some single-thread atomic optimizations).

   The ABI might define SINGLE_THREAD_BY_GLOBAL to enable the single thread
   check to use global variables instead of the pthread_t field.  */


extern int __libc_multiple_threads;
libc_hidden_proto (__libc_multiple_threads)



#define SINGLE_THREAD_P (THREAD_GETMEM (THREAD_SELF, header.multiple_threads) == 0)





#define RTLD_SINGLE_THREAD_P SINGLE_THREAD_P

# 20 "../sysdeps/unix/sysdep.h" 2
# 1 "../sysdeps/unix/sysv/linux/include/sys/syscall.h" 1
/* Wrapper header for <sys/syscall.h>.  Linux version.
   Copyright (C) 2020-2021 Free Software Foundation, Inc.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <http://www.gnu.org/licenses/>.  */






/* Use the built-in system call list, not <asm/unistd.h>, which may
   not list all the system call numbers we need.  */
#define _SYSCALL_H 
# 1 "../sysdeps/unix/sysv/linux/s390/s390-64/arch-syscall.h" 1
/* AUTOGENERATED by update-syscall-lists.py.  */
#define __NR__sysctl 149
#define __NR_accept4 364
#define __NR_access 33
#define __NR_acct 51
#define __NR_add_key 278
#define __NR_adjtimex 124
#define __NR_afs_syscall 137
#define __NR_alarm 27
#define __NR_bdflush 134
#define __NR_bind 361
#define __NR_bpf 351
#define __NR_brk 45
#define __NR_capget 184
#define __NR_capset 185
#define __NR_chdir 12
#define __NR_chmod 15
#define __NR_chown 212
#define __NR_chroot 61
#define __NR_clock_adjtime 337
#define __NR_clock_getres 261
#define __NR_clock_gettime 260
#define __NR_clock_nanosleep 262
#define __NR_clock_settime 259
#define __NR_clone 120
#define __NR_clone3 435
#define __NR_close 6
#define __NR_close_range 436
#define __NR_connect 362
#define __NR_copy_file_range 375
#define __NR_creat 8
#define __NR_create_module 127
#define __NR_delete_module 129
#define __NR_dup 41
#define __NR_dup2 63
#define __NR_dup3 326
#define __NR_epoll_create 249
#define __NR_epoll_create1 327
#define __NR_epoll_ctl 250
#define __NR_epoll_pwait 312
#define __NR_epoll_pwait2 441
#define __NR_epoll_wait 251
#define __NR_eventfd 318
#define __NR_eventfd2 323
#define __NR_execve 11
#define __NR_execveat 354
#define __NR_exit 1
#define __NR_exit_group 248
#define __NR_faccessat 300
#define __NR_faccessat2 439
#define __NR_fadvise64 253
#define __NR_fallocate 314
#define __NR_fanotify_init 332
#define __NR_fanotify_mark 333
#define __NR_fchdir 133
#define __NR_fchmod 94
#define __NR_fchmodat 299
#define __NR_fchown 207
#define __NR_fchownat 291
#define __NR_fcntl 55
#define __NR_fdatasync 148
#define __NR_fgetxattr 229
#define __NR_finit_module 344
#define __NR_flistxattr 232
#define __NR_flock 143
#define __NR_fork 2
#define __NR_fremovexattr 235
#define __NR_fsconfig 431
#define __NR_fsetxattr 226
#define __NR_fsmount 432
#define __NR_fsopen 430
#define __NR_fspick 433
#define __NR_fstat 108
#define __NR_fstatfs 100
#define __NR_fstatfs64 266
#define __NR_fsync 118
#define __NR_ftruncate 93
#define __NR_futex 238
#define __NR_futimesat 292
#define __NR_get_kernel_syms 130
#define __NR_get_mempolicy 269
#define __NR_get_robust_list 305
#define __NR_getcpu 311
#define __NR_getcwd 183
#define __NR_getdents 141
#define __NR_getdents64 220
#define __NR_getegid 202
#define __NR_geteuid 201
#define __NR_getgid 200
#define __NR_getgroups 205
#define __NR_getitimer 105
#define __NR_getpeername 368
#define __NR_getpgid 132
#define __NR_getpgrp 65
#define __NR_getpid 20
#define __NR_getpmsg 188
#define __NR_getppid 64
#define __NR_getpriority 96
#define __NR_getrandom 349
#define __NR_getresgid 211
#define __NR_getresuid 209
#define __NR_getrlimit 191
#define __NR_getrusage 77
#define __NR_getsid 147
#define __NR_getsockname 367
#define __NR_getsockopt 365
#define __NR_gettid 236
#define __NR_gettimeofday 78
#define __NR_getuid 199
#define __NR_getxattr 227
#define __NR_idle 112
#define __NR_init_module 128
#define __NR_inotify_add_watch 285
#define __NR_inotify_init 284
#define __NR_inotify_init1 324
#define __NR_inotify_rm_watch 286
#define __NR_io_cancel 247
#define __NR_io_destroy 244
#define __NR_io_getevents 245
#define __NR_io_pgetevents 382
#define __NR_io_setup 243
#define __NR_io_submit 246
#define __NR_io_uring_enter 426
#define __NR_io_uring_register 427
#define __NR_io_uring_setup 425
#define __NR_ioctl 54
#define __NR_ioprio_get 283
#define __NR_ioprio_set 282
#define __NR_ipc 117
#define __NR_kcmp 343
#define __NR_kexec_file_load 381
#define __NR_kexec_load 277
#define __NR_keyctl 280
#define __NR_kill 37
#define __NR_landlock_add_rule 445
#define __NR_landlock_create_ruleset 444
#define __NR_landlock_restrict_self 446
#define __NR_lchown 198
#define __NR_lgetxattr 228
#define __NR_link 9
#define __NR_linkat 296
#define __NR_listen 363
#define __NR_listxattr 230
#define __NR_llistxattr 231
#define __NR_lookup_dcookie 110
#define __NR_lremovexattr 234
#define __NR_lseek 19
#define __NR_lsetxattr 225
#define __NR_lstat 107
#define __NR_madvise 219
#define __NR_mbind 268
#define __NR_membarrier 356
#define __NR_memfd_create 350
#define __NR_migrate_pages 287
#define __NR_mincore 218
#define __NR_mkdir 39
#define __NR_mkdirat 289
#define __NR_mknod 14
#define __NR_mknodat 290
#define __NR_mlock 150
#define __NR_mlock2 374
#define __NR_mlockall 152
#define __NR_mmap 90
#define __NR_mount 21
#define __NR_mount_setattr 442
#define __NR_move_mount 429
#define __NR_move_pages 310
#define __NR_mprotect 125
#define __NR_mq_getsetattr 276
#define __NR_mq_notify 275
#define __NR_mq_open 271
#define __NR_mq_timedreceive 274
#define __NR_mq_timedsend 273
#define __NR_mq_unlink 272
#define __NR_mremap 163
#define __NR_msgctl 402
#define __NR_msgget 399
#define __NR_msgrcv 401
#define __NR_msgsnd 400
#define __NR_msync 144
#define __NR_munlock 151
#define __NR_munlockall 153
#define __NR_munmap 91
#define __NR_name_to_handle_at 335
#define __NR_nanosleep 162
#define __NR_newfstatat 293
#define __NR_nfsservctl 169
#define __NR_nice 34
#define __NR_open 5
#define __NR_open_by_handle_at 336
#define __NR_open_tree 428
#define __NR_openat 288
#define __NR_openat2 437
#define __NR_pause 29
#define __NR_perf_event_open 331
#define __NR_personality 136
#define __NR_pidfd_getfd 438
#define __NR_pidfd_open 434
#define __NR_pidfd_send_signal 424
#define __NR_pipe 42
#define __NR_pipe2 325
#define __NR_pivot_root 217
#define __NR_pkey_alloc 385
#define __NR_pkey_free 386
#define __NR_pkey_mprotect 384
#define __NR_poll 168
#define __NR_ppoll 302
#define __NR_prctl 172
#define __NR_pread64 180
#define __NR_preadv 328
#define __NR_preadv2 376
#define __NR_prlimit64 334
#define __NR_process_madvise 440
#define __NR_process_mrelease 448
#define __NR_process_vm_readv 340
#define __NR_process_vm_writev 341
#define __NR_pselect6 301
#define __NR_ptrace 26
#define __NR_putpmsg 189
#define __NR_pwrite64 181
#define __NR_pwritev 329
#define __NR_pwritev2 377
#define __NR_query_module 167
#define __NR_quotactl 131
#define __NR_quotactl_fd 443
#define __NR_read 3
#define __NR_readahead 222
#define __NR_readdir 89
#define __NR_readlink 85
#define __NR_readlinkat 298
#define __NR_readv 145
#define __NR_reboot 88
#define __NR_recvfrom 371
#define __NR_recvmmsg 357
#define __NR_recvmsg 372
#define __NR_remap_file_pages 267
#define __NR_removexattr 233
#define __NR_rename 38
#define __NR_renameat 295
#define __NR_renameat2 347
#define __NR_request_key 279
#define __NR_restart_syscall 7
#define __NR_rmdir 40
#define __NR_rseq 383
#define __NR_rt_sigaction 174
#define __NR_rt_sigpending 176
#define __NR_rt_sigprocmask 175
#define __NR_rt_sigqueueinfo 178
#define __NR_rt_sigreturn 173
#define __NR_rt_sigsuspend 179
#define __NR_rt_sigtimedwait 177
#define __NR_rt_tgsigqueueinfo 330
#define __NR_s390_guarded_storage 378
#define __NR_s390_pci_mmio_read 353
#define __NR_s390_pci_mmio_write 352
#define __NR_s390_runtime_instr 342
#define __NR_s390_sthyi 380
#define __NR_sched_get_priority_max 159
#define __NR_sched_get_priority_min 160
#define __NR_sched_getaffinity 240
#define __NR_sched_getattr 346
#define __NR_sched_getparam 155
#define __NR_sched_getscheduler 157
#define __NR_sched_rr_get_interval 161
#define __NR_sched_setaffinity 239
#define __NR_sched_setattr 345
#define __NR_sched_setparam 154
#define __NR_sched_setscheduler 156
#define __NR_sched_yield 158
#define __NR_seccomp 348
#define __NR_select 142
#define __NR_semctl 394
#define __NR_semget 393
#define __NR_semtimedop 392
#define __NR_sendfile 187
#define __NR_sendmmsg 358
#define __NR_sendmsg 370
#define __NR_sendto 369
#define __NR_set_mempolicy 270
#define __NR_set_robust_list 304
#define __NR_set_tid_address 252
#define __NR_setdomainname 121
#define __NR_setfsgid 216
#define __NR_setfsuid 215
#define __NR_setgid 214
#define __NR_setgroups 206
#define __NR_sethostname 74
#define __NR_setitimer 104
#define __NR_setns 339
#define __NR_setpgid 57
#define __NR_setpriority 97
#define __NR_setregid 204
#define __NR_setresgid 210
#define __NR_setresuid 208
#define __NR_setreuid 203
#define __NR_setrlimit 75
#define __NR_setsid 66
#define __NR_setsockopt 366
#define __NR_settimeofday 79
#define __NR_setuid 213
#define __NR_setxattr 224
#define __NR_shmat 397
#define __NR_shmctl 396
#define __NR_shmdt 398
#define __NR_shmget 395
#define __NR_shutdown 373
#define __NR_sigaction 67
#define __NR_sigaltstack 186
#define __NR_signal 48
#define __NR_signalfd 316
#define __NR_signalfd4 322
#define __NR_sigpending 73
#define __NR_sigprocmask 126
#define __NR_sigreturn 119
#define __NR_sigsuspend 72
#define __NR_socket 359
#define __NR_socketcall 102
#define __NR_socketpair 360
#define __NR_splice 306
#define __NR_stat 106
#define __NR_statfs 99
#define __NR_statfs64 265
#define __NR_statx 379
#define __NR_swapoff 115
#define __NR_swapon 87
#define __NR_symlink 83
#define __NR_symlinkat 297
#define __NR_sync 36
#define __NR_sync_file_range 307
#define __NR_syncfs 338
#define __NR_sysfs 135
#define __NR_sysinfo 116
#define __NR_syslog 103
#define __NR_tee 308
#define __NR_tgkill 241
#define __NR_timer_create 254
#define __NR_timer_delete 258
#define __NR_timer_getoverrun 257
#define __NR_timer_gettime 256
#define __NR_timer_settime 255
#define __NR_timerfd 317
#define __NR_timerfd_create 319
#define __NR_timerfd_gettime 321
#define __NR_timerfd_settime 320
#define __NR_times 43
#define __NR_tkill 237
#define __NR_truncate 92
#define __NR_umask 60
#define __NR_umount 22
#define __NR_umount2 52
#define __NR_uname 122
#define __NR_unlink 10
#define __NR_unlinkat 294
#define __NR_unshare 303
#define __NR_uselib 86
#define __NR_userfaultfd 355
#define __NR_ustat 62
#define __NR_utime 30
#define __NR_utimensat 315
#define __NR_utimes 313
#define __NR_vfork 190
#define __NR_vhangup 111
#define __NR_vmsplice 309
#define __NR_wait4 114
#define __NR_waitid 281
#define __NR_write 4
#define __NR_writev 146
# 27 "../sysdeps/unix/sysv/linux/include/sys/syscall.h" 2


# 21 "../sysdeps/unix/sysdep.h" 2
#define HAVE_SYSCALLS 

/* Note that using a `PASTE' macro loses.  */
#define SYSCALL__(name,args) PSEUDO (__ ##name, name, args)
#define SYSCALL(name,args) PSEUDO (name, name, args)

#define __SYSCALL_CONCAT_X(a,b) a ##b
#define __SYSCALL_CONCAT(a,b) __SYSCALL_CONCAT_X (a, b)


#define __INTERNAL_SYSCALL0(name) INTERNAL_SYSCALL (name, 0)

#define __INTERNAL_SYSCALL1(name,a1) INTERNAL_SYSCALL (name, 1, a1)

#define __INTERNAL_SYSCALL2(name,a1,a2) INTERNAL_SYSCALL (name, 2, a1, a2)

#define __INTERNAL_SYSCALL3(name,a1,a2,a3) INTERNAL_SYSCALL (name, 3, a1, a2, a3)

#define __INTERNAL_SYSCALL4(name,a1,a2,a3,a4) INTERNAL_SYSCALL (name, 4, a1, a2, a3, a4)

#define __INTERNAL_SYSCALL5(name,a1,a2,a3,a4,a5) INTERNAL_SYSCALL (name, 5, a1, a2, a3, a4, a5)

#define __INTERNAL_SYSCALL6(name,a1,a2,a3,a4,a5,a6) INTERNAL_SYSCALL (name, 6, a1, a2, a3, a4, a5, a6)

#define __INTERNAL_SYSCALL7(name,a1,a2,a3,a4,a5,a6,a7) INTERNAL_SYSCALL (name, 7, a1, a2, a3, a4, a5, a6, a7)


#define __INTERNAL_SYSCALL_NARGS_X(a,b,c,d,e,f,g,h,n,...) n
#define __INTERNAL_SYSCALL_NARGS(...) __INTERNAL_SYSCALL_NARGS_X (__VA_ARGS__,7,6,5,4,3,2,1,0,)

#define __INTERNAL_SYSCALL_DISP(b,...) __SYSCALL_CONCAT (b,__INTERNAL_SYSCALL_NARGS(__VA_ARGS__))(__VA_ARGS__)


/* Issue a syscall defined by syscall number plus any other argument required.
   It is similar to INTERNAL_SYSCALL macro, but without the need to pass the
   expected argument number as second parameter.  */
#define INTERNAL_SYSCALL_CALL(...) __INTERNAL_SYSCALL_DISP (__INTERNAL_SYSCALL, __VA_ARGS__)


#define __INLINE_SYSCALL0(name) INLINE_SYSCALL (name, 0)

#define __INLINE_SYSCALL1(name,a1) INLINE_SYSCALL (name, 1, a1)

#define __INLINE_SYSCALL2(name,a1,a2) INLINE_SYSCALL (name, 2, a1, a2)

#define __INLINE_SYSCALL3(name,a1,a2,a3) INLINE_SYSCALL (name, 3, a1, a2, a3)

#define __INLINE_SYSCALL4(name,a1,a2,a3,a4) INLINE_SYSCALL (name, 4, a1, a2, a3, a4)

#define __INLINE_SYSCALL5(name,a1,a2,a3,a4,a5) INLINE_SYSCALL (name, 5, a1, a2, a3, a4, a5)

#define __INLINE_SYSCALL6(name,a1,a2,a3,a4,a5,a6) INLINE_SYSCALL (name, 6, a1, a2, a3, a4, a5, a6)

#define __INLINE_SYSCALL7(name,a1,a2,a3,a4,a5,a6,a7) INLINE_SYSCALL (name, 7, a1, a2, a3, a4, a5, a6, a7)


#define __INLINE_SYSCALL_NARGS_X(a,b,c,d,e,f,g,h,n,...) n
#define __INLINE_SYSCALL_NARGS(...) __INLINE_SYSCALL_NARGS_X (__VA_ARGS__,7,6,5,4,3,2,1,0,)

#define __INLINE_SYSCALL_DISP(b,...) __SYSCALL_CONCAT (b,__INLINE_SYSCALL_NARGS(__VA_ARGS__))(__VA_ARGS__)


/* Issue a syscall defined by syscall number plus any other argument
   required.  Any error will be handled using arch defined macros and errno
   will be set accordingly.
   It is similar to INLINE_SYSCALL macro, but without the need to pass the
   expected argument number as second parameter.  */
#define INLINE_SYSCALL_CALL(...) __INLINE_SYSCALL_DISP (__INLINE_SYSCALL, __VA_ARGS__)






#define NO_SYSCALL_CANCEL_CHECKING SINGLE_THREAD_P


#define SYSCALL_CANCEL(...) ({ long int sc_ret; if (NO_SYSCALL_CANCEL_CHECKING) sc_ret = INLINE_SYSCALL_CALL (__VA_ARGS__); else { int sc_cancel_oldtype = LIBC_CANCEL_ASYNC (); sc_ret = INLINE_SYSCALL_CALL (__VA_ARGS__); LIBC_CANCEL_RESET (sc_cancel_oldtype); } sc_ret; })
# 111 "../sysdeps/unix/sysdep.h"

/* Issue a syscall defined by syscall number plus any other argument
   required.  Any error will be returned unmodified (including errno).  */
#define INTERNAL_SYSCALL_CANCEL(...) ({ long int sc_ret; if (NO_SYSCALL_CANCEL_CHECKING) sc_ret = INTERNAL_SYSCALL_CALL (__VA_ARGS__); else { int sc_cancel_oldtype = LIBC_CANCEL_ASYNC (); sc_ret = INTERNAL_SYSCALL_CALL (__VA_ARGS__); LIBC_CANCEL_RESET (sc_cancel_oldtype); } sc_ret; })
# 127 "../sysdeps/unix/sysdep.h"

/* Machine-dependent sysdep.h files are expected to define the macro
   PSEUDO (function_name, syscall_name) to emit assembly code to define the
   C-callable function FUNCTION_NAME to do system call SYSCALL_NAME.
   r0 and r1 are the system call outputs.  MOVE(x, y) should be defined as
   an instruction such that "MOVE(r1, r0)" works.  ret should be defined
   as the return instruction.  */


#define SYS_ify(syscall_name) SYS_ ##syscall_name


/* Terminate a system call named SYM.  This is used on some platforms
   to generate correct debugging information.  */

#define PSEUDO_END(sym) 


#define PSEUDO_END_NOERRNO(sym) PSEUDO_END(sym)


#define PSEUDO_END_ERRVAL(sym) PSEUDO_END(sym)


/* Wrappers around system calls should normally inline the system call code.
   But sometimes it is not possible or implemented and we use this code.  */

#define INLINE_SYSCALL(name,nr,args...) __syscall_ ##name (args)
# 24 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" 2
# 1 "../sysdeps/unix/sysv/linux/s390/sysdep.h" 1
/* Syscall definitions, Linux s390 version.
   Copyright (C) 2019-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <http://www.gnu.org/licenses/>.  */



#undef SYS_ify
#define SYS_ify(syscall_name) __NR_ ##syscall_name

#undef INTERNAL_SYSCALL_DIRECT
#define INTERNAL_SYSCALL_DIRECT(name,nr,args...) ({ DECLARGS_ ##nr(args) register long int _ret __asm__("2"); __asm__ __volatile__ ( "svc    %b1\n\t" : "=d" (_ret) : "i" (__NR_ ##name) ASMFMT_ ##nr : "memory" ); _ret; })
# 35 "../sysdeps/unix/sysv/linux/s390/sysdep.h"

#undef INTERNAL_SYSCALL_SVC0
#define INTERNAL_SYSCALL_SVC0(name,nr,args...) ({ DECLARGS_ ##nr(args) register unsigned long int _nr __asm__("1") = (unsigned long int)(__NR_ ##name); register long int _ret __asm__("2"); __asm__ __volatile__ ( "svc    0\n\t" : "=d" (_ret) : "d" (_nr) ASMFMT_ ##nr : "memory" ); _ret; })
# 49 "../sysdeps/unix/sysv/linux/s390/sysdep.h"

#undef INTERNAL_SYSCALL_NCS
#define INTERNAL_SYSCALL_NCS(no,nr,args...) ({ DECLARGS_ ##nr(args) register unsigned long int _nr __asm__("1") = (unsigned long int)(no); register long int _ret __asm__("2"); __asm__ __volatile__ ( "svc    0\n\t" : "=d" (_ret) : "d" (_nr) ASMFMT_ ##nr : "memory" ); _ret; })
# 62 "../sysdeps/unix/sysv/linux/s390/sysdep.h"

#undef INTERNAL_SYSCALL
#define INTERNAL_SYSCALL(name,nr,args...) (((__NR_ ##name) < 256) ? INTERNAL_SYSCALL_DIRECT(name, nr, args) : INTERNAL_SYSCALL_SVC0(name, nr, args))




#define DECLARGS_0() 
#define DECLARGS_1(arg1) register unsigned long int gpr2 __asm__ ("2") = (unsigned long int)(arg1);

#define DECLARGS_2(arg1,arg2) DECLARGS_1(arg1) register unsigned long int gpr3 __asm__ ("3") = (unsigned long int)(arg2);


#define DECLARGS_3(arg1,arg2,arg3) DECLARGS_2(arg1, arg2) register unsigned long int gpr4 __asm__ ("4") = (unsigned long int)(arg3);


#define DECLARGS_4(arg1,arg2,arg3,arg4) DECLARGS_3(arg1, arg2, arg3) register unsigned long int gpr5 __asm__ ("5") = (unsigned long int)(arg4);


#define DECLARGS_5(arg1,arg2,arg3,arg4,arg5) DECLARGS_4(arg1, arg2, arg3, arg4) register unsigned long int gpr6 __asm__ ("6") = (unsigned long int)(arg5);


#define DECLARGS_6(arg1,arg2,arg3,arg4,arg5,arg6) DECLARGS_5(arg1, arg2, arg3, arg4, arg5) register unsigned long int gpr7 __asm__ ("7") = (unsigned long int)(arg6);



#define ASMFMT_0 
#define ASMFMT_1 , "0" (gpr2)
#define ASMFMT_2 , "0" (gpr2), "d" (gpr3)
#define ASMFMT_3 , "0" (gpr2), "d" (gpr3), "d" (gpr4)
#define ASMFMT_4 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5)
#define ASMFMT_5 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5), "d" (gpr6)
#define ASMFMT_6 , "0" (gpr2), "d" (gpr3), "d" (gpr4), "d" (gpr5), "d" (gpr6), "d" (gpr7)

#define SINGLE_THREAD_BY_GLOBAL 1


#define VDSO_NAME "LINUX_2.6.29"
#define VDSO_HASH 123718585

/* List of system calls which are supported as vsyscalls.  */

#define HAVE_CLOCK_GETRES64_VSYSCALL "__kernel_clock_getres"
#define HAVE_CLOCK_GETTIME64_VSYSCALL "__kernel_clock_gettime"




#define HAVE_GETTIMEOFDAY_VSYSCALL "__kernel_gettimeofday"
#define HAVE_GETCPU_VSYSCALL "__kernel_getcpu"

# 25 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" 2
# 1 "../sysdeps/unix/sysv/linux/sysdep.h" 1
/* Copyright (C) 2015-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _SYSDEP_LINUX_H 

# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
/* Determine the wordsize from the preprocessor defines.  */


#define __WORDSIZE 64






#define __WORDSIZE_TIME64_COMPAT32 0
# 22 "../sysdeps/unix/sysv/linux/sysdep.h" 2
# 1 "../sysdeps/unix/sysv/linux/s390/kernel-features.h" 1
/* Set flags signalling availability of kernel features based on given
   kernel version number.  S/390 version.
   Copyright (C) 1999-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/* Direct socketcalls available with kernel 4.3.  */
# 30 "../sysdeps/unix/sysv/linux/s390/kernel-features.h"

# 1 "../sysdeps/unix/sysv/linux/kernel-features.h" 1
/* Set flags signalling availability of kernel features based on given
   kernel version number.
   Copyright (C) 1999-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/* This file must not contain any C code.  At least it must be protected
   to allow using the file also in assembler files.  */


#define _LINUX_KERNEL_FEATURES_H 1

# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
/* Determine the wordsize from the preprocessor defines.  */


#define __WORDSIZE 64






#define __WORDSIZE_TIME64_COMPAT32 0
# 27 "../sysdeps/unix/sysv/linux/kernel-features.h" 2






/* We assume for __LINUX_KERNEL_VERSION the same encoding used in
   linux/version.h.  I.e., the major, minor, and subminor all get a
   byte with the major number being in the highest byte.  This means
   we can do numeric comparisons.

   In the following we will define certain symbols depending on
   whether the describes kernel feature is available in the kernel
   version given by __LINUX_KERNEL_VERSION.  We are not always exactly
   recording the correct versions in which the features were
   introduced.  If somebody cares these values can afterwards be
   corrected.  */

/* The statfs64 syscalls are available in 2.5.74 (but not for alpha).  */
#define __ASSUME_STATFS64 1

/* pselect/ppoll were introduced just after 2.6.16-rc1.  On x86_64 and
   SH this appeared first in 2.6.19-rc1, on ia64 in 2.6.22-rc1.  */
#define __ASSUME_PSELECT 1

/* Support for inter-process robust mutexes was added in 2.6.17 (but
   some architectures lack futex_atomic_cmpxchg_inatomic in some
   configurations).  */
#define __ASSUME_SET_ROBUST_LIST 1

/* Support for various CLOEXEC and NONBLOCK flags was added in
   2.6.27.  */
#define __ASSUME_IN_NONBLOCK 1

/* Support for preadv and pwritev was added in 2.6.30.  */
#define __ASSUME_PREADV 1
#define __ASSUME_PWRITEV 1

/* Support for sendmmsg functionality was added in 3.0.  */
#define __ASSUME_SENDMMSG 1

/* On most architectures, most socket syscalls are supported for all
   supported kernel versions, but on some socketcall architectures
   separate syscalls were only added later.  */
#define __ASSUME_SENDMSG_SYSCALL 1
#define __ASSUME_RECVMSG_SYSCALL 1
#define __ASSUME_ACCEPT_SYSCALL 1
#define __ASSUME_CONNECT_SYSCALL 1
#define __ASSUME_RECVFROM_SYSCALL 1
#define __ASSUME_SENDTO_SYSCALL 1
#define __ASSUME_ACCEPT4_SYSCALL 1
#define __ASSUME_RECVMMSG_SYSCALL 1
#define __ASSUME_SENDMMSG_SYSCALL 1
#define __ASSUME_GETSOCKOPT_SYSCALL 1
#define __ASSUME_SETSOCKOPT_SYSCALL 1

/* Support for SysV IPC through wired syscalls.  All supported architectures
   either support ipc syscall and/or all the ipc correspondent syscalls.  */
#define __ASSUME_DIRECT_SYSVIPC_SYSCALLS 1
/* The generic default __IPC_64 value is 0x0, however some architectures
   require a different value of 0x100.  */
#define __ASSUME_SYSVIPC_DEFAULT_IPC_64 1

/* All supported architectures reserve a 32-bit for MODE field in sysvipc
   ipc_perm.  However, some kernel ABI interfaces still expect a 16-bit
   field.  This is only an issue if arch-defined IPC_PERM padding is on a
   wrong position regarding endianness.  In this case, the IPC control
   routines (msgctl, semctl, and semtctl) requires to shift the value to
   correct place.
   The ABIs that requires it define __ASSUME_SYSVIPC_BROKEN_MODE_T.  */

/* Support for p{read,write}v2 was added in 4.6.  However Linux default
   implementation does not assume the __ASSUME_* and instead use a fallback
   implementation based on p{read,write}v and returning an error for
   non supported flags.  */

/* Support for the renameat2 system call was added in kernel 3.15.  */




/* Support for the execveat syscall was added in 3.19.  */








/* Support for statx was added in kernel 4.11.  */




/* Support for clone call used on fork.  The signature varies across the
   architectures with current 4 different variants:

   1. long int clone (unsigned long flags, unsigned long newsp,
		      int *parent_tidptr, unsigned long tls,
		      int *child_tidptr)

   2. long int clone (unsigned long newsp, unsigned long clone_flags,
		      int *parent_tidptr, int * child_tidptr,
		      unsigned long tls)

   3. long int clone (unsigned long flags, unsigned long newsp,
		      int stack_size, int *parent_tidptr,
		      int *child_tidptr, unsigned long tls)

   4. long int clone (unsigned long flags, unsigned long newsp,
		      int *parent_tidptr, int *child_tidptr,
		      unsigned long tls)

   The fourth variant is intended to be used as the default for newer ports,
   Also IA64 uses the third variant but with __NR_clone2 instead of
   __NR_clone.

   The macros names to define the variant used for the architecture is
   similar to kernel:

   - __ASSUME_CLONE_BACKWARDS: for variant 1.
   - __ASSUME_CLONE_BACKWARDS2: for variant 2 (s390).
   - __ASSUME_CLONE_BACKWARDS3: for variant 3 (microblaze).
   - __ASSUME_CLONE_DEFAULT: for variant 4.
   - __ASSUME_CLONE2: for clone2 with variant 3 (ia64).
   */

#define __ASSUME_CLONE_DEFAULT 1

/* Support for 64-bit time_t in the system call interface.  When this
   flag is set, the kernel provides a version of each of these system
   calls that accepts 64-bit time_t:

     clock_adjtime(64)
     clock_gettime(64)
     clock_settime(64)
     clock_getres(_time64)
     clock_nanosleep(_time64)
     futex(_time64)
     mq_timedreceive(_time64)
     mq_timedsend(_time64)
     ppoll(_time64)
     pselect6(_time64)
     rt_sigtimedwait(_time64)
     sched_rr_get_interval(_time64)
     timer_gettime(64)
     timer_settime(64)
     timerfd_gettime(64)
     timerfd_settime(64)
     utimensat(_time64)

   On architectures where time_t has historically been 64 bits,
   only the 64-bit version of each system call exists, and there
   are no suffixes on the __NR_ constants.

   On architectures where time_t has historically been 32 bits,
   both 32-bit and 64-bit versions of each system call may exist,
   depending on the kernel version.  When the 64-bit version exists,
   there is a '64' or '_time64' suffix on the name of its __NR_
   constant, as shown above.

   This flag is always set for Linux 5.1 and later.  Prior to that
   version, it is set only for some CPU architectures and ABIs:

   - __WORDSIZE == 64 - all supported architectures where pointers
     are 64 bits also have always had 64-bit time_t.

   - __WORDSIZE == 32 && __SYSCALL_WORDSIZE == 64 - this describes
     only one supported configuration, x86's 'x32' subarchitecture,
     where pointers are 32 bits but time_t has always been 64 bits.

   __ASSUME_TIME64_SYSCALLS being set does not mean __TIMESIZE is 64,
   and __TIMESIZE equal to 64 does not mean __ASSUME_TIME64_SYSCALLS
   is set.  All four cases are possible.  */




#define __ASSUME_TIME64_SYSCALLS 1


/* Linux waitid prior kernel 5.4 does not support waiting for the current
   process group.  */




/* The faccessat2 system call was introduced across all architectures
   in Linux 5.8.  */



#define __ASSUME_FACCESSAT2 0


/* The FUTEX_LOCK_PI2 operation was introduced across all architectures in Linux
   5.14.  */



#define __ASSUME_FUTEX_LOCK_PI2 0


# 32 "../sysdeps/unix/sysv/linux/s390/kernel-features.h" 2

#undef __ASSUME_ACCEPT_SYSCALL


#undef __ASSUME_ACCEPT4_SYSCALL
#undef __ASSUME_RECVMMSG_SYSCALL
#undef __ASSUME_SENDMMSG_SYSCALL
#undef __ASSUME_SENDMSG_SYSCALL
#undef __ASSUME_RECVMSG_SYSCALL
#undef __ASSUME_CONNECT_SYSCALL
#undef __ASSUME_RECVFROM_SYSCALL
#undef __ASSUME_SENDTO_SYSCALL
#undef __ASSUME_GETSOCKOPT_SYSCALL
#undef __ASSUME_SETSOCKOPT_SYSCALL


/* s390 only supports ipc syscall before 5.1.  */

#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
#undef __ASSUME_SYSVIPC_DEFAULT_IPC_64





#undef __ASSUME_CLONE_DEFAULT
#define __ASSUME_CLONE_BACKWARDS2 
# 23 "../sysdeps/unix/sysv/linux/sysdep.h" 2
# 1 "../include/endian.h" 1
# 1 "../string/endian.h" 1
/* Copyright (C) 1992-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _ENDIAN_H 1



/* Get the definitions of __*_ENDIAN, __BYTE_ORDER, and __FLOAT_WORD_ORDER.  */
# 1 "../include/bits/endian.h" 1
# 1 "../string/bits/endian.h" 1
/* Endian macros for string.h functions
   Copyright (C) 1992-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <http://www.gnu.org/licenses/>.  */


#define _BITS_ENDIAN_H 1

/* Definitions for byte order, according to significance of bytes,
   from low addresses to high addresses.  The value is what you get by
   putting '4' in the most significant byte, '3' in the second most
   significant byte, '2' in the second least significant byte, and '1'
   in the least significant byte, and then writing down one digit for
   each byte, starting with the byte at the lowest address at the left,
   and proceeding to the byte with the highest address at the right.  */

#define __LITTLE_ENDIAN 1234
#define __BIG_ENDIAN 4321
#define __PDP_ENDIAN 3412

/* This file defines `__BYTE_ORDER' for the particular machine.  */
# 1 "../sysdeps/s390/bits/endianness.h" 1

#define _BITS_ENDIANNESS_H 1





/* S/390 is big-endian.  */
#define __BYTE_ORDER __BIG_ENDIAN

# 36 "../string/bits/endian.h" 2

/* Some machines may need to use a different endianness for floating point
   values.  */

#define __FLOAT_WORD_ORDER __BYTE_ORDER





#define __LONG_LONG_PAIR(HI,LO) HI, LO


# 2 "../include/bits/endian.h" 2
# 25 "../string/endian.h" 2


#define LITTLE_ENDIAN __LITTLE_ENDIAN
#define BIG_ENDIAN __BIG_ENDIAN
#define PDP_ENDIAN __PDP_ENDIAN
#define BYTE_ORDER __BYTE_ORDER



/* Conversion interfaces.  */
# 1 "../bits/byteswap.h" 1
/* Macros and inline functions to swap the order of bytes in integer values.
   Copyright (C) 1997-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */






#define _BITS_BYTESWAP_H 1


# 1 "../include/bits/types.h" 1
# 1 "../posix/bits/types.h" 1
/* bits/types.h -- definitions of __*_t types underlying *_t types.
   Copyright (C) 2002-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/*
 * Never include this file directly; use <sys/types.h> instead.
 */


#define _BITS_TYPES_H 1


# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
/* Determine the wordsize from the preprocessor defines.  */


#define __WORDSIZE 64






#define __WORDSIZE_TIME64_COMPAT32 0
# 28 "../posix/bits/types.h" 2
# 1 "../bits/timesize.h" 1
/* Bit size of the time_t type at glibc build time, general case.
   Copyright (C) 2018-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
/* Determine the wordsize from the preprocessor defines.  */


#define __WORDSIZE 64






#define __WORDSIZE_TIME64_COMPAT32 0
# 20 "../bits/timesize.h" 2

/* Size in bits of the 'time_t' type of the default ABI.  */
#define __TIMESIZE __WORDSIZE
# 29 "../posix/bits/types.h" 2

/* Convenience types.  */
typedef unsigned char __u_char;
typedef unsigned short int __u_short;
typedef unsigned int __u_int;
typedef unsigned long int __u_long;

/* Fixed-size types, underlying types depend on word size and compiler.  */
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;

typedef signed long int __int64_t;
typedef unsigned long int __uint64_t;





/* Smallest types with at least a given width.  */
typedef __int8_t __int_least8_t;
typedef __uint8_t __uint_least8_t;
typedef __int16_t __int_least16_t;
typedef __uint16_t __uint_least16_t;
typedef __int32_t __int_least32_t;
typedef __uint32_t __uint_least32_t;
typedef __int64_t __int_least64_t;
typedef __uint64_t __uint_least64_t;

/* quad_t is also 64 bits.  */

typedef long int __quad_t;
typedef unsigned long int __u_quad_t;





/* Largest integral types.  */

typedef long int __intmax_t;
typedef unsigned long int __uintmax_t;






/* The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
   macros for each of the OS types we define below.  The definitions
   of those macros must use the following macros for underlying types.
   We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
   variants of each of the following integer types on this machine.

	16		-- "natural" 16-bit type (always short)
	32		-- "natural" 32-bit type (always int)
	64		-- "natural" 64-bit type (long or long long)
	LONG32		-- 32-bit type, traditionally long
	QUAD		-- 64-bit type, traditionally long long
	WORD		-- natural type of __WORDSIZE bits (int or long)
	LONGWORD	-- type of __WORDSIZE bits, traditionally long

   We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
   conventional uses of `long' or `long long' type modifiers match the
   types we define, even when a less-adorned type would be the same size.
   This matters for (somewhat) portably writing printf/scanf formats for
   these types, where using the appropriate l or ll format modifiers can
   make the typedefs and the formats match up across all GNU platforms.  If
   we used `long' when it's 64 bits where `long long' is expected, then the
   compiler would warn about the formats not matching the argument types,
   and the programmer changing them to shut up the compiler would break the
   program's portability.

   Here we assume what is presently the case in all the GCC configurations
   we support: long long is always 64 bits, long is always word/address size,
   and int is always 32 bits.  */

#define __S16_TYPE short int
#define __U16_TYPE unsigned short int
#define __S32_TYPE int
#define __U32_TYPE unsigned int
#define __SLONGWORD_TYPE long int
#define __ULONGWORD_TYPE unsigned long int
# 128 "../posix/bits/types.h"
#define __SQUAD_TYPE long int
#define __UQUAD_TYPE unsigned long int
#define __SWORD_TYPE long int
#define __UWORD_TYPE unsigned long int
#define __SLONG32_TYPE int
#define __ULONG32_TYPE unsigned int
#define __S64_TYPE long int
#define __U64_TYPE unsigned long int
/* No need to mark the typedef with __extension__.   */
#define __STD_TYPE typedef



# 1 "../sysdeps/unix/sysv/linux/s390/bits/typesizes.h" 1
/* bits/typesizes.h -- underlying types for *_t.  Linux/s390 version.
   Copyright (C) 2003-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */






#define _BITS_TYPESIZES_H 1

/* See <bits/types.h> for the meaning of these macros.  This file exists so
   that <bits/types.h> need not vary across different GNU platforms.  */

#define __DEV_T_TYPE __UQUAD_TYPE
#define __UID_T_TYPE __U32_TYPE
#define __GID_T_TYPE __U32_TYPE
#define __INO_T_TYPE __ULONGWORD_TYPE
#define __INO64_T_TYPE __UQUAD_TYPE
#define __MODE_T_TYPE __U32_TYPE
#define __NLINK_T_TYPE __UWORD_TYPE
#define __OFF_T_TYPE __SLONGWORD_TYPE
#define __OFF64_T_TYPE __SQUAD_TYPE
#define __PID_T_TYPE __S32_TYPE
#define __RLIM_T_TYPE __ULONGWORD_TYPE
#define __RLIM64_T_TYPE __UQUAD_TYPE
#define __BLKCNT_T_TYPE __SLONGWORD_TYPE
#define __BLKCNT64_T_TYPE __SQUAD_TYPE
#define __FSBLKCNT_T_TYPE __ULONGWORD_TYPE
#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE
#define __FSFILCNT_T_TYPE __ULONGWORD_TYPE
#define __FSFILCNT64_T_TYPE __UQUAD_TYPE
#define __FSWORD_T_TYPE __SWORD_TYPE
#define __ID_T_TYPE __U32_TYPE
#define __CLOCK_T_TYPE __SLONGWORD_TYPE
#define __TIME_T_TYPE __SLONGWORD_TYPE
#define __USECONDS_T_TYPE __U32_TYPE
#define __SUSECONDS_T_TYPE __SLONGWORD_TYPE
#define __SUSECONDS64_T_TYPE __SQUAD_TYPE
#define __DADDR_T_TYPE __S32_TYPE
#define __KEY_T_TYPE __S32_TYPE
#define __CLOCKID_T_TYPE __S32_TYPE
#define __TIMER_T_TYPE void *
#define __BLKSIZE_T_TYPE __SLONGWORD_TYPE
#define __FSID_T_TYPE struct { int __val[2]; }




/* size_t is unsigned long int on s390 -m31.  */
#define __SSIZE_T_TYPE __SLONGWORD_TYPE

#define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
#define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
#define __CPU_MASK_TYPE __ULONGWORD_TYPE


/* Tell the libc code that off_t and off64_t are actually the same type
   for all ABI purposes, even if possibly expressed as different base types
   for C type-checking purposes.  */
#define __OFF_T_MATCHES_OFF64_T 1

/* Same for ino_t and ino64_t.  */
#define __INO_T_MATCHES_INO64_T 1

/* And for __rlim_t and __rlim64_t.  */
#define __RLIM_T_MATCHES_RLIM64_T 1

/* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t.  */
#define __STATFS_MATCHES_STATFS64 1

/* And for getitimer, setitimer and rusage  */
#define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 1
# 96 "../sysdeps/unix/sysv/linux/s390/bits/typesizes.h"

/* Number of descriptors that can fit in an `fd_set'.  */
#define __FD_SETSIZE 1024


# 142 "../posix/bits/types.h" 2
# 1 "../bits/time64.h" 1
/* bits/time64.h -- underlying types for __time64_t.  Generic version.
   Copyright (C) 2018-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */






#define _BITS_TIME64_H 1

/* Define __TIME64_T_TYPE so that it is always a 64-bit type.  */


/* If we already have 64-bit time type then use it.  */
#define __TIME64_T_TYPE __TIME_T_TYPE





# 143 "../posix/bits/types.h" 2


__STD_TYPE __DEV_T_TYPE __dev_t;	/* Type of device numbers.  */
__STD_TYPE __UID_T_TYPE __uid_t;	/* Type of user identifications.  */
__STD_TYPE __GID_T_TYPE __gid_t;	/* Type of group identifications.  */
__STD_TYPE __INO_T_TYPE __ino_t;	/* Type of file serial numbers.  */
__STD_TYPE __INO64_T_TYPE __ino64_t;	/* Type of file serial numbers (LFS).*/
__STD_TYPE __MODE_T_TYPE __mode_t;	/* Type of file attribute bitmasks.  */
__STD_TYPE __NLINK_T_TYPE __nlink_t;	/* Type of file link counts.  */
__STD_TYPE __OFF_T_TYPE __off_t;	/* Type of file sizes and offsets.  */
__STD_TYPE __OFF64_T_TYPE __off64_t;	/* Type of file sizes and offsets (LFS).  */
__STD_TYPE __PID_T_TYPE __pid_t;	/* Type of process identifications.  */
__STD_TYPE __FSID_T_TYPE __fsid_t;	/* Type of file system IDs.  */
__STD_TYPE __CLOCK_T_TYPE __clock_t;	/* Type of CPU usage counts.  */
__STD_TYPE __RLIM_T_TYPE __rlim_t;	/* Type for resource measurement.  */
__STD_TYPE __RLIM64_T_TYPE __rlim64_t;	/* Type for resource measurement (LFS).  */
__STD_TYPE __ID_T_TYPE __id_t;		/* General type for IDs.  */
__STD_TYPE __TIME_T_TYPE __time_t;	/* Seconds since the Epoch.  */
__STD_TYPE __USECONDS_T_TYPE __useconds_t; /* Count of microseconds.  */
__STD_TYPE __SUSECONDS_T_TYPE __suseconds_t; /* Signed count of microseconds.  */
__STD_TYPE __SUSECONDS64_T_TYPE __suseconds64_t;

__STD_TYPE __DADDR_T_TYPE __daddr_t;	/* The type of a disk address.  */
__STD_TYPE __KEY_T_TYPE __key_t;	/* Type of an IPC key.  */

/* Clock ID used in clock and timer functions.  */
__STD_TYPE __CLOCKID_T_TYPE __clockid_t;

/* Timer ID returned by `timer_create'.  */
__STD_TYPE __TIMER_T_TYPE __timer_t;

/* Type to represent block size.  */
__STD_TYPE __BLKSIZE_T_TYPE __blksize_t;

/* Types from the Large File Support interface.  */

/* Type to count number of disk blocks.  */
__STD_TYPE __BLKCNT_T_TYPE __blkcnt_t;
__STD_TYPE __BLKCNT64_T_TYPE __blkcnt64_t;

/* Type to count file system blocks.  */
__STD_TYPE __FSBLKCNT_T_TYPE __fsblkcnt_t;
__STD_TYPE __FSBLKCNT64_T_TYPE __fsblkcnt64_t;

/* Type to count file system nodes.  */
__STD_TYPE __FSFILCNT_T_TYPE __fsfilcnt_t;
__STD_TYPE __FSFILCNT64_T_TYPE __fsfilcnt64_t;

/* Type of miscellaneous file system fields.  */
__STD_TYPE __FSWORD_T_TYPE __fsword_t;

__STD_TYPE __SSIZE_T_TYPE __ssize_t; /* Type of a byte count, or error.  */

/* Signed long type used in system calls.  */
__STD_TYPE __SYSCALL_SLONG_TYPE __syscall_slong_t;
/* Unsigned long type used in system calls.  */
__STD_TYPE __SYSCALL_ULONG_TYPE __syscall_ulong_t;

/* These few don't really vary by system, they always correspond
   to one of the other defined types.  */
typedef __off64_t __loff_t;	/* Type of file sizes and offsets (LFS).  */
typedef char *__caddr_t;

/* Duplicates info from stdint.h but this is used in unistd.h.  */
__STD_TYPE __SWORD_TYPE __intptr_t;

/* Duplicate info from sys/socket.h.  */
__STD_TYPE __U32_TYPE __socklen_t;

/* C99: An integer type that can be accessed as an atomic entity,
   even in the presence of asynchronous interrupts.
   It is not currently necessary for this to be machine-specific.  */
typedef int __sig_atomic_t;

/* Seconds since the Epoch, visible to user code when time_t is too
   narrow only for consistency with the old way of widening too-narrow
   types.  User code should never use __time64_t.  */






#undef __STD_TYPE

# 2 "../include/bits/types.h" 2
# 28 "../bits/byteswap.h" 2

/* Swap bytes in 16-bit value.  */
#define __bswap_constant_16(x) ((__uint16_t) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)))


static __inline __uint16_t
__bswap_16 (__uint16_t __bsx)
{

  return __builtin_bswap16 (__bsx);



}

/* Swap bytes in 32-bit value.  */
#define __bswap_constant_32(x) ((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8) | (((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24))



static __inline __uint32_t
__bswap_32 (__uint32_t __bsx)
{

  return __builtin_bswap32 (__bsx);



}

/* Swap bytes in 64-bit value.  */
#define __bswap_constant_64(x) ((((x) & 0xff00000000000000ull) >> 56) | (((x) & 0x00ff000000000000ull) >> 40) | (((x) & 0x0000ff0000000000ull) >> 24) | (((x) & 0x000000ff00000000ull) >> 8) | (((x) & 0x00000000ff000000ull) << 8) | (((x) & 0x0000000000ff0000ull) << 24) | (((x) & 0x000000000000ff00ull) << 40) | (((x) & 0x00000000000000ffull) << 56))
# 68 "../bits/byteswap.h"

__extension__ static __inline __uint64_t
__bswap_64 (__uint64_t __bsx)
{

  return __builtin_bswap64 (__bsx);



}

# 36 "../string/endian.h" 2
# 1 "../bits/uintn-identity.h" 1
/* Inline functions to return unsigned integer values unchanged.
   Copyright (C) 2017-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */






#define _BITS_UINTN_IDENTITY_H 1

# 1 "../include/bits/types.h" 1
# 27 "../bits/uintn-identity.h" 2

/* These inline functions are to ensure the appropriate type
   conversions and associated diagnostics from macros that convert to
   a given endianness.  */

static __inline __uint16_t
__uint16_identity (__uint16_t __x)
{
  return __x;
}

static __inline __uint32_t
__uint32_identity (__uint32_t __x)
{
  return __x;
}

static __inline __uint64_t
__uint64_identity (__uint64_t __x)
{
  return __x;
}

# 37 "../string/endian.h" 2

# 55 "../string/endian.h"
#define htobe16(x) __uint16_identity (x)
#define htole16(x) __bswap_16 (x)
#define be16toh(x) __uint16_identity (x)
#define le16toh(x) __bswap_16 (x)

#define htobe32(x) __uint32_identity (x)
#define htole32(x) __bswap_32 (x)
#define be32toh(x) __uint32_identity (x)
#define le32toh(x) __bswap_32 (x)

#define htobe64(x) __uint64_identity (x)
#define htole64(x) __bswap_64 (x)
#define be64toh(x) __uint64_identity (x)
#define le64toh(x) __bswap_64 (x)



# 2 "../include/endian.h" 2



#define BIG_ENDI 1
#undef LITTLE_ENDI
#define HIGH_HALF 0
#define LOW_HALF 1
# 17 "../include/endian.h"
# 24 "../sysdeps/unix/sysv/linux/sysdep.h" 2


#undef INTERNAL_SYSCALL_ERROR_P
#define INTERNAL_SYSCALL_ERROR_P(val) ((unsigned long int) (val) > -4096UL)



#define SYSCALL_ERROR_LABEL(sc_err) ({ __set_errno (sc_err); -1L; })






/* Define a macro which expands into the inline wrapper code for a system
   call.  It sets the errno and returns -1 on a failure, or the syscall
   return value otherwise.  */
#undef INLINE_SYSCALL
#define INLINE_SYSCALL(name,nr,args...) ({ long int sc_ret = INTERNAL_SYSCALL (name, nr, args); __glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (sc_ret)) ? SYSCALL_ERROR_LABEL (INTERNAL_SYSCALL_ERRNO (sc_ret)) : sc_ret; })







#undef INTERNAL_SYSCALL_ERRNO
#define INTERNAL_SYSCALL_ERRNO(val) (-(val))

/* Set error number and return -1.  A target may choose to return the
   internal function, __syscall_error, which sets errno and returns -1.
   We use -1l, instead of -1, so that it can be casted to (void *).  */
#define INLINE_SYSCALL_ERROR_RETURN_VALUE(err) ({ __set_errno (err); -1l; })





/* Provide a dummy argument that can be used to force register
   alignment for register pairs if required by the syscall ABI.  */




#define __ALIGNMENT_ARG 
#define __ALIGNMENT_COUNT(a,b) a


/* Provide a common macro to pass 64-bit value on syscalls.  */

#define SYSCALL_LL(val) (val)
#define SYSCALL_LL64(val) (val)







/* Provide a common macro to pass 64-bit value on pread and pwrite
   syscalls.  */




#define SYSCALL_LL_PRW(val) __ALIGNMENT_ARG SYSCALL_LL (val)
#define SYSCALL_LL64_PRW(val) __ALIGNMENT_ARG SYSCALL_LL64 (val)


/* Provide a macro to pass the off{64}_t argument on p{readv,writev}{64}.  */
#define LO_HI_LONG(val) (long) (val), (long) (((uint64_t) (val)) >> 32)



/* Export the ___brk_addr symbol on brk.c implementation (some ABIs export
   it due and old crtstuff.c code).  */
#define HAVE_INTERNAL_BRK_ADDR_SYMBOL 0

# 26 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" 2
# 1 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 1
/* System-specific settings for dynamic linker code.  Linux version.
   Copyright (C) 2005-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

# 1 "../sysdeps/generic/dl-sysdep.h" 1
/* System-specific settings for dynamic linker code.  Generic version.
   Copyright (C) 2002-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/* No multiple inclusion protection need here because it's just macros.
   We don't want to use _DL_SYSDEP_H in case we are #include_next'd.  */

/* This macro must be defined to either 0 or 1.

   If 1, then an errno global variable hidden in ld.so will work right with
   all the errno-using libc code compiled for ld.so, and there is never a
   need to share the errno location with libc.  This is appropriate only if
   all the libc functions that ld.so uses are called without PLT and always
   get the versions linked into ld.so rather than the libc ones.  */




#define RTLD_PRIVATE_ERRNO 0
# 20 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 2

/* On many architectures the kernel provides a virtual DSO and gives
   AT_SYSINFO_EHDR to point us to it.  As this is introduced for new
   machines, we should look at it for unwind information even if
   we aren't making direct use of it.  So enable this across the board.  */

#define NEED_DL_SYSINFO_DSO 1



/* Get version of the OS.  */
extern int _dl_discover_osversion (void) attribute_hidden;
#define HAVE_DL_DISCOVER_OSVERSION 1
# 27 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" 2
# 1 "../sysdeps/s390/nptl/tls.h" 1
/* Definition for thread-local data handling.  NPTL/s390 version.
   Copyright (C) 2003-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _TLS_H 1

# 1 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 1
/* System-specific settings for dynamic linker code.  Linux version.
   Copyright (C) 2005-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

# 1 "../sysdeps/generic/dl-sysdep.h" 1
/* System-specific settings for dynamic linker code.  Generic version.
   Copyright (C) 2002-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/* No multiple inclusion protection need here because it's just macros.
   We don't want to use _DL_SYSDEP_H in case we are #include_next'd.  */

/* This macro must be defined to either 0 or 1.

   If 1, then an errno global variable hidden in ld.so will work right with
   all the errno-using libc code compiled for ld.so, and there is never a
   need to share the errno location with libc.  This is appropriate only if
   all the libc functions that ld.so uses are called without PLT and always
   get the versions linked into ld.so rather than the libc ones.  */




#define RTLD_PRIVATE_ERRNO 0
# 20 "../sysdeps/unix/sysv/linux/dl-sysdep.h" 2

/* On many architectures the kernel provides a virtual DSO and gives
   AT_SYSINFO_EHDR to point us to it.  As this is introduced for new
   machines, we should look at it for unwind information even if
   we aren't making direct use of it.  So enable this across the board.  */

#define NEED_DL_SYSINFO_DSO 1



/* Get version of the OS.  */
extern int _dl_discover_osversion (void) attribute_hidden;
#define HAVE_DL_DISCOVER_OSVERSION 1
# 23 "../sysdeps/s390/nptl/tls.h" 2

# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stdbool.h" 1 3 4
/* Copyright (C) 1998-2021 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
 */


#define _STDBOOL_H 



#define bool _Bool




#define true 1
#define false 0









/* Signal that all the definitions are present.  */
#define __bool_true_false_are_defined 1

# 25 "../sysdeps/s390/nptl/tls.h" 2
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2021 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */






/* Any one of these symbols __need_* means that GNU libc
   wants us just to define one data type.  So don't define
   the symbols that indicate this file's entire job has been done.  */



#define _STDDEF_H 
#define _STDDEF_H_ 
/* snaroff@next.com says the NeXT needs this.  */
#define _ANSI_STDDEF_H 



/* This avoids lossage on SunOS but only if stdtypes.h comes first.
   There's no way to win with the other order!  Sun lossage.  */









# 85 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
   Just ignore it.  */




/* On VxWorks, <type/vxTypesBase.h> may have defined macros like
   _TYPE_size_t which will typedef size_t.  fixincludes patched the
   vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
   not defined, and so that defining this macro defines _GCC_SIZE_T.
   If we find that the macros are still defined at this point, we must
   invoke them so that the type is defined as expected.  */













/* In case nobody has defined these types, but we aren't running under
   GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
   __WCHAR_TYPE__ have reasonable values.  This can happen if the
   parts of GCC is compiled by an older compiler, that actually
   include gstddef.h, such as collect2.  */

/* Signed type of difference of two pointers.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */










#define _PTRDIFF_T 
#define _T_PTRDIFF_ 
#define _T_PTRDIFF 
#define __PTRDIFF_T 
#define _PTRDIFF_T_ 
#define _BSD_PTRDIFF_T_ 
#define ___int_ptrdiff_t_h 
#define _GCC_PTRDIFF_T 
#define _PTRDIFF_T_DECLARED 



typedef __PTRDIFF_TYPE__ ptrdiff_t;










/* If this symbol has done its job, get rid of it.  */
#undef __need_ptrdiff_t



/* Unsigned type of `sizeof' something.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */


















#define __size_t__ 
#define __SIZE_T__ 
#define _SIZE_T 
#define _SYS_SIZE_T_H 
#define _T_SIZE_ 
#define _T_SIZE 
#define __SIZE_T 
#define _SIZE_T_ 
#define _BSD_SIZE_T_ 
#define _SIZE_T_DEFINED_ 
#define _SIZE_T_DEFINED 
#define _BSD_SIZE_T_DEFINED_ 
#define _SIZE_T_DECLARED 
#define ___int_size_t_h 
#define _GCC_SIZE_T 
#define _SIZET_ 






#define __size_t 





typedef __SIZE_TYPE__ size_t;





















#undef __need_size_t



/* Wide character type.
   Locale-writers should change this as necessary to
   be big enough to hold unique values not between 0 and 127,
   and not (wchar_t) -1, for each defined multibyte character.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */


















#define __wchar_t__ 
#define __WCHAR_T__ 
#define _WCHAR_T 
#define _T_WCHAR_ 
#define _T_WCHAR 
#define __WCHAR_T 
#define _WCHAR_T_ 
#define _BSD_WCHAR_T_ 
#define _WCHAR_T_DEFINED_ 
#define _WCHAR_T_DEFINED 
#define _WCHAR_T_H 
#define ___int_wchar_t_h 
#define __INT_WCHAR_T_H 
#define _GCC_WCHAR_T 
#define _WCHAR_T_DECLARED 

/* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_
   instead of _WCHAR_T_, and _BSD_RUNE_T_ (which, unlike the other
   symbols in the _FOO_T_ family, stays defined even after its
   corresponding type is defined).  If we define wchar_t, then we
   must undef _WCHAR_T_; for BSD/386 1.1 (and perhaps others), if
   we undef _WCHAR_T_, then we must also define rune_t, since 
   headers like runetype.h assume that if machine/ansi.h is included,
   and _BSD_WCHAR_T_ is not defined, then rune_t is available.
   machine/ansi.h says, "Note that _WCHAR_T_ and _RUNE_T_ must be of
   the same type." */

#undef _BSD_WCHAR_T_
# 302 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* FreeBSD 5 can't be handled well using "traditional" logic above
   since it no longer defines _BSD_RUNE_T_ yet still desires to export
   rune_t in some cases... */
# 316 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4





typedef __WCHAR_TYPE__ wchar_t;


















#undef __need_wchar_t


# 354 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

# 384 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4



/* A null pointer constant.  */


#undef NULL




#define NULL ((void *)0)





#undef __need_NULL



/* Offset of member MEMBER in a struct of type TYPE. */
#define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)




#define _GCC_MAX_ALIGN_T 
/* Type whose alignment is supported in every context and is at least
   as great as that of any standard type not using alignment
   specifiers.  */
typedef struct {
  long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
  long double __max_align_ld __attribute__((__aligned__(__alignof__(long double))));
  /* _Float128 is defined as a basic type, so max_align_t must be
     sufficiently aligned for it.  This code must work in C++, so we
     use __float128 here; that is only available on some
     architectures, but only on i386 is extra alignment needed for
     __float128.  */



} max_align_t;












# 26 "../sysdeps/s390/nptl/tls.h" 2
# 1 "../include/stdint.h" 1
# 1 "../stdlib/stdint.h" 1
/* Copyright (C) 1997-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/*
 *	ISO C99: 7.18 Integer types <stdint.h>
 */


#define _STDINT_H 1

#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION 
# 1 "../bits/libc-header-start.h" 1
/* Handle feature test macros at the start of a header.
   Copyright (C) 2016-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/* This header is internal to glibc and should not be included outside
   of glibc headers.  Headers including it must define
   __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first.  This header
   cannot have multiple include guards because ISO C feature test
   macros depend on the definition of the macro when an affected
   header is included, not when the first system header is
   included.  */





#undef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION



/* ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__
   macro.  */
#undef __GLIBC_USE_LIB_EXT2


#define __GLIBC_USE_LIB_EXT2 1




/* ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__
   macro.  Most but not all symbols enabled by that macro in TS
   18661-1 are enabled unconditionally in C2X.  In C2X, the symbols in
   Annex F still require a new feature test macro
   __STDC_WANT_IEC_60559_EXT__ instead (C2X does not define
   __STDC_WANT_IEC_60559_BFP_EXT__), while a few features from TS
   18661-1 are not included in C2X (and thus should depend on
   __STDC_WANT_IEC_60559_BFP_EXT__ even when C2X features are
   enabled).

   __GLIBC_USE (IEC_60559_BFP_EXT) controls those features from TS
   18661-1 not included in C2X.

   __GLIBC_USE (IEC_60559_BFP_EXT_C2X) controls those features from TS
   18661-1 that are also included in C2X (with no feature test macro
   required in C2X).

   __GLIBC_USE (IEC_60559_EXT) controls those features from TS 18661-1
   that are included in C2X but conditional on
   __STDC_WANT_IEC_60559_EXT__.  (There are currently no features
   conditional on __STDC_WANT_IEC_60559_EXT__ that are not in TS
   18661-1.)  */
#undef __GLIBC_USE_IEC_60559_BFP_EXT

#define __GLIBC_USE_IEC_60559_BFP_EXT 1



#undef __GLIBC_USE_IEC_60559_BFP_EXT_C2X

#define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 1



#undef __GLIBC_USE_IEC_60559_EXT

#define __GLIBC_USE_IEC_60559_EXT 1




/* ISO/IEC TS 18661-4:2015 defines the
   __STDC_WANT_IEC_60559_FUNCS_EXT__ macro.  Other than the reduction
   functions, the symbols from this TS are enabled unconditionally in
   C2X.  */
#undef __GLIBC_USE_IEC_60559_FUNCS_EXT

#define __GLIBC_USE_IEC_60559_FUNCS_EXT 1



#undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X

#define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 1




/* ISO/IEC TS 18661-3:2015 defines the
   __STDC_WANT_IEC_60559_TYPES_EXT__ macro.  */
#undef __GLIBC_USE_IEC_60559_TYPES_EXT

#define __GLIBC_USE_IEC_60559_TYPES_EXT 1
# 27 "../stdlib/stdint.h" 2
# 1 "../include/bits/types.h" 1
# 28 "../stdlib/stdint.h" 2
# 1 "../bits/wchar.h" 1
/* wchar_t type related definitions.
   Copyright (C) 2000-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _BITS_WCHAR_H 1

/* The fallback definitions, for when __WCHAR_MAX__ or __WCHAR_MIN__
   are not defined, give the right value and type as long as both int
   and wchar_t are 32-bit types.  Adding L'\0' to a constant value
   ensures that the type is correct; it is necessary to use (L'\0' +
   0) rather than just L'\0' so that the type in C++ is the promoted
   version of wchar_t rather than the distinct wchar_t type itself.
   Because wchar_t in preprocessor #if expressions is treated as
   intmax_t or uintmax_t, the expression (L'\0' - 1) would have the
   wrong value for WCHAR_MAX in such expressions and so cannot be used
   to define __WCHAR_MAX in the unsigned case.  */


#define __WCHAR_MAX __WCHAR_MAX__







#define __WCHAR_MIN __WCHAR_MIN__






# 29 "../stdlib/stdint.h" 2
# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
/* Determine the wordsize from the preprocessor defines.  */


#define __WORDSIZE 64






#define __WORDSIZE_TIME64_COMPAT32 0
# 30 "../stdlib/stdint.h" 2

/* Exact integral types.  */

/* Signed.  */
# 1 "../bits/stdint-intn.h" 1
/* Define intN_t types.
   Copyright (C) 2017-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _BITS_STDINT_INTN_H 1

# 1 "../include/bits/types.h" 1
# 23 "../bits/stdint-intn.h" 2

typedef __int8_t int8_t;
typedef __int16_t int16_t;
typedef __int32_t int32_t;
typedef __int64_t int64_t;

# 35 "../stdlib/stdint.h" 2

/* Unsigned.  */
# 1 "../bits/stdint-uintn.h" 1
/* Define uintN_t types.
   Copyright (C) 2017-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _BITS_STDINT_UINTN_H 1

# 1 "../include/bits/types.h" 1
# 23 "../bits/stdint-uintn.h" 2

typedef __uint8_t uint8_t;
typedef __uint16_t uint16_t;
typedef __uint32_t uint32_t;
typedef __uint64_t uint64_t;

# 38 "../stdlib/stdint.h" 2


/* Small types.  */

/* Signed.  */
typedef __int_least8_t int_least8_t;
typedef __int_least16_t int_least16_t;
typedef __int_least32_t int_least32_t;
typedef __int_least64_t int_least64_t;

/* Unsigned.  */
typedef __uint_least8_t uint_least8_t;
typedef __uint_least16_t uint_least16_t;
typedef __uint_least32_t uint_least32_t;
typedef __uint_least64_t uint_least64_t;


/* Fast types.  */

/* Signed.  */
typedef signed char		int_fast8_t;

typedef long int		int_fast16_t;
typedef long int		int_fast32_t;
typedef long int		int_fast64_t;







/* Unsigned.  */
typedef unsigned char		uint_fast8_t;

typedef unsigned long int	uint_fast16_t;
typedef unsigned long int	uint_fast32_t;
typedef unsigned long int	uint_fast64_t;








/* Types for `void *' pointers.  */


typedef long int		intptr_t;
#define __intptr_t_defined 

typedef unsigned long int	uintptr_t;









/* Largest integral types.  */
typedef __intmax_t		intmax_t;
typedef __uintmax_t		uintmax_t;



#define __INT64_C(c) c ## L
#define __UINT64_C(c) c ## UL





/* Limits of integral types.  */

/* Minimum of signed integral types.  */
#define INT8_MIN (-128)
#define INT16_MIN (-32767-1)
#define INT32_MIN (-2147483647-1)
#define INT64_MIN (-__INT64_C(9223372036854775807)-1)
/* Maximum of signed integral types.  */
#define INT8_MAX (127)
#define INT16_MAX (32767)
#define INT32_MAX (2147483647)
#define INT64_MAX (__INT64_C(9223372036854775807))

/* Maximum of unsigned integral types.  */
#define UINT8_MAX (255)
#define UINT16_MAX (65535)
#define UINT32_MAX (4294967295U)
#define UINT64_MAX (__UINT64_C(18446744073709551615))


/* Minimum of signed integral types having a minimum size.  */
#define INT_LEAST8_MIN (-128)
#define INT_LEAST16_MIN (-32767-1)
#define INT_LEAST32_MIN (-2147483647-1)
#define INT_LEAST64_MIN (-__INT64_C(9223372036854775807)-1)
/* Maximum of signed integral types having a minimum size.  */
#define INT_LEAST8_MAX (127)
#define INT_LEAST16_MAX (32767)
#define INT_LEAST32_MAX (2147483647)
#define INT_LEAST64_MAX (__INT64_C(9223372036854775807))

/* Maximum of unsigned integral types having a minimum size.  */
#define UINT_LEAST8_MAX (255)
#define UINT_LEAST16_MAX (65535)
#define UINT_LEAST32_MAX (4294967295U)
#define UINT_LEAST64_MAX (__UINT64_C(18446744073709551615))


/* Minimum of fast signed integral types having a minimum size.  */
#define INT_FAST8_MIN (-128)

#define INT_FAST16_MIN (-9223372036854775807L-1)
#define INT_FAST32_MIN (-9223372036854775807L-1)




#define INT_FAST64_MIN (-__INT64_C(9223372036854775807)-1)
/* Maximum of fast signed integral types having a minimum size.  */
#define INT_FAST8_MAX (127)

#define INT_FAST16_MAX (9223372036854775807L)
#define INT_FAST32_MAX (9223372036854775807L)




#define INT_FAST64_MAX (__INT64_C(9223372036854775807))

/* Maximum of fast unsigned integral types having a minimum size.  */
#define UINT_FAST8_MAX (255)

#define UINT_FAST16_MAX (18446744073709551615UL)
#define UINT_FAST32_MAX (18446744073709551615UL)




#define UINT_FAST64_MAX (__UINT64_C(18446744073709551615))


/* Values to test for integral types holding `void *' pointer.  */

#define INTPTR_MIN (-9223372036854775807L-1)
#define INTPTR_MAX (9223372036854775807L)
#define UINTPTR_MAX (18446744073709551615UL)







/* Minimum for largest signed integral type.  */
#define INTMAX_MIN (-__INT64_C(9223372036854775807)-1)
/* Maximum for largest signed integral type.  */
#define INTMAX_MAX (__INT64_C(9223372036854775807))

/* Maximum for largest unsigned integral type.  */
#define UINTMAX_MAX (__UINT64_C(18446744073709551615))


/* Limits of other integer types.  */

/* Limits of `ptrdiff_t' type.  */

#define PTRDIFF_MIN (-9223372036854775807L-1)
#define PTRDIFF_MAX (9223372036854775807L)
# 220 "../stdlib/stdint.h"

/* Limits of `sig_atomic_t'.  */
#define SIG_ATOMIC_MIN (-2147483647-1)
#define SIG_ATOMIC_MAX (2147483647)

/* Limit of `size_t' type.  */

#define SIZE_MAX (18446744073709551615UL)








/* Limits of `wchar_t'.  */

/* These constants might also be defined in <wchar.h>.  */
#define WCHAR_MIN __WCHAR_MIN
#define WCHAR_MAX __WCHAR_MAX


/* Limits of `wint_t'.  */
#define WINT_MIN (0u)
#define WINT_MAX (4294967295u)

/* Signed.  */
#define INT8_C(c) c
#define INT16_C(c) c
#define INT32_C(c) c

#define INT64_C(c) c ## L




/* Unsigned.  */
#define UINT8_C(c) c
#define UINT16_C(c) c
#define UINT32_C(c) c ## U

#define UINT64_C(c) c ## UL




/* Maximal type.  */

#define INTMAX_C(c) c ## L
#define UINTMAX_C(c) c ## UL







#define INT8_WIDTH 8
#define UINT8_WIDTH 8
#define INT16_WIDTH 16
#define UINT16_WIDTH 16
#define INT32_WIDTH 32
#define UINT32_WIDTH 32
#define INT64_WIDTH 64
#define UINT64_WIDTH 64

#define INT_LEAST8_WIDTH 8
#define UINT_LEAST8_WIDTH 8
#define INT_LEAST16_WIDTH 16
#define UINT_LEAST16_WIDTH 16
#define INT_LEAST32_WIDTH 32
#define UINT_LEAST32_WIDTH 32
#define INT_LEAST64_WIDTH 64
#define UINT_LEAST64_WIDTH 64

#define INT_FAST8_WIDTH 8
#define UINT_FAST8_WIDTH 8
#define INT_FAST16_WIDTH __WORDSIZE
#define UINT_FAST16_WIDTH __WORDSIZE
#define INT_FAST32_WIDTH __WORDSIZE
#define UINT_FAST32_WIDTH __WORDSIZE
#define INT_FAST64_WIDTH 64
#define UINT_FAST64_WIDTH 64

#define INTPTR_WIDTH __WORDSIZE
#define UINTPTR_WIDTH __WORDSIZE

#define INTMAX_WIDTH 64
#define UINTMAX_WIDTH 64

#define PTRDIFF_WIDTH __WORDSIZE
#define SIG_ATOMIC_WIDTH 32
#define SIZE_WIDTH __WORDSIZE
#define WCHAR_WIDTH 32
#define WINT_WIDTH 32



# 2 "../include/stdint.h" 2
# 27 "../sysdeps/s390/nptl/tls.h" 2
# 1 "../include/stdlib.h" 1



# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2021 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 5 "../include/stdlib.h" 2


/* Workaround PR90731 with GCC 9 when using ldbl redirects in C++.  */
# 1 "../sysdeps/ieee754/ldbl-128/bits/floatn.h" 1
/* Macros to control TS 18661-3 glibc features on ldbl-128 platforms.
   Copyright (C) 2017-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _BITS_FLOATN_H 


# 1 "../sysdeps/ieee754/ldbl-opt/bits/long-double.h" 1
/* Properties of long double type.  ldbl-opt version.
   Copyright (C) 2016-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License  published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define __LONG_DOUBLE_MATH_OPTIONAL 1




#define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0
# 24 "../sysdeps/ieee754/ldbl-128/bits/floatn.h" 2

/* Defined to 1 if the current compiler invocation provides a
   floating-point type with the IEEE 754 binary128 format, and this
   glibc includes corresponding *f128 interfaces for it.  */

#define __HAVE_FLOAT128 1








/* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct
   from the default float, double and long double types in this glibc.  */
#define __HAVE_DISTINCT_FLOAT128 0

/* Defined to 1 if the current compiler invocation provides a
   floating-point type with the right format for _Float64x, and this
   glibc includes corresponding *f64x interfaces for it.  */
#define __HAVE_FLOAT64X __HAVE_FLOAT128

/* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format
   of long double.  Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has
   the format of _Float128, which must be different from that of long
   double.  */
#define __HAVE_FLOAT64X_LONG_DOUBLE __HAVE_FLOAT128



/* Defined to concatenate the literal suffix to be used with _Float128
   types, if __HAVE_FLOAT128 is 1. */





#define __f128(x) x ##f128



/* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1.  */




#define __CFLOAT128 _Complex _Float128



/* The remaining of this file provides support for older compilers.  */


/* The type _Float128 exists only since GCC 7.0.  */




/* Various built-in functions do not exist before GCC 7.0.  */











# 1 "../bits/floatn-common.h" 1
/* Macros to control TS 18661-3 glibc features where the same
   definitions are appropriate for all platforms.
   Copyright (C) 2017-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _BITS_FLOATN_COMMON_H 


# 1 "../sysdeps/ieee754/ldbl-opt/bits/long-double.h" 1
/* Properties of long double type.  ldbl-opt version.
   Copyright (C) 2016-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License  published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define __LONG_DOUBLE_MATH_OPTIONAL 1




#define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0
# 25 "../bits/floatn-common.h" 2

/* This header should be included at the bottom of each bits/floatn.h.
   It defines the following macros for each _FloatN and _FloatNx type,
   where the same definitions, or definitions based only on the macros
   in bits/floatn.h, are appropriate for all glibc configurations.  */

/* Defined to 1 if the current compiler invocation provides a
   floating-point type with the right format for this type, and this
   glibc includes corresponding *fN or *fNx interfaces for it.  */
#define __HAVE_FLOAT16 0
#define __HAVE_FLOAT32 1
#define __HAVE_FLOAT64 1
#define __HAVE_FLOAT32X 1
#define __HAVE_FLOAT128X 0

/* Defined to 1 if the corresponding __HAVE_<type> macro is 1 and the
   type is the first with its format in the sequence of (the default
   choices for) float, double, long double, _Float16, _Float32,
   _Float64, _Float128, _Float32x, _Float64x, _Float128x for this
   glibc; that is, if functions present once per floating-point format
   rather than once per type are present for this type.

   All configurations supported by glibc have _Float32 the same format
   as float, _Float64 and _Float32x the same format as double, the
   _Float64x the same format as either long double or _Float128.  No
   configurations support _Float128x or, as of GCC 7, have compiler
   support for a type meeting the requirements for _Float128x.  */
#define __HAVE_DISTINCT_FLOAT16 __HAVE_FLOAT16
#define __HAVE_DISTINCT_FLOAT32 0
#define __HAVE_DISTINCT_FLOAT64 0
#define __HAVE_DISTINCT_FLOAT32X 0
#define __HAVE_DISTINCT_FLOAT64X 0
#define __HAVE_DISTINCT_FLOAT128X __HAVE_FLOAT128X

/* Defined to 1 if the corresponding _FloatN type is not binary compatible
   with the corresponding ISO C type in the current compilation unit as
   opposed to __HAVE_DISTINCT_FLOATN, which indicates the default types built
   in glibc.  */
#define __HAVE_FLOAT128_UNLIKE_LDBL (__HAVE_DISTINCT_FLOAT128 && __LDBL_MANT_DIG__ != 113)


/* Defined to 1 if any _FloatN or _FloatNx types that are not
   ABI-distinct are however distinct types at the C language level (so
   for the purposes of __builtin_types_compatible_p and _Generic).  */

#define __HAVE_FLOATN_NOT_TYPEDEF 1






/* Defined to concatenate the literal suffix to be used with _FloatN
   or _FloatNx types, if __HAVE_<type> is 1.  The corresponding
   literal suffixes exist since GCC 7, for C only.  */
# 88 "../bits/floatn-common.h"





#define __f32(x) x ##f32











#define __f64(x) x ##f64







#define __f32x(x) x ##f32x











#define __f64x(x) x ##f64x











/* Defined to a complex type if __HAVE_<type> is 1.  */
# 146 "../bits/floatn-common.h"





#define __CFLOAT32 _Complex _Float32











#define __CFLOAT64 _Complex _Float64







#define __CFLOAT32X _Complex _Float32x











#define __CFLOAT64X _Complex _Float64x











/* The remaining of this file provides support for older compilers.  */
# 210 "../bits/floatn-common.h"


















/* If double, long double and _Float64 all have the same set of
   values, TS 18661-3 requires the usual arithmetic conversions on
   long double and _Float64 to produce _Float64.  For this to be the
   case when building with a compiler without a distinct _Float64
   type, _Float64 must be a typedef for long double, not for
   double.  */

# 249 "../bits/floatn-common.h"














































# 309 "../bits/floatn-common.h"



# 326 "../bits/floatn-common.h"



# 96 "../sysdeps/ieee754/ldbl-128/bits/floatn.h" 2

# 9 "../include/stdlib.h" 2






# 1 "../stdlib/stdlib.h" 1
/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
   Copyright The GNU Toolchain Authors.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/*
 *	ISO C99 Standard: 7.20 General utilities	<stdlib.h>
 */



#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION 
# 1 "../bits/libc-header-start.h" 1
/* Handle feature test macros at the start of a header.
   Copyright (C) 2016-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/* This header is internal to glibc and should not be included outside
   of glibc headers.  Headers including it must define
   __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first.  This header
   cannot have multiple include guards because ISO C feature test
   macros depend on the definition of the macro when an affected
   header is included, not when the first system header is
   included.  */





#undef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION



/* ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__
   macro.  */
#undef __GLIBC_USE_LIB_EXT2


#define __GLIBC_USE_LIB_EXT2 1




/* ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__
   macro.  Most but not all symbols enabled by that macro in TS
   18661-1 are enabled unconditionally in C2X.  In C2X, the symbols in
   Annex F still require a new feature test macro
   __STDC_WANT_IEC_60559_EXT__ instead (C2X does not define
   __STDC_WANT_IEC_60559_BFP_EXT__), while a few features from TS
   18661-1 are not included in C2X (and thus should depend on
   __STDC_WANT_IEC_60559_BFP_EXT__ even when C2X features are
   enabled).

   __GLIBC_USE (IEC_60559_BFP_EXT) controls those features from TS
   18661-1 not included in C2X.

   __GLIBC_USE (IEC_60559_BFP_EXT_C2X) controls those features from TS
   18661-1 that are also included in C2X (with no feature test macro
   required in C2X).

   __GLIBC_USE (IEC_60559_EXT) controls those features from TS 18661-1
   that are included in C2X but conditional on
   __STDC_WANT_IEC_60559_EXT__.  (There are currently no features
   conditional on __STDC_WANT_IEC_60559_EXT__ that are not in TS
   18661-1.)  */
#undef __GLIBC_USE_IEC_60559_BFP_EXT

#define __GLIBC_USE_IEC_60559_BFP_EXT 1



#undef __GLIBC_USE_IEC_60559_BFP_EXT_C2X

#define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 1



#undef __GLIBC_USE_IEC_60559_EXT

#define __GLIBC_USE_IEC_60559_EXT 1




/* ISO/IEC TS 18661-4:2015 defines the
   __STDC_WANT_IEC_60559_FUNCS_EXT__ macro.  Other than the reduction
   functions, the symbols from this TS are enabled unconditionally in
   C2X.  */
#undef __GLIBC_USE_IEC_60559_FUNCS_EXT

#define __GLIBC_USE_IEC_60559_FUNCS_EXT 1



#undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X

#define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 1




/* ISO/IEC TS 18661-3:2015 defines the
   __STDC_WANT_IEC_60559_TYPES_EXT__ macro.  */
#undef __GLIBC_USE_IEC_60559_TYPES_EXT

#define __GLIBC_USE_IEC_60559_TYPES_EXT 1
# 27 "../stdlib/stdlib.h" 2

/* Get size_t, wchar_t and NULL from <stddef.h>.  */
#define __need_size_t 
#define __need_wchar_t 
#define __need_NULL 
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2021 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */






/* Any one of these symbols __need_* means that GNU libc
   wants us just to define one data type.  So don't define
   the symbols that indicate this file's entire job has been done.  */
# 44 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4


/* This avoids lossage on SunOS but only if stdtypes.h comes first.
   There's no way to win with the other order!  Sun lossage.  */









# 85 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
   Just ignore it.  */




/* On VxWorks, <type/vxTypesBase.h> may have defined macros like
   _TYPE_size_t which will typedef size_t.  fixincludes patched the
   vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
   not defined, and so that defining this macro defines _GCC_SIZE_T.
   If we find that the macros are still defined at this point, we must
   invoke them so that the type is defined as expected.  */













/* In case nobody has defined these types, but we aren't running under
   GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
   __WCHAR_TYPE__ have reasonable values.  This can happen if the
   parts of GCC is compiled by an older compiler, that actually
   include gstddef.h, such as collect2.  */

/* Signed type of difference of two pointers.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 153 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* If this symbol has done its job, get rid of it.  */
#undef __need_ptrdiff_t



/* Unsigned type of `sizeof' something.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 231 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
#undef __need_size_t



/* Wide character type.
   Locale-writers should change this as necessary to
   be big enough to hold unique values not between 0 and 127,
   and not (wchar_t) -1, for each defined multibyte character.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 340 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
#undef __need_wchar_t


# 354 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

# 384 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4



/* A null pointer constant.  */


#undef NULL




#define NULL ((void *)0)





#undef __need_NULL



/* Offset of member MEMBER in a struct of type TYPE. */
#define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)



# 428 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4











# 33 "../stdlib/stdlib.h" 2

__BEGIN_DECLS

#define _STDLIB_H 1


/* XPG requires a few symbols from <sys/wait.h> being defined.  */
# 1 "../sysdeps/unix/sysv/linux/bits/waitflags.h" 1
/* Definitions of flag bits for `waitpid' et al.
   Copyright (C) 1992-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */






/* Bits in the third argument to `waitpid'.  */
#define WNOHANG 1
#define WUNTRACED 2

/* Bits in the fourth argument to `waitid'.  */

#define WSTOPPED 2
#define WEXITED 4
#define WCONTINUED 8
#define WNOWAIT 0x01000000


#define __WNOTHREAD 0x20000000

#define __WALL 0x40000000
#define __WCLONE 0x80000000
# 41 "../stdlib/stdlib.h" 2
# 1 "../bits/waitstatus.h" 1
/* Definitions of status bits for `wait' et al.
   Copyright (C) 1992-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */






/* Everything extant so far uses these same bits.  */


/* If WIFEXITED(STATUS), the low-order 8 bits of the status.  */
#define __WEXITSTATUS(status) (((status) & 0xff00) >> 8)

/* If WIFSIGNALED(STATUS), the terminating signal.  */
#define __WTERMSIG(status) ((status) & 0x7f)

/* If WIFSTOPPED(STATUS), the signal that stopped the child.  */
#define __WSTOPSIG(status) __WEXITSTATUS(status)

/* Nonzero if STATUS indicates normal termination.  */
#define __WIFEXITED(status) (__WTERMSIG(status) == 0)

/* Nonzero if STATUS indicates termination by a signal.  */
#define __WIFSIGNALED(status) (((signed char) (((status) & 0x7f) + 1) >> 1) > 0)


/* Nonzero if STATUS indicates the child is stopped.  */
#define __WIFSTOPPED(status) (((status) & 0xff) == 0x7f)

/* Nonzero if STATUS indicates the child continued after a stop.  We only
   define this if <bits/waitflags.h> provides the WCONTINUED flag bit.  */

#define __WIFCONTINUED(status) ((status) == __W_CONTINUED)


/* Nonzero if STATUS indicates the child dumped core.  */
#define __WCOREDUMP(status) ((status) & __WCOREFLAG)

/* Macros for constructing status values.  */
#define __W_EXITCODE(ret,sig) ((ret) << 8 | (sig))
#define __W_STOPCODE(sig) ((sig) << 8 | 0x7f)
#define __W_CONTINUED 0xffff
#define __WCOREFLAG 0x80
# 42 "../stdlib/stdlib.h" 2

/* Define the macros <sys/wait.h> also would define this way.  */
#define WEXITSTATUS(status) __WEXITSTATUS (status)
#define WTERMSIG(status) __WTERMSIG (status)
#define WSTOPSIG(status) __WSTOPSIG (status)
#define WIFEXITED(status) __WIFEXITED (status)
#define WIFSIGNALED(status) __WIFSIGNALED (status)
#define WIFSTOPPED(status) __WIFSTOPPED (status)

#define WIFCONTINUED(status) __WIFCONTINUED (status)



/* _FloatN API tests for enablement.  */


/* Returned by `div'.  */
typedef struct
  {
    int quot;			/* Quotient.  */
    int rem;			/* Remainder.  */
  } div_t;

/* Returned by `ldiv'.  */

typedef struct
  {
    long int quot;		/* Quotient.  */
    long int rem;		/* Remainder.  */
  } ldiv_t;
#define __ldiv_t_defined 1



/* Returned by `lldiv'.  */
__extension__ typedef struct
  {
    long long int quot;		/* Quotient.  */
    long long int rem;		/* Remainder.  */
  } lldiv_t;
#define __lldiv_t_defined 1



/* The largest number rand will return (same as INT_MAX).  */
#define RAND_MAX 2147483647


/* We define these the same for all machines.
   Changes from this to the outside world should be done in `_exit'.  */
#define EXIT_FAILURE 1
#define EXIT_SUCCESS 0


/* Maximum length of a multibyte character in the current locale.  */
#define MB_CUR_MAX (__ctype_get_mb_cur_max ())
extern size_t __ctype_get_mb_cur_max (void) __THROW __wur;


/* Convert a string to a floating-point number.  */
extern double atof (const char *__nptr)
     __THROW __attribute_pure__ __nonnull ((1)) __wur;
/* Convert a string to an integer.  */
extern int atoi (const char *__nptr)
     __THROW __attribute_pure__ __nonnull ((1)) __wur;
/* Convert a string to a long integer.  */
extern long int atol (const char *__nptr)
     __THROW __attribute_pure__ __nonnull ((1)) __wur;


/* Convert a string to a long long integer.  */
__extension__ extern long long int atoll (const char *__nptr)
     __THROW __attribute_pure__ __nonnull ((1)) __wur;


/* Convert a string to a floating-point number.  */
extern double strtod (const char *__restrict __nptr,
		      char **__restrict __endptr)
     __THROW __nonnull ((1));


/* Likewise for `float' and `long double' sizes of floating-point numbers.  */
extern float strtof (const char *__restrict __nptr,
		     char **__restrict __endptr) __THROW __nonnull ((1));

extern long double strtold (const char *__restrict __nptr,
			    char **__restrict __endptr)
     __THROW __nonnull ((1));


/* Likewise for '_FloatN' and '_FloatNx'.  */








extern _Float32 strtof32 (const char *__restrict __nptr,
			  char **__restrict __endptr)
     __THROW __nonnull ((1));



extern _Float64 strtof64 (const char *__restrict __nptr,
			  char **__restrict __endptr)
     __THROW __nonnull ((1));



extern _Float128 strtof128 (const char *__restrict __nptr,
			    char **__restrict __endptr)
     __THROW __nonnull ((1));



extern _Float32x strtof32x (const char *__restrict __nptr,
			    char **__restrict __endptr)
     __THROW __nonnull ((1));



extern _Float64x strtof64x (const char *__restrict __nptr,
			    char **__restrict __endptr)
     __THROW __nonnull ((1));








/* Convert a string to a long integer.  */
extern long int strtol (const char *__restrict __nptr,
			char **__restrict __endptr, int __base)
     __THROW __nonnull ((1));
/* Convert a string to an unsigned long integer.  */
extern unsigned long int strtoul (const char *__restrict __nptr,
				  char **__restrict __endptr, int __base)
     __THROW __nonnull ((1));


/* Convert a string to a quadword integer.  */
__extension__
extern long long int strtoq (const char *__restrict __nptr,
			     char **__restrict __endptr, int __base)
     __THROW __nonnull ((1));
/* Convert a string to an unsigned quadword integer.  */
__extension__
extern unsigned long long int strtouq (const char *__restrict __nptr,
				       char **__restrict __endptr, int __base)
     __THROW __nonnull ((1));



/* Convert a string to a quadword integer.  */
__extension__
extern long long int strtoll (const char *__restrict __nptr,
			      char **__restrict __endptr, int __base)
     __THROW __nonnull ((1));
/* Convert a string to an unsigned quadword integer.  */
__extension__
extern unsigned long long int strtoull (const char *__restrict __nptr,
					char **__restrict __endptr, int __base)
     __THROW __nonnull ((1));


/* Convert a floating-point number to a string.  */

extern int strfromd (char *__dest, size_t __size, const char *__format,
		     double __f)
     __THROW __nonnull ((3));

extern int strfromf (char *__dest, size_t __size, const char *__format,
		     float __f)
     __THROW __nonnull ((3));

extern int strfroml (char *__dest, size_t __size, const char *__format,
		     long double __f)
     __THROW __nonnull ((3));









extern int strfromf32 (char *__dest, size_t __size, const char * __format,
		       _Float32 __f)
     __THROW __nonnull ((3));



extern int strfromf64 (char *__dest, size_t __size, const char * __format,
		       _Float64 __f)
     __THROW __nonnull ((3));



extern int strfromf128 (char *__dest, size_t __size, const char * __format,
			_Float128 __f)
     __THROW __nonnull ((3));



extern int strfromf32x (char *__dest, size_t __size, const char * __format,
			_Float32x __f)
     __THROW __nonnull ((3));



extern int strfromf64x (char *__dest, size_t __size, const char * __format,
			_Float64x __f)
     __THROW __nonnull ((3));










/* Parallel versions of the functions above which take the locale to
   use as an additional parameter.  These are GNU extensions inspired
   by the POSIX.1-2008 extended locale API.  */
# 1 "../include/bits/types/locale_t.h" 1
# 1 "../locale/bits/types/locale_t.h" 1
/* Definition of locale_t.
   Copyright (C) 2017-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _BITS_TYPES_LOCALE_T_H 1

# 1 "../include/bits/types/__locale_t.h" 1
# 1 "../locale/bits/types/__locale_t.h" 1
/* Definition of struct __locale_struct and __locale_t.
   Copyright (C) 1997-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _BITS_TYPES___LOCALE_T_H 1

/* POSIX.1-2008: the locale_t type, representing a locale context
   (implementation-namespace version).  This type should be treated
   as opaque by applications; some details are exposed for the sake of
   efficiency in e.g. ctype functions.  */

struct __locale_struct
{
  /* Note: LC_ALL is not a valid index into this array.  */
  struct __locale_data *__locales[13]; /* 13 = __LC_LAST. */

  /* To increase the speed of this solution we add some special members.  */
  const unsigned short int *__ctype_b;
  const int *__ctype_tolower;
  const int *__ctype_toupper;

  /* Note: LC_ALL is not a valid index into this array.  */
  const char *__names[13];
};

typedef struct __locale_struct *__locale_t;

# 2 "../include/bits/types/__locale_t.h" 2
# 23 "../locale/bits/types/locale_t.h" 2

typedef __locale_t locale_t;

# 2 "../include/bits/types/locale_t.h" 2
# 274 "../stdlib/stdlib.h" 2

extern long int strtol_l (const char *__restrict __nptr,
			  char **__restrict __endptr, int __base,
			  locale_t __loc) __THROW __nonnull ((1, 4));

extern unsigned long int strtoul_l (const char *__restrict __nptr,
				    char **__restrict __endptr,
				    int __base, locale_t __loc)
     __THROW __nonnull ((1, 4));

__extension__
extern long long int strtoll_l (const char *__restrict __nptr,
				char **__restrict __endptr, int __base,
				locale_t __loc)
     __THROW __nonnull ((1, 4));

__extension__
extern unsigned long long int strtoull_l (const char *__restrict __nptr,
					  char **__restrict __endptr,
					  int __base, locale_t __loc)
     __THROW __nonnull ((1, 4));

extern double strtod_l (const char *__restrict __nptr,
			char **__restrict __endptr, locale_t __loc)
     __THROW __nonnull ((1, 3));

extern float strtof_l (const char *__restrict __nptr,
		       char **__restrict __endptr, locale_t __loc)
     __THROW __nonnull ((1, 3));

extern long double strtold_l (const char *__restrict __nptr,
			      char **__restrict __endptr,
			      locale_t __loc)
     __THROW __nonnull ((1, 3));









extern _Float32 strtof32_l (const char *__restrict __nptr,
			    char **__restrict __endptr,
			    locale_t __loc)
     __THROW __nonnull ((1, 3));



extern _Float64 strtof64_l (const char *__restrict __nptr,
			    char **__restrict __endptr,
			    locale_t __loc)
     __THROW __nonnull ((1, 3));



extern _Float128 strtof128_l (const char *__restrict __nptr,
			      char **__restrict __endptr,
			      locale_t __loc)
     __THROW __nonnull ((1, 3));



extern _Float32x strtof32x_l (const char *__restrict __nptr,
			      char **__restrict __endptr,
			      locale_t __loc)
     __THROW __nonnull ((1, 3));



extern _Float64x strtof64x_l (const char *__restrict __nptr,
			      char **__restrict __endptr,
			      locale_t __loc)
     __THROW __nonnull ((1, 3));












__extern_inline int
__NTH (atoi (const char *__nptr))
{
  return (int) strtol (__nptr, (char **) NULL, 10);
}
__extern_inline long int
__NTH (atol (const char *__nptr))
{
  return strtol (__nptr, (char **) NULL, 10);
}


__extension__ __extern_inline long long int
__NTH (atoll (const char *__nptr))
{
  return strtoll (__nptr, (char **) NULL, 10);
}





/* Convert N to base 64 using the digits "./0-9A-Za-z", least-significant
   digit first.  Returns a pointer to static storage overwritten by the
   next call.  */
extern char *l64a (long int __n) __THROW __wur;

/* Read a number from a string S in base 64 as above.  */
extern long int a64l (const char *__s)
     __THROW __attribute_pure__ __nonnull ((1)) __wur;




# 1 "../include/sys/types.h" 1
# 1 "../posix/sys/types.h" 1
/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/*
 *	POSIX Standard: 2.6 Primitive System Data Types	<sys/types.h>
 */


#define _SYS_TYPES_H 1



__BEGIN_DECLS

# 1 "../include/bits/types.h" 1
# 30 "../posix/sys/types.h" 2



typedef __u_char u_char;
typedef __u_short u_short;
typedef __u_int u_int;
typedef __u_long u_long;
typedef __quad_t quad_t;
typedef __u_quad_t u_quad_t;
typedef __fsid_t fsid_t;
#define __u_char_defined 

typedef __loff_t loff_t;




typedef __ino_t ino_t;



#define __ino_t_defined 


typedef __ino64_t ino64_t;
#define __ino64_t_defined 



typedef __dev_t dev_t;
#define __dev_t_defined 



typedef __gid_t gid_t;
#define __gid_t_defined 



typedef __mode_t mode_t;
#define __mode_t_defined 



typedef __nlink_t nlink_t;
#define __nlink_t_defined 



typedef __uid_t uid_t;
#define __uid_t_defined 




typedef __off_t off_t;



#define __off_t_defined 


typedef __off64_t off64_t;
#define __off64_t_defined 



typedef __pid_t pid_t;
#define __pid_t_defined 




typedef __id_t id_t;
#define __id_t_defined 



typedef __ssize_t ssize_t;
#define __ssize_t_defined 




typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;
#define __daddr_t_defined 




typedef __key_t key_t;
#define __key_t_defined 



# 1 "../include/bits/types/clock_t.h" 1
# 1 "../time/bits/types/clock_t.h" 1

#define __clock_t_defined 1

# 1 "../include/bits/types.h" 1
# 5 "../time/bits/types/clock_t.h" 2

/* Returned by `clock'.  */
typedef __clock_t clock_t;

# 2 "../include/bits/types/clock_t.h" 2
# 127 "../posix/sys/types.h" 2

# 1 "../include/bits/types/clockid_t.h" 1
# 1 "../time/bits/types/clockid_t.h" 1

#define __clockid_t_defined 1

# 1 "../include/bits/types.h" 1
# 5 "../time/bits/types/clockid_t.h" 2

/* Clock ID used in clock and timer functions.  */
typedef __clockid_t clockid_t;

# 2 "../include/bits/types/clockid_t.h" 2
# 129 "../posix/sys/types.h" 2
# 1 "../include/bits/types/time_t.h" 1
# 1 "../time/bits/types/time_t.h" 1

#define __time_t_defined 1

# 1 "../include/bits/types.h" 1
# 5 "../time/bits/types/time_t.h" 2

/* Returned by `time'.  */



typedef __time_t time_t;


# 2 "../include/bits/types/time_t.h" 2
# 130 "../posix/sys/types.h" 2
# 1 "../include/bits/types/timer_t.h" 1
# 1 "../time/bits/types/timer_t.h" 1

#define __timer_t_defined 1

# 1 "../include/bits/types.h" 1
# 5 "../time/bits/types/timer_t.h" 2

/* Timer ID returned by `timer_create'.  */
typedef __timer_t timer_t;

# 2 "../include/bits/types/timer_t.h" 2
# 131 "../posix/sys/types.h" 2



typedef __useconds_t useconds_t;
#define __useconds_t_defined 


typedef __suseconds_t suseconds_t;
#define __suseconds_t_defined 



#define __need_size_t 
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2021 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */






/* Any one of these symbols __need_* means that GNU libc
   wants us just to define one data type.  So don't define
   the symbols that indicate this file's entire job has been done.  */
# 44 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4


/* This avoids lossage on SunOS but only if stdtypes.h comes first.
   There's no way to win with the other order!  Sun lossage.  */









# 85 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
   Just ignore it.  */




/* On VxWorks, <type/vxTypesBase.h> may have defined macros like
   _TYPE_size_t which will typedef size_t.  fixincludes patched the
   vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
   not defined, and so that defining this macro defines _GCC_SIZE_T.
   If we find that the macros are still defined at this point, we must
   invoke them so that the type is defined as expected.  */













/* In case nobody has defined these types, but we aren't running under
   GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
   __WCHAR_TYPE__ have reasonable values.  This can happen if the
   parts of GCC is compiled by an older compiler, that actually
   include gstddef.h, such as collect2.  */

/* Signed type of difference of two pointers.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 153 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* If this symbol has done its job, get rid of it.  */
#undef __need_ptrdiff_t



/* Unsigned type of `sizeof' something.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 231 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
#undef __need_size_t



/* Wide character type.
   Locale-writers should change this as necessary to
   be big enough to hold unique values not between 0 and 127,
   and not (wchar_t) -1, for each defined multibyte character.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 340 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
#undef __need_wchar_t


# 354 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

# 384 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4



/* A null pointer constant.  */


#undef NULL




#define NULL ((void *)0)





#undef __need_NULL



/* Offset of member MEMBER in a struct of type TYPE. */
#define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)



# 428 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4











# 145 "../posix/sys/types.h" 2


/* Old compatibility names for C types.  */
typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;


/* These size-specific names are used by some of the inet code.  */



/* These were defined by ISO C without the first `_'.  */
typedef __uint8_t u_int8_t;
typedef __uint16_t u_int16_t;
typedef __uint32_t u_int32_t;
typedef __uint64_t u_int64_t;


typedef int register_t __attribute__ ((__mode__ (__word__)));




/* Some code from BIND tests this macro to see if the types above are
   defined.  */
#define __BIT_TYPES_DEFINED__ 1



/* In BSD <sys/types.h> is expected to define BYTE_ORDER.  */
# 1 "../include/endian.h" 1




#define BIG_ENDI 1
#undef LITTLE_ENDI
#define HIGH_HALF 0
#define LOW_HALF 1
# 17 "../include/endian.h"
# 177 "../posix/sys/types.h" 2

/* It also defines `fd_set' and the FD_* macros for `select'.  */
# 1 "../include/sys/select.h" 1

# 1 "../misc/sys/select.h" 1
/* `fd_set' type and related macros, and `select'/`pselect' declarations.
   Copyright (C) 1996-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/*	POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>  */


#define _SYS_SELECT_H 1



/* Get definition of needed basic types.  */
# 1 "../include/bits/types.h" 1
# 28 "../misc/sys/select.h" 2

/* Get __FD_* definitions.  */
# 1 "../bits/select.h" 1
/* Copyright (C) 1997-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */






/* We don't use `memset' because this would require a prototype and
   the array isn't too big.  */
#define __FD_ZERO(s) do { unsigned int __i; fd_set *__arr = (s); for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i) __FDS_BITS (__arr)[__i] = 0; } while (0)






#define __FD_SET(d,s) ((void) (__FDS_BITS (s)[__FD_ELT(d)] |= __FD_MASK(d)))

#define __FD_CLR(d,s) ((void) (__FDS_BITS (s)[__FD_ELT(d)] &= ~__FD_MASK(d)))

#define __FD_ISSET(d,s) ((__FDS_BITS (s)[__FD_ELT (d)] & __FD_MASK (d)) != 0)
# 31 "../misc/sys/select.h" 2

/* Get sigset_t.  */
# 1 "../include/bits/types/sigset_t.h" 1
# 1 "../signal/bits/types/sigset_t.h" 1

#define __sigset_t_defined 1

# 1 "../sysdeps/unix/sysv/linux/bits/types/__sigset_t.h" 1

#define ____sigset_t_defined 

#define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int)))
typedef struct
{
  unsigned long int __val[_SIGSET_NWORDS];
} __sigset_t;

# 5 "../signal/bits/types/sigset_t.h" 2

/* A set of signals to be blocked, unblocked, or waited for.  */
typedef __sigset_t sigset_t;

# 2 "../include/bits/types/sigset_t.h" 2
# 34 "../misc/sys/select.h" 2

/* Get definition of timer specification structures.  */
# 1 "../include/bits/types/time_t.h" 1
# 37 "../misc/sys/select.h" 2
# 1 "../include/bits/types/struct_timeval.h" 1
# 1 "../time/bits/types/struct_timeval.h" 1

#define __timeval_defined 1

# 1 "../include/bits/types.h" 1
# 5 "../time/bits/types/struct_timeval.h" 2

/* A time value that is accurate to the nearest
   microsecond but also has a range of years.  */
struct timeval
{




  __time_t tv_sec;		/* Seconds.  */
  __suseconds_t tv_usec;	/* Microseconds.  */

};
# 2 "../include/bits/types/struct_timeval.h" 2
# 38 "../misc/sys/select.h" 2

# 1 "../include/bits/types/struct_timespec.h" 1
# 1 "../time/bits/types/struct_timespec.h" 1
/* NB: Include guard matches what <linux/time.h> uses.  */

#define _STRUCT_TIMESPEC 1

# 1 "../include/bits/types.h" 1
# 6 "../time/bits/types/struct_timespec.h" 2
# 1 "../include/bits/endian.h" 1
# 7 "../time/bits/types/struct_timespec.h" 2
# 1 "../include/bits/types/time_t.h" 1
# 8 "../time/bits/types/struct_timespec.h" 2

/* POSIX.1b structure for a time value.  This is like a `struct timeval' but
   has nanoseconds instead of microseconds.  */
struct timespec
{



  __time_t tv_sec;		/* Seconds.  */




  __syscall_slong_t tv_nsec;	/* Nanoseconds.  */
# 31 "../time/bits/types/struct_timespec.h"
};

# 2 "../include/bits/types/struct_timespec.h" 2
# 40 "../misc/sys/select.h" 2








/* The fd_set member is required to be an array of longs.  */
typedef long int __fd_mask;

/* Some versions of <linux/posix_types.h> define this macros.  */
#undef __NFDBITS
/* It's easier to assume 8-bit bytes than to get CHAR_BIT.  */
#define __NFDBITS (8 * (int) sizeof (__fd_mask))
#define __FD_ELT(d) ((d) / __NFDBITS)
#define __FD_MASK(d) ((__fd_mask) (1UL << ((d) % __NFDBITS)))

/* fd_set for select and pselect.  */
typedef struct
  {
    /* XPG4.2 requires this member name.  Otherwise avoid the name
       from the global namespace.  */

    __fd_mask fds_bits[__FD_SETSIZE / __NFDBITS];
#define __FDS_BITS(set) ((set)->fds_bits)




  } fd_set;

/* Maximum number of file descriptors in `fd_set'.  */
#define FD_SETSIZE __FD_SETSIZE


/* Sometimes the fd_set member is assumed to have this type.  */
typedef __fd_mask fd_mask;

/* Number of bits per word of `fd_set' (some code assumes this is 32).  */
#define NFDBITS __NFDBITS



/* Access macros for `fd_set'.  */
#define FD_SET(fd,fdsetp) __FD_SET (fd, fdsetp)
#define FD_CLR(fd,fdsetp) __FD_CLR (fd, fdsetp)
#define FD_ISSET(fd,fdsetp) __FD_ISSET (fd, fdsetp)
#define FD_ZERO(fdsetp) __FD_ZERO (fdsetp)


__BEGIN_DECLS

/* Check the first NFDS descriptors each in READFDS (if not NULL) for read
   readiness, in WRITEFDS (if not NULL) for write readiness, and in EXCEPTFDS
   (if not NULL) for exceptional conditions.  If TIMEOUT is not NULL, time out
   after waiting the interval specified therein.  Returns the number of ready
   descriptors, or -1 for errors.

   This function is a cancellation point and therefore not marked with
   __THROW.  */

extern int select (int __nfds, fd_set *__restrict __readfds,
		   fd_set *__restrict __writefds,
		   fd_set *__restrict __exceptfds,
		   struct timeval *__restrict __timeout);
# 118 "../misc/sys/select.h"


/* Same as above only that the TIMEOUT value is given with higher
   resolution and a sigmask which is been set temporarily.  This version
   should be used.

   This function is a cancellation point and therefore not marked with
   __THROW.  */

extern int pselect (int __nfds, fd_set *__restrict __readfds,
		    fd_set *__restrict __writefds,
		    fd_set *__restrict __exceptfds,
		    const struct timespec *__restrict __timeout,
		    const __sigset_t *__restrict __sigmask);
# 145 "../misc/sys/select.h"



/* Define some inlines helping to catch common problems.  */




__END_DECLS

# 3 "../include/sys/select.h" 2


/* Now define the internal interfaces.  */

#define __pselect64 __pselect
#define __select64 __select
# 35 "../include/sys/select.h"
extern int __pselect (int __nfds, fd_set *__readfds,
		      fd_set *__writefds, fd_set *__exceptfds,
		      const struct timespec *__timeout,
		      const __sigset_t *__sigmask);

extern int __select (int __nfds, fd_set *__restrict __readfds,
		     fd_set *__restrict __writefds,
		     fd_set *__restrict __exceptfds,
		     struct timeval *__restrict __timeout);
libc_hidden_proto (__select)


# 180 "../posix/sys/types.h" 2





typedef __blksize_t blksize_t;
#define __blksize_t_defined 


/* Types from the Large File Support interface.  */


typedef __blkcnt_t blkcnt_t;	 /* Type to count number of disk blocks.  */
#define __blkcnt_t_defined 


typedef __fsblkcnt_t fsblkcnt_t; /* Type to count file system blocks.  */
#define __fsblkcnt_t_defined 


typedef __fsfilcnt_t fsfilcnt_t; /* Type to count file system inodes.  */
#define __fsfilcnt_t_defined 

# 217 "../posix/sys/types.h"


typedef __blkcnt64_t blkcnt64_t;     /* Type to count number of disk blocks. */
typedef __fsblkcnt64_t fsblkcnt64_t; /* Type to count file system blocks.  */
typedef __fsfilcnt64_t fsfilcnt64_t; /* Type to count file system inodes.  */



/* Now add the thread types.  */

# 1 "../sysdeps/nptl/bits/pthreadtypes.h" 1
/* Declaration of common pthread types for all architectures.
   Copyright (C) 2017-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _BITS_PTHREADTYPES_COMMON_H 1

/* For internal mutex and condition variable definitions.  */
# 1 "../sysdeps/nptl/bits/thread-shared-types.h" 1
/* Common threading primitives definitions for both POSIX and C11.
   Copyright (C) 2017-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _THREAD_SHARED_TYPES_H 1

/* Arch-specific definitions.  Each architecture must define the following
   macros to define the expected sizes of pthread data types:

   __SIZEOF_PTHREAD_ATTR_T        - size of pthread_attr_t.
   __SIZEOF_PTHREAD_MUTEX_T       - size of pthread_mutex_t.
   __SIZEOF_PTHREAD_MUTEXATTR_T   - size of pthread_mutexattr_t.
   __SIZEOF_PTHREAD_COND_T        - size of pthread_cond_t.
   __SIZEOF_PTHREAD_CONDATTR_T    - size of pthread_condattr_t.
   __SIZEOF_PTHREAD_RWLOCK_T      - size of pthread_rwlock_t.
   __SIZEOF_PTHREAD_RWLOCKATTR_T  - size of pthread_rwlockattr_t.
   __SIZEOF_PTHREAD_BARRIER_T     - size of pthread_barrier_t.
   __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t.

   The additional macro defines any constraint for the lock alignment
   inside the thread structures:

   __LOCK_ALIGNMENT - for internal lock/futex usage.

   Same idea but for the once locking primitive:

   __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition.  */

# 1 "../sysdeps/nptl/bits/pthreadtypes-arch.h" 1
/* Machine-specific pthread type layouts.  Generic version.
   Copyright (C) 2019-2021 Free Software Foundation, Inc.

   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <http://www.gnu.org/licenses/>.  */


#define _BITS_PTHREADTYPES_ARCH_H 1

# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
/* Determine the wordsize from the preprocessor defines.  */


#define __WORDSIZE 64






#define __WORDSIZE_TIME64_COMPAT32 0
# 24 "../sysdeps/nptl/bits/pthreadtypes-arch.h" 2


#define __SIZEOF_PTHREAD_ATTR_T 56
#define __SIZEOF_PTHREAD_MUTEX_T 40
#define __SIZEOF_PTHREAD_RWLOCK_T 56
#define __SIZEOF_PTHREAD_BARRIER_T 32






#define __SIZEOF_PTHREAD_MUTEXATTR_T 4
#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
#define __SIZEOF_PTHREAD_COND_T 48
#define __SIZEOF_PTHREAD_CONDATTR_T 4

#define __LOCK_ALIGNMENT 
#define __ONCE_ALIGNMENT 

# 45 "../sysdeps/nptl/bits/thread-shared-types.h" 2

# 1 "../include/bits/atomic_wide_counter.h" 1
# 1 "../bits/atomic_wide_counter.h" 1
/* Monotonically increasing wide counters (at least 62 bits).
   Copyright (C) 2016-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _BITS_ATOMIC_WIDE_COUNTER_H 

/* Counter that is monotonically increasing (by less than 2**31 per
   increment), with a single writer, and an arbitrary number of
   readers.  */
typedef union
{
  __extension__ unsigned long long int __value64;
  struct
  {
    unsigned int __low;
    unsigned int __high;
  } __value32;
} __atomic_wide_counter;

# 2 "../include/bits/atomic_wide_counter.h" 2
# 47 "../sysdeps/nptl/bits/thread-shared-types.h" 2


/* Common definition of pthread_mutex_t. */

typedef struct __pthread_internal_list
{
  struct __pthread_internal_list *__prev;
  struct __pthread_internal_list *__next;
} __pthread_list_t;

typedef struct __pthread_internal_slist
{
  struct __pthread_internal_slist *__next;
} __pthread_slist_t;

/* Arch-specific mutex definitions.  A generic implementation is provided
   by sysdeps/nptl/bits/struct_mutex.h.  If required, an architecture
   can override it by defining:

   1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t
      definition).  It should contains at least the internal members
      defined in the generic version.

   2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with
      atomic operations.

   3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization.
      It should initialize the mutex internal flag.  */

# 1 "../sysdeps/s390/nptl/bits/struct_mutex.h" 1
/* S390 internal mutex struct definitions.
   Copyright (C) 2019-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <http://www.gnu.org/licenses/>.  */


#define _THREAD_MUTEX_INTERNAL_H 1

struct __pthread_mutex_s
{
  int __lock;
  unsigned int __count;
  int __owner;

  unsigned int __nusers;

  /* KIND must stay at this position in the structure to maintain
     binary compatibility with static initializers.  */
  int __kind;

  short __spins;
  short __elision;
  __pthread_list_t __list;
#define __PTHREAD_MUTEX_HAVE_PREV 1
# 53 "../sysdeps/s390/nptl/bits/struct_mutex.h"
};


#define __PTHREAD_MUTEX_INITIALIZER(__kind) 0, 0, 0, 0, __kind, 0, 0, { 0, 0 }






# 77 "../sysdeps/nptl/bits/thread-shared-types.h" 2

/* Arch-sepecific read-write lock definitions.  A generic implementation is
   provided by struct_rwlock.h.  If required, an architecture can override it
   by defining:

   1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition).
      It should contain at least the internal members defined in the
      generic version.

   2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization.
      It should initialize the rwlock internal type.  */

# 1 "../sysdeps/s390/nptl/bits/struct_rwlock.h" 1
/* S390 internal rwlock struct definitions.
   Copyright (C) 2019-2021 Free Software Foundation, Inc.

   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <http://www.gnu.org/licenses/>.  */


#define _RWLOCK_INTERNAL_H 

struct __pthread_rwlock_arch_t
{
  unsigned int __readers;
  unsigned int __writers;
  unsigned int __wrphase_futex;
  unsigned int __writers_futex;
  unsigned int __pad3;
  unsigned int __pad4;

  int __cur_writer;
  int __shared;
  unsigned long int __pad1;
  unsigned long int __pad2;
  /* FLAGS must stay at this position in the structure to maintain
     binary compatibility.  */
  unsigned int __flags;
# 48 "../sysdeps/s390/nptl/bits/struct_rwlock.h"
};


#define __PTHREAD_RWLOCK_INITIALIZER(__flags) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, __flags






# 90 "../sysdeps/nptl/bits/thread-shared-types.h" 2


/* Common definition of pthread_cond_t. */

struct __pthread_cond_s
{
  __atomic_wide_counter __wseq;
  __atomic_wide_counter __g1_start;
  unsigned int __g_refs[2] __LOCK_ALIGNMENT;
  unsigned int __g_size[2];
  unsigned int __g1_orig_size;
  unsigned int __wrefs;
  unsigned int __g_signals[2];
};

typedef unsigned int __tss_t;
typedef unsigned long int __thrd_t;

typedef struct
{
  int __data __ONCE_ALIGNMENT;
} __once_flag;

#define __ONCE_FLAG_INIT { 0 }

# 24 "../sysdeps/nptl/bits/pthreadtypes.h" 2

/* Thread identifiers.  The structure of the attribute type is not
   exposed on purpose.  */
typedef unsigned long int pthread_t;


/* Data structures for mutex handling.  The structure of the attribute
   type is not exposed on purpose.  */
typedef union
{
  char __size[__SIZEOF_PTHREAD_MUTEXATTR_T];
  int __align;
} pthread_mutexattr_t;


/* Data structure for condition variable handling.  The structure of
   the attribute type is not exposed on purpose.  */
typedef union
{
  char __size[__SIZEOF_PTHREAD_CONDATTR_T];
  int __align;
} pthread_condattr_t;


/* Keys for thread-specific data */
typedef unsigned int pthread_key_t;


/* Once-only execution */
typedef int __ONCE_ALIGNMENT pthread_once_t;


union pthread_attr_t
{
  char __size[__SIZEOF_PTHREAD_ATTR_T];
  long int __align;
};

typedef union pthread_attr_t pthread_attr_t;
#define __have_pthread_attr_t 1



typedef union
{
  struct __pthread_mutex_s __data;
  char __size[__SIZEOF_PTHREAD_MUTEX_T];
  long int __align;
} pthread_mutex_t;


typedef union
{
  struct __pthread_cond_s __data;
  char __size[__SIZEOF_PTHREAD_COND_T];
  __extension__ long long int __align;
} pthread_cond_t;



/* Data structure for reader-writer lock variable handling.  The
   structure of the attribute type is deliberately not exposed.  */
typedef union
{
  struct __pthread_rwlock_arch_t __data;
  char __size[__SIZEOF_PTHREAD_RWLOCK_T];
  long int __align;
} pthread_rwlock_t;

typedef union
{
  char __size[__SIZEOF_PTHREAD_RWLOCKATTR_T];
  long int __align;
} pthread_rwlockattr_t;




/* POSIX spinlock data type.  */
typedef volatile int pthread_spinlock_t;


/* POSIX barriers data type.  The structure of the type is
   deliberately not exposed.  */
typedef union
{
  char __size[__SIZEOF_PTHREAD_BARRIER_T];
  long int __align;
} pthread_barrier_t;

typedef union
{
  char __size[__SIZEOF_PTHREAD_BARRIERATTR_T];
  int __align;
} pthread_barrierattr_t;


# 228 "../posix/sys/types.h" 2


__END_DECLS

# 2 "../include/sys/types.h" 2
# 396 "../stdlib/stdlib.h" 2

/* These are the functions that actually do things.  The `random', `srandom',
   `initstate' and `setstate' functions are those from BSD Unices.
   The `rand' and `srand' functions are required by the ANSI standard.
   We provide both interfaces to the same random number generator.  */
/* Return a random long integer between 0 and 2^31-1 inclusive.  */
extern long int random (void) __THROW;

/* Seed the random number generator with the given number.  */
extern void srandom (unsigned int __seed) __THROW;

/* Initialize the random number generator to use state buffer STATEBUF,
   of length STATELEN, and seed it with SEED.  Optimal lengths are 8, 16,
   32, 64, 128 and 256, the bigger the better; values less than 8 will
   cause an error and values greater than 256 will be rounded down.  */
extern char *initstate (unsigned int __seed, char *__statebuf,
			size_t __statelen) __THROW __nonnull ((2));

/* Switch the random number generator to state buffer STATEBUF,
   which should have been previously initialized by `initstate'.  */
extern char *setstate (char *__statebuf) __THROW __nonnull ((1));



/* Reentrant versions of the `random' family of functions.
   These functions all use the following data structure to contain
   state, rather than global state variables.  */

struct random_data
  {
    int32_t *fptr;		/* Front pointer.  */
    int32_t *rptr;		/* Rear pointer.  */
    int32_t *state;		/* Array of state values.  */
    int rand_type;		/* Type of random number generator.  */
    int rand_deg;		/* Degree of random number generator.  */
    int rand_sep;		/* Distance between front and rear.  */
    int32_t *end_ptr;		/* Pointer behind state table.  */
  };

extern int random_r (struct random_data *__restrict __buf,
		     int32_t *__restrict __result) __THROW __nonnull ((1, 2));

extern int srandom_r (unsigned int __seed, struct random_data *__buf)
     __THROW __nonnull ((2));

extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
			size_t __statelen,
			struct random_data *__restrict __buf)
     __THROW __nonnull ((2, 4));

extern int setstate_r (char *__restrict __statebuf,
		       struct random_data *__restrict __buf)
     __THROW __nonnull ((1, 2));




/* Return a random integer between 0 and RAND_MAX inclusive.  */
extern int rand (void) __THROW;
/* Seed the random number generator with the given number.  */
extern void srand (unsigned int __seed) __THROW;


/* Reentrant interface according to POSIX.1.  */
extern int rand_r (unsigned int *__seed) __THROW;




/* System V style 48-bit random number generator functions.  */

/* Return non-negative, double-precision floating-point value in [0.0,1.0).  */
extern double drand48 (void) __THROW;
extern double erand48 (unsigned short int __xsubi[3]) __THROW __nonnull ((1));

/* Return non-negative, long integer in [0,2^31).  */
extern long int lrand48 (void) __THROW;
extern long int nrand48 (unsigned short int __xsubi[3])
     __THROW __nonnull ((1));

/* Return signed, long integers in [-2^31,2^31).  */
extern long int mrand48 (void) __THROW;
extern long int jrand48 (unsigned short int __xsubi[3])
     __THROW __nonnull ((1));

/* Seed random number generator.  */
extern void srand48 (long int __seedval) __THROW;
extern unsigned short int *seed48 (unsigned short int __seed16v[3])
     __THROW __nonnull ((1));
extern void lcong48 (unsigned short int __param[7]) __THROW __nonnull ((1));


/* Data structure for communication with thread safe versions.  This
   type is to be regarded as opaque.  It's only exported because users
   have to allocate objects of this type.  */
struct drand48_data
  {
    unsigned short int __x[3];	/* Current state.  */
    unsigned short int __old_x[3]; /* Old state.  */
    unsigned short int __c;	/* Additive const. in congruential formula.  */
    unsigned short int __init;	/* Flag for initializing.  */
    __extension__ unsigned long long int __a;	/* Factor in congruential
						   formula.  */
  };

/* Return non-negative, double-precision floating-point value in [0.0,1.0).  */
extern int drand48_r (struct drand48_data *__restrict __buffer,
		      double *__restrict __result) __THROW __nonnull ((1, 2));
extern int erand48_r (unsigned short int __xsubi[3],
		      struct drand48_data *__restrict __buffer,
		      double *__restrict __result) __THROW __nonnull ((1, 2));

/* Return non-negative, long integer in [0,2^31).  */
extern int lrand48_r (struct drand48_data *__restrict __buffer,
		      long int *__restrict __result)
     __THROW __nonnull ((1, 2));
extern int nrand48_r (unsigned short int __xsubi[3],
		      struct drand48_data *__restrict __buffer,
		      long int *__restrict __result)
     __THROW __nonnull ((1, 2));

/* Return signed, long integers in [-2^31,2^31).  */
extern int mrand48_r (struct drand48_data *__restrict __buffer,
		      long int *__restrict __result)
     __THROW __nonnull ((1, 2));
extern int jrand48_r (unsigned short int __xsubi[3],
		      struct drand48_data *__restrict __buffer,
		      long int *__restrict __result)
     __THROW __nonnull ((1, 2));

/* Seed random number generator.  */
extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
     __THROW __nonnull ((2));

extern int seed48_r (unsigned short int __seed16v[3],
		     struct drand48_data *__buffer) __THROW __nonnull ((1, 2));

extern int lcong48_r (unsigned short int __param[7],
		      struct drand48_data *__buffer)
     __THROW __nonnull ((1, 2));



/* Allocate SIZE bytes of memory.  */
extern void *malloc (size_t __size) __THROW __attribute_malloc__
     __attribute_alloc_size__ ((1)) __wur;
/* Allocate NMEMB elements of SIZE bytes each, all initialized to 0.  */
extern void *calloc (size_t __nmemb, size_t __size)
     __THROW __attribute_malloc__ __attribute_alloc_size__ ((1, 2)) __wur;

/* Re-allocate the previously allocated block
   in PTR, making the new block SIZE bytes long.  */
/* __attribute_malloc__ is not used, because if realloc returns
   the same pointer that was passed to it, aliasing needs to be allowed
   between objects pointed by the old and new pointers.  */
extern void *realloc (void *__ptr, size_t __size)
     __THROW __attribute_warn_unused_result__ __attribute_alloc_size__ ((2));

/* Free a block allocated by `malloc', `realloc' or `calloc'.  */
extern void free (void *__ptr) __THROW;


/* Re-allocate the previously allocated block in PTR, making the new
   block large enough for NMEMB elements of SIZE bytes each.  */
/* __attribute_malloc__ is not used, because if reallocarray returns
   the same pointer that was passed to it, aliasing needs to be allowed
   between objects pointed by the old and new pointers.  */
extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
     __THROW __attribute_warn_unused_result__
     __attribute_alloc_size__ ((2, 3))
    __attr_dealloc_free;

/* Add reallocarray as its own deallocator.  */
extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
     __THROW __attr_dealloc (reallocarray, 1);



# 1 "../include/alloca.h" 1


# 1 "../stdlib/alloca.h" 1
/* Copyright (C) 1992-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _ALLOCA_H 1



#define __need_size_t 
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2021 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */






/* Any one of these symbols __need_* means that GNU libc
   wants us just to define one data type.  So don't define
   the symbols that indicate this file's entire job has been done.  */
# 44 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4


/* This avoids lossage on SunOS but only if stdtypes.h comes first.
   There's no way to win with the other order!  Sun lossage.  */









# 85 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
   Just ignore it.  */




/* On VxWorks, <type/vxTypesBase.h> may have defined macros like
   _TYPE_size_t which will typedef size_t.  fixincludes patched the
   vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
   not defined, and so that defining this macro defines _GCC_SIZE_T.
   If we find that the macros are still defined at this point, we must
   invoke them so that the type is defined as expected.  */













/* In case nobody has defined these types, but we aren't running under
   GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
   __WCHAR_TYPE__ have reasonable values.  This can happen if the
   parts of GCC is compiled by an older compiler, that actually
   include gstddef.h, such as collect2.  */

/* Signed type of difference of two pointers.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 153 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* If this symbol has done its job, get rid of it.  */
#undef __need_ptrdiff_t



/* Unsigned type of `sizeof' something.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 231 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
#undef __need_size_t



/* Wide character type.
   Locale-writers should change this as necessary to
   be big enough to hold unique values not between 0 and 127,
   and not (wchar_t) -1, for each defined multibyte character.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 340 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
#undef __need_wchar_t


# 354 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

# 384 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4



/* A null pointer constant.  */


#undef NULL




#define NULL ((void *)0)





#undef __need_NULL



/* Offset of member MEMBER in a struct of type TYPE. */
#define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)



# 428 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4











# 25 "../stdlib/alloca.h" 2

__BEGIN_DECLS

/* Remove any previous definition.  */
#undef alloca

/* Allocate a block that will be freed when the calling function exits.  */
extern void *alloca (size_t __size) __THROW;


#define alloca(size) __builtin_alloca (size)


__END_DECLS

# 4 "../include/alloca.h" 2



# 1 "../include/stackinfo.h" 1
/* Details about the machine's stack: wrapper header.
   Copyright (C) 2014-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _INCLUDE_STACKINFO_H 1

/* A sysdeps/.../stackinfo.h file defines details for the CPU.
   It is obliged to define either _STACK_GROWS_DOWN or _STACK_GROWS_UP.  */
# 1 "../sysdeps/s390/stackinfo.h" 1
/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/* This file contains a bit of information about the stack allocation
   of the processor.  */


#define _STACKINFO_H 1

# 1 "../include/elf.h" 1

# 1 "../elf/elf.h" 1
/* This file defines standard ELF types, structures, and macros.
   Copyright (C) 1995-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _ELF_H 1

/* Standard ELF types.  */

# 1 "../include/stdint.h" 1
# 25 "../elf/elf.h" 2

/* Type for a 16-bit quantity.  */
typedef uint16_t Elf32_Half;
typedef uint16_t Elf64_Half;

/* Types for signed and unsigned 32-bit quantities.  */
typedef uint32_t Elf32_Word;
typedef	int32_t  Elf32_Sword;
typedef uint32_t Elf64_Word;
typedef	int32_t  Elf64_Sword;

/* Types for signed and unsigned 64-bit quantities.  */
typedef uint64_t Elf32_Xword;
typedef	int64_t  Elf32_Sxword;
typedef uint64_t Elf64_Xword;
typedef	int64_t  Elf64_Sxword;

/* Type of addresses.  */
typedef uint32_t Elf32_Addr;
typedef uint64_t Elf64_Addr;

/* Type of file offsets.  */
typedef uint32_t Elf32_Off;
typedef uint64_t Elf64_Off;

/* Type for section indices, which are 16-bit quantities.  */
typedef uint16_t Elf32_Section;
typedef uint16_t Elf64_Section;

/* Type for version symbol information.  */
typedef Elf32_Half Elf32_Versym;
typedef Elf64_Half Elf64_Versym;


/* The ELF file header.  This appears at the start of every ELF file.  */

#define EI_NIDENT (16)

typedef struct
{
  unsigned char	e_ident[EI_NIDENT];	/* Magic number and other info */
  Elf32_Half	e_type;			/* Object file type */
  Elf32_Half	e_machine;		/* Architecture */
  Elf32_Word	e_version;		/* Object file version */
  Elf32_Addr	e_entry;		/* Entry point virtual address */
  Elf32_Off	e_phoff;		/* Program header table file offset */
  Elf32_Off	e_shoff;		/* Section header table file offset */
  Elf32_Word	e_flags;		/* Processor-specific flags */
  Elf32_Half	e_ehsize;		/* ELF header size in bytes */
  Elf32_Half	e_phentsize;		/* Program header table entry size */
  Elf32_Half	e_phnum;		/* Program header table entry count */
  Elf32_Half	e_shentsize;		/* Section header table entry size */
  Elf32_Half	e_shnum;		/* Section header table entry count */
  Elf32_Half	e_shstrndx;		/* Section header string table index */
} Elf32_Ehdr;

typedef struct
{
  unsigned char	e_ident[EI_NIDENT];	/* Magic number and other info */
  Elf64_Half	e_type;			/* Object file type */
  Elf64_Half	e_machine;		/* Architecture */
  Elf64_Word	e_version;		/* Object file version */
  Elf64_Addr	e_entry;		/* Entry point virtual address */
  Elf64_Off	e_phoff;		/* Program header table file offset */
  Elf64_Off	e_shoff;		/* Section header table file offset */
  Elf64_Word	e_flags;		/* Processor-specific flags */
  Elf64_Half	e_ehsize;		/* ELF header size in bytes */
  Elf64_Half	e_phentsize;		/* Program header table entry size */
  Elf64_Half	e_phnum;		/* Program header table entry count */
  Elf64_Half	e_shentsize;		/* Section header table entry size */
  Elf64_Half	e_shnum;		/* Section header table entry count */
  Elf64_Half	e_shstrndx;		/* Section header string table index */
} Elf64_Ehdr;

/* Fields in the e_ident array.  The EI_* macros are indices into the
   array.  The macros under each EI_* macro are the values the byte
   may have.  */

#define EI_MAG0 0
#define ELFMAG0 0x7f

#define EI_MAG1 1
#define ELFMAG1 'E'

#define EI_MAG2 2
#define ELFMAG2 'L'

#define EI_MAG3 3
#define ELFMAG3 'F'

/* Conglomeration of the identification bytes, for easy testing as a word.  */
#define ELFMAG "\177ELF"
#define SELFMAG 4

#define EI_CLASS 4
#define ELFCLASSNONE 0
#define ELFCLASS32 1
#define ELFCLASS64 2
#define ELFCLASSNUM 3

#define EI_DATA 5
#define ELFDATANONE 0
#define ELFDATA2LSB 1
#define ELFDATA2MSB 2
#define ELFDATANUM 3

#define EI_VERSION 6
					/* Value must be EV_CURRENT */

#define EI_OSABI 7
#define ELFOSABI_NONE 0
#define ELFOSABI_SYSV 0
#define ELFOSABI_HPUX 1
#define ELFOSABI_NETBSD 2
#define ELFOSABI_GNU 3
#define ELFOSABI_LINUX ELFOSABI_GNU
#define ELFOSABI_SOLARIS 6
#define ELFOSABI_AIX 7
#define ELFOSABI_IRIX 8
#define ELFOSABI_FREEBSD 9
#define ELFOSABI_TRU64 10
#define ELFOSABI_MODESTO 11
#define ELFOSABI_OPENBSD 12
#define ELFOSABI_ARM_AEABI 64
#define ELFOSABI_ARM 97
#define ELFOSABI_STANDALONE 255

#define EI_ABIVERSION 8

#define EI_PAD 9

/* Legal values for e_type (object file type).  */

#define ET_NONE 0
#define ET_REL 1
#define ET_EXEC 2
#define ET_DYN 3
#define ET_CORE 4
#define ET_NUM 5
#define ET_LOOS 0xfe00
#define ET_HIOS 0xfeff
#define ET_LOPROC 0xff00
#define ET_HIPROC 0xffff

/* Legal values for e_machine (architecture).  */

#define EM_NONE 0
#define EM_M32 1
#define EM_SPARC 2
#define EM_386 3
#define EM_68K 4
#define EM_88K 5
#define EM_IAMCU 6
#define EM_860 7
#define EM_MIPS 8
#define EM_S370 9
#define EM_MIPS_RS3_LE 10
				/* reserved 11-14 */
#define EM_PARISC 15
				/* reserved 16 */
#define EM_VPP500 17
#define EM_SPARC32PLUS 18
#define EM_960 19
#define EM_PPC 20
#define EM_PPC64 21
#define EM_S390 22
#define EM_SPU 23
				/* reserved 24-35 */
#define EM_V800 36
#define EM_FR20 37
#define EM_RH32 38
#define EM_RCE 39
#define EM_ARM 40
#define EM_FAKE_ALPHA 41
#define EM_SH 42
#define EM_SPARCV9 43
#define EM_TRICORE 44
#define EM_ARC 45
#define EM_H8_300 46
#define EM_H8_300H 47
#define EM_H8S 48
#define EM_H8_500 49
#define EM_IA_64 50
#define EM_MIPS_X 51
#define EM_COLDFIRE 52
#define EM_68HC12 53
#define EM_MMA 54
#define EM_PCP 55
#define EM_NCPU 56
#define EM_NDR1 57
#define EM_STARCORE 58
#define EM_ME16 59
#define EM_ST100 60
#define EM_TINYJ 61
#define EM_X86_64 62
#define EM_PDSP 63
#define EM_PDP10 64
#define EM_PDP11 65
#define EM_FX66 66
#define EM_ST9PLUS 67
#define EM_ST7 68
#define EM_68HC16 69
#define EM_68HC11 70
#define EM_68HC08 71
#define EM_68HC05 72
#define EM_SVX 73
#define EM_ST19 74
#define EM_VAX 75
#define EM_CRIS 76
#define EM_JAVELIN 77
#define EM_FIREPATH 78
#define EM_ZSP 79
#define EM_MMIX 80
#define EM_HUANY 81
#define EM_PRISM 82
#define EM_AVR 83
#define EM_FR30 84
#define EM_D10V 85
#define EM_D30V 86
#define EM_V850 87
#define EM_M32R 88
#define EM_MN10300 89
#define EM_MN10200 90
#define EM_PJ 91
#define EM_OPENRISC 92
#define EM_ARC_COMPACT 93
#define EM_XTENSA 94
#define EM_VIDEOCORE 95
#define EM_TMM_GPP 96
#define EM_NS32K 97
#define EM_TPC 98
#define EM_SNP1K 99
#define EM_ST200 100
#define EM_IP2K 101
#define EM_MAX 102
#define EM_CR 103
#define EM_F2MC16 104
#define EM_MSP430 105
#define EM_BLACKFIN 106
#define EM_SE_C33 107
#define EM_SEP 108
#define EM_ARCA 109
#define EM_UNICORE 110
#define EM_EXCESS 111
#define EM_DXP 112
#define EM_ALTERA_NIOS2 113
#define EM_CRX 114
#define EM_XGATE 115
#define EM_C166 116
#define EM_M16C 117
#define EM_DSPIC30F 118
#define EM_CE 119
#define EM_M32C 120
				/* reserved 121-130 */
#define EM_TSK3000 131
#define EM_RS08 132
#define EM_SHARC 133
#define EM_ECOG2 134
#define EM_SCORE7 135
#define EM_DSP24 136
#define EM_VIDEOCORE3 137
#define EM_LATTICEMICO32 138
#define EM_SE_C17 139
#define EM_TI_C6000 140
#define EM_TI_C2000 141
#define EM_TI_C5500 142
#define EM_TI_ARP32 143
#define EM_TI_PRU 144
				/* reserved 145-159 */
#define EM_MMDSP_PLUS 160
#define EM_CYPRESS_M8C 161
#define EM_R32C 162
#define EM_TRIMEDIA 163
#define EM_QDSP6 164
#define EM_8051 165
#define EM_STXP7X 166
#define EM_NDS32 167
#define EM_ECOG1X 168
#define EM_MAXQ30 169
#define EM_XIMO16 170
#define EM_MANIK 171
#define EM_CRAYNV2 172
#define EM_RX 173
#define EM_METAG 174
#define EM_MCST_ELBRUS 175
#define EM_ECOG16 176
#define EM_CR16 177
#define EM_ETPU 178
#define EM_SLE9X 179
#define EM_L10M 180
#define EM_K10M 181
				/* reserved 182 */
#define EM_AARCH64 183
				/* reserved 184 */
#define EM_AVR32 185
#define EM_STM8 186
#define EM_TILE64 187
#define EM_TILEPRO 188
#define EM_MICROBLAZE 189
#define EM_CUDA 190
#define EM_TILEGX 191
#define EM_CLOUDSHIELD 192
#define EM_COREA_1ST 193
#define EM_COREA_2ND 194
#define EM_ARCV2 195
#define EM_OPEN8 196
#define EM_RL78 197
#define EM_VIDEOCORE5 198
#define EM_78KOR 199
#define EM_56800EX 200
#define EM_BA1 201
#define EM_BA2 202
#define EM_XCORE 203
#define EM_MCHP_PIC 204
#define EM_INTELGT 205
				/* reserved 206-209 */
#define EM_KM32 210
#define EM_KMX32 211
#define EM_EMX16 212
#define EM_EMX8 213
#define EM_KVARC 214
#define EM_CDP 215
#define EM_COGE 216
#define EM_COOL 217
#define EM_NORC 218
#define EM_CSR_KALIMBA 219
#define EM_Z80 220
#define EM_VISIUM 221
#define EM_FT32 222
#define EM_MOXIE 223
#define EM_AMDGPU 224
				/* reserved 225-242 */
#define EM_RISCV 243

#define EM_BPF 247
#define EM_CSKY 252

#define EM_NUM 253

/* Old spellings/synonyms.  */

#define EM_ARC_A5 EM_ARC_COMPACT

/* If it is necessary to assign new unofficial EM_* values, please
   pick large random numbers (0x8523, 0xa7f2, etc.) to minimize the
   chances of collision with official or non-GNU unofficial values.  */

#define EM_ALPHA 0x9026

/* Legal values for e_version (version).  */

#define EV_NONE 0
#define EV_CURRENT 1
#define EV_NUM 2

/* Section header.  */

typedef struct
{
  Elf32_Word	sh_name;		/* Section name (string tbl index) */
  Elf32_Word	sh_type;		/* Section type */
  Elf32_Word	sh_flags;		/* Section flags */
  Elf32_Addr	sh_addr;		/* Section virtual addr at execution */
  Elf32_Off	sh_offset;		/* Section file offset */
  Elf32_Word	sh_size;		/* Section size in bytes */
  Elf32_Word	sh_link;		/* Link to another section */
  Elf32_Word	sh_info;		/* Additional section information */
  Elf32_Word	sh_addralign;		/* Section alignment */
  Elf32_Word	sh_entsize;		/* Entry size if section holds table */
} Elf32_Shdr;

typedef struct
{
  Elf64_Word	sh_name;		/* Section name (string tbl index) */
  Elf64_Word	sh_type;		/* Section type */
  Elf64_Xword	sh_flags;		/* Section flags */
  Elf64_Addr	sh_addr;		/* Section virtual addr at execution */
  Elf64_Off	sh_offset;		/* Section file offset */
  Elf64_Xword	sh_size;		/* Section size in bytes */
  Elf64_Word	sh_link;		/* Link to another section */
  Elf64_Word	sh_info;		/* Additional section information */
  Elf64_Xword	sh_addralign;		/* Section alignment */
  Elf64_Xword	sh_entsize;		/* Entry size if section holds table */
} Elf64_Shdr;

/* Special section indices.  */

#define SHN_UNDEF 0
#define SHN_LORESERVE 0xff00
#define SHN_LOPROC 0xff00
#define SHN_BEFORE 0xff00

#define SHN_AFTER 0xff01

#define SHN_HIPROC 0xff1f
#define SHN_LOOS 0xff20
#define SHN_HIOS 0xff3f
#define SHN_ABS 0xfff1
#define SHN_COMMON 0xfff2
#define SHN_XINDEX 0xffff
#define SHN_HIRESERVE 0xffff

/* Legal values for sh_type (section type).  */

#define SHT_NULL 0
#define SHT_PROGBITS 1
#define SHT_SYMTAB 2
#define SHT_STRTAB 3
#define SHT_RELA 4
#define SHT_HASH 5
#define SHT_DYNAMIC 6
#define SHT_NOTE 7
#define SHT_NOBITS 8
#define SHT_REL 9
#define SHT_SHLIB 10
#define SHT_DYNSYM 11
#define SHT_INIT_ARRAY 14
#define SHT_FINI_ARRAY 15
#define SHT_PREINIT_ARRAY 16
#define SHT_GROUP 17
#define SHT_SYMTAB_SHNDX 18
#define SHT_NUM 19
#define SHT_LOOS 0x60000000
#define SHT_GNU_ATTRIBUTES 0x6ffffff5
#define SHT_GNU_HASH 0x6ffffff6
#define SHT_GNU_LIBLIST 0x6ffffff7
#define SHT_CHECKSUM 0x6ffffff8
#define SHT_LOSUNW 0x6ffffffa
#define SHT_SUNW_move 0x6ffffffa
#define SHT_SUNW_COMDAT 0x6ffffffb
#define SHT_SUNW_syminfo 0x6ffffffc
#define SHT_GNU_verdef 0x6ffffffd
#define SHT_GNU_verneed 0x6ffffffe
#define SHT_GNU_versym 0x6fffffff
#define SHT_HISUNW 0x6fffffff
#define SHT_HIOS 0x6fffffff
#define SHT_LOPROC 0x70000000
#define SHT_HIPROC 0x7fffffff
#define SHT_LOUSER 0x80000000
#define SHT_HIUSER 0x8fffffff

/* Legal values for sh_flags (section flags).  */

#define SHF_WRITE (1 << 0)
#define SHF_ALLOC (1 << 1)
#define SHF_EXECINSTR (1 << 2)
#define SHF_MERGE (1 << 4)
#define SHF_STRINGS (1 << 5)
#define SHF_INFO_LINK (1 << 6)
#define SHF_LINK_ORDER (1 << 7)
#define SHF_OS_NONCONFORMING (1 << 8)

#define SHF_GROUP (1 << 9)
#define SHF_TLS (1 << 10)
#define SHF_COMPRESSED (1 << 11)
#define SHF_MASKOS 0x0ff00000
#define SHF_MASKPROC 0xf0000000
#define SHF_GNU_RETAIN (1 << 21)
#define SHF_ORDERED (1 << 30)

#define SHF_EXCLUDE (1U << 31)


/* Section compression header.  Used when SHF_COMPRESSED is set.  */

typedef struct
{
  Elf32_Word	ch_type;	/* Compression format.  */
  Elf32_Word	ch_size;	/* Uncompressed data size.  */
  Elf32_Word	ch_addralign;	/* Uncompressed data alignment.  */
} Elf32_Chdr;

typedef struct
{
  Elf64_Word	ch_type;	/* Compression format.  */
  Elf64_Word	ch_reserved;
  Elf64_Xword	ch_size;	/* Uncompressed data size.  */
  Elf64_Xword	ch_addralign;	/* Uncompressed data alignment.  */
} Elf64_Chdr;

/* Legal values for ch_type (compression algorithm).  */
#define ELFCOMPRESS_ZLIB 1
#define ELFCOMPRESS_LOOS 0x60000000
#define ELFCOMPRESS_HIOS 0x6fffffff
#define ELFCOMPRESS_LOPROC 0x70000000
#define ELFCOMPRESS_HIPROC 0x7fffffff

/* Section group handling.  */
#define GRP_COMDAT 0x1

/* Symbol table entry.  */

typedef struct
{
  Elf32_Word	st_name;		/* Symbol name (string tbl index) */
  Elf32_Addr	st_value;		/* Symbol value */
  Elf32_Word	st_size;		/* Symbol size */
  unsigned char	st_info;		/* Symbol type and binding */
  unsigned char	st_other;		/* Symbol visibility */
  Elf32_Section	st_shndx;		/* Section index */
} Elf32_Sym;

typedef struct
{
  Elf64_Word	st_name;		/* Symbol name (string tbl index) */
  unsigned char	st_info;		/* Symbol type and binding */
  unsigned char st_other;		/* Symbol visibility */
  Elf64_Section	st_shndx;		/* Section index */
  Elf64_Addr	st_value;		/* Symbol value */
  Elf64_Xword	st_size;		/* Symbol size */
} Elf64_Sym;

/* The syminfo section if available contains additional information about
   every dynamic symbol.  */

typedef struct
{
  Elf32_Half si_boundto;		/* Direct bindings, symbol bound to */
  Elf32_Half si_flags;			/* Per symbol flags */
} Elf32_Syminfo;

typedef struct
{
  Elf64_Half si_boundto;		/* Direct bindings, symbol bound to */
  Elf64_Half si_flags;			/* Per symbol flags */
} Elf64_Syminfo;

/* Possible values for si_boundto.  */
#define SYMINFO_BT_SELF 0xffff
#define SYMINFO_BT_PARENT 0xfffe
#define SYMINFO_BT_LOWRESERVE 0xff00

/* Possible bitmasks for si_flags.  */
#define SYMINFO_FLG_DIRECT 0x0001
#define SYMINFO_FLG_PASSTHRU 0x0002
#define SYMINFO_FLG_COPY 0x0004
#define SYMINFO_FLG_LAZYLOAD 0x0008

/* Syminfo version values.  */
#define SYMINFO_NONE 0
#define SYMINFO_CURRENT 1
#define SYMINFO_NUM 2


/* How to extract and insert information held in the st_info field.  */

#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4)
#define ELF32_ST_TYPE(val) ((val) & 0xf)
#define ELF32_ST_INFO(bind,type) (((bind) << 4) + ((type) & 0xf))

/* Both Elf32_Sym and Elf64_Sym use the same one-byte st_info field.  */
#define ELF64_ST_BIND(val) ELF32_ST_BIND (val)
#define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val)
#define ELF64_ST_INFO(bind,type) ELF32_ST_INFO ((bind), (type))

/* Legal values for ST_BIND subfield of st_info (symbol binding).  */

#define STB_LOCAL 0
#define STB_GLOBAL 1
#define STB_WEAK 2
#define STB_NUM 3
#define STB_LOOS 10
#define STB_GNU_UNIQUE 10
#define STB_HIOS 12
#define STB_LOPROC 13
#define STB_HIPROC 15

/* Legal values for ST_TYPE subfield of st_info (symbol type).  */

#define STT_NOTYPE 0
#define STT_OBJECT 1
#define STT_FUNC 2
#define STT_SECTION 3
#define STT_FILE 4
#define STT_COMMON 5
#define STT_TLS 6
#define STT_NUM 7
#define STT_LOOS 10
#define STT_GNU_IFUNC 10
#define STT_HIOS 12
#define STT_LOPROC 13
#define STT_HIPROC 15


/* Symbol table indices are found in the hash buckets and chain table
   of a symbol hash table section.  This special index value indicates
   the end of a chain, meaning no further symbols are found in that bucket.  */

#define STN_UNDEF 0


/* How to extract and insert information held in the st_other field.  */

#define ELF32_ST_VISIBILITY(o) ((o) & 0x03)

/* For ELF64 the definitions are the same.  */
#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o)

/* Symbol visibility specification encoded in the st_other field.  */
#define STV_DEFAULT 0
#define STV_INTERNAL 1
#define STV_HIDDEN 2
#define STV_PROTECTED 3


/* Relocation table entry without addend (in section of type SHT_REL).  */

typedef struct
{
  Elf32_Addr	r_offset;		/* Address */
  Elf32_Word	r_info;			/* Relocation type and symbol index */
} Elf32_Rel;

/* I have seen two different definitions of the Elf64_Rel and
   Elf64_Rela structures, so we'll leave them out until Novell (or
   whoever) gets their act together.  */
/* The following, at least, is used on Sparc v9, MIPS, and Alpha.  */

typedef struct
{
  Elf64_Addr	r_offset;		/* Address */
  Elf64_Xword	r_info;			/* Relocation type and symbol index */
} Elf64_Rel;

/* Relocation table entry with addend (in section of type SHT_RELA).  */

typedef struct
{
  Elf32_Addr	r_offset;		/* Address */
  Elf32_Word	r_info;			/* Relocation type and symbol index */
  Elf32_Sword	r_addend;		/* Addend */
} Elf32_Rela;

typedef struct
{
  Elf64_Addr	r_offset;		/* Address */
  Elf64_Xword	r_info;			/* Relocation type and symbol index */
  Elf64_Sxword	r_addend;		/* Addend */
} Elf64_Rela;

/* How to extract and insert information held in the r_info field.  */

#define ELF32_R_SYM(val) ((val) >> 8)
#define ELF32_R_TYPE(val) ((val) & 0xff)
#define ELF32_R_INFO(sym,type) (((sym) << 8) + ((type) & 0xff))

#define ELF64_R_SYM(i) ((i) >> 32)
#define ELF64_R_TYPE(i) ((i) & 0xffffffff)
#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type))

/* Program segment header.  */

typedef struct
{
  Elf32_Word	p_type;			/* Segment type */
  Elf32_Off	p_offset;		/* Segment file offset */
  Elf32_Addr	p_vaddr;		/* Segment virtual address */
  Elf32_Addr	p_paddr;		/* Segment physical address */
  Elf32_Word	p_filesz;		/* Segment size in file */
  Elf32_Word	p_memsz;		/* Segment size in memory */
  Elf32_Word	p_flags;		/* Segment flags */
  Elf32_Word	p_align;		/* Segment alignment */
} Elf32_Phdr;

typedef struct
{
  Elf64_Word	p_type;			/* Segment type */
  Elf64_Word	p_flags;		/* Segment flags */
  Elf64_Off	p_offset;		/* Segment file offset */
  Elf64_Addr	p_vaddr;		/* Segment virtual address */
  Elf64_Addr	p_paddr;		/* Segment physical address */
  Elf64_Xword	p_filesz;		/* Segment size in file */
  Elf64_Xword	p_memsz;		/* Segment size in memory */
  Elf64_Xword	p_align;		/* Segment alignment */
} Elf64_Phdr;

/* Special value for e_phnum.  This indicates that the real number of
   program headers is too large to fit into e_phnum.  Instead the real
   value is in the field sh_info of section 0.  */

#define PN_XNUM 0xffff

/* Legal values for p_type (segment type).  */

#define PT_NULL 0
#define PT_LOAD 1
#define PT_DYNAMIC 2
#define PT_INTERP 3
#define PT_NOTE 4
#define PT_SHLIB 5
#define PT_PHDR 6
#define PT_TLS 7
#define PT_NUM 8
#define PT_LOOS 0x60000000
#define PT_GNU_EH_FRAME 0x6474e550
#define PT_GNU_STACK 0x6474e551
#define PT_GNU_RELRO 0x6474e552
#define PT_GNU_PROPERTY 0x6474e553
#define PT_LOSUNW 0x6ffffffa
#define PT_SUNWBSS 0x6ffffffa
#define PT_SUNWSTACK 0x6ffffffb
#define PT_HISUNW 0x6fffffff
#define PT_HIOS 0x6fffffff
#define PT_LOPROC 0x70000000
#define PT_HIPROC 0x7fffffff

/* Legal values for p_flags (segment flags).  */

#define PF_X (1 << 0)
#define PF_W (1 << 1)
#define PF_R (1 << 2)
#define PF_MASKOS 0x0ff00000
#define PF_MASKPROC 0xf0000000

/* Legal values for note segment descriptor types for core files. */

#define NT_PRSTATUS 1
#define NT_PRFPREG 2

#define NT_FPREGSET 2
#define NT_PRPSINFO 3
#define NT_PRXREG 4
#define NT_TASKSTRUCT 4
#define NT_PLATFORM 5
#define NT_AUXV 6
#define NT_GWINDOWS 7
#define NT_ASRS 8
#define NT_PSTATUS 10
#define NT_PSINFO 13
#define NT_PRCRED 14
#define NT_UTSNAME 15
#define NT_LWPSTATUS 16
#define NT_LWPSINFO 17
#define NT_PRFPXREG 20
#define NT_SIGINFO 0x53494749

#define NT_FILE 0x46494c45

#define NT_PRXFPREG 0x46e62b7f
#define NT_PPC_VMX 0x100
#define NT_PPC_SPE 0x101
#define NT_PPC_VSX 0x102
#define NT_PPC_TAR 0x103
#define NT_PPC_PPR 0x104
#define NT_PPC_DSCR 0x105
#define NT_PPC_EBB 0x106
#define NT_PPC_PMU 0x107
#define NT_PPC_TM_CGPR 0x108
#define NT_PPC_TM_CFPR 0x109
#define NT_PPC_TM_CVMX 0x10a
#define NT_PPC_TM_CVSX 0x10b
#define NT_PPC_TM_SPR 0x10c
#define NT_PPC_TM_CTAR 0x10d

#define NT_PPC_TM_CPPR 0x10e

#define NT_PPC_TM_CDSCR 0x10f

#define NT_PPC_PKEY 0x110

#define NT_386_TLS 0x200
#define NT_386_IOPERM 0x201
#define NT_X86_XSTATE 0x202
#define NT_S390_HIGH_GPRS 0x300
#define NT_S390_TIMER 0x301
#define NT_S390_TODCMP 0x302
#define NT_S390_TODPREG 0x303
#define NT_S390_CTRS 0x304
#define NT_S390_PREFIX 0x305
#define NT_S390_LAST_BREAK 0x306
#define NT_S390_SYSTEM_CALL 0x307
#define NT_S390_TDB 0x308
#define NT_S390_VXRS_LOW 0x309

#define NT_S390_VXRS_HIGH 0x30a
#define NT_S390_GS_CB 0x30b
#define NT_S390_GS_BC 0x30c

#define NT_S390_RI_CB 0x30d
#define NT_ARM_VFP 0x400
#define NT_ARM_TLS 0x401
#define NT_ARM_HW_BREAK 0x402
#define NT_ARM_HW_WATCH 0x403
#define NT_ARM_SYSTEM_CALL 0x404
#define NT_ARM_SVE 0x405

#define NT_ARM_PAC_MASK 0x406

#define NT_ARM_PACA_KEYS 0x407

#define NT_ARM_PACG_KEYS 0x408

#define NT_ARM_TAGGED_ADDR_CTRL 0x409

#define NT_ARM_PAC_ENABLED_KEYS 0x40a

#define NT_VMCOREDD 0x700
#define NT_MIPS_DSP 0x800
#define NT_MIPS_FP_MODE 0x801
#define NT_MIPS_MSA 0x802

/* Legal values for the note segment descriptor types for object files.  */

#define NT_VERSION 1


/* Dynamic section entry.  */

typedef struct
{
  Elf32_Sword	d_tag;			/* Dynamic entry type */
  union
    {
      Elf32_Word d_val;			/* Integer value */
      Elf32_Addr d_ptr;			/* Address value */
    } d_un;
} Elf32_Dyn;

typedef struct
{
  Elf64_Sxword	d_tag;			/* Dynamic entry type */
  union
    {
      Elf64_Xword d_val;		/* Integer value */
      Elf64_Addr d_ptr;			/* Address value */
    } d_un;
} Elf64_Dyn;

/* Legal values for d_tag (dynamic entry type).  */

#define DT_NULL 0
#define DT_NEEDED 1
#define DT_PLTRELSZ 2
#define DT_PLTGOT 3
#define DT_HASH 4
#define DT_STRTAB 5
#define DT_SYMTAB 6
#define DT_RELA 7
#define DT_RELASZ 8
#define DT_RELAENT 9
#define DT_STRSZ 10
#define DT_SYMENT 11
#define DT_INIT 12
#define DT_FINI 13
#define DT_SONAME 14
#define DT_RPATH 15
#define DT_SYMBOLIC 16
#define DT_REL 17
#define DT_RELSZ 18
#define DT_RELENT 19
#define DT_PLTREL 20
#define DT_DEBUG 21
#define DT_TEXTREL 22
#define DT_JMPREL 23
#define DT_BIND_NOW 24
#define DT_INIT_ARRAY 25
#define DT_FINI_ARRAY 26
#define DT_INIT_ARRAYSZ 27
#define DT_FINI_ARRAYSZ 28
#define DT_RUNPATH 29
#define DT_FLAGS 30
#define DT_ENCODING 32
#define DT_PREINIT_ARRAY 32
#define DT_PREINIT_ARRAYSZ 33
#define DT_SYMTAB_SHNDX 34
#define DT_NUM 35
#define DT_LOOS 0x6000000d
#define DT_HIOS 0x6ffff000
#define DT_LOPROC 0x70000000
#define DT_HIPROC 0x7fffffff
#define DT_PROCNUM DT_MIPS_NUM

/* DT_* entries which fall between DT_VALRNGHI & DT_VALRNGLO use the
   Dyn.d_un.d_val field of the Elf*_Dyn structure.  This follows Sun's
   approach.  */
#define DT_VALRNGLO 0x6ffffd00
#define DT_GNU_PRELINKED 0x6ffffdf5
#define DT_GNU_CONFLICTSZ 0x6ffffdf6
#define DT_GNU_LIBLISTSZ 0x6ffffdf7
#define DT_CHECKSUM 0x6ffffdf8
#define DT_PLTPADSZ 0x6ffffdf9
#define DT_MOVEENT 0x6ffffdfa
#define DT_MOVESZ 0x6ffffdfb
#define DT_FEATURE_1 0x6ffffdfc
#define DT_POSFLAG_1 0x6ffffdfd

#define DT_SYMINSZ 0x6ffffdfe
#define DT_SYMINENT 0x6ffffdff
#define DT_VALRNGHI 0x6ffffdff
#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag))
#define DT_VALNUM 12

/* DT_* entries which fall between DT_ADDRRNGHI & DT_ADDRRNGLO use the
   Dyn.d_un.d_ptr field of the Elf*_Dyn structure.

   If any adjustment is made to the ELF object after it has been
   built these entries will need to be adjusted.  */
#define DT_ADDRRNGLO 0x6ffffe00
#define DT_GNU_HASH 0x6ffffef5
#define DT_TLSDESC_PLT 0x6ffffef6
#define DT_TLSDESC_GOT 0x6ffffef7
#define DT_GNU_CONFLICT 0x6ffffef8
#define DT_GNU_LIBLIST 0x6ffffef9
#define DT_CONFIG 0x6ffffefa
#define DT_DEPAUDIT 0x6ffffefb
#define DT_AUDIT 0x6ffffefc
#define DT_PLTPAD 0x6ffffefd
#define DT_MOVETAB 0x6ffffefe
#define DT_SYMINFO 0x6ffffeff
#define DT_ADDRRNGHI 0x6ffffeff
#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag))
#define DT_ADDRNUM 11

/* The versioning entry types.  The next are defined as part of the
   GNU extension.  */
#define DT_VERSYM 0x6ffffff0

#define DT_RELACOUNT 0x6ffffff9
#define DT_RELCOUNT 0x6ffffffa

/* These were chosen by Sun.  */
#define DT_FLAGS_1 0x6ffffffb
#define DT_VERDEF 0x6ffffffc

#define DT_VERDEFNUM 0x6ffffffd
#define DT_VERNEED 0x6ffffffe

#define DT_VERNEEDNUM 0x6fffffff
#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag))
#define DT_VERSIONTAGNUM 16

/* Sun added these machine-independent extensions in the "processor-specific"
   range.  Be compatible.  */
#define DT_AUXILIARY 0x7ffffffd
#define DT_FILTER 0x7fffffff
#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1)
#define DT_EXTRANUM 3

/* Values of `d_un.d_val' in the DT_FLAGS entry.  */
#define DF_ORIGIN 0x00000001
#define DF_SYMBOLIC 0x00000002
#define DF_TEXTREL 0x00000004
#define DF_BIND_NOW 0x00000008
#define DF_STATIC_TLS 0x00000010

/* State flags selectable in the `d_un.d_val' element of the DT_FLAGS_1
   entry in the dynamic section.  */
#define DF_1_NOW 0x00000001
#define DF_1_GLOBAL 0x00000002
#define DF_1_GROUP 0x00000004
#define DF_1_NODELETE 0x00000008
#define DF_1_LOADFLTR 0x00000010
#define DF_1_INITFIRST 0x00000020
#define DF_1_NOOPEN 0x00000040
#define DF_1_ORIGIN 0x00000080
#define DF_1_DIRECT 0x00000100
#define DF_1_TRANS 0x00000200
#define DF_1_INTERPOSE 0x00000400
#define DF_1_NODEFLIB 0x00000800
#define DF_1_NODUMP 0x00001000
#define DF_1_CONFALT 0x00002000
#define DF_1_ENDFILTEE 0x00004000
#define DF_1_DISPRELDNE 0x00008000
#define DF_1_DISPRELPND 0x00010000
#define DF_1_NODIRECT 0x00020000
#define DF_1_IGNMULDEF 0x00040000
#define DF_1_NOKSYMS 0x00080000
#define DF_1_NOHDR 0x00100000
#define DF_1_EDITED 0x00200000
#define DF_1_NORELOC 0x00400000
#define DF_1_SYMINTPOSE 0x00800000
#define DF_1_GLOBAUDIT 0x01000000
#define DF_1_SINGLETON 0x02000000
#define DF_1_STUB 0x04000000
#define DF_1_PIE 0x08000000
#define DF_1_KMOD 0x10000000
#define DF_1_WEAKFILTER 0x20000000
#define DF_1_NOCOMMON 0x40000000

/* Flags for the feature selection in DT_FEATURE_1.  */
#define DTF_1_PARINIT 0x00000001
#define DTF_1_CONFEXP 0x00000002

/* Flags in the DT_POSFLAG_1 entry effecting only the next DT_* entry.  */
#define DF_P1_LAZYLOAD 0x00000001
#define DF_P1_GROUPPERM 0x00000002


/* Version definition sections.  */

typedef struct
{
  Elf32_Half	vd_version;		/* Version revision */
  Elf32_Half	vd_flags;		/* Version information */
  Elf32_Half	vd_ndx;			/* Version Index */
  Elf32_Half	vd_cnt;			/* Number of associated aux entries */
  Elf32_Word	vd_hash;		/* Version name hash value */
  Elf32_Word	vd_aux;			/* Offset in bytes to verdaux array */
  Elf32_Word	vd_next;		/* Offset in bytes to next verdef
					   entry */
} Elf32_Verdef;

typedef struct
{
  Elf64_Half	vd_version;		/* Version revision */
  Elf64_Half	vd_flags;		/* Version information */
  Elf64_Half	vd_ndx;			/* Version Index */
  Elf64_Half	vd_cnt;			/* Number of associated aux entries */
  Elf64_Word	vd_hash;		/* Version name hash value */
  Elf64_Word	vd_aux;			/* Offset in bytes to verdaux array */
  Elf64_Word	vd_next;		/* Offset in bytes to next verdef
					   entry */
} Elf64_Verdef;


/* Legal values for vd_version (version revision).  */
#define VER_DEF_NONE 0
#define VER_DEF_CURRENT 1
#define VER_DEF_NUM 2

/* Legal values for vd_flags (version information flags).  */
#define VER_FLG_BASE 0x1
#define VER_FLG_WEAK 0x2

/* Versym symbol index values.  */
#define VER_NDX_LOCAL 0
#define VER_NDX_GLOBAL 1
#define VER_NDX_LORESERVE 0xff00
#define VER_NDX_ELIMINATE 0xff01

/* Auxiliary version information.  */

typedef struct
{
  Elf32_Word	vda_name;		/* Version or dependency names */
  Elf32_Word	vda_next;		/* Offset in bytes to next verdaux
					   entry */
} Elf32_Verdaux;

typedef struct
{
  Elf64_Word	vda_name;		/* Version or dependency names */
  Elf64_Word	vda_next;		/* Offset in bytes to next verdaux
					   entry */
} Elf64_Verdaux;


/* Version dependency section.  */

typedef struct
{
  Elf32_Half	vn_version;		/* Version of structure */
  Elf32_Half	vn_cnt;			/* Number of associated aux entries */
  Elf32_Word	vn_file;		/* Offset of filename for this
					   dependency */
  Elf32_Word	vn_aux;			/* Offset in bytes to vernaux array */
  Elf32_Word	vn_next;		/* Offset in bytes to next verneed
					   entry */
} Elf32_Verneed;

typedef struct
{
  Elf64_Half	vn_version;		/* Version of structure */
  Elf64_Half	vn_cnt;			/* Number of associated aux entries */
  Elf64_Word	vn_file;		/* Offset of filename for this
					   dependency */
  Elf64_Word	vn_aux;			/* Offset in bytes to vernaux array */
  Elf64_Word	vn_next;		/* Offset in bytes to next verneed
					   entry */
} Elf64_Verneed;


/* Legal values for vn_version (version revision).  */
#define VER_NEED_NONE 0
#define VER_NEED_CURRENT 1
#define VER_NEED_NUM 2

/* Auxiliary needed version information.  */

typedef struct
{
  Elf32_Word	vna_hash;		/* Hash value of dependency name */
  Elf32_Half	vna_flags;		/* Dependency specific information */
  Elf32_Half	vna_other;		/* Unused */
  Elf32_Word	vna_name;		/* Dependency name string offset */
  Elf32_Word	vna_next;		/* Offset in bytes to next vernaux
					   entry */
} Elf32_Vernaux;

typedef struct
{
  Elf64_Word	vna_hash;		/* Hash value of dependency name */
  Elf64_Half	vna_flags;		/* Dependency specific information */
  Elf64_Half	vna_other;		/* Unused */
  Elf64_Word	vna_name;		/* Dependency name string offset */
  Elf64_Word	vna_next;		/* Offset in bytes to next vernaux
					   entry */
} Elf64_Vernaux;


/* Legal values for vna_flags.  */
#define VER_FLG_WEAK 0x2


/* Auxiliary vector.  */

/* This vector is normally only used by the program interpreter.  The
   usual definition in an ABI supplement uses the name auxv_t.  The
   vector is not usually defined in a standard <elf.h> file, but it
   can't hurt.  We rename it to avoid conflicts.  The sizes of these
   types are an arrangement between the exec server and the program
   interpreter, so we don't fully specify them here.  */

typedef struct
{
  uint32_t a_type;		/* Entry type */
  union
    {
      uint32_t a_val;		/* Integer value */
      /* We use to have pointer elements added here.  We cannot do that,
	 though, since it does not work when using 32-bit definitions
	 on 64-bit platforms and vice versa.  */
    } a_un;
} Elf32_auxv_t;

typedef struct
{
  uint64_t a_type;		/* Entry type */
  union
    {
      uint64_t a_val;		/* Integer value */
      /* We use to have pointer elements added here.  We cannot do that,
	 though, since it does not work when using 32-bit definitions
	 on 64-bit platforms and vice versa.  */
    } a_un;
} Elf64_auxv_t;

/* Legal values for a_type (entry type).  */

#define AT_NULL 0
#define AT_IGNORE 1
#define AT_EXECFD 2
#define AT_PHDR 3
#define AT_PHENT 4
#define AT_PHNUM 5
#define AT_PAGESZ 6
#define AT_BASE 7
#define AT_FLAGS 8
#define AT_ENTRY 9
#define AT_NOTELF 10
#define AT_UID 11
#define AT_EUID 12
#define AT_GID 13
#define AT_EGID 14
#define AT_CLKTCK 17

/* Some more special a_type values describing the hardware.  */
#define AT_PLATFORM 15
#define AT_HWCAP 16


/* This entry gives some information about the FPU initialization
   performed by the kernel.  */
#define AT_FPUCW 18

/* Cache block sizes.  */
#define AT_DCACHEBSIZE 19
#define AT_ICACHEBSIZE 20
#define AT_UCACHEBSIZE 21

/* A special ignored value for PPC, used by the kernel to control the
   interpretation of the AUXV. Must be > 16.  */
#define AT_IGNOREPPC 22

#define AT_SECURE 23

#define AT_BASE_PLATFORM 24

#define AT_RANDOM 25

#define AT_HWCAP2 26


#define AT_EXECFN 31

/* Pointer to the global system page used for system calls and other
   nice things.  */
#define AT_SYSINFO 32
#define AT_SYSINFO_EHDR 33

/* Shapes of the caches.  Bits 0-3 contains associativity; bits 4-7 contains
   log2 of line size; mask those to get cache size.  */
#define AT_L1I_CACHESHAPE 34
#define AT_L1D_CACHESHAPE 35
#define AT_L2_CACHESHAPE 36
#define AT_L3_CACHESHAPE 37

/* Shapes of the caches, with more room to describe them.
   *GEOMETRY are comprised of cache line size in bytes in the bottom 16 bits
   and the cache associativity in the next 16 bits.  */
#define AT_L1I_CACHESIZE 40
#define AT_L1I_CACHEGEOMETRY 41
#define AT_L1D_CACHESIZE 42
#define AT_L1D_CACHEGEOMETRY 43
#define AT_L2_CACHESIZE 44
#define AT_L2_CACHEGEOMETRY 45
#define AT_L3_CACHESIZE 46
#define AT_L3_CACHEGEOMETRY 47

#define AT_MINSIGSTKSZ 51


/* Note section contents.  Each entry in the note section begins with
   a header of a fixed form.  */

typedef struct
{
  Elf32_Word n_namesz;			/* Length of the note's name.  */
  Elf32_Word n_descsz;			/* Length of the note's descriptor.  */
  Elf32_Word n_type;			/* Type of the note.  */
} Elf32_Nhdr;

typedef struct
{
  Elf64_Word n_namesz;			/* Length of the note's name.  */
  Elf64_Word n_descsz;			/* Length of the note's descriptor.  */
  Elf64_Word n_type;			/* Type of the note.  */
} Elf64_Nhdr;

/* Known names of notes.  */

/* Solaris entries in the note section have this name.  */
#define ELF_NOTE_SOLARIS "SUNW Solaris"

/* Note entries for GNU systems have this name.  */
#define ELF_NOTE_GNU "GNU"


/* Defined types of notes for Solaris.  */

/* Value of descriptor (one word) is desired pagesize for the binary.  */
#define ELF_NOTE_PAGESIZE_HINT 1


/* Defined note types for GNU systems.  */

/* ABI information.  The descriptor consists of words:
   word 0: OS descriptor
   word 1: major version of the ABI
   word 2: minor version of the ABI
   word 3: subminor version of the ABI
*/
#define NT_GNU_ABI_TAG 1
#define ELF_NOTE_ABI NT_GNU_ABI_TAG

/* Known OSes.  These values can appear in word 0 of an
   NT_GNU_ABI_TAG note section entry.  */
#define ELF_NOTE_OS_LINUX 0
#define ELF_NOTE_OS_GNU 1
#define ELF_NOTE_OS_SOLARIS2 2
#define ELF_NOTE_OS_FREEBSD 3

/* Synthetic hwcap information.  The descriptor begins with two words:
   word 0: number of entries
   word 1: bitmask of enabled entries
   Then follow variable-length entries, one byte followed by a
   '\0'-terminated hwcap name string.  The byte gives the bit
   number to test if enabled, (1U << bit) & bitmask.  */
#define NT_GNU_HWCAP 2

/* Build ID bits as generated by ld --build-id.
   The descriptor consists of any nonzero number of bytes.  */
#define NT_GNU_BUILD_ID 3

/* Version note generated by GNU gold containing a version string.  */
#define NT_GNU_GOLD_VERSION 4

/* Program property.  */
#define NT_GNU_PROPERTY_TYPE_0 5

/* Note section name of program property.   */
#define NOTE_GNU_PROPERTY_SECTION_NAME ".note.gnu.property"

/* Values used in GNU .note.gnu.property notes (NT_GNU_PROPERTY_TYPE_0).  */

/* Stack size.  */
#define GNU_PROPERTY_STACK_SIZE 1
/* No copy relocation on protected data symbol.  */
#define GNU_PROPERTY_NO_COPY_ON_PROTECTED 2

/* A 4-byte unsigned integer property: A bit is set if it is set in all
   relocatable inputs.  */
#define GNU_PROPERTY_UINT32_AND_LO 0xb0000000
#define GNU_PROPERTY_UINT32_AND_HI 0xb0007fff

/* A 4-byte unsigned integer property: A bit is set if it is set in any
   relocatable inputs.  */
#define GNU_PROPERTY_UINT32_OR_LO 0xb0008000
#define GNU_PROPERTY_UINT32_OR_HI 0xb000ffff

/* The needed properties by the object file.  */
#define GNU_PROPERTY_1_NEEDED GNU_PROPERTY_UINT32_OR_LO

/* Set if the object file requires canonical function pointers and
   cannot be used with copy relocation.  */
#define GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS (1U << 0)

/* Processor-specific semantics, lo */
#define GNU_PROPERTY_LOPROC 0xc0000000
/* Processor-specific semantics, hi */
#define GNU_PROPERTY_HIPROC 0xdfffffff
/* Application-specific semantics, lo */
#define GNU_PROPERTY_LOUSER 0xe0000000
/* Application-specific semantics, hi */
#define GNU_PROPERTY_HIUSER 0xffffffff

/* AArch64 specific GNU properties.  */
#define GNU_PROPERTY_AARCH64_FEATURE_1_AND 0xc0000000

#define GNU_PROPERTY_AARCH64_FEATURE_1_BTI (1U << 0)
#define GNU_PROPERTY_AARCH64_FEATURE_1_PAC (1U << 1)

/* The x86 instruction sets indicated by the corresponding bits are
   used in program.  Their support in the hardware is optional.  */
#define GNU_PROPERTY_X86_ISA_1_USED 0xc0010002
/* The x86 instruction sets indicated by the corresponding bits are
   used in program and they must be supported by the hardware.   */
#define GNU_PROPERTY_X86_ISA_1_NEEDED 0xc0008002
/* X86 processor-specific features used in program.  */
#define GNU_PROPERTY_X86_FEATURE_1_AND 0xc0000002

/* GNU_PROPERTY_X86_ISA_1_BASELINE: CMOV, CX8 (cmpxchg8b), FPU (fld),
   MMX, OSFXSR (fxsave), SCE (syscall), SSE and SSE2.  */
#define GNU_PROPERTY_X86_ISA_1_BASELINE (1U << 0)
/* GNU_PROPERTY_X86_ISA_1_V2: GNU_PROPERTY_X86_ISA_1_BASELINE,
   CMPXCHG16B (cmpxchg16b), LAHF-SAHF (lahf), POPCNT (popcnt), SSE3,
   SSSE3, SSE4.1 and SSE4.2.  */
#define GNU_PROPERTY_X86_ISA_1_V2 (1U << 1)
/* GNU_PROPERTY_X86_ISA_1_V3: GNU_PROPERTY_X86_ISA_1_V2, AVX, AVX2, BMI1,
   BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE.  */
#define GNU_PROPERTY_X86_ISA_1_V3 (1U << 2)
/* GNU_PROPERTY_X86_ISA_1_V4: GNU_PROPERTY_X86_ISA_1_V3, AVX512F,
   AVX512BW, AVX512CD, AVX512DQ and AVX512VL.  */
#define GNU_PROPERTY_X86_ISA_1_V4 (1U << 3)

/* This indicates that all executable sections are compatible with
   IBT.  */
#define GNU_PROPERTY_X86_FEATURE_1_IBT (1U << 0)
/* This indicates that all executable sections are compatible with
   SHSTK.  */
#define GNU_PROPERTY_X86_FEATURE_1_SHSTK (1U << 1)

/* Move records.  */
typedef struct
{
  Elf32_Xword m_value;		/* Symbol value.  */
  Elf32_Word m_info;		/* Size and index.  */
  Elf32_Word m_poffset;		/* Symbol offset.  */
  Elf32_Half m_repeat;		/* Repeat count.  */
  Elf32_Half m_stride;		/* Stride info.  */
} Elf32_Move;

typedef struct
{
  Elf64_Xword m_value;		/* Symbol value.  */
  Elf64_Xword m_info;		/* Size and index.  */
  Elf64_Xword m_poffset;	/* Symbol offset.  */
  Elf64_Half m_repeat;		/* Repeat count.  */
  Elf64_Half m_stride;		/* Stride info.  */
} Elf64_Move;

/* Macro to construct move records.  */
#define ELF32_M_SYM(info) ((info) >> 8)
#define ELF32_M_SIZE(info) ((unsigned char) (info))
#define ELF32_M_INFO(sym,size) (((sym) << 8) + (unsigned char) (size))

#define ELF64_M_SYM(info) ELF32_M_SYM (info)
#define ELF64_M_SIZE(info) ELF32_M_SIZE (info)
#define ELF64_M_INFO(sym,size) ELF32_M_INFO (sym, size)


/* Motorola 68k specific definitions.  */

/* Values for Elf32_Ehdr.e_flags.  */
#define EF_CPU32 0x00810000

/* m68k relocs.  */

#define R_68K_NONE 0
#define R_68K_32 1
#define R_68K_16 2
#define R_68K_8 3
#define R_68K_PC32 4
#define R_68K_PC16 5
#define R_68K_PC8 6
#define R_68K_GOT32 7
#define R_68K_GOT16 8
#define R_68K_GOT8 9
#define R_68K_GOT32O 10
#define R_68K_GOT16O 11
#define R_68K_GOT8O 12
#define R_68K_PLT32 13
#define R_68K_PLT16 14
#define R_68K_PLT8 15
#define R_68K_PLT32O 16
#define R_68K_PLT16O 17
#define R_68K_PLT8O 18
#define R_68K_COPY 19
#define R_68K_GLOB_DAT 20
#define R_68K_JMP_SLOT 21
#define R_68K_RELATIVE 22
#define R_68K_TLS_GD32 25
#define R_68K_TLS_GD16 26
#define R_68K_TLS_GD8 27
#define R_68K_TLS_LDM32 28
#define R_68K_TLS_LDM16 29
#define R_68K_TLS_LDM8 30
#define R_68K_TLS_LDO32 31
#define R_68K_TLS_LDO16 32
#define R_68K_TLS_LDO8 33
#define R_68K_TLS_IE32 34
#define R_68K_TLS_IE16 35
#define R_68K_TLS_IE8 36
#define R_68K_TLS_LE32 37

#define R_68K_TLS_LE16 38

#define R_68K_TLS_LE8 39

#define R_68K_TLS_DTPMOD32 40
#define R_68K_TLS_DTPREL32 41
#define R_68K_TLS_TPREL32 42
/* Keep this the last entry.  */
#define R_68K_NUM 43

/* Intel 80386 specific definitions.  */

/* i386 relocs.  */

#define R_386_NONE 0
#define R_386_32 1
#define R_386_PC32 2
#define R_386_GOT32 3
#define R_386_PLT32 4
#define R_386_COPY 5
#define R_386_GLOB_DAT 6
#define R_386_JMP_SLOT 7
#define R_386_RELATIVE 8
#define R_386_GOTOFF 9
#define R_386_GOTPC 10
#define R_386_32PLT 11
#define R_386_TLS_TPOFF 14
#define R_386_TLS_IE 15

#define R_386_TLS_GOTIE 16

#define R_386_TLS_LE 17

#define R_386_TLS_GD 18

#define R_386_TLS_LDM 19


#define R_386_16 20
#define R_386_PC16 21
#define R_386_8 22
#define R_386_PC8 23
#define R_386_TLS_GD_32 24

#define R_386_TLS_GD_PUSH 25
#define R_386_TLS_GD_CALL 26

#define R_386_TLS_GD_POP 27
#define R_386_TLS_LDM_32 28

#define R_386_TLS_LDM_PUSH 29
#define R_386_TLS_LDM_CALL 30

#define R_386_TLS_LDM_POP 31
#define R_386_TLS_LDO_32 32
#define R_386_TLS_IE_32 33

#define R_386_TLS_LE_32 34

#define R_386_TLS_DTPMOD32 35
#define R_386_TLS_DTPOFF32 36
#define R_386_TLS_TPOFF32 37
#define R_386_SIZE32 38
#define R_386_TLS_GOTDESC 39
#define R_386_TLS_DESC_CALL 40


#define R_386_TLS_DESC 41



#define R_386_IRELATIVE 42
#define R_386_GOT32X 43

/* Keep this the last entry.  */
#define R_386_NUM 44

/* SUN SPARC specific definitions.  */

/* Legal values for ST_TYPE subfield of st_info (symbol type).  */

#define STT_SPARC_REGISTER 13

/* Values for Elf64_Ehdr.e_flags.  */

#define EF_SPARCV9_MM 3
#define EF_SPARCV9_TSO 0
#define EF_SPARCV9_PSO 1
#define EF_SPARCV9_RMO 2
#define EF_SPARC_LEDATA 0x800000
#define EF_SPARC_EXT_MASK 0xFFFF00
#define EF_SPARC_32PLUS 0x000100
#define EF_SPARC_SUN_US1 0x000200
#define EF_SPARC_HAL_R1 0x000400
#define EF_SPARC_SUN_US3 0x000800

/* SPARC relocs.  */

#define R_SPARC_NONE 0
#define R_SPARC_8 1
#define R_SPARC_16 2
#define R_SPARC_32 3
#define R_SPARC_DISP8 4
#define R_SPARC_DISP16 5
#define R_SPARC_DISP32 6
#define R_SPARC_WDISP30 7
#define R_SPARC_WDISP22 8
#define R_SPARC_HI22 9
#define R_SPARC_22 10
#define R_SPARC_13 11
#define R_SPARC_LO10 12
#define R_SPARC_GOT10 13
#define R_SPARC_GOT13 14
#define R_SPARC_GOT22 15
#define R_SPARC_PC10 16
#define R_SPARC_PC22 17
#define R_SPARC_WPLT30 18
#define R_SPARC_COPY 19
#define R_SPARC_GLOB_DAT 20
#define R_SPARC_JMP_SLOT 21
#define R_SPARC_RELATIVE 22
#define R_SPARC_UA32 23

/* Additional Sparc64 relocs.  */

#define R_SPARC_PLT32 24
#define R_SPARC_HIPLT22 25
#define R_SPARC_LOPLT10 26
#define R_SPARC_PCPLT32 27
#define R_SPARC_PCPLT22 28
#define R_SPARC_PCPLT10 29
#define R_SPARC_10 30
#define R_SPARC_11 31
#define R_SPARC_64 32
#define R_SPARC_OLO10 33
#define R_SPARC_HH22 34
#define R_SPARC_HM10 35
#define R_SPARC_LM22 36
#define R_SPARC_PC_HH22 37
#define R_SPARC_PC_HM10 38
#define R_SPARC_PC_LM22 39
#define R_SPARC_WDISP16 40
#define R_SPARC_WDISP19 41
#define R_SPARC_GLOB_JMP 42
#define R_SPARC_7 43
#define R_SPARC_5 44
#define R_SPARC_6 45
#define R_SPARC_DISP64 46
#define R_SPARC_PLT64 47
#define R_SPARC_HIX22 48
#define R_SPARC_LOX10 49
#define R_SPARC_H44 50
#define R_SPARC_M44 51
#define R_SPARC_L44 52
#define R_SPARC_REGISTER 53
#define R_SPARC_UA64 54
#define R_SPARC_UA16 55
#define R_SPARC_TLS_GD_HI22 56
#define R_SPARC_TLS_GD_LO10 57
#define R_SPARC_TLS_GD_ADD 58
#define R_SPARC_TLS_GD_CALL 59
#define R_SPARC_TLS_LDM_HI22 60
#define R_SPARC_TLS_LDM_LO10 61
#define R_SPARC_TLS_LDM_ADD 62
#define R_SPARC_TLS_LDM_CALL 63
#define R_SPARC_TLS_LDO_HIX22 64
#define R_SPARC_TLS_LDO_LOX10 65
#define R_SPARC_TLS_LDO_ADD 66
#define R_SPARC_TLS_IE_HI22 67
#define R_SPARC_TLS_IE_LO10 68
#define R_SPARC_TLS_IE_LD 69
#define R_SPARC_TLS_IE_LDX 70
#define R_SPARC_TLS_IE_ADD 71
#define R_SPARC_TLS_LE_HIX22 72
#define R_SPARC_TLS_LE_LOX10 73
#define R_SPARC_TLS_DTPMOD32 74
#define R_SPARC_TLS_DTPMOD64 75
#define R_SPARC_TLS_DTPOFF32 76
#define R_SPARC_TLS_DTPOFF64 77
#define R_SPARC_TLS_TPOFF32 78
#define R_SPARC_TLS_TPOFF64 79
#define R_SPARC_GOTDATA_HIX22 80
#define R_SPARC_GOTDATA_LOX10 81
#define R_SPARC_GOTDATA_OP_HIX22 82
#define R_SPARC_GOTDATA_OP_LOX10 83
#define R_SPARC_GOTDATA_OP 84
#define R_SPARC_H34 85
#define R_SPARC_SIZE32 86
#define R_SPARC_SIZE64 87
#define R_SPARC_WDISP10 88
#define R_SPARC_JMP_IREL 248
#define R_SPARC_IRELATIVE 249
#define R_SPARC_GNU_VTINHERIT 250
#define R_SPARC_GNU_VTENTRY 251
#define R_SPARC_REV32 252
/* Keep this the last entry.  */
#define R_SPARC_NUM 253

/* For Sparc64, legal values for d_tag of Elf64_Dyn.  */

#define DT_SPARC_REGISTER 0x70000001
#define DT_SPARC_NUM 2

/* MIPS R3000 specific definitions.  */

/* Legal values for e_flags field of Elf32_Ehdr.  */

#define EF_MIPS_NOREORDER 1
#define EF_MIPS_PIC 2
#define EF_MIPS_CPIC 4
#define EF_MIPS_XGOT 8
#define EF_MIPS_64BIT_WHIRL 16
#define EF_MIPS_ABI2 32
#define EF_MIPS_ABI_ON32 64
#define EF_MIPS_FP64 512
#define EF_MIPS_NAN2008 1024
#define EF_MIPS_ARCH 0xf0000000

/* Legal values for MIPS architecture level.  */

#define EF_MIPS_ARCH_1 0x00000000
#define EF_MIPS_ARCH_2 0x10000000
#define EF_MIPS_ARCH_3 0x20000000
#define EF_MIPS_ARCH_4 0x30000000
#define EF_MIPS_ARCH_5 0x40000000
#define EF_MIPS_ARCH_32 0x50000000
#define EF_MIPS_ARCH_64 0x60000000
#define EF_MIPS_ARCH_32R2 0x70000000
#define EF_MIPS_ARCH_64R2 0x80000000

/* The following are unofficial names and should not be used.  */

#define E_MIPS_ARCH_1 EF_MIPS_ARCH_1
#define E_MIPS_ARCH_2 EF_MIPS_ARCH_2
#define E_MIPS_ARCH_3 EF_MIPS_ARCH_3
#define E_MIPS_ARCH_4 EF_MIPS_ARCH_4
#define E_MIPS_ARCH_5 EF_MIPS_ARCH_5
#define E_MIPS_ARCH_32 EF_MIPS_ARCH_32
#define E_MIPS_ARCH_64 EF_MIPS_ARCH_64

/* Special section indices.  */

#define SHN_MIPS_ACOMMON 0xff00
#define SHN_MIPS_TEXT 0xff01
#define SHN_MIPS_DATA 0xff02
#define SHN_MIPS_SCOMMON 0xff03
#define SHN_MIPS_SUNDEFINED 0xff04

/* Legal values for sh_type field of Elf32_Shdr.  */

#define SHT_MIPS_LIBLIST 0x70000000
#define SHT_MIPS_MSYM 0x70000001
#define SHT_MIPS_CONFLICT 0x70000002
#define SHT_MIPS_GPTAB 0x70000003
#define SHT_MIPS_UCODE 0x70000004
#define SHT_MIPS_DEBUG 0x70000005
#define SHT_MIPS_REGINFO 0x70000006
#define SHT_MIPS_PACKAGE 0x70000007
#define SHT_MIPS_PACKSYM 0x70000008
#define SHT_MIPS_RELD 0x70000009
#define SHT_MIPS_IFACE 0x7000000b
#define SHT_MIPS_CONTENT 0x7000000c
#define SHT_MIPS_OPTIONS 0x7000000d
#define SHT_MIPS_SHDR 0x70000010
#define SHT_MIPS_FDESC 0x70000011
#define SHT_MIPS_EXTSYM 0x70000012
#define SHT_MIPS_DENSE 0x70000013
#define SHT_MIPS_PDESC 0x70000014
#define SHT_MIPS_LOCSYM 0x70000015
#define SHT_MIPS_AUXSYM 0x70000016
#define SHT_MIPS_OPTSYM 0x70000017
#define SHT_MIPS_LOCSTR 0x70000018
#define SHT_MIPS_LINE 0x70000019
#define SHT_MIPS_RFDESC 0x7000001a
#define SHT_MIPS_DELTASYM 0x7000001b
#define SHT_MIPS_DELTAINST 0x7000001c
#define SHT_MIPS_DELTACLASS 0x7000001d
#define SHT_MIPS_DWARF 0x7000001e
#define SHT_MIPS_DELTADECL 0x7000001f
#define SHT_MIPS_SYMBOL_LIB 0x70000020
#define SHT_MIPS_EVENTS 0x70000021
#define SHT_MIPS_TRANSLATE 0x70000022
#define SHT_MIPS_PIXIE 0x70000023
#define SHT_MIPS_XLATE 0x70000024
#define SHT_MIPS_XLATE_DEBUG 0x70000025
#define SHT_MIPS_WHIRL 0x70000026
#define SHT_MIPS_EH_REGION 0x70000027
#define SHT_MIPS_XLATE_OLD 0x70000028
#define SHT_MIPS_PDR_EXCEPTION 0x70000029
#define SHT_MIPS_XHASH 0x7000002b

/* Legal values for sh_flags field of Elf32_Shdr.  */

#define SHF_MIPS_GPREL 0x10000000
#define SHF_MIPS_MERGE 0x20000000
#define SHF_MIPS_ADDR 0x40000000
#define SHF_MIPS_STRINGS 0x80000000
#define SHF_MIPS_NOSTRIP 0x08000000
#define SHF_MIPS_LOCAL 0x04000000
#define SHF_MIPS_NAMES 0x02000000
#define SHF_MIPS_NODUPE 0x01000000


/* Symbol tables.  */

/* MIPS specific values for `st_other'.  */
#define STO_MIPS_DEFAULT 0x0
#define STO_MIPS_INTERNAL 0x1
#define STO_MIPS_HIDDEN 0x2
#define STO_MIPS_PROTECTED 0x3
#define STO_MIPS_PLT 0x8
#define STO_MIPS_SC_ALIGN_UNUSED 0xff

/* MIPS specific values for `st_info'.  */
#define STB_MIPS_SPLIT_COMMON 13

/* Entries found in sections of type SHT_MIPS_GPTAB.  */

typedef union
{
  struct
    {
      Elf32_Word gt_current_g_value;	/* -G value used for compilation.  */
      Elf32_Word gt_unused;		/* Not used.  */
    } gt_header;			/* First entry in section.  */
  struct
    {
      Elf32_Word gt_g_value;		/* If this value were used for -G.  */
      Elf32_Word gt_bytes;		/* This many bytes would be used.  */
    } gt_entry;				/* Subsequent entries in section.  */
} Elf32_gptab;

/* Entry found in sections of type SHT_MIPS_REGINFO.  */

typedef struct
{
  Elf32_Word ri_gprmask;		/* General registers used.  */
  Elf32_Word ri_cprmask[4];		/* Coprocessor registers used.  */
  Elf32_Sword ri_gp_value;		/* $gp register value.  */
} Elf32_RegInfo;

/* Entries found in sections of type SHT_MIPS_OPTIONS.  */

typedef struct
{
  unsigned char kind;		/* Determines interpretation of the
				   variable part of descriptor.  */
  unsigned char size;		/* Size of descriptor, including header.  */
  Elf32_Section section;	/* Section header index of section affected,
				   0 for global options.  */
  Elf32_Word info;		/* Kind-specific information.  */
} Elf_Options;

/* Values for `kind' field in Elf_Options.  */

#define ODK_NULL 0
#define ODK_REGINFO 1
#define ODK_EXCEPTIONS 2
#define ODK_PAD 3
#define ODK_HWPATCH 4
#define ODK_FILL 5
#define ODK_TAGS 6
#define ODK_HWAND 7
#define ODK_HWOR 8

/* Values for `info' in Elf_Options for ODK_EXCEPTIONS entries.  */

#define OEX_FPU_MIN 0x1f
#define OEX_FPU_MAX 0x1f00
#define OEX_PAGE0 0x10000
#define OEX_SMM 0x20000
#define OEX_FPDBUG 0x40000
#define OEX_PRECISEFP OEX_FPDBUG
#define OEX_DISMISS 0x80000

#define OEX_FPU_INVAL 0x10
#define OEX_FPU_DIV0 0x08
#define OEX_FPU_OFLO 0x04
#define OEX_FPU_UFLO 0x02
#define OEX_FPU_INEX 0x01

/* Masks for `info' in Elf_Options for an ODK_HWPATCH entry.  */

#define OHW_R4KEOP 0x1
#define OHW_R8KPFETCH 0x2
#define OHW_R5KEOP 0x4
#define OHW_R5KCVTL 0x8

#define OPAD_PREFIX 0x1
#define OPAD_POSTFIX 0x2
#define OPAD_SYMBOL 0x4

/* Entry found in `.options' section.  */

typedef struct
{
  Elf32_Word hwp_flags1;	/* Extra flags.  */
  Elf32_Word hwp_flags2;	/* Extra flags.  */
} Elf_Options_Hw;

/* Masks for `info' in ElfOptions for ODK_HWAND and ODK_HWOR entries.  */

#define OHWA0_R4KEOP_CHECKED 0x00000001
#define OHWA1_R4KEOP_CLEAN 0x00000002

/* MIPS relocs.  */

#define R_MIPS_NONE 0
#define R_MIPS_16 1
#define R_MIPS_32 2
#define R_MIPS_REL32 3
#define R_MIPS_26 4
#define R_MIPS_HI16 5
#define R_MIPS_LO16 6
#define R_MIPS_GPREL16 7
#define R_MIPS_LITERAL 8
#define R_MIPS_GOT16 9
#define R_MIPS_PC16 10
#define R_MIPS_CALL16 11
#define R_MIPS_GPREL32 12

#define R_MIPS_SHIFT5 16
#define R_MIPS_SHIFT6 17
#define R_MIPS_64 18
#define R_MIPS_GOT_DISP 19
#define R_MIPS_GOT_PAGE 20
#define R_MIPS_GOT_OFST 21
#define R_MIPS_GOT_HI16 22
#define R_MIPS_GOT_LO16 23
#define R_MIPS_SUB 24
#define R_MIPS_INSERT_A 25
#define R_MIPS_INSERT_B 26
#define R_MIPS_DELETE 27
#define R_MIPS_HIGHER 28
#define R_MIPS_HIGHEST 29
#define R_MIPS_CALL_HI16 30
#define R_MIPS_CALL_LO16 31
#define R_MIPS_SCN_DISP 32
#define R_MIPS_REL16 33
#define R_MIPS_ADD_IMMEDIATE 34
#define R_MIPS_PJUMP 35
#define R_MIPS_RELGOT 36
#define R_MIPS_JALR 37
#define R_MIPS_TLS_DTPMOD32 38
#define R_MIPS_TLS_DTPREL32 39
#define R_MIPS_TLS_DTPMOD64 40
#define R_MIPS_TLS_DTPREL64 41
#define R_MIPS_TLS_GD 42
#define R_MIPS_TLS_LDM 43
#define R_MIPS_TLS_DTPREL_HI16 44
#define R_MIPS_TLS_DTPREL_LO16 45
#define R_MIPS_TLS_GOTTPREL 46
#define R_MIPS_TLS_TPREL32 47
#define R_MIPS_TLS_TPREL64 48
#define R_MIPS_TLS_TPREL_HI16 49
#define R_MIPS_TLS_TPREL_LO16 50
#define R_MIPS_GLOB_DAT 51
#define R_MIPS_COPY 126
#define R_MIPS_JUMP_SLOT 127
/* Keep this the last entry.  */
#define R_MIPS_NUM 128

/* Legal values for p_type field of Elf32_Phdr.  */

#define PT_MIPS_REGINFO 0x70000000
#define PT_MIPS_RTPROC 0x70000001
#define PT_MIPS_OPTIONS 0x70000002
#define PT_MIPS_ABIFLAGS 0x70000003

/* Special program header types.  */

#define PF_MIPS_LOCAL 0x10000000

/* Legal values for d_tag field of Elf32_Dyn.  */

#define DT_MIPS_RLD_VERSION 0x70000001
#define DT_MIPS_TIME_STAMP 0x70000002
#define DT_MIPS_ICHECKSUM 0x70000003
#define DT_MIPS_IVERSION 0x70000004
#define DT_MIPS_FLAGS 0x70000005
#define DT_MIPS_BASE_ADDRESS 0x70000006
#define DT_MIPS_MSYM 0x70000007
#define DT_MIPS_CONFLICT 0x70000008
#define DT_MIPS_LIBLIST 0x70000009
#define DT_MIPS_LOCAL_GOTNO 0x7000000a
#define DT_MIPS_CONFLICTNO 0x7000000b
#define DT_MIPS_LIBLISTNO 0x70000010
#define DT_MIPS_SYMTABNO 0x70000011
#define DT_MIPS_UNREFEXTNO 0x70000012
#define DT_MIPS_GOTSYM 0x70000013
#define DT_MIPS_HIPAGENO 0x70000014
#define DT_MIPS_RLD_MAP 0x70000016
#define DT_MIPS_DELTA_CLASS 0x70000017
#define DT_MIPS_DELTA_CLASS_NO 0x70000018

#define DT_MIPS_DELTA_INSTANCE 0x70000019
#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a

#define DT_MIPS_DELTA_RELOC 0x7000001b
#define DT_MIPS_DELTA_RELOC_NO 0x7000001c

#define DT_MIPS_DELTA_SYM 0x7000001d

#define DT_MIPS_DELTA_SYM_NO 0x7000001e

#define DT_MIPS_DELTA_CLASSSYM 0x70000020

#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021

#define DT_MIPS_CXX_FLAGS 0x70000022
#define DT_MIPS_PIXIE_INIT 0x70000023
#define DT_MIPS_SYMBOL_LIB 0x70000024
#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025
#define DT_MIPS_LOCAL_GOTIDX 0x70000026
#define DT_MIPS_HIDDEN_GOTIDX 0x70000027
#define DT_MIPS_PROTECTED_GOTIDX 0x70000028
#define DT_MIPS_OPTIONS 0x70000029
#define DT_MIPS_INTERFACE 0x7000002a
#define DT_MIPS_DYNSTR_ALIGN 0x7000002b
#define DT_MIPS_INTERFACE_SIZE 0x7000002c
#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d

#define DT_MIPS_PERF_SUFFIX 0x7000002e

#define DT_MIPS_COMPACT_SIZE 0x7000002f
#define DT_MIPS_GP_VALUE 0x70000030
#define DT_MIPS_AUX_DYNAMIC 0x70000031
/* The address of .got.plt in an executable using the new non-PIC ABI.  */
#define DT_MIPS_PLTGOT 0x70000032
/* The base of the PLT in an executable using the new non-PIC ABI if that
   PLT is writable.  For a non-writable PLT, this is omitted or has a zero
   value.  */
#define DT_MIPS_RWPLT 0x70000034
/* An alternative description of the classic MIPS RLD_MAP that is usable
   in a PIE as it stores a relative offset from the address of the tag
   rather than an absolute address.  */
#define DT_MIPS_RLD_MAP_REL 0x70000035
/* GNU-style hash table with xlat.  */
#define DT_MIPS_XHASH 0x70000036
#define DT_MIPS_NUM 0x37

/* Legal values for DT_MIPS_FLAGS Elf32_Dyn entry.  */

#define RHF_NONE 0
#define RHF_QUICKSTART (1 << 0)
#define RHF_NOTPOT (1 << 1)
#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2)
#define RHF_NO_MOVE (1 << 3)
#define RHF_SGI_ONLY (1 << 4)
#define RHF_GUARANTEE_INIT (1 << 5)
#define RHF_DELTA_C_PLUS_PLUS (1 << 6)
#define RHF_GUARANTEE_START_INIT (1 << 7)
#define RHF_PIXIE (1 << 8)
#define RHF_DEFAULT_DELAY_LOAD (1 << 9)
#define RHF_REQUICKSTART (1 << 10)
#define RHF_REQUICKSTARTED (1 << 11)
#define RHF_CORD (1 << 12)
#define RHF_NO_UNRES_UNDEF (1 << 13)
#define RHF_RLD_ORDER_SAFE (1 << 14)

/* Entries found in sections of type SHT_MIPS_LIBLIST.  */

typedef struct
{
  Elf32_Word l_name;		/* Name (string table index) */
  Elf32_Word l_time_stamp;	/* Timestamp */
  Elf32_Word l_checksum;	/* Checksum */
  Elf32_Word l_version;		/* Interface version */
  Elf32_Word l_flags;		/* Flags */
} Elf32_Lib;

typedef struct
{
  Elf64_Word l_name;		/* Name (string table index) */
  Elf64_Word l_time_stamp;	/* Timestamp */
  Elf64_Word l_checksum;	/* Checksum */
  Elf64_Word l_version;		/* Interface version */
  Elf64_Word l_flags;		/* Flags */
} Elf64_Lib;


/* Legal values for l_flags.  */

#define LL_NONE 0
#define LL_EXACT_MATCH (1 << 0)
#define LL_IGNORE_INT_VER (1 << 1)
#define LL_REQUIRE_MINOR (1 << 2)
#define LL_EXPORTS (1 << 3)
#define LL_DELAY_LOAD (1 << 4)
#define LL_DELTA (1 << 5)

/* Entries found in sections of type SHT_MIPS_CONFLICT.  */

typedef Elf32_Addr Elf32_Conflict;

typedef struct
{
  /* Version of flags structure.  */
  Elf32_Half version;
  /* The level of the ISA: 1-5, 32, 64.  */
  unsigned char isa_level;
  /* The revision of ISA: 0 for MIPS V and below, 1-n otherwise.  */
  unsigned char isa_rev;
  /* The size of general purpose registers.  */
  unsigned char gpr_size;
  /* The size of co-processor 1 registers.  */
  unsigned char cpr1_size;
  /* The size of co-processor 2 registers.  */
  unsigned char cpr2_size;
  /* The floating-point ABI.  */
  unsigned char fp_abi;
  /* Processor-specific extension.  */
  Elf32_Word isa_ext;
  /* Mask of ASEs used.  */
  Elf32_Word ases;
  /* Mask of general flags.  */
  Elf32_Word flags1;
  Elf32_Word flags2;
} Elf_MIPS_ABIFlags_v0;

/* Values for the register size bytes of an abi flags structure.  */

#define MIPS_AFL_REG_NONE 0x00
#define MIPS_AFL_REG_32 0x01
#define MIPS_AFL_REG_64 0x02
#define MIPS_AFL_REG_128 0x03

/* Masks for the ases word of an ABI flags structure.  */

#define MIPS_AFL_ASE_DSP 0x00000001
#define MIPS_AFL_ASE_DSPR2 0x00000002
#define MIPS_AFL_ASE_EVA 0x00000004
#define MIPS_AFL_ASE_MCU 0x00000008
#define MIPS_AFL_ASE_MDMX 0x00000010
#define MIPS_AFL_ASE_MIPS3D 0x00000020
#define MIPS_AFL_ASE_MT 0x00000040
#define MIPS_AFL_ASE_SMARTMIPS 0x00000080
#define MIPS_AFL_ASE_VIRT 0x00000100
#define MIPS_AFL_ASE_MSA 0x00000200
#define MIPS_AFL_ASE_MIPS16 0x00000400
#define MIPS_AFL_ASE_MICROMIPS 0x00000800
#define MIPS_AFL_ASE_XPA 0x00001000
#define MIPS_AFL_ASE_MASK 0x00001fff

/* Values for the isa_ext word of an ABI flags structure.  */

#define MIPS_AFL_EXT_XLR 1
#define MIPS_AFL_EXT_OCTEON2 2
#define MIPS_AFL_EXT_OCTEONP 3
#define MIPS_AFL_EXT_LOONGSON_3A 4
#define MIPS_AFL_EXT_OCTEON 5
#define MIPS_AFL_EXT_5900 6
#define MIPS_AFL_EXT_4650 7
#define MIPS_AFL_EXT_4010 8
#define MIPS_AFL_EXT_4100 9
#define MIPS_AFL_EXT_3900 10
#define MIPS_AFL_EXT_10000 11
#define MIPS_AFL_EXT_SB1 12
#define MIPS_AFL_EXT_4111 13
#define MIPS_AFL_EXT_4120 14
#define MIPS_AFL_EXT_5400 15
#define MIPS_AFL_EXT_5500 16
#define MIPS_AFL_EXT_LOONGSON_2E 17
#define MIPS_AFL_EXT_LOONGSON_2F 18

/* Masks for the flags1 word of an ABI flags structure.  */
#define MIPS_AFL_FLAGS1_ODDSPREG 1

/* Object attribute values.  */
enum
{
  /* Not tagged or not using any ABIs affected by the differences.  */
  Val_GNU_MIPS_ABI_FP_ANY = 0,
  /* Using hard-float -mdouble-float.  */
  Val_GNU_MIPS_ABI_FP_DOUBLE = 1,
  /* Using hard-float -msingle-float.  */
  Val_GNU_MIPS_ABI_FP_SINGLE = 2,
  /* Using soft-float.  */
  Val_GNU_MIPS_ABI_FP_SOFT = 3,
  /* Using -mips32r2 -mfp64.  */
  Val_GNU_MIPS_ABI_FP_OLD_64 = 4,
  /* Using -mfpxx.  */
  Val_GNU_MIPS_ABI_FP_XX = 5,
  /* Using -mips32r2 -mfp64.  */
  Val_GNU_MIPS_ABI_FP_64 = 6,
  /* Using -mips32r2 -mfp64 -mno-odd-spreg.  */
  Val_GNU_MIPS_ABI_FP_64A = 7,
  /* Maximum allocated FP ABI value.  */
  Val_GNU_MIPS_ABI_FP_MAX = 7
};

/* HPPA specific definitions.  */

/* Legal values for e_flags field of Elf32_Ehdr.  */

#define EF_PARISC_TRAPNIL 0x00010000
#define EF_PARISC_EXT 0x00020000
#define EF_PARISC_LSB 0x00040000
#define EF_PARISC_WIDE 0x00080000
#define EF_PARISC_NO_KABP 0x00100000

#define EF_PARISC_LAZYSWAP 0x00400000
#define EF_PARISC_ARCH 0x0000ffff

/* Defined values for `e_flags & EF_PARISC_ARCH' are:  */

#define EFA_PARISC_1_0 0x020b
#define EFA_PARISC_1_1 0x0210
#define EFA_PARISC_2_0 0x0214

/* Additional section indices.  */

#define SHN_PARISC_ANSI_COMMON 0xff00

#define SHN_PARISC_HUGE_COMMON 0xff01

/* Legal values for sh_type field of Elf32_Shdr.  */

#define SHT_PARISC_EXT 0x70000000
#define SHT_PARISC_UNWIND 0x70000001
#define SHT_PARISC_DOC 0x70000002

/* Legal values for sh_flags field of Elf32_Shdr.  */

#define SHF_PARISC_SHORT 0x20000000
#define SHF_PARISC_HUGE 0x40000000
#define SHF_PARISC_SBP 0x80000000

/* Legal values for ST_TYPE subfield of st_info (symbol type).  */

#define STT_PARISC_MILLICODE 13

#define STT_HP_OPAQUE (STT_LOOS + 0x1)
#define STT_HP_STUB (STT_LOOS + 0x2)

/* HPPA relocs.  */

#define R_PARISC_NONE 0
#define R_PARISC_DIR32 1
#define R_PARISC_DIR21L 2
#define R_PARISC_DIR17R 3
#define R_PARISC_DIR17F 4
#define R_PARISC_DIR14R 6
#define R_PARISC_PCREL32 9
#define R_PARISC_PCREL21L 10
#define R_PARISC_PCREL17R 11
#define R_PARISC_PCREL17F 12
#define R_PARISC_PCREL14R 14
#define R_PARISC_DPREL21L 18
#define R_PARISC_DPREL14R 22
#define R_PARISC_GPREL21L 26
#define R_PARISC_GPREL14R 30
#define R_PARISC_LTOFF21L 34
#define R_PARISC_LTOFF14R 38
#define R_PARISC_SECREL32 41
#define R_PARISC_SEGBASE 48
#define R_PARISC_SEGREL32 49
#define R_PARISC_PLTOFF21L 50
#define R_PARISC_PLTOFF14R 54
#define R_PARISC_LTOFF_FPTR32 57
#define R_PARISC_LTOFF_FPTR21L 58
#define R_PARISC_LTOFF_FPTR14R 62
#define R_PARISC_FPTR64 64
#define R_PARISC_PLABEL32 65
#define R_PARISC_PLABEL21L 66
#define R_PARISC_PLABEL14R 70
#define R_PARISC_PCREL64 72
#define R_PARISC_PCREL22F 74
#define R_PARISC_PCREL14WR 75
#define R_PARISC_PCREL14DR 76
#define R_PARISC_PCREL16F 77
#define R_PARISC_PCREL16WF 78
#define R_PARISC_PCREL16DF 79
#define R_PARISC_DIR64 80
#define R_PARISC_DIR14WR 83
#define R_PARISC_DIR14DR 84
#define R_PARISC_DIR16F 85
#define R_PARISC_DIR16WF 86
#define R_PARISC_DIR16DF 87
#define R_PARISC_GPREL64 88
#define R_PARISC_GPREL14WR 91
#define R_PARISC_GPREL14DR 92
#define R_PARISC_GPREL16F 93
#define R_PARISC_GPREL16WF 94
#define R_PARISC_GPREL16DF 95
#define R_PARISC_LTOFF64 96
#define R_PARISC_LTOFF14WR 99
#define R_PARISC_LTOFF14DR 100
#define R_PARISC_LTOFF16F 101
#define R_PARISC_LTOFF16WF 102
#define R_PARISC_LTOFF16DF 103
#define R_PARISC_SECREL64 104
#define R_PARISC_SEGREL64 112
#define R_PARISC_PLTOFF14WR 115
#define R_PARISC_PLTOFF14DR 116
#define R_PARISC_PLTOFF16F 117
#define R_PARISC_PLTOFF16WF 118
#define R_PARISC_PLTOFF16DF 119
#define R_PARISC_LTOFF_FPTR64 120
#define R_PARISC_LTOFF_FPTR14WR 123
#define R_PARISC_LTOFF_FPTR14DR 124
#define R_PARISC_LTOFF_FPTR16F 125
#define R_PARISC_LTOFF_FPTR16WF 126
#define R_PARISC_LTOFF_FPTR16DF 127
#define R_PARISC_LORESERVE 128
#define R_PARISC_COPY 128
#define R_PARISC_IPLT 129
#define R_PARISC_EPLT 130
#define R_PARISC_TPREL32 153
#define R_PARISC_TPREL21L 154
#define R_PARISC_TPREL14R 158
#define R_PARISC_LTOFF_TP21L 162
#define R_PARISC_LTOFF_TP14R 166
#define R_PARISC_LTOFF_TP14F 167
#define R_PARISC_TPREL64 216
#define R_PARISC_TPREL14WR 219
#define R_PARISC_TPREL14DR 220
#define R_PARISC_TPREL16F 221
#define R_PARISC_TPREL16WF 222
#define R_PARISC_TPREL16DF 223
#define R_PARISC_LTOFF_TP64 224
#define R_PARISC_LTOFF_TP14WR 227
#define R_PARISC_LTOFF_TP14DR 228
#define R_PARISC_LTOFF_TP16F 229
#define R_PARISC_LTOFF_TP16WF 230
#define R_PARISC_LTOFF_TP16DF 231
#define R_PARISC_GNU_VTENTRY 232
#define R_PARISC_GNU_VTINHERIT 233
#define R_PARISC_TLS_GD21L 234
#define R_PARISC_TLS_GD14R 235
#define R_PARISC_TLS_GDCALL 236
#define R_PARISC_TLS_LDM21L 237
#define R_PARISC_TLS_LDM14R 238
#define R_PARISC_TLS_LDMCALL 239
#define R_PARISC_TLS_LDO21L 240
#define R_PARISC_TLS_LDO14R 241
#define R_PARISC_TLS_DTPMOD32 242
#define R_PARISC_TLS_DTPMOD64 243
#define R_PARISC_TLS_DTPOFF32 244
#define R_PARISC_TLS_DTPOFF64 245
#define R_PARISC_TLS_LE21L R_PARISC_TPREL21L
#define R_PARISC_TLS_LE14R R_PARISC_TPREL14R
#define R_PARISC_TLS_IE21L R_PARISC_LTOFF_TP21L
#define R_PARISC_TLS_IE14R R_PARISC_LTOFF_TP14R
#define R_PARISC_TLS_TPREL32 R_PARISC_TPREL32
#define R_PARISC_TLS_TPREL64 R_PARISC_TPREL64
#define R_PARISC_HIRESERVE 255

/* Legal values for p_type field of Elf32_Phdr/Elf64_Phdr.  */

#define PT_HP_TLS (PT_LOOS + 0x0)
#define PT_HP_CORE_NONE (PT_LOOS + 0x1)
#define PT_HP_CORE_VERSION (PT_LOOS + 0x2)
#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3)
#define PT_HP_CORE_COMM (PT_LOOS + 0x4)
#define PT_HP_CORE_PROC (PT_LOOS + 0x5)
#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6)
#define PT_HP_CORE_STACK (PT_LOOS + 0x7)
#define PT_HP_CORE_SHM (PT_LOOS + 0x8)
#define PT_HP_CORE_MMF (PT_LOOS + 0x9)
#define PT_HP_PARALLEL (PT_LOOS + 0x10)
#define PT_HP_FASTBIND (PT_LOOS + 0x11)
#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12)
#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13)
#define PT_HP_STACK (PT_LOOS + 0x14)

#define PT_PARISC_ARCHEXT 0x70000000
#define PT_PARISC_UNWIND 0x70000001

/* Legal values for p_flags field of Elf32_Phdr/Elf64_Phdr.  */

#define PF_PARISC_SBP 0x08000000

#define PF_HP_PAGE_SIZE 0x00100000
#define PF_HP_FAR_SHARED 0x00200000
#define PF_HP_NEAR_SHARED 0x00400000
#define PF_HP_CODE 0x01000000
#define PF_HP_MODIFY 0x02000000
#define PF_HP_LAZYSWAP 0x04000000
#define PF_HP_SBP 0x08000000


/* Alpha specific definitions.  */

/* Legal values for e_flags field of Elf64_Ehdr.  */

#define EF_ALPHA_32BIT 1
#define EF_ALPHA_CANRELAX 2

/* Legal values for sh_type field of Elf64_Shdr.  */

/* These two are primerily concerned with ECOFF debugging info.  */
#define SHT_ALPHA_DEBUG 0x70000001
#define SHT_ALPHA_REGINFO 0x70000002

/* Legal values for sh_flags field of Elf64_Shdr.  */

#define SHF_ALPHA_GPREL 0x10000000

/* Legal values for st_other field of Elf64_Sym.  */
#define STO_ALPHA_NOPV 0x80
#define STO_ALPHA_STD_GPLOAD 0x88

/* Alpha relocs.  */

#define R_ALPHA_NONE 0
#define R_ALPHA_REFLONG 1
#define R_ALPHA_REFQUAD 2
#define R_ALPHA_GPREL32 3
#define R_ALPHA_LITERAL 4
#define R_ALPHA_LITUSE 5
#define R_ALPHA_GPDISP 6
#define R_ALPHA_BRADDR 7
#define R_ALPHA_HINT 8
#define R_ALPHA_SREL16 9
#define R_ALPHA_SREL32 10
#define R_ALPHA_SREL64 11
#define R_ALPHA_GPRELHIGH 17
#define R_ALPHA_GPRELLOW 18
#define R_ALPHA_GPREL16 19
#define R_ALPHA_COPY 24
#define R_ALPHA_GLOB_DAT 25
#define R_ALPHA_JMP_SLOT 26
#define R_ALPHA_RELATIVE 27
#define R_ALPHA_TLS_GD_HI 28
#define R_ALPHA_TLSGD 29
#define R_ALPHA_TLS_LDM 30
#define R_ALPHA_DTPMOD64 31
#define R_ALPHA_GOTDTPREL 32
#define R_ALPHA_DTPREL64 33
#define R_ALPHA_DTPRELHI 34
#define R_ALPHA_DTPRELLO 35
#define R_ALPHA_DTPREL16 36
#define R_ALPHA_GOTTPREL 37
#define R_ALPHA_TPREL64 38
#define R_ALPHA_TPRELHI 39
#define R_ALPHA_TPRELLO 40
#define R_ALPHA_TPREL16 41
/* Keep this the last entry.  */
#define R_ALPHA_NUM 46

/* Magic values of the LITUSE relocation addend.  */
#define LITUSE_ALPHA_ADDR 0
#define LITUSE_ALPHA_BASE 1
#define LITUSE_ALPHA_BYTOFF 2
#define LITUSE_ALPHA_JSR 3
#define LITUSE_ALPHA_TLS_GD 4
#define LITUSE_ALPHA_TLS_LDM 5

/* Legal values for d_tag of Elf64_Dyn.  */
#define DT_ALPHA_PLTRO (DT_LOPROC + 0)
#define DT_ALPHA_NUM 1

/* PowerPC specific declarations */

/* Values for Elf32/64_Ehdr.e_flags.  */
#define EF_PPC_EMB 0x80000000

/* Cygnus local bits below */
#define EF_PPC_RELOCATABLE 0x00010000
#define EF_PPC_RELOCATABLE_LIB 0x00008000


/* PowerPC relocations defined by the ABIs */
#define R_PPC_NONE 0
#define R_PPC_ADDR32 1
#define R_PPC_ADDR24 2
#define R_PPC_ADDR16 3
#define R_PPC_ADDR16_LO 4
#define R_PPC_ADDR16_HI 5
#define R_PPC_ADDR16_HA 6
#define R_PPC_ADDR14 7
#define R_PPC_ADDR14_BRTAKEN 8
#define R_PPC_ADDR14_BRNTAKEN 9
#define R_PPC_REL24 10
#define R_PPC_REL14 11
#define R_PPC_REL14_BRTAKEN 12
#define R_PPC_REL14_BRNTAKEN 13
#define R_PPC_GOT16 14
#define R_PPC_GOT16_LO 15
#define R_PPC_GOT16_HI 16
#define R_PPC_GOT16_HA 17
#define R_PPC_PLTREL24 18
#define R_PPC_COPY 19
#define R_PPC_GLOB_DAT 20
#define R_PPC_JMP_SLOT 21
#define R_PPC_RELATIVE 22
#define R_PPC_LOCAL24PC 23
#define R_PPC_UADDR32 24
#define R_PPC_UADDR16 25
#define R_PPC_REL32 26
#define R_PPC_PLT32 27
#define R_PPC_PLTREL32 28
#define R_PPC_PLT16_LO 29
#define R_PPC_PLT16_HI 30
#define R_PPC_PLT16_HA 31
#define R_PPC_SDAREL16 32
#define R_PPC_SECTOFF 33
#define R_PPC_SECTOFF_LO 34
#define R_PPC_SECTOFF_HI 35
#define R_PPC_SECTOFF_HA 36

/* PowerPC relocations defined for the TLS access ABI.  */
#define R_PPC_TLS 67
#define R_PPC_DTPMOD32 68
#define R_PPC_TPREL16 69
#define R_PPC_TPREL16_LO 70
#define R_PPC_TPREL16_HI 71
#define R_PPC_TPREL16_HA 72
#define R_PPC_TPREL32 73
#define R_PPC_DTPREL16 74
#define R_PPC_DTPREL16_LO 75
#define R_PPC_DTPREL16_HI 76
#define R_PPC_DTPREL16_HA 77
#define R_PPC_DTPREL32 78
#define R_PPC_GOT_TLSGD16 79
#define R_PPC_GOT_TLSGD16_LO 80
#define R_PPC_GOT_TLSGD16_HI 81
#define R_PPC_GOT_TLSGD16_HA 82
#define R_PPC_GOT_TLSLD16 83
#define R_PPC_GOT_TLSLD16_LO 84
#define R_PPC_GOT_TLSLD16_HI 85
#define R_PPC_GOT_TLSLD16_HA 86
#define R_PPC_GOT_TPREL16 87
#define R_PPC_GOT_TPREL16_LO 88
#define R_PPC_GOT_TPREL16_HI 89
#define R_PPC_GOT_TPREL16_HA 90
#define R_PPC_GOT_DTPREL16 91
#define R_PPC_GOT_DTPREL16_LO 92
#define R_PPC_GOT_DTPREL16_HI 93
#define R_PPC_GOT_DTPREL16_HA 94
#define R_PPC_TLSGD 95
#define R_PPC_TLSLD 96

/* The remaining relocs are from the Embedded ELF ABI, and are not
   in the SVR4 ELF ABI.  */
#define R_PPC_EMB_NADDR32 101
#define R_PPC_EMB_NADDR16 102
#define R_PPC_EMB_NADDR16_LO 103
#define R_PPC_EMB_NADDR16_HI 104
#define R_PPC_EMB_NADDR16_HA 105
#define R_PPC_EMB_SDAI16 106
#define R_PPC_EMB_SDA2I16 107
#define R_PPC_EMB_SDA2REL 108
#define R_PPC_EMB_SDA21 109
#define R_PPC_EMB_MRKREF 110
#define R_PPC_EMB_RELSEC16 111
#define R_PPC_EMB_RELST_LO 112
#define R_PPC_EMB_RELST_HI 113
#define R_PPC_EMB_RELST_HA 114
#define R_PPC_EMB_BIT_FLD 115
#define R_PPC_EMB_RELSDA 116

/* Diab tool relocations.  */
#define R_PPC_DIAB_SDA21_LO 180
#define R_PPC_DIAB_SDA21_HI 181
#define R_PPC_DIAB_SDA21_HA 182
#define R_PPC_DIAB_RELSDA_LO 183
#define R_PPC_DIAB_RELSDA_HI 184
#define R_PPC_DIAB_RELSDA_HA 185

/* GNU extension to support local ifunc.  */
#define R_PPC_IRELATIVE 248

/* GNU relocs used in PIC code sequences.  */
#define R_PPC_REL16 249
#define R_PPC_REL16_LO 250
#define R_PPC_REL16_HI 251
#define R_PPC_REL16_HA 252

/* This is a phony reloc to handle any old fashioned TOC16 references
   that may still be in object files.  */
#define R_PPC_TOC16 255

/* PowerPC specific values for the Dyn d_tag field.  */
#define DT_PPC_GOT (DT_LOPROC + 0)
#define DT_PPC_OPT (DT_LOPROC + 1)
#define DT_PPC_NUM 2

/* PowerPC specific values for the DT_PPC_OPT Dyn entry.  */
#define PPC_OPT_TLS 1

/* PowerPC64 relocations defined by the ABIs */
#define R_PPC64_NONE R_PPC_NONE
#define R_PPC64_ADDR32 R_PPC_ADDR32
#define R_PPC64_ADDR24 R_PPC_ADDR24
#define R_PPC64_ADDR16 R_PPC_ADDR16
#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO
#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI
#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA
#define R_PPC64_ADDR14 R_PPC_ADDR14
#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN
#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN
#define R_PPC64_REL24 R_PPC_REL24
#define R_PPC64_REL14 R_PPC_REL14
#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN
#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN
#define R_PPC64_GOT16 R_PPC_GOT16
#define R_PPC64_GOT16_LO R_PPC_GOT16_LO
#define R_PPC64_GOT16_HI R_PPC_GOT16_HI
#define R_PPC64_GOT16_HA R_PPC_GOT16_HA

#define R_PPC64_COPY R_PPC_COPY
#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT
#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT
#define R_PPC64_RELATIVE R_PPC_RELATIVE

#define R_PPC64_UADDR32 R_PPC_UADDR32
#define R_PPC64_UADDR16 R_PPC_UADDR16
#define R_PPC64_REL32 R_PPC_REL32
#define R_PPC64_PLT32 R_PPC_PLT32
#define R_PPC64_PLTREL32 R_PPC_PLTREL32
#define R_PPC64_PLT16_LO R_PPC_PLT16_LO
#define R_PPC64_PLT16_HI R_PPC_PLT16_HI
#define R_PPC64_PLT16_HA R_PPC_PLT16_HA

#define R_PPC64_SECTOFF R_PPC_SECTOFF
#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO
#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI
#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA
#define R_PPC64_ADDR30 37
#define R_PPC64_ADDR64 38
#define R_PPC64_ADDR16_HIGHER 39
#define R_PPC64_ADDR16_HIGHERA 40
#define R_PPC64_ADDR16_HIGHEST 41
#define R_PPC64_ADDR16_HIGHESTA 42
#define R_PPC64_UADDR64 43
#define R_PPC64_REL64 44
#define R_PPC64_PLT64 45
#define R_PPC64_PLTREL64 46
#define R_PPC64_TOC16 47
#define R_PPC64_TOC16_LO 48
#define R_PPC64_TOC16_HI 49
#define R_PPC64_TOC16_HA 50
#define R_PPC64_TOC 51
#define R_PPC64_PLTGOT16 52
#define R_PPC64_PLTGOT16_LO 53
#define R_PPC64_PLTGOT16_HI 54
#define R_PPC64_PLTGOT16_HA 55

#define R_PPC64_ADDR16_DS 56
#define R_PPC64_ADDR16_LO_DS 57
#define R_PPC64_GOT16_DS 58
#define R_PPC64_GOT16_LO_DS 59
#define R_PPC64_PLT16_LO_DS 60
#define R_PPC64_SECTOFF_DS 61
#define R_PPC64_SECTOFF_LO_DS 62
#define R_PPC64_TOC16_DS 63
#define R_PPC64_TOC16_LO_DS 64
#define R_PPC64_PLTGOT16_DS 65
#define R_PPC64_PLTGOT16_LO_DS 66

/* PowerPC64 relocations defined for the TLS access ABI.  */
#define R_PPC64_TLS 67
#define R_PPC64_DTPMOD64 68
#define R_PPC64_TPREL16 69
#define R_PPC64_TPREL16_LO 70
#define R_PPC64_TPREL16_HI 71
#define R_PPC64_TPREL16_HA 72
#define R_PPC64_TPREL64 73
#define R_PPC64_DTPREL16 74
#define R_PPC64_DTPREL16_LO 75
#define R_PPC64_DTPREL16_HI 76
#define R_PPC64_DTPREL16_HA 77
#define R_PPC64_DTPREL64 78
#define R_PPC64_GOT_TLSGD16 79
#define R_PPC64_GOT_TLSGD16_LO 80
#define R_PPC64_GOT_TLSGD16_HI 81
#define R_PPC64_GOT_TLSGD16_HA 82
#define R_PPC64_GOT_TLSLD16 83
#define R_PPC64_GOT_TLSLD16_LO 84
#define R_PPC64_GOT_TLSLD16_HI 85
#define R_PPC64_GOT_TLSLD16_HA 86
#define R_PPC64_GOT_TPREL16_DS 87
#define R_PPC64_GOT_TPREL16_LO_DS 88
#define R_PPC64_GOT_TPREL16_HI 89
#define R_PPC64_GOT_TPREL16_HA 90
#define R_PPC64_GOT_DTPREL16_DS 91
#define R_PPC64_GOT_DTPREL16_LO_DS 92
#define R_PPC64_GOT_DTPREL16_HI 93
#define R_PPC64_GOT_DTPREL16_HA 94
#define R_PPC64_TPREL16_DS 95
#define R_PPC64_TPREL16_LO_DS 96
#define R_PPC64_TPREL16_HIGHER 97
#define R_PPC64_TPREL16_HIGHERA 98
#define R_PPC64_TPREL16_HIGHEST 99
#define R_PPC64_TPREL16_HIGHESTA 100
#define R_PPC64_DTPREL16_DS 101
#define R_PPC64_DTPREL16_LO_DS 102
#define R_PPC64_DTPREL16_HIGHER 103
#define R_PPC64_DTPREL16_HIGHERA 104
#define R_PPC64_DTPREL16_HIGHEST 105
#define R_PPC64_DTPREL16_HIGHESTA 106
#define R_PPC64_TLSGD 107
#define R_PPC64_TLSLD 108
#define R_PPC64_TOCSAVE 109

/* Added when HA and HI relocs were changed to report overflows.  */
#define R_PPC64_ADDR16_HIGH 110
#define R_PPC64_ADDR16_HIGHA 111
#define R_PPC64_TPREL16_HIGH 112
#define R_PPC64_TPREL16_HIGHA 113
#define R_PPC64_DTPREL16_HIGH 114
#define R_PPC64_DTPREL16_HIGHA 115

/* GNU extension to support local ifunc.  */
#define R_PPC64_JMP_IREL 247
#define R_PPC64_IRELATIVE 248
#define R_PPC64_REL16 249
#define R_PPC64_REL16_LO 250
#define R_PPC64_REL16_HI 251
#define R_PPC64_REL16_HA 252

/* e_flags bits specifying ABI.
   1 for original function descriptor using ABI,
   2 for revised ABI without function descriptors,
   0 for unspecified or not using any features affected by the differences.  */
#define EF_PPC64_ABI 3

/* PowerPC64 specific values for the Dyn d_tag field.  */
#define DT_PPC64_GLINK (DT_LOPROC + 0)
#define DT_PPC64_OPD (DT_LOPROC + 1)
#define DT_PPC64_OPDSZ (DT_LOPROC + 2)
#define DT_PPC64_OPT (DT_LOPROC + 3)
#define DT_PPC64_NUM 4

/* PowerPC64 specific bits in the DT_PPC64_OPT Dyn entry.  */
#define PPC64_OPT_TLS 1
#define PPC64_OPT_MULTI_TOC 2
#define PPC64_OPT_LOCALENTRY 4

/* PowerPC64 specific values for the Elf64_Sym st_other field.  */
#define STO_PPC64_LOCAL_BIT 5
#define STO_PPC64_LOCAL_MASK (7 << STO_PPC64_LOCAL_BIT)
#define PPC64_LOCAL_ENTRY_OFFSET(other) (((1 << (((other) & STO_PPC64_LOCAL_MASK) >> STO_PPC64_LOCAL_BIT)) >> 2) << 2)



/* ARM specific declarations */

/* Processor specific flags for the ELF header e_flags field.  */
#define EF_ARM_RELEXEC 0x01
#define EF_ARM_HASENTRY 0x02
#define EF_ARM_INTERWORK 0x04
#define EF_ARM_APCS_26 0x08
#define EF_ARM_APCS_FLOAT 0x10
#define EF_ARM_PIC 0x20
#define EF_ARM_ALIGN8 0x40
#define EF_ARM_NEW_ABI 0x80
#define EF_ARM_OLD_ABI 0x100
#define EF_ARM_SOFT_FLOAT 0x200
#define EF_ARM_VFP_FLOAT 0x400
#define EF_ARM_MAVERICK_FLOAT 0x800

#define EF_ARM_ABI_FLOAT_SOFT 0x200
#define EF_ARM_ABI_FLOAT_HARD 0x400


/* Other constants defined in the ARM ELF spec. version B-01.  */
/* NB. These conflict with values defined above.  */
#define EF_ARM_SYMSARESORTED 0x04
#define EF_ARM_DYNSYMSUSESEGIDX 0x08
#define EF_ARM_MAPSYMSFIRST 0x10
#define EF_ARM_EABIMASK 0XFF000000

/* Constants defined in AAELF.  */
#define EF_ARM_BE8 0x00800000
#define EF_ARM_LE8 0x00400000

#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK)
#define EF_ARM_EABI_UNKNOWN 0x00000000
#define EF_ARM_EABI_VER1 0x01000000
#define EF_ARM_EABI_VER2 0x02000000
#define EF_ARM_EABI_VER3 0x03000000
#define EF_ARM_EABI_VER4 0x04000000
#define EF_ARM_EABI_VER5 0x05000000

/* Additional symbol types for Thumb.  */
#define STT_ARM_TFUNC STT_LOPROC
#define STT_ARM_16BIT STT_HIPROC

/* ARM-specific values for sh_flags */
#define SHF_ARM_ENTRYSECT 0x10000000
#define SHF_ARM_COMDEF 0x80000000


/* ARM-specific program header flags */
#define PF_ARM_SB 0x10000000

#define PF_ARM_PI 0x20000000
#define PF_ARM_ABS 0x40000000

/* Processor specific values for the Phdr p_type field.  */
#define PT_ARM_EXIDX (PT_LOPROC + 1)

/* Processor specific values for the Shdr sh_type field.  */
#define SHT_ARM_EXIDX (SHT_LOPROC + 1)
#define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2)
#define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3)


/* AArch64 relocs.  */

#define R_AARCH64_NONE 0

/* ILP32 AArch64 relocs.  */
#define R_AARCH64_P32_ABS32 1
#define R_AARCH64_P32_COPY 180
#define R_AARCH64_P32_GLOB_DAT 181
#define R_AARCH64_P32_JUMP_SLOT 182
#define R_AARCH64_P32_RELATIVE 183
#define R_AARCH64_P32_TLS_DTPMOD 184
#define R_AARCH64_P32_TLS_DTPREL 185
#define R_AARCH64_P32_TLS_TPREL 186
#define R_AARCH64_P32_TLSDESC 187
#define R_AARCH64_P32_IRELATIVE 188

/* LP64 AArch64 relocs.  */
#define R_AARCH64_ABS64 257
#define R_AARCH64_ABS32 258
#define R_AARCH64_ABS16 259
#define R_AARCH64_PREL64 260
#define R_AARCH64_PREL32 261
#define R_AARCH64_PREL16 262
#define R_AARCH64_MOVW_UABS_G0 263
#define R_AARCH64_MOVW_UABS_G0_NC 264
#define R_AARCH64_MOVW_UABS_G1 265
#define R_AARCH64_MOVW_UABS_G1_NC 266
#define R_AARCH64_MOVW_UABS_G2 267
#define R_AARCH64_MOVW_UABS_G2_NC 268
#define R_AARCH64_MOVW_UABS_G3 269
#define R_AARCH64_MOVW_SABS_G0 270
#define R_AARCH64_MOVW_SABS_G1 271
#define R_AARCH64_MOVW_SABS_G2 272
#define R_AARCH64_LD_PREL_LO19 273
#define R_AARCH64_ADR_PREL_LO21 274
#define R_AARCH64_ADR_PREL_PG_HI21 275
#define R_AARCH64_ADR_PREL_PG_HI21_NC 276
#define R_AARCH64_ADD_ABS_LO12_NC 277
#define R_AARCH64_LDST8_ABS_LO12_NC 278
#define R_AARCH64_TSTBR14 279
#define R_AARCH64_CONDBR19 280
#define R_AARCH64_JUMP26 282
#define R_AARCH64_CALL26 283
#define R_AARCH64_LDST16_ABS_LO12_NC 284
#define R_AARCH64_LDST32_ABS_LO12_NC 285
#define R_AARCH64_LDST64_ABS_LO12_NC 286
#define R_AARCH64_MOVW_PREL_G0 287
#define R_AARCH64_MOVW_PREL_G0_NC 288
#define R_AARCH64_MOVW_PREL_G1 289
#define R_AARCH64_MOVW_PREL_G1_NC 290
#define R_AARCH64_MOVW_PREL_G2 291
#define R_AARCH64_MOVW_PREL_G2_NC 292
#define R_AARCH64_MOVW_PREL_G3 293
#define R_AARCH64_LDST128_ABS_LO12_NC 299
#define R_AARCH64_MOVW_GOTOFF_G0 300
#define R_AARCH64_MOVW_GOTOFF_G0_NC 301
#define R_AARCH64_MOVW_GOTOFF_G1 302
#define R_AARCH64_MOVW_GOTOFF_G1_NC 303
#define R_AARCH64_MOVW_GOTOFF_G2 304
#define R_AARCH64_MOVW_GOTOFF_G2_NC 305
#define R_AARCH64_MOVW_GOTOFF_G3 306
#define R_AARCH64_GOTREL64 307
#define R_AARCH64_GOTREL32 308
#define R_AARCH64_GOT_LD_PREL19 309
#define R_AARCH64_LD64_GOTOFF_LO15 310
#define R_AARCH64_ADR_GOT_PAGE 311
#define R_AARCH64_LD64_GOT_LO12_NC 312
#define R_AARCH64_LD64_GOTPAGE_LO15 313
#define R_AARCH64_TLSGD_ADR_PREL21 512
#define R_AARCH64_TLSGD_ADR_PAGE21 513
#define R_AARCH64_TLSGD_ADD_LO12_NC 514
#define R_AARCH64_TLSGD_MOVW_G1 515
#define R_AARCH64_TLSGD_MOVW_G0_NC 516
#define R_AARCH64_TLSLD_ADR_PREL21 517
#define R_AARCH64_TLSLD_ADR_PAGE21 518
#define R_AARCH64_TLSLD_ADD_LO12_NC 519
#define R_AARCH64_TLSLD_MOVW_G1 520
#define R_AARCH64_TLSLD_MOVW_G0_NC 521
#define R_AARCH64_TLSLD_LD_PREL19 522
#define R_AARCH64_TLSLD_MOVW_DTPREL_G2 523
#define R_AARCH64_TLSLD_MOVW_DTPREL_G1 524
#define R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC 525
#define R_AARCH64_TLSLD_MOVW_DTPREL_G0 526
#define R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC 527
#define R_AARCH64_TLSLD_ADD_DTPREL_HI12 528
#define R_AARCH64_TLSLD_ADD_DTPREL_LO12 529
#define R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC 530
#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12 531
#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC 532
#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12 533
#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC 534
#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12 535
#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC 536
#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12 537
#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC 538
#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 539
#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC 540
#define R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 541
#define R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC 542
#define R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 543
#define R_AARCH64_TLSLE_MOVW_TPREL_G2 544
#define R_AARCH64_TLSLE_MOVW_TPREL_G1 545
#define R_AARCH64_TLSLE_MOVW_TPREL_G1_NC 546
#define R_AARCH64_TLSLE_MOVW_TPREL_G0 547
#define R_AARCH64_TLSLE_MOVW_TPREL_G0_NC 548
#define R_AARCH64_TLSLE_ADD_TPREL_HI12 549
#define R_AARCH64_TLSLE_ADD_TPREL_LO12 550
#define R_AARCH64_TLSLE_ADD_TPREL_LO12_NC 551
#define R_AARCH64_TLSLE_LDST8_TPREL_LO12 552
#define R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC 553
#define R_AARCH64_TLSLE_LDST16_TPREL_LO12 554
#define R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC 555
#define R_AARCH64_TLSLE_LDST32_TPREL_LO12 556
#define R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC 557
#define R_AARCH64_TLSLE_LDST64_TPREL_LO12 558
#define R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC 559
#define R_AARCH64_TLSDESC_LD_PREL19 560
#define R_AARCH64_TLSDESC_ADR_PREL21 561
#define R_AARCH64_TLSDESC_ADR_PAGE21 562
#define R_AARCH64_TLSDESC_LD64_LO12 563
#define R_AARCH64_TLSDESC_ADD_LO12 564
#define R_AARCH64_TLSDESC_OFF_G1 565
#define R_AARCH64_TLSDESC_OFF_G0_NC 566
#define R_AARCH64_TLSDESC_LDR 567
#define R_AARCH64_TLSDESC_ADD 568
#define R_AARCH64_TLSDESC_CALL 569
#define R_AARCH64_TLSLE_LDST128_TPREL_LO12 570
#define R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC 571
#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12 572
#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC 573
#define R_AARCH64_COPY 1024
#define R_AARCH64_GLOB_DAT 1025
#define R_AARCH64_JUMP_SLOT 1026
#define R_AARCH64_RELATIVE 1027
#define R_AARCH64_TLS_DTPMOD 1028
#define R_AARCH64_TLS_DTPREL 1029
#define R_AARCH64_TLS_TPREL 1030
#define R_AARCH64_TLSDESC 1031
#define R_AARCH64_IRELATIVE 1032

/* AArch64 specific values for the Dyn d_tag field.  */
#define DT_AARCH64_BTI_PLT (DT_LOPROC + 1)
#define DT_AARCH64_PAC_PLT (DT_LOPROC + 3)
#define DT_AARCH64_VARIANT_PCS (DT_LOPROC + 5)
#define DT_AARCH64_NUM 6

/* AArch64 specific values for the st_other field.  */
#define STO_AARCH64_VARIANT_PCS 0x80

/* ARM relocs.  */

#define R_ARM_NONE 0
#define R_ARM_PC24 1

#define R_ARM_ABS32 2
#define R_ARM_REL32 3
#define R_ARM_PC13 4
#define R_ARM_ABS16 5
#define R_ARM_ABS12 6
#define R_ARM_THM_ABS5 7
#define R_ARM_ABS8 8
#define R_ARM_SBREL32 9
#define R_ARM_THM_PC22 10
#define R_ARM_THM_PC8 11

#define R_ARM_AMP_VCALL9 12
#define R_ARM_SWI24 13
#define R_ARM_TLS_DESC 13
#define R_ARM_THM_SWI8 14
#define R_ARM_XPC25 15
#define R_ARM_THM_XPC22 16
#define R_ARM_TLS_DTPMOD32 17
#define R_ARM_TLS_DTPOFF32 18
#define R_ARM_TLS_TPOFF32 19
#define R_ARM_COPY 20
#define R_ARM_GLOB_DAT 21
#define R_ARM_JUMP_SLOT 22
#define R_ARM_RELATIVE 23
#define R_ARM_GOTOFF 24
#define R_ARM_GOTPC 25
#define R_ARM_GOT32 26
#define R_ARM_PLT32 27
#define R_ARM_CALL 28
#define R_ARM_JUMP24 29

#define R_ARM_THM_JUMP24 30
#define R_ARM_BASE_ABS 31
#define R_ARM_ALU_PCREL_7_0 32
#define R_ARM_ALU_PCREL_15_8 33
#define R_ARM_ALU_PCREL_23_15 34
#define R_ARM_LDR_SBREL_11_0 35
#define R_ARM_ALU_SBREL_19_12 36
#define R_ARM_ALU_SBREL_27_20 37
#define R_ARM_TARGET1 38
#define R_ARM_SBREL31 39
#define R_ARM_V4BX 40
#define R_ARM_TARGET2 41
#define R_ARM_PREL31 42
#define R_ARM_MOVW_ABS_NC 43
#define R_ARM_MOVT_ABS 44
#define R_ARM_MOVW_PREL_NC 45
#define R_ARM_MOVT_PREL 46
#define R_ARM_THM_MOVW_ABS_NC 47
#define R_ARM_THM_MOVT_ABS 48

#define R_ARM_THM_MOVW_PREL_NC 49

#define R_ARM_THM_MOVT_PREL 50

#define R_ARM_THM_JUMP19 51

#define R_ARM_THM_JUMP6 52

#define R_ARM_THM_ALU_PREL_11_0 53

#define R_ARM_THM_PC12 54

#define R_ARM_ABS32_NOI 55
#define R_ARM_REL32_NOI 56
#define R_ARM_ALU_PC_G0_NC 57
#define R_ARM_ALU_PC_G0 58
#define R_ARM_ALU_PC_G1_NC 59
#define R_ARM_ALU_PC_G1 60
#define R_ARM_ALU_PC_G2 61
#define R_ARM_LDR_PC_G1 62
#define R_ARM_LDR_PC_G2 63
#define R_ARM_LDRS_PC_G0 64

#define R_ARM_LDRS_PC_G1 65

#define R_ARM_LDRS_PC_G2 66

#define R_ARM_LDC_PC_G0 67
#define R_ARM_LDC_PC_G1 68
#define R_ARM_LDC_PC_G2 69
#define R_ARM_ALU_SB_G0_NC 70
#define R_ARM_ALU_SB_G0 71
#define R_ARM_ALU_SB_G1_NC 72
#define R_ARM_ALU_SB_G1 73
#define R_ARM_ALU_SB_G2 74
#define R_ARM_LDR_SB_G0 75

#define R_ARM_LDR_SB_G1 76

#define R_ARM_LDR_SB_G2 77

#define R_ARM_LDRS_SB_G0 78

#define R_ARM_LDRS_SB_G1 79

#define R_ARM_LDRS_SB_G2 80

#define R_ARM_LDC_SB_G0 81
#define R_ARM_LDC_SB_G1 82
#define R_ARM_LDC_SB_G2 83
#define R_ARM_MOVW_BREL_NC 84

#define R_ARM_MOVT_BREL 85

#define R_ARM_MOVW_BREL 86

#define R_ARM_THM_MOVW_BREL_NC 87

#define R_ARM_THM_MOVT_BREL 88

#define R_ARM_THM_MOVW_BREL 89

#define R_ARM_TLS_GOTDESC 90
#define R_ARM_TLS_CALL 91
#define R_ARM_TLS_DESCSEQ 92
#define R_ARM_THM_TLS_CALL 93
#define R_ARM_PLT32_ABS 94
#define R_ARM_GOT_ABS 95
#define R_ARM_GOT_PREL 96
#define R_ARM_GOT_BREL12 97

#define R_ARM_GOTOFF12 98

#define R_ARM_GOTRELAX 99
#define R_ARM_GNU_VTENTRY 100
#define R_ARM_GNU_VTINHERIT 101
#define R_ARM_THM_PC11 102
#define R_ARM_THM_PC9 103

#define R_ARM_TLS_GD32 104

#define R_ARM_TLS_LDM32 105

#define R_ARM_TLS_LDO32 106

#define R_ARM_TLS_IE32 107

#define R_ARM_TLS_LE32 108

#define R_ARM_TLS_LDO12 109

#define R_ARM_TLS_LE12 110

#define R_ARM_TLS_IE12GP 111

#define R_ARM_ME_TOO 128
#define R_ARM_THM_TLS_DESCSEQ 129
#define R_ARM_THM_TLS_DESCSEQ16 129
#define R_ARM_THM_TLS_DESCSEQ32 130
#define R_ARM_THM_GOT_BREL12 131

#define R_ARM_IRELATIVE 160
#define R_ARM_RXPC25 249
#define R_ARM_RSBREL32 250
#define R_ARM_THM_RPC22 251
#define R_ARM_RREL32 252
#define R_ARM_RABS22 253
#define R_ARM_RPC24 254
#define R_ARM_RBASE 255
/* Keep this the last entry.  */
#define R_ARM_NUM 256

/* C-SKY */
#define R_CKCORE_NONE 0
#define R_CKCORE_ADDR32 1
#define R_CKCORE_PCRELIMM8BY4 2
#define R_CKCORE_PCRELIMM11BY2 3
#define R_CKCORE_PCREL32 5
#define R_CKCORE_PCRELJSR_IMM11BY2 6
#define R_CKCORE_RELATIVE 9
#define R_CKCORE_COPY 10
#define R_CKCORE_GLOB_DAT 11
#define R_CKCORE_JUMP_SLOT 12
#define R_CKCORE_GOTOFF 13
#define R_CKCORE_GOTPC 14
#define R_CKCORE_GOT32 15
#define R_CKCORE_PLT32 16
#define R_CKCORE_ADDRGOT 17
#define R_CKCORE_ADDRPLT 18
#define R_CKCORE_PCREL_IMM26BY2 19
#define R_CKCORE_PCREL_IMM16BY2 20
#define R_CKCORE_PCREL_IMM16BY4 21
#define R_CKCORE_PCREL_IMM10BY2 22
#define R_CKCORE_PCREL_IMM10BY4 23
#define R_CKCORE_ADDR_HI16 24
                                        /* ((S + A) >> 16) & 0xffff */
#define R_CKCORE_ADDR_LO16 25
#define R_CKCORE_GOTPC_HI16 26
                                        /* ((GOT + A - P) >> 16) & 0xffff */
#define R_CKCORE_GOTPC_LO16 27
#define R_CKCORE_GOTOFF_HI16 28
                                        /* ((S + A - GOT) >> 16) & 0xffff */
#define R_CKCORE_GOTOFF_LO16 29
#define R_CKCORE_GOT12 30
#define R_CKCORE_GOT_HI16 31
                                        /* (G >> 16) & 0xffff */
#define R_CKCORE_GOT_LO16 32
#define R_CKCORE_PLT12 33
#define R_CKCORE_PLT_HI16 34
                                        /* (G >> 16) & 0xffff */
#define R_CKCORE_PLT_LO16 35
#define R_CKCORE_ADDRGOT_HI16 36
                                        /* (GOT + G * 4) & 0xffff */
#define R_CKCORE_ADDRGOT_LO16 37
#define R_CKCORE_ADDRPLT_HI16 38
                                        /* ((GOT + G * 4) >> 16) & 0xFFFF */
#define R_CKCORE_ADDRPLT_LO16 39
#define R_CKCORE_PCREL_JSR_IMM26BY2 40
#define R_CKCORE_TOFFSET_LO16 41
#define R_CKCORE_DOFFSET_LO16 42
#define R_CKCORE_PCREL_IMM18BY2 43
#define R_CKCORE_DOFFSET_IMM18 44
#define R_CKCORE_DOFFSET_IMM18BY2 45
#define R_CKCORE_DOFFSET_IMM18BY4 46
#define R_CKCORE_GOT_IMM18BY4 48
#define R_CKCORE_PLT_IMM18BY4 49
#define R_CKCORE_PCREL_IMM7BY4 50
#define R_CKCORE_TLS_LE32 51
#define R_CKCORE_TLS_IE32 52
#define R_CKCORE_TLS_GD32 53
#define R_CKCORE_TLS_LDM32 54
#define R_CKCORE_TLS_LDO32 55
#define R_CKCORE_TLS_DTPMOD32 56
#define R_CKCORE_TLS_DTPOFF32 57
#define R_CKCORE_TLS_TPOFF32 58

/* C-SKY elf header definition.  */
#define EF_CSKY_ABIMASK 0XF0000000
#define EF_CSKY_OTHER 0X0FFF0000
#define EF_CSKY_PROCESSOR 0X0000FFFF

#define EF_CSKY_ABIV1 0X10000000
#define EF_CSKY_ABIV2 0X20000000

/* C-SKY attributes section.  */
#define SHT_CSKY_ATTRIBUTES (SHT_LOPROC + 1)

/* IA-64 specific declarations.  */

/* Processor specific flags for the Ehdr e_flags field.  */
#define EF_IA_64_MASKOS 0x0000000f
#define EF_IA_64_ABI64 0x00000010
#define EF_IA_64_ARCH 0xff000000

/* Processor specific values for the Phdr p_type field.  */
#define PT_IA_64_ARCHEXT (PT_LOPROC + 0)
#define PT_IA_64_UNWIND (PT_LOPROC + 1)
#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12)
#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13)
#define PT_IA_64_HP_STACK (PT_LOOS + 0x14)

/* Processor specific flags for the Phdr p_flags field.  */
#define PF_IA_64_NORECOV 0x80000000

/* Processor specific values for the Shdr sh_type field.  */
#define SHT_IA_64_EXT (SHT_LOPROC + 0)
#define SHT_IA_64_UNWIND (SHT_LOPROC + 1)

/* Processor specific flags for the Shdr sh_flags field.  */
#define SHF_IA_64_SHORT 0x10000000
#define SHF_IA_64_NORECOV 0x20000000

/* Processor specific values for the Dyn d_tag field.  */
#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0)
#define DT_IA_64_NUM 1

/* IA-64 relocations.  */
#define R_IA64_NONE 0x00
#define R_IA64_IMM14 0x21
#define R_IA64_IMM22 0x22
#define R_IA64_IMM64 0x23
#define R_IA64_DIR32MSB 0x24
#define R_IA64_DIR32LSB 0x25
#define R_IA64_DIR64MSB 0x26
#define R_IA64_DIR64LSB 0x27
#define R_IA64_GPREL22 0x2a
#define R_IA64_GPREL64I 0x2b
#define R_IA64_GPREL32MSB 0x2c
#define R_IA64_GPREL32LSB 0x2d
#define R_IA64_GPREL64MSB 0x2e
#define R_IA64_GPREL64LSB 0x2f
#define R_IA64_LTOFF22 0x32
#define R_IA64_LTOFF64I 0x33
#define R_IA64_PLTOFF22 0x3a
#define R_IA64_PLTOFF64I 0x3b
#define R_IA64_PLTOFF64MSB 0x3e
#define R_IA64_PLTOFF64LSB 0x3f
#define R_IA64_FPTR64I 0x43
#define R_IA64_FPTR32MSB 0x44
#define R_IA64_FPTR32LSB 0x45
#define R_IA64_FPTR64MSB 0x46
#define R_IA64_FPTR64LSB 0x47
#define R_IA64_PCREL60B 0x48
#define R_IA64_PCREL21B 0x49
#define R_IA64_PCREL21M 0x4a
#define R_IA64_PCREL21F 0x4b
#define R_IA64_PCREL32MSB 0x4c
#define R_IA64_PCREL32LSB 0x4d
#define R_IA64_PCREL64MSB 0x4e
#define R_IA64_PCREL64LSB 0x4f
#define R_IA64_LTOFF_FPTR22 0x52
#define R_IA64_LTOFF_FPTR64I 0x53
#define R_IA64_LTOFF_FPTR32MSB 0x54
#define R_IA64_LTOFF_FPTR32LSB 0x55
#define R_IA64_LTOFF_FPTR64MSB 0x56
#define R_IA64_LTOFF_FPTR64LSB 0x57
#define R_IA64_SEGREL32MSB 0x5c
#define R_IA64_SEGREL32LSB 0x5d
#define R_IA64_SEGREL64MSB 0x5e
#define R_IA64_SEGREL64LSB 0x5f
#define R_IA64_SECREL32MSB 0x64
#define R_IA64_SECREL32LSB 0x65
#define R_IA64_SECREL64MSB 0x66
#define R_IA64_SECREL64LSB 0x67
#define R_IA64_REL32MSB 0x6c
#define R_IA64_REL32LSB 0x6d
#define R_IA64_REL64MSB 0x6e
#define R_IA64_REL64LSB 0x6f
#define R_IA64_LTV32MSB 0x74
#define R_IA64_LTV32LSB 0x75
#define R_IA64_LTV64MSB 0x76
#define R_IA64_LTV64LSB 0x77
#define R_IA64_PCREL21BI 0x79
#define R_IA64_PCREL22 0x7a
#define R_IA64_PCREL64I 0x7b
#define R_IA64_IPLTMSB 0x80
#define R_IA64_IPLTLSB 0x81
#define R_IA64_COPY 0x84
#define R_IA64_SUB 0x85
#define R_IA64_LTOFF22X 0x86
#define R_IA64_LDXMOV 0x87
#define R_IA64_TPREL14 0x91
#define R_IA64_TPREL22 0x92
#define R_IA64_TPREL64I 0x93
#define R_IA64_TPREL64MSB 0x96
#define R_IA64_TPREL64LSB 0x97
#define R_IA64_LTOFF_TPREL22 0x9a
#define R_IA64_DTPMOD64MSB 0xa6
#define R_IA64_DTPMOD64LSB 0xa7
#define R_IA64_LTOFF_DTPMOD22 0xaa
#define R_IA64_DTPREL14 0xb1
#define R_IA64_DTPREL22 0xb2
#define R_IA64_DTPREL64I 0xb3
#define R_IA64_DTPREL32MSB 0xb4
#define R_IA64_DTPREL32LSB 0xb5
#define R_IA64_DTPREL64MSB 0xb6
#define R_IA64_DTPREL64LSB 0xb7
#define R_IA64_LTOFF_DTPREL22 0xba

/* SH specific declarations */

/* Processor specific flags for the ELF header e_flags field.  */
#define EF_SH_MACH_MASK 0x1f
#define EF_SH_UNKNOWN 0x0
#define EF_SH1 0x1
#define EF_SH2 0x2
#define EF_SH3 0x3
#define EF_SH_DSP 0x4
#define EF_SH3_DSP 0x5
#define EF_SH4AL_DSP 0x6
#define EF_SH3E 0x8
#define EF_SH4 0x9
#define EF_SH2E 0xb
#define EF_SH4A 0xc
#define EF_SH2A 0xd
#define EF_SH4_NOFPU 0x10
#define EF_SH4A_NOFPU 0x11
#define EF_SH4_NOMMU_NOFPU 0x12
#define EF_SH2A_NOFPU 0x13
#define EF_SH3_NOMMU 0x14
#define EF_SH2A_SH4_NOFPU 0x15
#define EF_SH2A_SH3_NOFPU 0x16
#define EF_SH2A_SH4 0x17
#define EF_SH2A_SH3E 0x18

/* SH relocs.  */
#define R_SH_NONE 0
#define R_SH_DIR32 1
#define R_SH_REL32 2
#define R_SH_DIR8WPN 3
#define R_SH_IND12W 4
#define R_SH_DIR8WPL 5
#define R_SH_DIR8WPZ 6
#define R_SH_DIR8BP 7
#define R_SH_DIR8W 8
#define R_SH_DIR8L 9
#define R_SH_SWITCH16 25
#define R_SH_SWITCH32 26
#define R_SH_USES 27
#define R_SH_COUNT 28
#define R_SH_ALIGN 29
#define R_SH_CODE 30
#define R_SH_DATA 31
#define R_SH_LABEL 32
#define R_SH_SWITCH8 33
#define R_SH_GNU_VTINHERIT 34
#define R_SH_GNU_VTENTRY 35
#define R_SH_TLS_GD_32 144
#define R_SH_TLS_LD_32 145
#define R_SH_TLS_LDO_32 146
#define R_SH_TLS_IE_32 147
#define R_SH_TLS_LE_32 148
#define R_SH_TLS_DTPMOD32 149
#define R_SH_TLS_DTPOFF32 150
#define R_SH_TLS_TPOFF32 151
#define R_SH_GOT32 160
#define R_SH_PLT32 161
#define R_SH_COPY 162
#define R_SH_GLOB_DAT 163
#define R_SH_JMP_SLOT 164
#define R_SH_RELATIVE 165
#define R_SH_GOTOFF 166
#define R_SH_GOTPC 167
/* Keep this the last entry.  */
#define R_SH_NUM 256

/* S/390 specific definitions.  */

/* Valid values for the e_flags field.  */

#define EF_S390_HIGH_GPRS 0x00000001

/* Additional s390 relocs */

#define R_390_NONE 0
#define R_390_8 1
#define R_390_12 2
#define R_390_16 3
#define R_390_32 4
#define R_390_PC32 5
#define R_390_GOT12 6
#define R_390_GOT32 7
#define R_390_PLT32 8
#define R_390_COPY 9
#define R_390_GLOB_DAT 10
#define R_390_JMP_SLOT 11
#define R_390_RELATIVE 12
#define R_390_GOTOFF32 13
#define R_390_GOTPC 14
#define R_390_GOT16 15
#define R_390_PC16 16
#define R_390_PC16DBL 17
#define R_390_PLT16DBL 18
#define R_390_PC32DBL 19
#define R_390_PLT32DBL 20
#define R_390_GOTPCDBL 21
#define R_390_64 22
#define R_390_PC64 23
#define R_390_GOT64 24
#define R_390_PLT64 25
#define R_390_GOTENT 26
#define R_390_GOTOFF16 27
#define R_390_GOTOFF64 28
#define R_390_GOTPLT12 29
#define R_390_GOTPLT16 30
#define R_390_GOTPLT32 31
#define R_390_GOTPLT64 32
#define R_390_GOTPLTENT 33
#define R_390_PLTOFF16 34
#define R_390_PLTOFF32 35
#define R_390_PLTOFF64 36
#define R_390_TLS_LOAD 37
#define R_390_TLS_GDCALL 38

#define R_390_TLS_LDCALL 39

#define R_390_TLS_GD32 40

#define R_390_TLS_GD64 41

#define R_390_TLS_GOTIE12 42

#define R_390_TLS_GOTIE32 43

#define R_390_TLS_GOTIE64 44

#define R_390_TLS_LDM32 45

#define R_390_TLS_LDM64 46

#define R_390_TLS_IE32 47

#define R_390_TLS_IE64 48

#define R_390_TLS_IEENT 49

#define R_390_TLS_LE32 50

#define R_390_TLS_LE64 51

#define R_390_TLS_LDO32 52

#define R_390_TLS_LDO64 53

#define R_390_TLS_DTPMOD 54
#define R_390_TLS_DTPOFF 55
#define R_390_TLS_TPOFF 56

#define R_390_20 57
#define R_390_GOT20 58
#define R_390_GOTPLT20 59
#define R_390_TLS_GOTIE20 60

#define R_390_IRELATIVE 61
/* Keep this the last entry.  */
#define R_390_NUM 62


/* CRIS relocations.  */
#define R_CRIS_NONE 0
#define R_CRIS_8 1
#define R_CRIS_16 2
#define R_CRIS_32 3
#define R_CRIS_8_PCREL 4
#define R_CRIS_16_PCREL 5
#define R_CRIS_32_PCREL 6
#define R_CRIS_GNU_VTINHERIT 7
#define R_CRIS_GNU_VTENTRY 8
#define R_CRIS_COPY 9
#define R_CRIS_GLOB_DAT 10
#define R_CRIS_JUMP_SLOT 11
#define R_CRIS_RELATIVE 12
#define R_CRIS_16_GOT 13
#define R_CRIS_32_GOT 14
#define R_CRIS_16_GOTPLT 15
#define R_CRIS_32_GOTPLT 16
#define R_CRIS_32_GOTREL 17
#define R_CRIS_32_PLT_GOTREL 18
#define R_CRIS_32_PLT_PCREL 19

#define R_CRIS_NUM 20


/* AMD x86-64 relocations.  */
#define R_X86_64_NONE 0
#define R_X86_64_64 1
#define R_X86_64_PC32 2
#define R_X86_64_GOT32 3
#define R_X86_64_PLT32 4
#define R_X86_64_COPY 5
#define R_X86_64_GLOB_DAT 6
#define R_X86_64_JUMP_SLOT 7
#define R_X86_64_RELATIVE 8
#define R_X86_64_GOTPCREL 9

#define R_X86_64_32 10
#define R_X86_64_32S 11
#define R_X86_64_16 12
#define R_X86_64_PC16 13
#define R_X86_64_8 14
#define R_X86_64_PC8 15
#define R_X86_64_DTPMOD64 16
#define R_X86_64_DTPOFF64 17
#define R_X86_64_TPOFF64 18
#define R_X86_64_TLSGD 19

#define R_X86_64_TLSLD 20

#define R_X86_64_DTPOFF32 21
#define R_X86_64_GOTTPOFF 22

#define R_X86_64_TPOFF32 23
#define R_X86_64_PC64 24
#define R_X86_64_GOTOFF64 25
#define R_X86_64_GOTPC32 26

#define R_X86_64_GOT64 27
#define R_X86_64_GOTPCREL64 28

#define R_X86_64_GOTPC64 29
#define R_X86_64_GOTPLT64 30
#define R_X86_64_PLTOFF64 31

#define R_X86_64_SIZE32 32
#define R_X86_64_SIZE64 33
#define R_X86_64_GOTPC32_TLSDESC 34
#define R_X86_64_TLSDESC_CALL 35

#define R_X86_64_TLSDESC 36
#define R_X86_64_IRELATIVE 37
#define R_X86_64_RELATIVE64 38
					/* 39 Reserved was R_X86_64_PC32_BND */
					/* 40 Reserved was R_X86_64_PLT32_BND */
#define R_X86_64_GOTPCRELX 41


#define R_X86_64_REX_GOTPCRELX 42


#define R_X86_64_NUM 43

/* x86-64 sh_type values.  */
#define SHT_X86_64_UNWIND 0x70000001


/* AM33 relocations.  */
#define R_MN10300_NONE 0
#define R_MN10300_32 1
#define R_MN10300_16 2
#define R_MN10300_8 3
#define R_MN10300_PCREL32 4
#define R_MN10300_PCREL16 5
#define R_MN10300_PCREL8 6
#define R_MN10300_GNU_VTINHERIT 7
#define R_MN10300_GNU_VTENTRY 8
#define R_MN10300_24 9
#define R_MN10300_GOTPC32 10
#define R_MN10300_GOTPC16 11
#define R_MN10300_GOTOFF32 12
#define R_MN10300_GOTOFF24 13
#define R_MN10300_GOTOFF16 14
#define R_MN10300_PLT32 15
#define R_MN10300_PLT16 16
#define R_MN10300_GOT32 17
#define R_MN10300_GOT24 18
#define R_MN10300_GOT16 19
#define R_MN10300_COPY 20
#define R_MN10300_GLOB_DAT 21
#define R_MN10300_JMP_SLOT 22
#define R_MN10300_RELATIVE 23
#define R_MN10300_TLS_GD 24
#define R_MN10300_TLS_LD 25
#define R_MN10300_TLS_LDO 26
#define R_MN10300_TLS_GOTIE 27

#define R_MN10300_TLS_IE 28

#define R_MN10300_TLS_LE 29

#define R_MN10300_TLS_DTPMOD 30
#define R_MN10300_TLS_DTPOFF 31
#define R_MN10300_TLS_TPOFF 32
#define R_MN10300_SYM_DIFF 33

#define R_MN10300_ALIGN 34

#define R_MN10300_NUM 35


/* M32R relocs.  */
#define R_M32R_NONE 0
#define R_M32R_16 1
#define R_M32R_32 2
#define R_M32R_24 3
#define R_M32R_10_PCREL 4
#define R_M32R_18_PCREL 5
#define R_M32R_26_PCREL 6
#define R_M32R_HI16_ULO 7
#define R_M32R_HI16_SLO 8
#define R_M32R_LO16 9
#define R_M32R_SDA16 10
#define R_M32R_GNU_VTINHERIT 11
#define R_M32R_GNU_VTENTRY 12
/* M32R relocs use SHT_RELA.  */
#define R_M32R_16_RELA 33
#define R_M32R_32_RELA 34
#define R_M32R_24_RELA 35
#define R_M32R_10_PCREL_RELA 36
#define R_M32R_18_PCREL_RELA 37
#define R_M32R_26_PCREL_RELA 38
#define R_M32R_HI16_ULO_RELA 39
#define R_M32R_HI16_SLO_RELA 40
#define R_M32R_LO16_RELA 41
#define R_M32R_SDA16_RELA 42
#define R_M32R_RELA_GNU_VTINHERIT 43
#define R_M32R_RELA_GNU_VTENTRY 44
#define R_M32R_REL32 45

#define R_M32R_GOT24 48
#define R_M32R_26_PLTREL 49
#define R_M32R_COPY 50
#define R_M32R_GLOB_DAT 51
#define R_M32R_JMP_SLOT 52
#define R_M32R_RELATIVE 53
#define R_M32R_GOTOFF 54
#define R_M32R_GOTPC24 55
#define R_M32R_GOT16_HI_ULO 56

#define R_M32R_GOT16_HI_SLO 57

#define R_M32R_GOT16_LO 58
#define R_M32R_GOTPC_HI_ULO 59

#define R_M32R_GOTPC_HI_SLO 60

#define R_M32R_GOTPC_LO 61

#define R_M32R_GOTOFF_HI_ULO 62

#define R_M32R_GOTOFF_HI_SLO 63

#define R_M32R_GOTOFF_LO 64
#define R_M32R_NUM 256

/* MicroBlaze relocations */
#define R_MICROBLAZE_NONE 0
#define R_MICROBLAZE_32 1
#define R_MICROBLAZE_32_PCREL 2
#define R_MICROBLAZE_64_PCREL 3
#define R_MICROBLAZE_32_PCREL_LO 4
#define R_MICROBLAZE_64 5
#define R_MICROBLAZE_32_LO 6
#define R_MICROBLAZE_SRO32 7
#define R_MICROBLAZE_SRW32 8
#define R_MICROBLAZE_64_NONE 9
#define R_MICROBLAZE_32_SYM_OP_SYM 10
#define R_MICROBLAZE_GNU_VTINHERIT 11
#define R_MICROBLAZE_GNU_VTENTRY 12
#define R_MICROBLAZE_GOTPC_64 13
#define R_MICROBLAZE_GOT_64 14
#define R_MICROBLAZE_PLT_64 15
#define R_MICROBLAZE_REL 16
#define R_MICROBLAZE_JUMP_SLOT 17
#define R_MICROBLAZE_GLOB_DAT 18
#define R_MICROBLAZE_GOTOFF_64 19
#define R_MICROBLAZE_GOTOFF_32 20
#define R_MICROBLAZE_COPY 21
#define R_MICROBLAZE_TLS 22
#define R_MICROBLAZE_TLSGD 23
#define R_MICROBLAZE_TLSLD 24
#define R_MICROBLAZE_TLSDTPMOD32 25
#define R_MICROBLAZE_TLSDTPREL32 26
#define R_MICROBLAZE_TLSDTPREL64 27
#define R_MICROBLAZE_TLSGOTTPREL32 28
#define R_MICROBLAZE_TLSTPREL32 29

/* Legal values for d_tag (dynamic entry type).  */
#define DT_NIOS2_GP 0x70000002

/* Nios II relocations.  */
#define R_NIOS2_NONE 0
#define R_NIOS2_S16 1
#define R_NIOS2_U16 2
#define R_NIOS2_PCREL16 3
#define R_NIOS2_CALL26 4
#define R_NIOS2_IMM5 5
#define R_NIOS2_CACHE_OPX 6
#define R_NIOS2_IMM6 7
#define R_NIOS2_IMM8 8
#define R_NIOS2_HI16 9
#define R_NIOS2_LO16 10
#define R_NIOS2_HIADJ16 11
#define R_NIOS2_BFD_RELOC_32 12
#define R_NIOS2_BFD_RELOC_16 13
#define R_NIOS2_BFD_RELOC_8 14
#define R_NIOS2_GPREL 15
#define R_NIOS2_GNU_VTINHERIT 16
#define R_NIOS2_GNU_VTENTRY 17
#define R_NIOS2_UJMP 18
#define R_NIOS2_CJMP 19
#define R_NIOS2_CALLR 20
#define R_NIOS2_ALIGN 21

#define R_NIOS2_GOT16 22
#define R_NIOS2_CALL16 23
#define R_NIOS2_GOTOFF_LO 24
#define R_NIOS2_GOTOFF_HA 25
#define R_NIOS2_PCREL_LO 26
#define R_NIOS2_PCREL_HA 27
#define R_NIOS2_TLS_GD16 28
#define R_NIOS2_TLS_LDM16 29
#define R_NIOS2_TLS_LDO16 30
#define R_NIOS2_TLS_IE16 31
#define R_NIOS2_TLS_LE16 32
#define R_NIOS2_TLS_DTPMOD 33
#define R_NIOS2_TLS_DTPREL 34
#define R_NIOS2_TLS_TPREL 35
#define R_NIOS2_COPY 36
#define R_NIOS2_GLOB_DAT 37
#define R_NIOS2_JUMP_SLOT 38
#define R_NIOS2_RELATIVE 39
#define R_NIOS2_GOTOFF 40
#define R_NIOS2_CALL26_NOAT 41
#define R_NIOS2_GOT_LO 42
#define R_NIOS2_GOT_HA 43
#define R_NIOS2_CALL_LO 44
#define R_NIOS2_CALL_HA 45

/* TILEPro relocations.  */
#define R_TILEPRO_NONE 0
#define R_TILEPRO_32 1
#define R_TILEPRO_16 2
#define R_TILEPRO_8 3
#define R_TILEPRO_32_PCREL 4
#define R_TILEPRO_16_PCREL 5
#define R_TILEPRO_8_PCREL 6
#define R_TILEPRO_LO16 7
#define R_TILEPRO_HI16 8
#define R_TILEPRO_HA16 9
#define R_TILEPRO_COPY 10
#define R_TILEPRO_GLOB_DAT 11
#define R_TILEPRO_JMP_SLOT 12
#define R_TILEPRO_RELATIVE 13
#define R_TILEPRO_BROFF_X1 14
#define R_TILEPRO_JOFFLONG_X1 15
#define R_TILEPRO_JOFFLONG_X1_PLT 16
#define R_TILEPRO_IMM8_X0 17
#define R_TILEPRO_IMM8_Y0 18
#define R_TILEPRO_IMM8_X1 19
#define R_TILEPRO_IMM8_Y1 20
#define R_TILEPRO_MT_IMM15_X1 21
#define R_TILEPRO_MF_IMM15_X1 22
#define R_TILEPRO_IMM16_X0 23
#define R_TILEPRO_IMM16_X1 24
#define R_TILEPRO_IMM16_X0_LO 25
#define R_TILEPRO_IMM16_X1_LO 26
#define R_TILEPRO_IMM16_X0_HI 27
#define R_TILEPRO_IMM16_X1_HI 28
#define R_TILEPRO_IMM16_X0_HA 29
#define R_TILEPRO_IMM16_X1_HA 30
#define R_TILEPRO_IMM16_X0_PCREL 31
#define R_TILEPRO_IMM16_X1_PCREL 32
#define R_TILEPRO_IMM16_X0_LO_PCREL 33
#define R_TILEPRO_IMM16_X1_LO_PCREL 34
#define R_TILEPRO_IMM16_X0_HI_PCREL 35
#define R_TILEPRO_IMM16_X1_HI_PCREL 36
#define R_TILEPRO_IMM16_X0_HA_PCREL 37
#define R_TILEPRO_IMM16_X1_HA_PCREL 38
#define R_TILEPRO_IMM16_X0_GOT 39
#define R_TILEPRO_IMM16_X1_GOT 40
#define R_TILEPRO_IMM16_X0_GOT_LO 41
#define R_TILEPRO_IMM16_X1_GOT_LO 42
#define R_TILEPRO_IMM16_X0_GOT_HI 43
#define R_TILEPRO_IMM16_X1_GOT_HI 44
#define R_TILEPRO_IMM16_X0_GOT_HA 45
#define R_TILEPRO_IMM16_X1_GOT_HA 46
#define R_TILEPRO_MMSTART_X0 47
#define R_TILEPRO_MMEND_X0 48
#define R_TILEPRO_MMSTART_X1 49
#define R_TILEPRO_MMEND_X1 50
#define R_TILEPRO_SHAMT_X0 51
#define R_TILEPRO_SHAMT_X1 52
#define R_TILEPRO_SHAMT_Y0 53
#define R_TILEPRO_SHAMT_Y1 54
#define R_TILEPRO_DEST_IMM8_X1 55
/* Relocs 56-59 are currently not defined.  */
#define R_TILEPRO_TLS_GD_CALL 60
#define R_TILEPRO_IMM8_X0_TLS_GD_ADD 61
#define R_TILEPRO_IMM8_X1_TLS_GD_ADD 62
#define R_TILEPRO_IMM8_Y0_TLS_GD_ADD 63
#define R_TILEPRO_IMM8_Y1_TLS_GD_ADD 64
#define R_TILEPRO_TLS_IE_LOAD 65
#define R_TILEPRO_IMM16_X0_TLS_GD 66
#define R_TILEPRO_IMM16_X1_TLS_GD 67
#define R_TILEPRO_IMM16_X0_TLS_GD_LO 68
#define R_TILEPRO_IMM16_X1_TLS_GD_LO 69
#define R_TILEPRO_IMM16_X0_TLS_GD_HI 70
#define R_TILEPRO_IMM16_X1_TLS_GD_HI 71
#define R_TILEPRO_IMM16_X0_TLS_GD_HA 72
#define R_TILEPRO_IMM16_X1_TLS_GD_HA 73
#define R_TILEPRO_IMM16_X0_TLS_IE 74
#define R_TILEPRO_IMM16_X1_TLS_IE 75
#define R_TILEPRO_IMM16_X0_TLS_IE_LO 76
#define R_TILEPRO_IMM16_X1_TLS_IE_LO 77
#define R_TILEPRO_IMM16_X0_TLS_IE_HI 78
#define R_TILEPRO_IMM16_X1_TLS_IE_HI 79
#define R_TILEPRO_IMM16_X0_TLS_IE_HA 80
#define R_TILEPRO_IMM16_X1_TLS_IE_HA 81
#define R_TILEPRO_TLS_DTPMOD32 82
#define R_TILEPRO_TLS_DTPOFF32 83
#define R_TILEPRO_TLS_TPOFF32 84
#define R_TILEPRO_IMM16_X0_TLS_LE 85
#define R_TILEPRO_IMM16_X1_TLS_LE 86
#define R_TILEPRO_IMM16_X0_TLS_LE_LO 87
#define R_TILEPRO_IMM16_X1_TLS_LE_LO 88
#define R_TILEPRO_IMM16_X0_TLS_LE_HI 89
#define R_TILEPRO_IMM16_X1_TLS_LE_HI 90
#define R_TILEPRO_IMM16_X0_TLS_LE_HA 91
#define R_TILEPRO_IMM16_X1_TLS_LE_HA 92

#define R_TILEPRO_GNU_VTINHERIT 128
#define R_TILEPRO_GNU_VTENTRY 129

#define R_TILEPRO_NUM 130


/* TILE-Gx relocations.  */
#define R_TILEGX_NONE 0
#define R_TILEGX_64 1
#define R_TILEGX_32 2
#define R_TILEGX_16 3
#define R_TILEGX_8 4
#define R_TILEGX_64_PCREL 5
#define R_TILEGX_32_PCREL 6
#define R_TILEGX_16_PCREL 7
#define R_TILEGX_8_PCREL 8
#define R_TILEGX_HW0 9
#define R_TILEGX_HW1 10
#define R_TILEGX_HW2 11
#define R_TILEGX_HW3 12
#define R_TILEGX_HW0_LAST 13
#define R_TILEGX_HW1_LAST 14
#define R_TILEGX_HW2_LAST 15
#define R_TILEGX_COPY 16
#define R_TILEGX_GLOB_DAT 17
#define R_TILEGX_JMP_SLOT 18
#define R_TILEGX_RELATIVE 19
#define R_TILEGX_BROFF_X1 20
#define R_TILEGX_JUMPOFF_X1 21
#define R_TILEGX_JUMPOFF_X1_PLT 22
#define R_TILEGX_IMM8_X0 23
#define R_TILEGX_IMM8_Y0 24
#define R_TILEGX_IMM8_X1 25
#define R_TILEGX_IMM8_Y1 26
#define R_TILEGX_DEST_IMM8_X1 27
#define R_TILEGX_MT_IMM14_X1 28
#define R_TILEGX_MF_IMM14_X1 29
#define R_TILEGX_MMSTART_X0 30
#define R_TILEGX_MMEND_X0 31
#define R_TILEGX_SHAMT_X0 32
#define R_TILEGX_SHAMT_X1 33
#define R_TILEGX_SHAMT_Y0 34
#define R_TILEGX_SHAMT_Y1 35
#define R_TILEGX_IMM16_X0_HW0 36
#define R_TILEGX_IMM16_X1_HW0 37
#define R_TILEGX_IMM16_X0_HW1 38
#define R_TILEGX_IMM16_X1_HW1 39
#define R_TILEGX_IMM16_X0_HW2 40
#define R_TILEGX_IMM16_X1_HW2 41
#define R_TILEGX_IMM16_X0_HW3 42
#define R_TILEGX_IMM16_X1_HW3 43
#define R_TILEGX_IMM16_X0_HW0_LAST 44
#define R_TILEGX_IMM16_X1_HW0_LAST 45
#define R_TILEGX_IMM16_X0_HW1_LAST 46
#define R_TILEGX_IMM16_X1_HW1_LAST 47
#define R_TILEGX_IMM16_X0_HW2_LAST 48
#define R_TILEGX_IMM16_X1_HW2_LAST 49
#define R_TILEGX_IMM16_X0_HW0_PCREL 50
#define R_TILEGX_IMM16_X1_HW0_PCREL 51
#define R_TILEGX_IMM16_X0_HW1_PCREL 52
#define R_TILEGX_IMM16_X1_HW1_PCREL 53
#define R_TILEGX_IMM16_X0_HW2_PCREL 54
#define R_TILEGX_IMM16_X1_HW2_PCREL 55
#define R_TILEGX_IMM16_X0_HW3_PCREL 56
#define R_TILEGX_IMM16_X1_HW3_PCREL 57
#define R_TILEGX_IMM16_X0_HW0_LAST_PCREL 58
#define R_TILEGX_IMM16_X1_HW0_LAST_PCREL 59
#define R_TILEGX_IMM16_X0_HW1_LAST_PCREL 60
#define R_TILEGX_IMM16_X1_HW1_LAST_PCREL 61
#define R_TILEGX_IMM16_X0_HW2_LAST_PCREL 62
#define R_TILEGX_IMM16_X1_HW2_LAST_PCREL 63
#define R_TILEGX_IMM16_X0_HW0_GOT 64
#define R_TILEGX_IMM16_X1_HW0_GOT 65
#define R_TILEGX_IMM16_X0_HW0_PLT_PCREL 66
#define R_TILEGX_IMM16_X1_HW0_PLT_PCREL 67
#define R_TILEGX_IMM16_X0_HW1_PLT_PCREL 68
#define R_TILEGX_IMM16_X1_HW1_PLT_PCREL 69
#define R_TILEGX_IMM16_X0_HW2_PLT_PCREL 70
#define R_TILEGX_IMM16_X1_HW2_PLT_PCREL 71
#define R_TILEGX_IMM16_X0_HW0_LAST_GOT 72
#define R_TILEGX_IMM16_X1_HW0_LAST_GOT 73
#define R_TILEGX_IMM16_X0_HW1_LAST_GOT 74
#define R_TILEGX_IMM16_X1_HW1_LAST_GOT 75
#define R_TILEGX_IMM16_X0_HW3_PLT_PCREL 76
#define R_TILEGX_IMM16_X1_HW3_PLT_PCREL 77
#define R_TILEGX_IMM16_X0_HW0_TLS_GD 78
#define R_TILEGX_IMM16_X1_HW0_TLS_GD 79
#define R_TILEGX_IMM16_X0_HW0_TLS_LE 80
#define R_TILEGX_IMM16_X1_HW0_TLS_LE 81
#define R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE 82
#define R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE 83
#define R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE 84
#define R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE 85
#define R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD 86
#define R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD 87
#define R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD 88
#define R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD 89
/* Relocs 90-91 are currently not defined.  */
#define R_TILEGX_IMM16_X0_HW0_TLS_IE 92
#define R_TILEGX_IMM16_X1_HW0_TLS_IE 93
#define R_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL 94
#define R_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL 95
#define R_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL 96
#define R_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL 97
#define R_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL 98
#define R_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL 99
#define R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE 100
#define R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE 101
#define R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE 102
#define R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE 103
/* Relocs 104-105 are currently not defined.  */
#define R_TILEGX_TLS_DTPMOD64 106
#define R_TILEGX_TLS_DTPOFF64 107
#define R_TILEGX_TLS_TPOFF64 108
#define R_TILEGX_TLS_DTPMOD32 109
#define R_TILEGX_TLS_DTPOFF32 110
#define R_TILEGX_TLS_TPOFF32 111
#define R_TILEGX_TLS_GD_CALL 112
#define R_TILEGX_IMM8_X0_TLS_GD_ADD 113
#define R_TILEGX_IMM8_X1_TLS_GD_ADD 114
#define R_TILEGX_IMM8_Y0_TLS_GD_ADD 115
#define R_TILEGX_IMM8_Y1_TLS_GD_ADD 116
#define R_TILEGX_TLS_IE_LOAD 117
#define R_TILEGX_IMM8_X0_TLS_ADD 118
#define R_TILEGX_IMM8_X1_TLS_ADD 119
#define R_TILEGX_IMM8_Y0_TLS_ADD 120
#define R_TILEGX_IMM8_Y1_TLS_ADD 121

#define R_TILEGX_GNU_VTINHERIT 128
#define R_TILEGX_GNU_VTENTRY 129

#define R_TILEGX_NUM 130

/* RISC-V ELF Flags */
#define EF_RISCV_RVC 0x0001
#define EF_RISCV_FLOAT_ABI 0x0006
#define EF_RISCV_FLOAT_ABI_SOFT 0x0000
#define EF_RISCV_FLOAT_ABI_SINGLE 0x0002
#define EF_RISCV_FLOAT_ABI_DOUBLE 0x0004
#define EF_RISCV_FLOAT_ABI_QUAD 0x0006

/* RISC-V relocations.  */
#define R_RISCV_NONE 0
#define R_RISCV_32 1
#define R_RISCV_64 2
#define R_RISCV_RELATIVE 3
#define R_RISCV_COPY 4
#define R_RISCV_JUMP_SLOT 5
#define R_RISCV_TLS_DTPMOD32 6
#define R_RISCV_TLS_DTPMOD64 7
#define R_RISCV_TLS_DTPREL32 8
#define R_RISCV_TLS_DTPREL64 9
#define R_RISCV_TLS_TPREL32 10
#define R_RISCV_TLS_TPREL64 11
#define R_RISCV_BRANCH 16
#define R_RISCV_JAL 17
#define R_RISCV_CALL 18
#define R_RISCV_CALL_PLT 19
#define R_RISCV_GOT_HI20 20
#define R_RISCV_TLS_GOT_HI20 21
#define R_RISCV_TLS_GD_HI20 22
#define R_RISCV_PCREL_HI20 23
#define R_RISCV_PCREL_LO12_I 24
#define R_RISCV_PCREL_LO12_S 25
#define R_RISCV_HI20 26
#define R_RISCV_LO12_I 27
#define R_RISCV_LO12_S 28
#define R_RISCV_TPREL_HI20 29
#define R_RISCV_TPREL_LO12_I 30
#define R_RISCV_TPREL_LO12_S 31
#define R_RISCV_TPREL_ADD 32
#define R_RISCV_ADD8 33
#define R_RISCV_ADD16 34
#define R_RISCV_ADD32 35
#define R_RISCV_ADD64 36
#define R_RISCV_SUB8 37
#define R_RISCV_SUB16 38
#define R_RISCV_SUB32 39
#define R_RISCV_SUB64 40
#define R_RISCV_GNU_VTINHERIT 41
#define R_RISCV_GNU_VTENTRY 42
#define R_RISCV_ALIGN 43
#define R_RISCV_RVC_BRANCH 44
#define R_RISCV_RVC_JUMP 45
#define R_RISCV_RVC_LUI 46
#define R_RISCV_GPREL_I 47
#define R_RISCV_GPREL_S 48
#define R_RISCV_TPREL_I 49
#define R_RISCV_TPREL_S 50
#define R_RISCV_RELAX 51
#define R_RISCV_SUB6 52
#define R_RISCV_SET6 53
#define R_RISCV_SET8 54
#define R_RISCV_SET16 55
#define R_RISCV_SET32 56
#define R_RISCV_32_PCREL 57
#define R_RISCV_IRELATIVE 58

#define R_RISCV_NUM 59

/* BPF specific declarations.  */

#define R_BPF_NONE 0
#define R_BPF_64_64 1
#define R_BPF_64_32 10

/* Imagination Meta specific relocations. */

#define R_METAG_HIADDR16 0
#define R_METAG_LOADDR16 1
#define R_METAG_ADDR32 2
#define R_METAG_NONE 3
#define R_METAG_RELBRANCH 4
#define R_METAG_GETSETOFF 5

/* Backward compatibility */
#define R_METAG_REG32OP1 6
#define R_METAG_REG32OP2 7
#define R_METAG_REG32OP3 8
#define R_METAG_REG16OP1 9
#define R_METAG_REG16OP2 10
#define R_METAG_REG16OP3 11
#define R_METAG_REG32OP4 12

#define R_METAG_HIOG 13
#define R_METAG_LOOG 14

#define R_METAG_REL8 15
#define R_METAG_REL16 16

/* GNU */
#define R_METAG_GNU_VTINHERIT 30
#define R_METAG_GNU_VTENTRY 31

/* PIC relocations */
#define R_METAG_HI16_GOTOFF 32
#define R_METAG_LO16_GOTOFF 33
#define R_METAG_GETSET_GOTOFF 34
#define R_METAG_GETSET_GOT 35
#define R_METAG_HI16_GOTPC 36
#define R_METAG_LO16_GOTPC 37
#define R_METAG_HI16_PLT 38
#define R_METAG_LO16_PLT 39
#define R_METAG_RELBRANCH_PLT 40
#define R_METAG_GOTOFF 41
#define R_METAG_PLT 42
#define R_METAG_COPY 43
#define R_METAG_JMP_SLOT 44
#define R_METAG_RELATIVE 45
#define R_METAG_GLOB_DAT 46

/* TLS relocations */
#define R_METAG_TLS_GD 47
#define R_METAG_TLS_LDM 48
#define R_METAG_TLS_LDO_HI16 49
#define R_METAG_TLS_LDO_LO16 50
#define R_METAG_TLS_LDO 51
#define R_METAG_TLS_IE 52
#define R_METAG_TLS_IENONPIC 53
#define R_METAG_TLS_IENONPIC_HI16 54
#define R_METAG_TLS_IENONPIC_LO16 55
#define R_METAG_TLS_TPOFF 56
#define R_METAG_TLS_DTPMOD 57
#define R_METAG_TLS_DTPOFF 58
#define R_METAG_TLS_LE 59
#define R_METAG_TLS_LE_HI16 60
#define R_METAG_TLS_LE_LO16 61

/* NDS32 relocations.  */
#define R_NDS32_NONE 0
#define R_NDS32_32_RELA 20
#define R_NDS32_COPY 39
#define R_NDS32_GLOB_DAT 40
#define R_NDS32_JMP_SLOT 41
#define R_NDS32_RELATIVE 42
#define R_NDS32_TLS_TPOFF 102
#define R_NDS32_TLS_DESC 119

/* ARCompact/ARCv2 specific relocs.  */
#define R_ARC_NONE 0x0
#define R_ARC_8 0x1
#define R_ARC_16 0x2
#define R_ARC_24 0x3
#define R_ARC_32 0x4
#define R_ARC_B26 0x5
#define R_ARC_B22_PCREL 0x6
#define R_ARC_H30 0x7
#define R_ARC_N8 0x8
#define R_ARC_N16 0x9
#define R_ARC_N24 0xA
#define R_ARC_N32 0xB
#define R_ARC_SDA 0xC
#define R_ARC_SECTOFF 0xD
#define R_ARC_S21H_PCREL 0xE
#define R_ARC_S21W_PCREL 0xF
#define R_ARC_S25H_PCREL 0x10
#define R_ARC_S25W_PCREL 0x11
#define R_ARC_SDA32 0x12
#define R_ARC_SDA_LDST 0x13
#define R_ARC_SDA_LDST1 0x14
#define R_ARC_SDA_LDST2 0x15
#define R_ARC_SDA16_LD 0x16
#define R_ARC_SDA16_LD1 0x17
#define R_ARC_SDA16_LD2 0x18
#define R_ARC_S13_PCREL 0x19
#define R_ARC_W 0x1A
#define R_ARC_32_ME 0x1B
#define R_ARC_N32_ME 0x1C
#define R_ARC_SECTOFF_ME 0x1D
#define R_ARC_SDA32_ME 0x1E
#define R_ARC_W_ME 0x1F
#define R_ARC_H30_ME 0x20
#define R_ARC_SECTOFF_U8 0x21
#define R_ARC_SECTOFF_S9 0x22
#define R_AC_SECTOFF_U8 0x23
#define R_AC_SECTOFF_U8_1 0x24
#define R_AC_SECTOFF_U8_2 0x25
#define R_AC_SECTOFF_S9 0x26
#define R_AC_SECTOFF_S9_1 0x27
#define R_AC_SECTOFF_S9_2 0x28
#define R_ARC_SECTOFF_ME_1 0x29
#define R_ARC_SECTOFF_ME_2 0x2A
#define R_ARC_SECTOFF_1 0x2B
#define R_ARC_SECTOFF_2 0x2C
#define R_ARC_PC32 0x32
#define R_ARC_GOTPC32 0x33
#define R_ARC_PLT32 0x34
#define R_ARC_COPY 0x35
#define R_ARC_GLOB_DAT 0x36
#define R_ARC_JUMP_SLOT 0x37
#define R_ARC_RELATIVE 0x38
#define R_ARC_GOTOFF 0x39
#define R_ARC_GOTPC 0x3A
#define R_ARC_GOT32 0x3B

#define R_ARC_TLS_DTPMOD 0x42
#define R_ARC_TLS_DTPOFF 0x43
#define R_ARC_TLS_TPOFF 0x44
#define R_ARC_TLS_GD_GOT 0x45
#define R_ARC_TLS_GD_LD 0x46
#define R_ARC_TLS_GD_CALL 0x47
#define R_ARC_TLS_IE_GOT 0x48
#define R_ARC_TLS_DTPOFF_S9 0x4a
#define R_ARC_TLS_LE_S9 0x4a
#define R_ARC_TLS_LE_32 0x4b

# 3 "../include/elf.h" 2



# 1 "../include/libc-pointer-arith.h" 1
/* Helper macros for pointer arithmetic.
   Copyright (C) 2012-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _LIBC_POINTER_ARITH_H 1

# 1 "../include/stdint.h" 1
# 23 "../include/libc-pointer-arith.h" 2

/* 1 if 'type' is a pointer type, 0 otherwise.  */
#define __pointer_type(type) (__builtin_classify_type ((type) 0) == 5)

/* intptr_t if P is true, or T if P is false.  */
#define __integer_if_pointer_type_sub(T,P) __typeof__ (*(0 ? (__typeof__ (0 ? (T *) 0 : (void *) (P))) 0 : (__typeof__ (0 ? (intptr_t *) 0 : (void *) (!(P)))) 0))



/* intptr_t if EXPR has a pointer type, or the type of EXPR otherwise.  */
#define __integer_if_pointer_type(expr) __integer_if_pointer_type_sub(__typeof__ ((__typeof__ (expr)) 0), __pointer_type (__typeof__ (expr)))



/* Cast an integer or a pointer VAL to integer with proper type.  */
#define cast_to_integer(val) ((__integer_if_pointer_type (val)) (val))

/* Cast an integer VAL to void * pointer.  */
#define cast_to_pointer(val) ((void *) (uintptr_t) (val))

/* Align a value by rounding down to closest size.
   e.g. Using size of 4096, we get this behavior:
	{4095, 4096, 4097} = {0, 4096, 4096}.  */
#define ALIGN_DOWN(base,size) ((base) & -((__typeof__ (base)) (size)))

/* Align a value by rounding up to closest size.
   e.g. Using size of 4096, we get this behavior:
	{4095, 4096, 4097} = {4096, 4096, 8192}.

  Note: The size argument has side effects (expanded multiple times).  */
#define ALIGN_UP(base,size) ALIGN_DOWN ((base) + (size) - 1, (size))

/* Same as ALIGN_DOWN(), but automatically casts when base is a pointer.  */
#define PTR_ALIGN_DOWN(base,size) ((__typeof__ (base)) ALIGN_DOWN ((uintptr_t) (base), (size)))


/* Same as ALIGN_UP(), but automatically casts when base is a pointer.  */
#define PTR_ALIGN_UP(base,size) ((__typeof__ (base)) ALIGN_UP ((uintptr_t) (base), (size)))


# 7 "../include/elf.h" 2

/* Compute the offset of the note descriptor from size of note entry's
   owner string and note alignment.  */
#define ELF_NOTE_DESC_OFFSET(namesz,align) ALIGN_UP (sizeof (ElfW(Nhdr)) + (namesz), (align))


/* Compute the offset of the next note entry from size of note entry's
   owner string, size of the note descriptor and note alignment.  */
#define ELF_NOTE_NEXT_OFFSET(namesz,descsz,align) ALIGN_UP (ELF_NOTE_DESC_OFFSET ((namesz), (align)) + (descsz), (align))


/* Some information which is not meant for the public and therefore not
   in <elf.h>.  */
# 1 "../sysdeps/generic/dl-dtprocnum.h" 1
/* Configuration of lookup functions.
   Copyright (C) 2000-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/* Number of extra dynamic section entries for this architecture.  By
   default there are none.  */
#define DT_THISPROCNUM 0
# 21 "../include/elf.h" 2



#define DT_1_SUPPORTED_MASK (DF_1_NOW | DF_1_NODELETE | DF_1_INITFIRST | DF_1_NOOPEN | DF_1_ORIGIN | DF_1_NODEFLIB | DF_1_PIE)




# 25 "../sysdeps/s390/stackinfo.h" 2

/* On s390 the stack grows down.  */
#define _STACK_GROWS_DOWN 1

/* Default to an executable stack.  PF_X can be overridden if PT_GNU_STACK is
 * present, but it is presumed absent.  */
#define DEFAULT_STACK_PERMS (PF_R|PF_W|PF_X)

# 25 "../include/stackinfo.h" 2





#define _STACK_GROWS_UP 0

# 41 "../include/stackinfo.h"

# 8 "../include/alloca.h" 2

#undef __alloca

/* Now define the internal interfaces.  */
extern void *__alloca (size_t __size);


#define __alloca(size) __builtin_alloca (size)


extern int __libc_use_alloca (size_t size) __attribute__ ((const));
extern int __libc_alloca_cutoff (size_t size) __attribute__ ((const));
libc_hidden_proto (__libc_alloca_cutoff)

#define __MAX_ALLOCA_CUTOFF 65536

# 1 "../sysdeps/pthread/allocalim.h" 1
/* Determine whether block of given size can be allocated on the stack or not.
   Copyright (C) 2002-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public License as
   published by the Free Software Foundation; either version 2.1 of the
   License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; see the file COPYING.LIB.  If
   not, see <https://www.gnu.org/licenses/>.  */

# 1 "../include/alloca.h" 1
# 20 "../sysdeps/pthread/allocalim.h" 2
# 1 "../include/limits.h" 1
/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/*
 *	ISO C99 Standard: 7.10/5.2.4.2.1 Sizes of integer types	<limits.h>
 */


#define _LIBC_LIMITS_H_ 1

#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION 
# 1 "../bits/libc-header-start.h" 1
/* Handle feature test macros at the start of a header.
   Copyright (C) 2016-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/* This header is internal to glibc and should not be included outside
   of glibc headers.  Headers including it must define
   __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first.  This header
   cannot have multiple include guards because ISO C feature test
   macros depend on the definition of the macro when an affected
   header is included, not when the first system header is
   included.  */





#undef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION



/* ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__
   macro.  */
#undef __GLIBC_USE_LIB_EXT2


#define __GLIBC_USE_LIB_EXT2 1




/* ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__
   macro.  Most but not all symbols enabled by that macro in TS
   18661-1 are enabled unconditionally in C2X.  In C2X, the symbols in
   Annex F still require a new feature test macro
   __STDC_WANT_IEC_60559_EXT__ instead (C2X does not define
   __STDC_WANT_IEC_60559_BFP_EXT__), while a few features from TS
   18661-1 are not included in C2X (and thus should depend on
   __STDC_WANT_IEC_60559_BFP_EXT__ even when C2X features are
   enabled).

   __GLIBC_USE (IEC_60559_BFP_EXT) controls those features from TS
   18661-1 not included in C2X.

   __GLIBC_USE (IEC_60559_BFP_EXT_C2X) controls those features from TS
   18661-1 that are also included in C2X (with no feature test macro
   required in C2X).

   __GLIBC_USE (IEC_60559_EXT) controls those features from TS 18661-1
   that are included in C2X but conditional on
   __STDC_WANT_IEC_60559_EXT__.  (There are currently no features
   conditional on __STDC_WANT_IEC_60559_EXT__ that are not in TS
   18661-1.)  */
#undef __GLIBC_USE_IEC_60559_BFP_EXT

#define __GLIBC_USE_IEC_60559_BFP_EXT 1



#undef __GLIBC_USE_IEC_60559_BFP_EXT_C2X

#define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 1



#undef __GLIBC_USE_IEC_60559_EXT

#define __GLIBC_USE_IEC_60559_EXT 1




/* ISO/IEC TS 18661-4:2015 defines the
   __STDC_WANT_IEC_60559_FUNCS_EXT__ macro.  Other than the reduction
   functions, the symbols from this TS are enabled unconditionally in
   C2X.  */
#undef __GLIBC_USE_IEC_60559_FUNCS_EXT

#define __GLIBC_USE_IEC_60559_FUNCS_EXT 1



#undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X

#define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 1




/* ISO/IEC TS 18661-3:2015 defines the
   __STDC_WANT_IEC_60559_TYPES_EXT__ macro.  */
#undef __GLIBC_USE_IEC_60559_TYPES_EXT

#define __GLIBC_USE_IEC_60559_TYPES_EXT 1
# 27 "../include/limits.h" 2


/* Maximum length of any multibyte character in any locale.
   We define this value here since the gcc header does not define
   the correct value.  */
#define MB_LEN_MAX 16


/* If we are not using GNU CC we have to define all the symbols ourself.
   Otherwise use gcc's definitions (see below).  */
# 114 "../include/limits.h"



 /* Get the compiler's limits.h, which defines almost all the ISO constants.

    We put this #include_next outside the double inclusion check because
    it should be possible to include this file more than once and still get
    the definitions from gcc's header.  */

/* `_GCC_LIMITS_H_' is what GCC's file defines.  */
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/limits.h" 1 3 4
/* Copyright (C) 1992-2021 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/* This administrivia gets added to the beginning of limits.h
   if the system has its own version of limits.h.  */

/* We use _GCC_LIMITS_H_ because we want this not to match
   any macros that the system's limits.h uses for its own purposes.  */

#define _GCC_LIMITS_H_ 





/* Copyright (C) 1991-2021 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */


#define _LIMITS_H___ 

/* Number of bits in a `char'.  */
#undef CHAR_BIT
#define CHAR_BIT __CHAR_BIT__

/* Maximum length of a multibyte character.  */




/* Minimum and maximum values a `signed char' can hold.  */
#undef SCHAR_MIN
#define SCHAR_MIN (-SCHAR_MAX - 1)
#undef SCHAR_MAX
#define SCHAR_MAX __SCHAR_MAX__

/* Maximum value an `unsigned char' can hold.  (Minimum is 0).  */
#undef UCHAR_MAX



#define UCHAR_MAX (SCHAR_MAX * 2 + 1)


/* Minimum and maximum values a `char' can hold.  */

#undef CHAR_MIN



#define CHAR_MIN 0

#undef CHAR_MAX
#define CHAR_MAX UCHAR_MAX







/* Minimum and maximum values a `signed short int' can hold.  */
#undef SHRT_MIN
#define SHRT_MIN (-SHRT_MAX - 1)
#undef SHRT_MAX
#define SHRT_MAX __SHRT_MAX__

/* Maximum value an `unsigned short int' can hold.  (Minimum is 0).  */
#undef USHRT_MAX



#define USHRT_MAX (SHRT_MAX * 2 + 1)


/* Minimum and maximum values a `signed int' can hold.  */
#undef INT_MIN
#define INT_MIN (-INT_MAX - 1)
#undef INT_MAX
#define INT_MAX __INT_MAX__

/* Maximum value an `unsigned int' can hold.  (Minimum is 0).  */
#undef UINT_MAX
#define UINT_MAX (INT_MAX * 2U + 1U)

/* Minimum and maximum values a `signed long int' can hold.
   (Same as `int').  */
#undef LONG_MIN
#define LONG_MIN (-LONG_MAX - 1L)
#undef LONG_MAX
#define LONG_MAX __LONG_MAX__

/* Maximum value an `unsigned long int' can hold.  (Minimum is 0).  */
#undef ULONG_MAX
#define ULONG_MAX (LONG_MAX * 2UL + 1UL)


/* Minimum and maximum values a `signed long long int' can hold.  */
#undef LLONG_MIN
#define LLONG_MIN (-LLONG_MAX - 1LL)
#undef LLONG_MAX
#define LLONG_MAX __LONG_LONG_MAX__

/* Maximum value an `unsigned long long int' can hold.  (Minimum is 0).  */
#undef ULLONG_MAX
#define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)



/* Minimum and maximum values a `signed long long int' can hold.  */
#undef LONG_LONG_MIN
#define LONG_LONG_MIN (-LONG_LONG_MAX - 1LL)
#undef LONG_LONG_MAX
#define LONG_LONG_MAX __LONG_LONG_MAX__

/* Maximum value an `unsigned long long int' can hold.  (Minimum is 0).  */
#undef ULONG_LONG_MAX
#define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1ULL)


# 187 "/usr/lib/gcc/s390x-redhat-linux/11/include/limits.h" 3 4










/* This administrivia gets added to the end of limits.h
   if the system has its own version of limits.h.  */

# 125 "../include/limits.h" 2


/* The <limits.h> files in some gcc versions don't define LLONG_MIN,
   LLONG_MAX, and ULLONG_MAX.  Instead only the values gcc defined for
   ages are available.  */












/* The integer width macros are not defined by GCC's <limits.h> before
   GCC 7, or if _GNU_SOURCE rather than
   __STDC_WANT_IEC_60559_BFP_EXT__ is used to enable this feature.  */


#define CHAR_WIDTH 8


#define SCHAR_WIDTH 8


#define UCHAR_WIDTH 8


#define SHRT_WIDTH 16


#define USHRT_WIDTH 16


#define INT_WIDTH 32


#define UINT_WIDTH 32


#define LONG_WIDTH __WORDSIZE


#define ULONG_WIDTH __WORDSIZE


#define LLONG_WIDTH 64


#define ULLONG_WIDTH 64



/* The macros for _Bool are not defined by GCC's <limits.h> before GCC
   11, or if _GNU_SOURCE is defined rather than enabling C2x support
   with -std.  */


#define BOOL_MAX 1


#define BOOL_WIDTH 1




/* POSIX adds things to <limits.h>.  */
# 1 "../include/bits/posix1_lim.h" 1
# 1 "../posix/bits/posix1_lim.h" 1
/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/*
 *	POSIX Standard: 2.9.2 Minimum Values	Added to <limits.h>
 *
 *	Never include this file directly; use <limits.h> instead.
 */


#define _BITS_POSIX1_LIM_H 1

# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
/* Determine the wordsize from the preprocessor defines.  */


#define __WORDSIZE 64






#define __WORDSIZE_TIME64_COMPAT32 0
# 28 "../posix/bits/posix1_lim.h" 2

/* These are the standard-mandated minimum values.  */

/* Minimum number of operations in one list I/O call.  */
#define _POSIX_AIO_LISTIO_MAX 2

/* Minimal number of outstanding asynchronous I/O operations.  */
#define _POSIX_AIO_MAX 1

/* Maximum length of arguments to `execve', including environment.  */
#define _POSIX_ARG_MAX 4096

/* Maximum simultaneous processes per real user ID.  */

#define _POSIX_CHILD_MAX 25




/* Minimal number of timer expiration overruns.  */
#define _POSIX_DELAYTIMER_MAX 32

/* Maximum length of a host name (not including the terminating null)
   as returned from the GETHOSTNAME function.  */
#define _POSIX_HOST_NAME_MAX 255

/* Maximum link count of a file.  */
#define _POSIX_LINK_MAX 8

/* Maximum length of login name.  */
#define _POSIX_LOGIN_NAME_MAX 9

/* Number of bytes in a terminal canonical input queue.  */
#define _POSIX_MAX_CANON 255

/* Number of bytes for which space will be
   available in a terminal input queue.  */
#define _POSIX_MAX_INPUT 255

/* Maximum number of message queues open for a process.  */
#define _POSIX_MQ_OPEN_MAX 8

/* Maximum number of supported message priorities.  */
#define _POSIX_MQ_PRIO_MAX 32

/* Number of bytes in a filename.  */
#define _POSIX_NAME_MAX 14

/* Number of simultaneous supplementary group IDs per process.  */

#define _POSIX_NGROUPS_MAX 8




/* Number of files one process can have open at once.  */

#define _POSIX_OPEN_MAX 20





/* Number of descriptors that a process may examine with `pselect' or
   `select'.  */
#define _POSIX_FD_SETSIZE _POSIX_OPEN_MAX


/* Number of bytes in a pathname.  */
#define _POSIX_PATH_MAX 256

/* Number of bytes than can be written atomically to a pipe.  */
#define _POSIX_PIPE_BUF 512

/* The number of repeated occurrences of a BRE permitted by the
   REGEXEC and REGCOMP functions when using the interval notation.  */
#define _POSIX_RE_DUP_MAX 255

/* Minimal number of realtime signals reserved for the application.  */
#define _POSIX_RTSIG_MAX 8

/* Number of semaphores a process can have.  */
#define _POSIX_SEM_NSEMS_MAX 256

/* Maximal value of a semaphore.  */
#define _POSIX_SEM_VALUE_MAX 32767

/* Number of pending realtime signals.  */
#define _POSIX_SIGQUEUE_MAX 32

/* Largest value of a `ssize_t'.  */
#define _POSIX_SSIZE_MAX 32767

/* Number of streams a process can have open at once.  */
#define _POSIX_STREAM_MAX 8

/* The number of bytes in a symbolic link.  */
#define _POSIX_SYMLINK_MAX 255

/* The number of symbolic links that can be traversed in the
   resolution of a pathname in the absence of a loop.  */
#define _POSIX_SYMLOOP_MAX 8

/* Number of timer for a process.  */
#define _POSIX_TIMER_MAX 32

/* Maximum number of characters in a tty name.  */
#define _POSIX_TTY_NAME_MAX 9

/* Maximum length of a timezone name (element of `tzname').  */

#define _POSIX_TZNAME_MAX 6





/* Maximum number of connections that can be queued on a socket.  */
#define _POSIX_QLIMIT 1

/* Maximum number of bytes that can be buffered on a socket for send
   or receive.  */
#define _POSIX_HIWAT _POSIX_PIPE_BUF

/* Maximum number of elements in an `iovec' array.  */
#define _POSIX_UIO_MAXIOV 16


/* Maximum clock resolution in nanoseconds.  */
#define _POSIX_CLOCKRES_MIN 20000000


/* Get the implementation-specific values for the above.  */
# 1 "../sysdeps/unix/sysv/linux/bits/local_lim.h" 1
/* Minimum guaranteed maximum values for system limits.  Linux version.
   Copyright (C) 1993-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public License as
   published by the Free Software Foundation; either version 2.1 of the
   License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; see the file COPYING.LIB.  If
   not, see <https://www.gnu.org/licenses/>.  */

/* The kernel header pollutes the namespace with the NR_OPEN symbol
   and defines LINK_MAX although filesystems have different maxima.  A
   similar thing is true for OPEN_MAX: the limit can be changed at
   runtime and therefore the macro must not be defined.  Remove this
   after including the header if necessary.  */

#define __undef_NR_OPEN 


#define __undef_LINK_MAX 


#define __undef_OPEN_MAX 


#define __undef_ARG_MAX 


/* The kernel sources contain a file with all the needed information.  */
# 1 "/usr/include/linux/limits.h" 1 3 4
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */

#define _LINUX_LIMITS_H 

#define NR_OPEN 1024

#define NGROUPS_MAX 65536
#define ARG_MAX 131072
#define LINK_MAX 127
#define MAX_CANON 255
#define MAX_INPUT 255
#define NAME_MAX 255
#define PATH_MAX 4096
#define PIPE_BUF 4096
#define XATTR_NAME_MAX 255
#define XATTR_SIZE_MAX 65536
#define XATTR_LIST_MAX 65536

#define RTSIG_MAX 32

# 39 "../sysdeps/unix/sysv/linux/bits/local_lim.h" 2

/* Have to remove NR_OPEN?  */

#undef NR_OPEN
#undef __undef_NR_OPEN

/* Have to remove LINK_MAX?  */

#undef LINK_MAX
#undef __undef_LINK_MAX

/* Have to remove OPEN_MAX?  */

#undef OPEN_MAX
#undef __undef_OPEN_MAX

/* Have to remove ARG_MAX?  */

#undef ARG_MAX
#undef __undef_ARG_MAX


/* The number of data keys per process.  */
#define _POSIX_THREAD_KEYS_MAX 128
/* This is the value this implementation supports.  */
#define PTHREAD_KEYS_MAX 1024

/* Controlling the iterations of destructors for thread-specific data.  */
#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
/* Number of iterations this implementation does.  */
#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS

/* The number of threads per process.  */
#define _POSIX_THREAD_THREADS_MAX 64
/* We have no predefined limit on the number of threads.  */
#undef PTHREAD_THREADS_MAX

/* Maximum amount by which a process can descrease its asynchronous I/O
   priority level.  */
#define AIO_PRIO_DELTA_MAX 20

/* Arrange for the definition of PTHREAD_STACK_MIN.  */
# 1 "../sysdeps/unix/sysv/linux/include/bits/pthread_stack_min-dynamic.h" 1
/* Don't define PTHREAD_STACK_MIN to __sysconf (_SC_THREAD_STACK_MIN)
   for glibc build.  */



# 1 "../sysdeps/unix/sysv/linux/bits/pthread_stack_min.h" 1
/* Definition of PTHREAD_STACK_MIN.  Linux version.
   Copyright (C) 2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/* Minimum size for a thread.  We are free to choose a reasonable value.  */
#define PTHREAD_STACK_MIN 16384
# 7 "../sysdeps/unix/sysv/linux/include/bits/pthread_stack_min-dynamic.h" 2
# 82 "../sysdeps/unix/sysv/linux/bits/local_lim.h" 2

/* Maximum number of timer expiration overruns.  */
#define DELAYTIMER_MAX 2147483647

/* Maximum tty name length.  */
#define TTY_NAME_MAX 32

/* Maximum login name length.  This is arbitrary.  */
#define LOGIN_NAME_MAX 256

/* Maximum host name length.  */
#define HOST_NAME_MAX 64

/* Maximum message queue priority level.  */
#define MQ_PRIO_MAX 32768

/* Maximum value the semaphore can have.  */
#define SEM_VALUE_MAX (2147483647)
# 162 "../posix/bits/posix1_lim.h" 2



/* ssize_t is not formally required to be the signed type
   corresponding to size_t, but it is for all configurations supported
   by glibc.  */

#define SSIZE_MAX LONG_MAX






/* This value is a guaranteed minimum maximum.
   The current maximum can be got from `sysconf'.  */





# 2 "../include/bits/posix1_lim.h" 2
# 196 "../include/limits.h" 2



# 1 "../include/bits/posix2_lim.h" 1
# 1 "../posix/bits/posix2_lim.h" 1
/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/*
 * Never include this file directly; include <limits.h> instead.
 */


#define _BITS_POSIX2_LIM_H 1


/* The maximum `ibase' and `obase' values allowed by the `bc' utility.  */
#define _POSIX2_BC_BASE_MAX 99

/* The maximum number of elements allowed in an array by the `bc' utility.  */
#define _POSIX2_BC_DIM_MAX 2048

/* The maximum `scale' value allowed by the `bc' utility.  */
#define _POSIX2_BC_SCALE_MAX 99

/* The maximum length of a string constant accepted by the `bc' utility.  */
#define _POSIX2_BC_STRING_MAX 1000

/* The maximum number of weights that can be assigned to an entry of
   the LC_COLLATE `order' keyword in the locale definition file.  */
#define _POSIX2_COLL_WEIGHTS_MAX 2

/* The maximum number of expressions that can be nested
   within parentheses by the `expr' utility.  */
#define _POSIX2_EXPR_NEST_MAX 32

/* The maximum length, in bytes, of an input line.  */
#define _POSIX2_LINE_MAX 2048

/* The maximum number of repeated occurrences of a regular expression
   permitted when using the interval notation `\{M,N\}'.  */
#define _POSIX2_RE_DUP_MAX 255

/* The maximum number of bytes in a character class name.  We have no
   fixed limit, 2048 is a high number.  */
#define _POSIX2_CHARCLASS_NAME_MAX 14


/* These values are implementation-specific,
   and may vary within the implementation.
   Their precise values can be obtained from sysconf.  */


#define BC_BASE_MAX _POSIX2_BC_BASE_MAX


#define BC_DIM_MAX _POSIX2_BC_DIM_MAX


#define BC_SCALE_MAX _POSIX2_BC_SCALE_MAX


#define BC_STRING_MAX _POSIX2_BC_STRING_MAX


#define COLL_WEIGHTS_MAX 255


#define EXPR_NEST_MAX _POSIX2_EXPR_NEST_MAX


#define LINE_MAX _POSIX2_LINE_MAX


#define CHARCLASS_NAME_MAX 2048


/* This value is defined like this in regex.h.  */
#define RE_DUP_MAX (0x7fff)

# 2 "../include/bits/posix2_lim.h" 2
# 200 "../include/limits.h" 2



# 1 "../include/bits/xopen_lim.h" 1
/* Copyright (C) 1996-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/*
 * Never include this file directly; use <limits.h> instead.
 */

/* Additional definitions from X/Open Portability Guide, Issue 4, Version 2
   System Interfaces and Headers, 4.16 <limits.h>

   Please note only the values which are not greater than the minimum
   stated in the standard document are listed.  The `sysconf' functions
   should be used to obtain the actual value.  */


#define _XOPEN_LIM_H 1

/* We do not provide fixed values for

   ARG_MAX	Maximum length of argument to the `exec' function
		including environment data.

   ATEXIT_MAX	Maximum number of functions that may be registered
		with `atexit'.

   CHILD_MAX	Maximum number of simultaneous processes per real
		user ID.

   OPEN_MAX	Maximum number of files that one process can have open
		at anyone time.

   PAGESIZE
   PAGE_SIZE	Size of bytes of a page.

   PASS_MAX	Maximum number of significant bytes in a password.

   We only provide a fixed limit for

   IOV_MAX	Maximum number of `iovec' structures that one process has
		available for use with `readv' or writev'.

   if this is indeed fixed by the underlying system.
*/


/* Maximum number of `iovec' structures that may be used in a single call
   to `readv', `writev', etc.  */
#define _XOPEN_IOV_MAX _POSIX_UIO_MAXIOV

# 1 "../sysdeps/unix/sysv/linux/bits/uio_lim.h" 1
/* Implementation limits related to sys/uio.h - Linux version.
   Copyright (C) 2017-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _BITS_UIO_LIM_H 1

/* Maximum length of the 'struct iovec' array in a single call to
   readv or writev.

   This macro has different values in different kernel versions.  The
   latest versions of the kernel use 1024 and this is good choice.  Since
   the C library implementation of readv/writev is able to emulate the
   functionality even if the currently running kernel does not support
   this large value the readv/writev call will not fail because of this.  */
#define __IOV_MAX 1024

# 65 "../include/bits/xopen_lim.h" 2

#define IOV_MAX __IOV_MAX




/* Maximum value of `digit' in calls to the `printf' and `scanf'
   functions.  We have no limit, so return a reasonable value.  */
#define NL_ARGMAX _POSIX_ARG_MAX

/* Maximum number of bytes in a `LANG' name.  We have no limit.  */
#define NL_LANGMAX _POSIX2_LINE_MAX

/* Maximum message number.  We have no limit.  */
#define NL_MSGMAX INT_MAX

/* Maximum number of bytes in N-to-1 collation mapping.  We have no
   limit.  */

#define NL_NMAX INT_MAX


/* Maximum set number.  We have no limit.  */
#define NL_SETMAX INT_MAX

/* Maximum number of bytes in a message.  We have no limit.  */
#define NL_TEXTMAX INT_MAX

/* Default process priority.  */
#define NZERO 20


/* Number of bits in a word of type `int'.  */





#define WORD_BIT 32





# 123 "../include/bits/xopen_lim.h"

/* Number of bits in a word of type `long int'.  */




/* Safe assumption.  */
#define LONG_BIT 64

# 147 "../include/bits/xopen_lim.h"

# 204 "../include/limits.h" 2
# 21 "../sysdeps/pthread/allocalim.h" 2


extern __always_inline
int
__libc_use_alloca (size_t size)
{
  return (__glibc_likely (__libc_alloca_cutoff (size))

          || __glibc_likely (size <= PTHREAD_STACK_MIN / 4)

	  );
}
# 25 "../include/alloca.h" 2








#define alloca_account(size,avar) ({ size_t s__ = (size); avar += s__; __alloca (s__); })






# 575 "../stdlib/stdlib.h" 2




/* Allocate SIZE bytes on a page boundary.  The storage cannot be freed.  */
extern void *valloc (size_t __size) __THROW __attribute_malloc__
     __attribute_alloc_size__ ((1)) __wur;



/* Allocate memory of SIZE bytes with an alignment of ALIGNMENT.  */
extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
     __THROW __nonnull ((1)) __wur;



/* ISO C variant of aligned allocation.  */
extern void *aligned_alloc (size_t __alignment, size_t __size)
     __THROW __attribute_malloc__ __attribute_alloc_align__ ((1))
     __attribute_alloc_size__ ((2)) __wur;


/* Abort execution and generate a core-dump.  */
extern void abort (void) __THROW __attribute__ ((__noreturn__));


/* Register a function to be called when `exit' is called.  */
extern int atexit (void (*__func) (void)) __THROW __nonnull ((1));


/* Register a function to be called when `quick_exit' is called.  */




extern int at_quick_exit (void (*__func) (void)) __THROW __nonnull ((1));




/* Register a function to be called with the status
   given to `exit' and the given argument.  */
extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
     __THROW __nonnull ((1));


/* Call all functions registered with `atexit' and `on_exit',
   in the reverse of the order in which they were registered,
   perform stdio cleanup, and terminate program execution with STATUS.  */
extern void exit (int __status) __THROW __attribute__ ((__noreturn__));


/* Call all functions registered with `at_quick_exit' in the reverse
   of the order in which they were registered and terminate program
   execution with STATUS.  */
extern void quick_exit (int __status) __THROW __attribute__ ((__noreturn__));



/* Terminate the program with STATUS without calling any of the
   functions registered with `atexit' or `on_exit'.  */
extern void _Exit (int __status) __THROW __attribute__ ((__noreturn__));



/* Return the value of envariable NAME, or NULL if it doesn't exist.  */
extern char *getenv (const char *__name) __THROW __nonnull ((1)) __wur;


/* This function is similar to the above but returns NULL if the
   programs is running with SUID or SGID enabled.  */
extern char *secure_getenv (const char *__name)
     __THROW __nonnull ((1)) __wur;



/* The SVID says this is in <stdio.h>, but this seems a better place.	*/
/* Put STRING, which is of the form "NAME=VALUE", in the environment.
   If there is no `=', remove NAME from the environment.  */
extern int putenv (char *__string) __THROW __nonnull ((1));



/* Set NAME to VALUE in the environment.
   If REPLACE is nonzero, overwrite an existing value.  */
extern int setenv (const char *__name, const char *__value, int __replace)
     __THROW __nonnull ((2));

/* Remove the variable NAME from the environment.  */
extern int unsetenv (const char *__name) __THROW __nonnull ((1));



/* The `clearenv' was planned to be added to POSIX.1 but probably
   never made it.  Nevertheless the POSIX.9 standard (POSIX bindings
   for Fortran 77) requires this function.  */
extern int clearenv (void) __THROW;





/* Generate a unique temporary file name from TEMPLATE.
   The last six characters of TEMPLATE must be "XXXXXX";
   they are replaced with a string that makes the file name unique.
   Always returns TEMPLATE, it's either a temporary file name or a null
   string if it cannot get a unique file name.  */
extern char *mktemp (char *__template) __THROW __nonnull ((1));



/* Generate a unique temporary file name from TEMPLATE.
   The last six characters of TEMPLATE must be "XXXXXX";
   they are replaced with a string that makes the filename unique.
   Returns a file descriptor open on the file for reading and writing,
   or -1 if it cannot create a uniquely-named file.

   This function is a possible cancellation point and therefore not
   marked with __THROW.  */

extern int mkstemp (char *__template) __nonnull ((1)) __wur;
# 704 "../stdlib/stdlib.h"

extern int mkstemp64 (char *__template) __nonnull ((1)) __wur;




/* Similar to mkstemp, but the template can have a suffix after the
   XXXXXX.  The length of the suffix is specified in the second
   parameter.

   This function is a possible cancellation point and therefore not
   marked with __THROW.  */

extern int mkstemps (char *__template, int __suffixlen) __nonnull ((1)) __wur;
# 726 "../stdlib/stdlib.h"

extern int mkstemps64 (char *__template, int __suffixlen)
     __nonnull ((1)) __wur;




/* Create a unique temporary directory from TEMPLATE.
   The last six characters of TEMPLATE must be "XXXXXX";
   they are replaced with a string that makes the directory name unique.
   Returns TEMPLATE, or a null pointer if it cannot get a unique name.
   The directory is created mode 700.  */
extern char *mkdtemp (char *__template) __THROW __nonnull ((1)) __wur;



/* Generate a unique temporary file name from TEMPLATE similar to
   mkstemp.  But allow the caller to pass additional flags which are
   used in the open call to create the file..

   This function is a possible cancellation point and therefore not
   marked with __THROW.  */

extern int mkostemp (char *__template, int __flags) __nonnull ((1)) __wur;
# 758 "../stdlib/stdlib.h"

extern int mkostemp64 (char *__template, int __flags) __nonnull ((1)) __wur;


/* Similar to mkostemp, but the template can have a suffix after the
   XXXXXX.  The length of the suffix is specified in the second
   parameter.

   This function is a possible cancellation point and therefore not
   marked with __THROW.  */

extern int mkostemps (char *__template, int __suffixlen, int __flags)
     __nonnull ((1)) __wur;
# 780 "../stdlib/stdlib.h"

extern int mkostemps64 (char *__template, int __suffixlen, int __flags)
     __nonnull ((1)) __wur;




/* Execute the given line as a shell command.

   This function is a cancellation point and therefore not marked with
   __THROW.  */
extern int system (const char *__command) __wur;



/* Return a malloc'd string containing the canonical absolute name of the
   existing named file.  */
extern char *canonicalize_file_name (const char *__name)
     __THROW __nonnull ((1)) __attribute_malloc__
     __attr_dealloc_free __wur;



/* Return the canonical absolute name of file NAME.  If RESOLVED is
   null, the result is malloc'd; otherwise, if the canonical name is
   PATH_MAX chars or more, returns null with `errno' set to
   ENAMETOOLONG; if the name fits in fewer than PATH_MAX chars,
   returns the name in RESOLVED.  */
extern char *realpath (const char *__restrict __name,
		       char *__restrict __resolved) __THROW __wur;



/* Shorthand for type of comparison functions.  */

#define __COMPAR_FN_T 
typedef int (*__compar_fn_t) (const void *, const void *);


typedef __compar_fn_t comparison_fn_t;



typedef int (*__compar_d_fn_t) (const void *, const void *, void *);


/* Do a binary search for KEY in BASE, which consists of NMEMB elements
   of SIZE bytes each, using COMPAR to perform the comparisons.  */
extern void *bsearch (const void *__key, const void *__base,
		      size_t __nmemb, size_t __size, __compar_fn_t __compar)
     __nonnull ((1, 2, 5)) __wur;


# 1 "../bits/stdlib-bsearch.h" 1
/* Perform binary search - inline version.
   Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

__extern_inline void *
bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size,
	 __compar_fn_t __compar)
{
  size_t __l, __u, __idx;
  const void *__p;
  int __comparison;

  __l = 0;
  __u = __nmemb;
  while (__l < __u)
    {
      __idx = (__l + __u) / 2;
      __p = (const void *) (((const char *) __base) + (__idx * __size));
      __comparison = (*__compar) (__key, __p);
      if (__comparison < 0)
	__u = __idx;
      else if (__comparison > 0)
	__l = __idx + 1;
      else
	{

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wcast-qual"

	  return (void *) __p;

#pragma GCC diagnostic pop

	}
    }

  return NULL;
}
# 834 "../stdlib/stdlib.h" 2


/* Sort NMEMB elements of BASE, of SIZE bytes each,
   using COMPAR to perform the comparisons.  */
extern void qsort (void *__base, size_t __nmemb, size_t __size,
		   __compar_fn_t __compar) __nonnull ((1, 4));

extern void qsort_r (void *__base, size_t __nmemb, size_t __size,
		     __compar_d_fn_t __compar, void *__arg)
  __nonnull ((1, 4));



/* Return the absolute value of X.  */
extern int abs (int __x) __THROW __attribute__ ((__const__)) __wur;
extern long int labs (long int __x) __THROW __attribute__ ((__const__)) __wur;


__extension__ extern long long int llabs (long long int __x)
     __THROW __attribute__ ((__const__)) __wur;



/* Return the `div_t', `ldiv_t' or `lldiv_t' representation
   of the value of NUMER over DENOM. */
/* GCC may have built-ins for these someday.  */
extern div_t div (int __numer, int __denom)
     __THROW __attribute__ ((__const__)) __wur;
extern ldiv_t ldiv (long int __numer, long int __denom)
     __THROW __attribute__ ((__const__)) __wur;


__extension__ extern lldiv_t lldiv (long long int __numer,
				    long long int __denom)
     __THROW __attribute__ ((__const__)) __wur;





/* Convert floating point numbers to strings.  The returned values are
   valid only until another call to the same function.  */

/* Convert VALUE to a string with NDIGIT digits and return a pointer to
   this.  Set *DECPT with the position of the decimal character and *SIGN
   with the sign of the number.  */
extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
		   int *__restrict __sign) __THROW __nonnull ((3, 4)) __wur;

/* Convert VALUE to a string rounded to NDIGIT decimal digits.  Set *DECPT
   with the position of the decimal character and *SIGN with the sign of
   the number.  */
extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
		   int *__restrict __sign) __THROW __nonnull ((3, 4)) __wur;

/* If possible convert VALUE to a string with NDIGIT significant digits.
   Otherwise use exponential representation.  The resulting string will
   be written to BUF.  */
extern char *gcvt (double __value, int __ndigit, char *__buf)
     __THROW __nonnull ((3)) __wur;



/* Long double versions of above functions.  */
extern char *qecvt (long double __value, int __ndigit,
		    int *__restrict __decpt, int *__restrict __sign)
     __THROW __nonnull ((3, 4)) __wur;
extern char *qfcvt (long double __value, int __ndigit,
		    int *__restrict __decpt, int *__restrict __sign)
     __THROW __nonnull ((3, 4)) __wur;
extern char *qgcvt (long double __value, int __ndigit, char *__buf)
     __THROW __nonnull ((3)) __wur;


/* Reentrant version of the functions above which provide their own
   buffers.  */
extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
		   int *__restrict __sign, char *__restrict __buf,
		   size_t __len) __THROW __nonnull ((3, 4, 5));
extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
		   int *__restrict __sign, char *__restrict __buf,
		   size_t __len) __THROW __nonnull ((3, 4, 5));

extern int qecvt_r (long double __value, int __ndigit,
		    int *__restrict __decpt, int *__restrict __sign,
		    char *__restrict __buf, size_t __len)
     __THROW __nonnull ((3, 4, 5));
extern int qfcvt_r (long double __value, int __ndigit,
		    int *__restrict __decpt, int *__restrict __sign,
		    char *__restrict __buf, size_t __len)
     __THROW __nonnull ((3, 4, 5));



/* Return the length of the multibyte character
   in S, which is no longer than N.  */
extern int mblen (const char *__s, size_t __n) __THROW;
/* Return the length of the given multibyte character,
   putting its `wchar_t' representation in *PWC.  */
extern int mbtowc (wchar_t *__restrict __pwc,
		   const char *__restrict __s, size_t __n) __THROW;
/* Put the multibyte character represented
   by WCHAR in S, returning its length.  */
extern int wctomb (char *__s, wchar_t __wchar) __THROW;


/* Convert a multibyte string to a wide char string.  */
extern size_t mbstowcs (wchar_t *__restrict  __pwcs,
			const char *__restrict __s, size_t __n) __THROW
    __attr_access ((__read_only__, 2));
/* Convert a wide char string to multibyte string.  */
extern size_t wcstombs (char *__restrict __s,
			const wchar_t *__restrict __pwcs, size_t __n)
     __THROW
  __fortified_attr_access (__write_only__, 1, 3)
  __attr_access ((__read_only__, 2));


/* Determine whether the string value of RESPONSE matches the affirmation
   or negative response expression as specified by the LC_MESSAGES category
   in the program's current locale.  Returns 1 if affirmative, 0 if
   negative, and -1 if not matching.  */
extern int rpmatch (const char *__response) __THROW __nonnull ((1)) __wur;




/* Parse comma separated suboption from *OPTIONP and match against
   strings in TOKENS.  If found return index and set *VALUEP to
   optional value introduced by an equal sign.  If the suboption is
   not part of TOKENS return in *VALUEP beginning of unknown
   suboption.  On exit *OPTIONP is set to the beginning of the next
   token or at the terminating NUL character.  */
extern int getsubopt (char **__restrict __optionp,
		      char *const *__restrict __tokens,
		      char **__restrict __valuep)
     __THROW __nonnull ((1, 2, 3)) __wur;



/* X/Open pseudo terminal handling.  */


/* Return a master pseudo-terminal handle.  */
extern int posix_openpt (int __oflag) __wur;



/* The next four functions all take a master pseudo-tty fd and
   perform an operation on the associated slave:  */

/* Chown the slave to the calling user.  */
extern int grantpt (int __fd) __THROW;

/* Release an internal lock so the slave can be opened.
   Call after grantpt().  */
extern int unlockpt (int __fd) __THROW;

/* Return the pathname of the pseudo terminal slave associated with
   the master FD is open on, or NULL on errors.
   The returned storage is good until the next call to this function.  */
extern char *ptsname (int __fd) __THROW __wur;



/* Store at most BUFLEN characters of the pathname of the slave pseudo
   terminal associated with the master FD is open on in BUF.
   Return 0 on success, otherwise an error number.  */
extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
     __THROW __nonnull ((2)) __fortified_attr_access (__write_only__, 2, 3);

/* Open a master pseudo terminal and return its file descriptor.  */
extern int getpt (void);



/* Put the 1 minute, 5 minute and 15 minute load averages into the first
   NELEM elements of LOADAVG.  Return the number written (never more than
   three, but may be less than NELEM), or -1 if an error occurred.  */
extern int getloadavg (double __loadavg[], int __nelem)
     __THROW __nonnull ((1));








# 1 "../include/bits/stdlib-float.h" 1
/* No floating-point inline functions in rtld and for the conform tests.  */




# 1 "../stdlib/bits/stdlib-float.h" 1
/* Floating-point inline functions for stdlib.h.
   Copyright (C) 2012-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */






__extern_inline double
__NTH (atof (const char *__nptr))
{
  return strtod (__nptr, (char **) NULL);
}
# 7 "../include/bits/stdlib-float.h" 2

# 1024 "../stdlib/stdlib.h" 2

/* Define some macros helping to catch buffer overflows.  */









__END_DECLS

# 16 "../include/stdlib.h" 2

/* Now define the internal interfaces.  */

# 1 "../include/sys/stat.h" 1

# 1 "../io/sys/stat.h" 1
/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/*
 *	POSIX Standard: 5.6 File Characteristics	<sys/stat.h>
 */


#define _SYS_STAT_H 1



# 1 "../include/bits/types.h" 1
# 28 "../io/sys/stat.h" 2


# 1 "../include/bits/types/struct_timespec.h" 1
# 31 "../io/sys/stat.h" 2



/* The Single Unix specification says that some more types are
   available here.  */

# 1 "../include/bits/types/time_t.h" 1
# 38 "../io/sys/stat.h" 2











# 57 "../io/sys/stat.h"











# 76 "../io/sys/stat.h"








# 92 "../io/sys/stat.h"







__BEGIN_DECLS

# 1 "../sysdeps/unix/sysv/linux/bits/stat.h" 1
/* Copyright (C) 1992-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */






#define _BITS_STAT_H 1

# 1 "../sysdeps/unix/sysv/linux/s390/bits/struct_stat.h" 1
/* Definition for struct stat.
   Copyright (C) 2020-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library.  If not, see
   <https://www.gnu.org/licenses/>.  */






#define _BITS_STRUCT_STAT_H 1

# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
/* Determine the wordsize from the preprocessor defines.  */


#define __WORDSIZE 64






#define __WORDSIZE_TIME64_COMPAT32 0
# 27 "../sysdeps/unix/sysv/linux/s390/bits/struct_stat.h" 2


struct stat
  {
    __dev_t st_dev;		/* Device.  */
    __ino_t st_ino;		/* File serial number.	*/
    __nlink_t st_nlink;		/* Link count.	*/
    __mode_t st_mode;		/* File mode.  */
    __uid_t st_uid;		/* User ID of the file's owner.	*/
    __gid_t st_gid;		/* Group ID of the file's group.*/
    int __glibc_reserved0;
    __dev_t st_rdev;		/* Device number, if device.  */
    __off_t st_size;		/* Size of file, in bytes.  */

    /* Nanosecond resolution timestamps are stored in a format
       equivalent to 'struct timespec'.  This is the type used
       whenever possible but the Unix namespace rules do not allow the
       identifier 'timespec' to appear in the <sys/stat.h> header.
       Therefore we have to handle the use of this header in strictly
       standard-compliant sources special.  */
    struct timespec st_atim;		/* Time of last access.  */
    struct timespec st_mtim;		/* Time of last modification.  */
    struct timespec st_ctim;		/* Time of last status change.  */
#define st_atime st_atim.tv_sec
#define st_mtime st_mtim.tv_sec
#define st_ctime st_ctim.tv_sec
# 61 "../sysdeps/unix/sysv/linux/s390/bits/struct_stat.h"
    __blksize_t st_blksize;	/* Optimal block size for I/O.	*/
    __blkcnt_t st_blocks;	/* Nr. 512-byte blocks allocated.  */
    long int __glibc_reserved[3];
  };
# 126 "../sysdeps/unix/sysv/linux/s390/bits/struct_stat.h"



/* Note stat64 is the same shape as stat.  */
struct stat64
  {
    __dev_t st_dev;		/* Device.  */
    __ino64_t st_ino;		/* File serial number.	*/
    __nlink_t st_nlink;		/* Link count.	*/
    __mode_t st_mode;		/* File mode.  */
    __uid_t st_uid;		/* User ID of the file's owner.	*/
    __gid_t st_gid;		/* Group ID of the file's group.*/
    int __glibc_reserved0;
    __dev_t st_rdev;		/* Device number, if device.  */
    __off_t st_size;		/* Size of file, in bytes.  */

    /* Nanosecond resolution timestamps are stored in a format
       equivalent to 'struct timespec'.  This is the type used
       whenever possible but the Unix namespace rules do not allow the
       identifier 'timespec' to appear in the <sys/stat.h> header.
       Therefore we have to handle the use of this header in strictly
       standard-compliant sources special.  */
    struct timespec st_atim;		/* Time of last access.  */
    struct timespec st_mtim;		/* Time of last modification.  */
    struct timespec st_ctim;		/* Time of last status change.  */
#define st_atime st_atim.tv_sec
#define st_mtime st_mtim.tv_sec
#define st_ctime st_ctim.tv_sec
# 162 "../sysdeps/unix/sysv/linux/s390/bits/struct_stat.h"
    __blksize_t st_blksize;	/* Optimal block size for I/O.	*/
    __blkcnt64_t st_blocks;	/* Nr. 512-byte blocks allocated.  */
    long int __glibc_reserved[3];
  };
# 211 "../sysdeps/unix/sysv/linux/s390/bits/struct_stat.h"


/* Tell code we have these members.  */
#define _STATBUF_ST_BLKSIZE 
#define _STATBUF_ST_RDEV 
/* Nanosecond resolution time values are supported.  */
#define _STATBUF_ST_NSEC 

# 26 "../sysdeps/unix/sysv/linux/bits/stat.h" 2

/* Encoding of the file mode.  */

#define __S_IFMT 0170000

/* File types.  */
#define __S_IFDIR 0040000
#define __S_IFCHR 0020000
#define __S_IFBLK 0060000
#define __S_IFREG 0100000
#define __S_IFIFO 0010000
#define __S_IFLNK 0120000
#define __S_IFSOCK 0140000

/* POSIX.1b objects.  Note that these macros always evaluate to zero.  But
   they do it by enforcing the correct use of the macros.  */
#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode)
#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode)
#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode)

/* Protection bits.  */

#define __S_ISUID 04000
#define __S_ISGID 02000
#define __S_ISVTX 01000
#define __S_IREAD 0400
#define __S_IWRITE 0200
#define __S_IEXEC 0100


#define UTIME_NOW ((1l << 30) - 1l)
#define UTIME_OMIT ((1l << 30) - 2l)


# 102 "../io/sys/stat.h" 2


#define S_IFMT __S_IFMT
#define S_IFDIR __S_IFDIR
#define S_IFCHR __S_IFCHR
#define S_IFBLK __S_IFBLK
#define S_IFREG __S_IFREG

#define S_IFIFO __S_IFIFO


#define S_IFLNK __S_IFLNK



#define S_IFSOCK __S_IFSOCK



/* Test macros for file types.	*/

#define __S_ISTYPE(mode,mask) (((mode) & __S_IFMT) == (mask))

#define S_ISDIR(mode) __S_ISTYPE((mode), __S_IFDIR)
#define S_ISCHR(mode) __S_ISTYPE((mode), __S_IFCHR)
#define S_ISBLK(mode) __S_ISTYPE((mode), __S_IFBLK)
#define S_ISREG(mode) __S_ISTYPE((mode), __S_IFREG)

#define S_ISFIFO(mode) __S_ISTYPE((mode), __S_IFIFO)


#define S_ISLNK(mode) __S_ISTYPE((mode), __S_IFLNK)








#define S_ISSOCK(mode) __S_ISTYPE((mode), __S_IFSOCK)




/* These are from POSIX.1b.  If the objects are not implemented using separate
   distinct file types, the macros always will evaluate to zero.  Unlike the
   other S_* macros the following three take a pointer to a `struct stat'
   object as the argument.  */

#define S_TYPEISMQ(buf) __S_TYPEISMQ(buf)
#define S_TYPEISSEM(buf) __S_TYPEISSEM(buf)
#define S_TYPEISSHM(buf) __S_TYPEISSHM(buf)



/* Protection bits.  */

#define S_ISUID __S_ISUID
#define S_ISGID __S_ISGID


/* Save swapped text after use (sticky bit).  This is pretty well obsolete.  */
#define S_ISVTX __S_ISVTX


#define S_IRUSR __S_IREAD
#define S_IWUSR __S_IWRITE
#define S_IXUSR __S_IEXEC
/* Read, write, and execute by owner.  */
#define S_IRWXU (__S_IREAD|__S_IWRITE|__S_IEXEC)


#define S_IREAD S_IRUSR
#define S_IWRITE S_IWUSR
#define S_IEXEC S_IXUSR


#define S_IRGRP (S_IRUSR >> 3)
#define S_IWGRP (S_IWUSR >> 3)
#define S_IXGRP (S_IXUSR >> 3)
/* Read, write, and execute by group.  */
#define S_IRWXG (S_IRWXU >> 3)

#define S_IROTH (S_IRGRP >> 3)
#define S_IWOTH (S_IWGRP >> 3)
#define S_IXOTH (S_IXGRP >> 3)
/* Read, write, and execute by others.  */
#define S_IRWXO (S_IRWXG >> 3)



/* Macros for common mode bit masks.  */
#define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO)
#define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO)
#define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)

#define S_BLKSIZE 512




/* Get file attributes for FILE and put them in BUF.  */
extern int stat (const char *__restrict __file,
		 struct stat *__restrict __buf) __THROW __nonnull ((1, 2));

/* Get file attributes for the file, device, pipe, or socket
   that file descriptor FD is open on and put them in BUF.  */
extern int fstat (int __fd, struct stat *__buf) __THROW __nonnull ((2));
# 238 "../io/sys/stat.h"


extern int stat64 (const char *__restrict __file,
		   struct stat64 *__restrict __buf) __THROW __nonnull ((1, 2));
extern int fstat64 (int __fd, struct stat64 *__buf) __THROW __nonnull ((2));
# 257 "../io/sys/stat.h"



/* Similar to stat, get the attributes for FILE and put them in BUF.
   Relative path names are interpreted relative to FD unless FD is
   AT_FDCWD.  */

extern int fstatat (int __fd, const char *__restrict __file,
		    struct stat *__restrict __buf, int __flag)
     __THROW __nonnull ((2, 3));
# 288 "../io/sys/stat.h"



extern int fstatat64 (int __fd, const char *__restrict __file,
		      struct stat64 *__restrict __buf, int __flag)
     __THROW __nonnull ((2, 3));
# 306 "../io/sys/stat.h"





/* Get file attributes about FILE and put them in BUF.
   If FILE is a symbolic link, do not follow it.  */
extern int lstat (const char *__restrict __file,
		  struct stat *__restrict __buf) __THROW __nonnull ((1, 2));
# 336 "../io/sys/stat.h"


extern int lstat64 (const char *__restrict __file,
		    struct stat64 *__restrict __buf)
     __THROW __nonnull ((1, 2));









/* Set file access permissions for FILE to MODE.
   If FILE is a symbolic link, this affects its target instead.  */
extern int chmod (const char *__file, __mode_t __mode)
     __THROW __nonnull ((1));


/* Set file access permissions for FILE to MODE.
   If FILE is a symbolic link, this affects the link itself
   rather than its target.  */
extern int lchmod (const char *__file, __mode_t __mode)
     __THROW __nonnull ((1));


/* Set file access permissions of the file FD is open on to MODE.  */

extern int fchmod (int __fd, __mode_t __mode) __THROW;



/* Set file access permissions of FILE relative to
   the directory FD is open on.  */
extern int fchmodat (int __fd, const char *__file, __mode_t __mode,
		     int __flag)
     __THROW __nonnull ((2)) __wur;




/* Set the file creation mask of the current process to MASK,
   and return the old creation mask.  */
extern __mode_t umask (__mode_t __mask) __THROW;


/* Get the current `umask' value without changing it.
   This function is only available under the GNU Hurd.  */
extern __mode_t getumask (void) __THROW;


/* Create a new directory named PATH, with permission bits MODE.  */
extern int mkdir (const char *__path, __mode_t __mode)
     __THROW __nonnull ((1));


/* Like mkdir, create a new directory with permission bits MODE.  But
   interpret relative PATH names relative to the directory associated
   with FD.  */
extern int mkdirat (int __fd, const char *__path, __mode_t __mode)
     __THROW __nonnull ((2));


/* Create a device file named PATH, with permission and special bits MODE
   and device number DEV (which can be constructed from major and minor
   device numbers with the `makedev' macro above).  */

extern int mknod (const char *__path, __mode_t __mode, __dev_t __dev)
     __THROW __nonnull ((1));


/* Like mknod, create a new device file with permission bits MODE and
   device number DEV.  But interpret relative PATH names relative to
   the directory associated with FD.  */
extern int mknodat (int __fd, const char *__path, __mode_t __mode,
		    __dev_t __dev) __THROW __nonnull ((2));




/* Create a new FIFO named PATH, with permission bits MODE.  */
extern int mkfifo (const char *__path, __mode_t __mode)
     __THROW __nonnull ((1));


/* Like mkfifo, create a new FIFO with permission bits MODE.  But
   interpret relative PATH names relative to the directory associated
   with FD.  */
extern int mkfifoat (int __fd, const char *__path, __mode_t __mode)
     __THROW __nonnull ((2));

\f


/* Set file access and modification times relative to directory file
   descriptor.  */
extern int utimensat (int __fd, const char *__path,
		      const struct timespec __times[2],
		      int __flags)
     __THROW __nonnull ((2));
# 447 "../io/sys/stat.h"




/* Set file access and modification times of the file associated with FD.  */
extern int futimens (int __fd, const struct timespec __times[2]) __THROW;

# 462 "../io/sys/stat.h"



# 1 "../include/bits/statx.h" 1
# 1 "../io/bits/statx.h" 1
/* statx-related definitions and declarations.  Generic version.
   Copyright (C) 2018-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/* This interface is based on <linux/stat.h> in Linux.  */





/* Use the generic definitions.  */
# 1 "../include/bits/statx-generic.h" 1
# 1 "../io/bits/statx-generic.h" 1
/* Generic statx-related definitions and declarations.
   Copyright (C) 2018-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/* This interface is based on <linux/stat.h> in Linux.  */





# 1 "../include/bits/types/struct_statx_timestamp.h" 1
# 1 "../io/bits/types/struct_statx_timestamp.h" 1
/* Definition of the generic version of struct statx_timestamp.
   Copyright (C) 2018-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */






#define __statx_timestamp_defined 1

struct statx_timestamp
{
  __int64_t tv_sec;
  __uint32_t tv_nsec;
  __int32_t __statx_timestamp_pad1[1];
};

# 2 "../include/bits/types/struct_statx_timestamp.h" 2
# 26 "../io/bits/statx-generic.h" 2
# 1 "../include/bits/types/struct_statx.h" 1
# 1 "../io/bits/types/struct_statx.h" 1
/* Definition of the generic version of struct statx.
   Copyright (C) 2018-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */






#define __statx_defined 1

/* Warning: The kernel may add additional fields to this struct in the
   future.  Only use this struct for calling the statx function, not
   for storing data.  (Expansion will be controlled by the mask
   argument of the statx function.)  */
struct statx
{
  __uint32_t stx_mask;
  __uint32_t stx_blksize;
  __uint64_t stx_attributes;
  __uint32_t stx_nlink;
  __uint32_t stx_uid;
  __uint32_t stx_gid;
  __uint16_t stx_mode;
  __uint16_t __statx_pad1[1];
  __uint64_t stx_ino;
  __uint64_t stx_size;
  __uint64_t stx_blocks;
  __uint64_t stx_attributes_mask;
  struct statx_timestamp stx_atime;
  struct statx_timestamp stx_btime;
  struct statx_timestamp stx_ctime;
  struct statx_timestamp stx_mtime;
  __uint32_t stx_rdev_major;
  __uint32_t stx_rdev_minor;
  __uint32_t stx_dev_major;
  __uint32_t stx_dev_minor;
  __uint64_t __statx_pad2[14];
};

# 2 "../include/bits/types/struct_statx.h" 2
# 27 "../io/bits/statx-generic.h" 2


#define STATX_TYPE 0x0001U
#define STATX_MODE 0x0002U
#define STATX_NLINK 0x0004U
#define STATX_UID 0x0008U
#define STATX_GID 0x0010U
#define STATX_ATIME 0x0020U
#define STATX_MTIME 0x0040U
#define STATX_CTIME 0x0080U
#define STATX_INO 0x0100U
#define STATX_SIZE 0x0200U
#define STATX_BLOCKS 0x0400U
#define STATX_BASIC_STATS 0x07ffU
#define STATX_ALL 0x0fffU
#define STATX_BTIME 0x0800U
#define STATX_MNT_ID 0x1000U
#define STATX__RESERVED 0x80000000U

#define STATX_ATTR_COMPRESSED 0x0004
#define STATX_ATTR_IMMUTABLE 0x0010
#define STATX_ATTR_APPEND 0x0020
#define STATX_ATTR_NODUMP 0x0040
#define STATX_ATTR_ENCRYPTED 0x0800
#define STATX_ATTR_AUTOMOUNT 0x1000
#define STATX_ATTR_MOUNT_ROOT 0x2000
#define STATX_ATTR_VERITY 0x100000
#define STATX_ATTR_DAX 0x200000


__BEGIN_DECLS

/* Fill *BUF with information about PATH in DIRFD.  */
int statx (int __dirfd, const char *__restrict __path, int __flags,
           unsigned int __mask, struct statx *__restrict __buf)
  __THROW __nonnull ((2, 5));

__END_DECLS
# 2 "../include/bits/statx-generic.h" 2
# 27 "../io/bits/statx.h" 2
# 2 "../include/bits/statx.h" 2
# 466 "../io/sys/stat.h" 2


__END_DECLS


# 3 "../include/sys/stat.h" 2


# 1 "../sysdeps/unix/sysv/linux/s390/xstatver.h" 1
/* Versions of the 'struct stat' data structure used in compatibility xstat
   functions.  */

# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
/* Determine the wordsize from the preprocessor defines.  */


#define __WORDSIZE 64






#define __WORDSIZE_TIME64_COMPAT32 0
# 5 "../sysdeps/unix/sysv/linux/s390/xstatver.h" 2


#define _STAT_VER_KERNEL 0
#define _STAT_VER_LINUX 1
#define _MKNOD_VER_LINUX 0
# 18 "../sysdeps/unix/sysv/linux/s390/xstatver.h"
#define _STAT_VER _STAT_VER_LINUX
#define _MKNOD_VER _MKNOD_VER_LINUX
# 6 "../include/sys/stat.h" 2
# 1 "../include/struct___timespec64.h" 1

#define _STRUCT_TIMESPEC64_H 


#define __timespec64 timespec
# 27 "../include/struct___timespec64.h"
# 7 "../include/sys/stat.h" 2
# 1 "../sysdeps/unix/sysv/linux/struct_stat_time64.h" 1
/* Struct stat with 64-bit time support.
   Copyright (C) 2020-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _BITS_STRUCT_STAT_TIME64_H 1


#define __stat64_t64 stat64
# 33 "../sysdeps/unix/sysv/linux/struct_stat_time64.h"

# 8 "../include/sys/stat.h" 2


static inline bool
in_ino_t_range (__ino64_t v)
{
  __ino_t s = v;
  return s == v;
}

static inline bool
in_off_t_range (__off64_t v)
{
  __off_t s = v;
  return s == v;
}

static inline bool
in_blkcnt_t_range (__blkcnt64_t v)
{
  __blkcnt_t s = v;
  return s == v;
}

/* Now define the internal interfaces. */
extern int __stat (const char *__file, struct stat *__buf);
extern int __stat64 (const char *__file, struct stat64 *__buf);
extern int __fstat (int __fd, struct stat *__buf);
extern int __fstat64 (int __fd, struct stat64 *__buf);
extern int __lstat (const char *__file, struct stat *__buf);
extern int __lstat64 (const char *__file, struct stat64 *__buf);
extern int __fstatat (int dirfd, const char *pathname, struct stat *buf,
		      int flags);
extern int __fstatat64 (int dirfd, const char *pathname, struct stat64 *buf,
			int flags);

hidden_proto (__stat64)
hidden_proto (__fstat64)
hidden_proto (__lstat64)
hidden_proto (__fstatat64)



#define __stat64_time64 __stat64
#define __fstat64_time64 __fstat64
#define __lstat64_time64 __lstat64
#define __fstatat64_time64 __fstatat64
# 65 "../include/sys/stat.h"

extern int __chmod (const char *__file, __mode_t __mode);
libc_hidden_proto (__chmod)
extern int __fchmod (int __fd, __mode_t __mode);
libc_hidden_proto (fchmodat)
extern __mode_t __umask (__mode_t __mask);
extern int __mkdir (const char *__path, __mode_t __mode);
libc_hidden_proto (__mkdir)

extern int __mknodat (int fd, const char *path, mode_t mode, dev_t dev);
libc_hidden_proto (__mknodat);
extern int __mknod (const char *__path,
		    __mode_t __mode, __dev_t __dev);
libc_hidden_proto (__mknod);

extern int __xmknod (int __ver, const char *__path, __mode_t __mode,
		     __dev_t *__dev);
extern int __xmknodat (int __ver, int __fd, const char *__path,
		       __mode_t __mode, __dev_t *__dev);

int __fxstat (int __ver, int __fildes, struct stat *__stat_buf);
int __xstat (int __ver, const char *__filename,
	     struct stat *__stat_buf);
int __lxstat (int __ver, const char *__filename, struct stat *__stat_buf);
int __fxstatat (int __ver, int __fildes, const char *__filename,
		struct stat *__stat_buf, int __flag);
int __fxstat64 (int ver, int __fildes, struct stat64 *__stat_buf);
int __xstat64 (int ver, const char *__filename, struct stat64 *__stat_buf);
int __lxstat64 (int ver, const char *__filename, struct stat64 *__stat_buf);
int __fxstatat64 (int ver, int __fildes, const char *__filename,
		  struct stat64 *__stat_buf, int __flag);


# 20 "../include/stdlib.h" 2

# 1 "../include/rtld-malloc.h" 1
/* Redirection of malloc inside the dynamic linker.
   Copyright (C) 2020-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/* The dynamic linker needs to use its own minimal malloc before libc
   has been relocated, and the libc malloc afterwards.  The active
   malloc implementation is reached via the __rtld_* function pointers
   declared below.  They are initialized to the minimal malloc by
   __rtld_malloc_init_stubs, and set to the final implementation by
   __rtld_malloc_init_real.  */


#define _RTLD_MALLOC_H 

# 80 "../include/rtld-malloc.h"

/* This allows static/non-rtld builds to get a pointer to the
   functions, in the same way that is required inside rtld.  */
#define __rtld_calloc (&calloc)
#define __rtld_free (&free)
#define __rtld_malloc (&malloc)
#define __rtld_realloc (&realloc)


# 22 "../include/stdlib.h" 2

extern __typeof (strtol_l) __strtol_l;
extern __typeof (strtoul_l) __strtoul_l;
extern __typeof (strtoll_l) __strtoll_l;
extern __typeof (strtoull_l) __strtoull_l;
extern __typeof (strtod_l) __strtod_l;
extern __typeof (strtof_l) __strtof_l;
extern __typeof (strtold_l) __strtold_l;
libc_hidden_proto (__strtol_l)
libc_hidden_proto (__strtoul_l)
libc_hidden_proto (__strtoll_l)
libc_hidden_proto (__strtoull_l)
libc_hidden_proto (__strtod_l)
libc_hidden_proto (__strtof_l)
libc_hidden_proto (__strtold_l)

libc_hidden_proto (exit)
libc_hidden_proto (abort)
libc_hidden_proto (getenv)
extern __typeof (secure_getenv) __libc_secure_getenv;
libc_hidden_proto (__libc_secure_getenv)
libc_hidden_proto (bsearch)
libc_hidden_proto (qsort)
extern __typeof (qsort_r) __qsort_r;
libc_hidden_proto (__qsort_r)
libc_hidden_proto (lrand48_r)
libc_hidden_proto (wctomb)

extern long int __random (void) attribute_hidden;
extern void __srandom (unsigned int __seed);
extern char *__initstate (unsigned int __seed, char *__statebuf,
			  size_t __statelen);
extern char *__setstate (char *__statebuf);
extern int __random_r (struct random_data *__buf, int32_t *__result)
     attribute_hidden;
extern int __srandom_r (unsigned int __seed, struct random_data *__buf)
     attribute_hidden;
extern int __initstate_r (unsigned int __seed, char *__statebuf,
			  size_t __statelen, struct random_data *__buf)
     attribute_hidden;
extern int __setstate_r (char *__statebuf, struct random_data *__buf)
     attribute_hidden;
extern int __rand_r (unsigned int *__seed);
extern int __erand48_r (unsigned short int __xsubi[3],
			struct drand48_data *__buffer, double *__result)
     attribute_hidden;
extern int __nrand48_r (unsigned short int __xsubi[3],
			struct drand48_data *__buffer,
			long int *__result) attribute_hidden;
extern int __jrand48_r (unsigned short int __xsubi[3],
			struct drand48_data *__buffer,
			long int *__result) attribute_hidden;
extern int __srand48_r (long int __seedval,
			struct drand48_data *__buffer) attribute_hidden;
extern int __seed48_r (unsigned short int __seed16v[3],
		       struct drand48_data *__buffer) attribute_hidden;
extern int __lcong48_r (unsigned short int __param[7],
			struct drand48_data *__buffer) attribute_hidden;

/* Internal function to compute next state of the generator.  */
extern int __drand48_iterate (unsigned short int __xsubi[3],
			      struct drand48_data *__buffer)
     attribute_hidden;

/* Global state for non-reentrant functions.  Defined in drand48-iter.c.  */
extern struct drand48_data __libc_drand48_data attribute_hidden;

extern int __setenv (const char *__name, const char *__value, int __replace)
     attribute_hidden;
extern int __unsetenv (const char *__name) attribute_hidden;
extern int __clearenv (void) attribute_hidden;
extern char *__mktemp (char *__template) __THROW __nonnull ((1));
libc_hidden_proto (__mktemp)
extern char *__canonicalize_file_name (const char *__name);
extern char *__realpath (const char *__name, char *__resolved);
libc_hidden_proto (__realpath)
extern int __ptsname_r (int __fd, char *__buf, size_t __buflen)
     attribute_hidden;

extern int __ptsname_internal (int fd, char *buf, size_t buflen,
			       struct stat64 *stp) attribute_hidden;

extern int __getpt (void);
extern int __posix_openpt (int __oflag) attribute_hidden;

extern int __add_to_environ (const char *name, const char *value,
			     const char *combines, int replace)
     attribute_hidden;
extern void _quicksort (void *const pbase, size_t total_elems,
			size_t size, __compar_d_fn_t cmp, void *arg);

extern int __on_exit (void (*__func) (int __status, void *__arg), void *__arg);

extern int __cxa_atexit (void (*func) (void *), void *arg, void *d);
libc_hidden_proto (__cxa_atexit);

extern int __cxa_thread_atexit_impl (void (*func) (void *), void *arg,
				     void *d);
extern void __call_tls_dtors (void)

  __attribute__ ((weak))

  ;
libc_hidden_proto (__call_tls_dtors)

extern void __cxa_finalize (void *d);

extern int __posix_memalign (void **memptr, size_t alignment, size_t size);

extern void *__libc_memalign (size_t alignment, size_t size)
     __attribute_malloc__;

extern void *__libc_reallocarray (void *__ptr, size_t __nmemb, size_t __size)
     __THROW __attribute_warn_unused_result__;
libc_hidden_proto (__libc_reallocarray)

extern int __libc_system (const char *line);

extern __typeof (getpt) __getpt;
extern __typeof (ptsname_r) __ptsname_r;
libc_hidden_proto (__getpt)
libc_hidden_proto (__ptsname_r)
libc_hidden_proto (grantpt)
libc_hidden_proto (unlockpt)

extern double __strtod_internal (const char *__restrict __nptr,
				 char **__restrict __endptr, int __group)
     __THROW __nonnull ((1)) __wur;
extern float __strtof_internal (const char *__restrict __nptr,
				char **__restrict __endptr, int __group)
     __THROW __nonnull ((1)) __wur;
extern long double __strtold_internal (const char *__restrict __nptr,
				       char **__restrict __endptr,
				       int __group)
     __THROW __nonnull ((1)) __wur;
extern long int __strtol_internal (const char *__restrict __nptr,
				   char **__restrict __endptr,
				   int __base, int __group)
     __THROW __nonnull ((1)) __wur;
extern unsigned long int __strtoul_internal (const char *__restrict __nptr,
					     char **__restrict __endptr,
					     int __base, int __group)
     __THROW __nonnull ((1)) __wur;
__extension__
extern long long int __strtoll_internal (const char *__restrict __nptr,
					 char **__restrict __endptr,
					 int __base, int __group)
     __THROW __nonnull ((1)) __wur;
__extension__
extern unsigned long long int __strtoull_internal (const char *
						   __restrict __nptr,
						   char **__restrict __endptr,
						   int __base, int __group)
     __THROW __nonnull ((1)) __wur;
libc_hidden_proto (__strtof_internal)
libc_hidden_proto (__strtod_internal)
libc_hidden_proto (__strtold_internal)
libc_hidden_proto (__strtol_internal)
libc_hidden_proto (__strtoll_internal)
libc_hidden_proto (__strtoul_internal)
libc_hidden_proto (__strtoull_internal)

extern double ____strtod_l_internal (const char *__restrict __nptr,
				     char **__restrict __endptr, int __group,
				     locale_t __loc);
extern float ____strtof_l_internal (const char *__restrict __nptr,
				    char **__restrict __endptr, int __group,
				    locale_t __loc);
extern long double ____strtold_l_internal (const char *__restrict __nptr,
					   char **__restrict __endptr,
					   int __group, locale_t __loc);
extern long int ____strtol_l_internal (const char *__restrict __nptr,
				       char **__restrict __endptr,
				       int __base, int __group,
				       locale_t __loc);
extern unsigned long int ____strtoul_l_internal (const char *
						 __restrict __nptr,
						 char **__restrict __endptr,
						 int __base, int __group,
						 locale_t __loc);
__extension__
extern long long int ____strtoll_l_internal (const char *__restrict __nptr,
					     char **__restrict __endptr,
					     int __base, int __group,
					     locale_t __loc);
__extension__
extern unsigned long long int ____strtoull_l_internal (const char *
						       __restrict __nptr,
						       char **
						       __restrict __endptr,
						       int __base, int __group,
						       locale_t __loc);

libc_hidden_proto (____strtof_l_internal)
libc_hidden_proto (____strtod_l_internal)
libc_hidden_proto (____strtold_l_internal)
libc_hidden_proto (____strtol_l_internal)
libc_hidden_proto (____strtoll_l_internal)
libc_hidden_proto (____strtoul_l_internal)
libc_hidden_proto (____strtoull_l_internal)


libc_hidden_proto (strtof)
libc_hidden_proto (strtod)

libc_hidden_proto (strtold)

libc_hidden_proto (strtol)
libc_hidden_proto (strtoll)
libc_hidden_proto (strtoul)
libc_hidden_proto (strtoull)

libc_hidden_proto (atoi)

extern float __strtof_nan (const char *, char **, char);
extern double __strtod_nan (const char *, char **, char);
extern long double __strtold_nan (const char *, char **, char);
extern float __wcstof_nan (const wchar_t *, wchar_t **, wchar_t);
extern double __wcstod_nan (const wchar_t *, wchar_t **, wchar_t);
extern long double __wcstold_nan (const wchar_t *, wchar_t **, wchar_t);

libc_hidden_proto (__strtof_nan)
libc_hidden_proto (__strtod_nan)
libc_hidden_proto (__strtold_nan)
libc_hidden_proto (__wcstof_nan)
libc_hidden_proto (__wcstod_nan)
libc_hidden_proto (__wcstold_nan)

/* Enable _FloatN bits as needed.  */


# 276 "../include/stdlib.h"

extern char *__ecvt (double __value, int __ndigit, int *__restrict __decpt,
		     int *__restrict __sign);
extern char *__fcvt (double __value, int __ndigit, int *__restrict __decpt,
		     int *__restrict __sign);
extern char *__gcvt (double __value, int __ndigit, char *__buf);
extern int __ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
		     int *__restrict __sign, char *__restrict __buf,
		     size_t __len);
libc_hidden_proto (__ecvt_r)
extern int __fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
		     int *__restrict __sign, char *__restrict __buf,
		     size_t __len);
libc_hidden_proto (__fcvt_r)
extern char *__qecvt (long double __value, int __ndigit,
		      int *__restrict __decpt, int *__restrict __sign);
extern char *__qfcvt (long double __value, int __ndigit,
		      int *__restrict __decpt, int *__restrict __sign);
extern char *__qgcvt (long double __value, int __ndigit, char *__buf);
extern int __qecvt_r (long double __value, int __ndigit,
		      int *__restrict __decpt, int *__restrict __sign,
		      char *__restrict __buf, size_t __len);
libc_hidden_proto (__qecvt_r)
extern int __qfcvt_r (long double __value, int __ndigit,
		      int *__restrict __decpt, int *__restrict __sign,
		      char *__restrict __buf, size_t __len);
libc_hidden_proto (__qfcvt_r)


#undef MB_CUR_MAX
#define MB_CUR_MAX (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MB_CUR_MAX))


struct abort_msg_s
{
  unsigned int size;
  char msg[0];
};
extern struct abort_msg_s *__abort_msg;
libc_hidden_proto (__abort_msg)








# 28 "../sysdeps/s390/nptl/tls.h" 2
# 1 "../include/list.h" 1
/* Copyright (C) 2002-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _LIST_H 1

/* Internal: doubly linked lists.  */

/* The definitions of this file are adopted from those which can be
   found in the Linux kernel headers to enable people familiar with
   the latter find their way in these sources as well.  */

# 1 "../include/list_t.h" 1
/* Copyright (C) 2002-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _LIST_T_H 1

/* Internal: doubly linked lists.  */

/* Basic type for the double-link list.  */
typedef struct list_head
{
  struct list_head *next;
  struct list_head *prev;
} list_t;

# 28 "../include/list.h" 2
# 1 "../include/atomic.h" 1
/* Internal macros for atomic operations for GNU C Library.
   Copyright (C) 2002-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _ATOMIC_H 1

/* This header defines three types of macros:

   - atomic arithmetic and logic operation on memory.  They all
     have the prefix "atomic_".

   - conditionally atomic operations of the same kinds.  These
     always behave identical but can be faster when atomicity
     is not really needed since only one thread has access to
     the memory location.  In that case the code is slower in
     the multi-thread case.  The interfaces have the prefix
     "catomic_".

   - support functions like barriers.  They also have the prefix
     "atomic_".

   Architectures must provide a few lowlevel macros (the compare
   and exchange definitions).  All others are optional.  They
   should only be provided if the architecture has specific
   support for the operation.

   As <atomic.h> macros are usually heavily nested and often use local
   variables to make sure side-effects are evaluated properly, use for
   macro local variables a per-macro unique prefix.  This file uses
   __atgN_ prefix where N is different in each macro.  */



# 1 "../sysdeps/s390/atomic-machine.h" 1
/* Copyright (C) 2003-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

# 1 "../include/stdint.h" 1
# 19 "../sysdeps/s390/atomic-machine.h" 2

typedef int8_t atomic8_t;
typedef uint8_t uatomic8_t;
typedef int_fast8_t atomic_fast8_t;
typedef uint_fast8_t uatomic_fast8_t;

typedef int16_t atomic16_t;
typedef uint16_t uatomic16_t;
typedef int_fast16_t atomic_fast16_t;
typedef uint_fast16_t uatomic_fast16_t;

typedef int32_t atomic32_t;
typedef uint32_t uatomic32_t;
typedef int_fast32_t atomic_fast32_t;
typedef uint_fast32_t uatomic_fast32_t;

typedef int64_t atomic64_t;
typedef uint64_t uatomic64_t;
typedef int_fast64_t atomic_fast64_t;
typedef uint_fast64_t uatomic_fast64_t;

typedef intptr_t atomicptr_t;
typedef uintptr_t uatomicptr_t;
typedef intmax_t atomic_max_t;
typedef uintmax_t uatomic_max_t;

/* Activate all C11 atomic builtins.

   Note:
   E.g. in nptl/pthread_key_delete.c if compiled with GCCs 6 and before,
   an extra stack-frame is generated and the old value is stored on stack
   before cs instruction but it never loads this value from stack.
   An unreleased GCC 7 omit those stack operations.

   E.g. in nptl/pthread_once.c the condition code of cs instruction is
   evaluated by a sequence of ipm, sra, compare and jump instructions instead
   of one conditional jump instruction.  This also occurs with an unreleased
   GCC 7.

   The atomic_fetch_abc_def C11 builtins are now using load-and-abc instructions
   on z196 zarch and higher cpus instead of a loop with compare-and-swap
   instruction.  */
#define USE_ATOMIC_COMPILER_BUILTINS 1


#define __HAVE_64B_ATOMICS 1




#define ATOMIC_EXCHANGE_USES_CAS 1

/* Implement some of the non-C11 atomic macros from include/atomic.h
   with help of the C11 atomic builtins.  The other non-C11 atomic macros
   are using the macros defined here.  */

/* Atomically store NEWVAL in *MEM if *MEM is equal to OLDVAL.
   Return the old *MEM value.  */
#define atomic_compare_and_exchange_val_acq(mem,newval,oldval) ({ __atomic_check_size((mem)); typeof ((__typeof (*(mem))) *(mem)) __atg1_oldval = (oldval); __atomic_compare_exchange_n (mem, (void *) &__atg1_oldval, newval, 1, __ATOMIC_ACQUIRE, __ATOMIC_RELAXED); __atg1_oldval; })






#define atomic_compare_and_exchange_val_rel(mem,newval,oldval) ({ __atomic_check_size((mem)); typeof ((__typeof (*(mem))) *(mem)) __atg1_2_oldval = (oldval); __atomic_compare_exchange_n (mem, (void *) &__atg1_2_oldval, newval, 1, __ATOMIC_RELEASE, __ATOMIC_RELAXED); __atg1_2_oldval; })







/* Atomically store NEWVAL in *MEM if *MEM is equal to OLDVAL.
   Return zero if *MEM was changed or non-zero if no exchange happened.  */
#define atomic_compare_and_exchange_bool_acq(mem,newval,oldval) ({ __atomic_check_size((mem)); typeof ((__typeof (*(mem))) *(mem)) __atg2_oldval = (oldval); !__atomic_compare_exchange_n (mem, (void *) &__atg2_oldval, newval, 1, __ATOMIC_ACQUIRE, __ATOMIC_RELAXED); })





#define catomic_compare_and_exchange_bool_acq(mem,newval,oldval) atomic_compare_and_exchange_bool_acq (mem, newval, oldval)


/* Store NEWVALUE in *MEM and return the old value.  */
#define atomic_exchange_acq(mem,newvalue) ({ __atomic_check_size((mem)); __atomic_exchange_n (mem, newvalue, __ATOMIC_ACQUIRE); })


#define atomic_exchange_rel(mem,newvalue) ({ __atomic_check_size((mem)); __atomic_exchange_n (mem, newvalue, __ATOMIC_RELEASE); })



/* Add VALUE to *MEM and return the old value of *MEM.  */
/* The gcc builtin uses load-and-add instruction on z196 zarch and higher cpus
   instead of a loop with compare-and-swap instruction.  */
#define atomic_exchange_and_add_acq(mem,operand) ({ __atomic_check_size((mem)); __atomic_fetch_add ((mem), (operand), __ATOMIC_ACQUIRE); })


#define atomic_exchange_and_add_rel(mem,operand) ({ __atomic_check_size((mem)); __atomic_fetch_add ((mem), (operand), __ATOMIC_RELEASE); })


#define catomic_exchange_and_add(mem,value) atomic_exchange_and_add (mem, value)


/* Atomically *mem |= mask and return the old value of *mem.  */
/* The gcc builtin uses load-and-or instruction on z196 zarch and higher cpus
   instead of a loop with compare-and-swap instruction.  */
#define atomic_or_val(mem,operand) ({ __atomic_check_size((mem)); __atomic_fetch_or ((mem), (operand), __ATOMIC_ACQUIRE); })


/* Atomically *mem |= mask.  */
#define atomic_or(mem,mask) do { atomic_or_val (mem, mask); } while (0)



#define catomic_or(mem,mask) atomic_or (mem, mask)


/* Atomically *mem |= 1 << bit and return true if the bit was set in old value
   of *mem.  */
/* The load-and-or instruction is used on z196 zarch and higher cpus
   instead of a loop with compare-and-swap instruction.  */
#define atomic_bit_test_set(mem,bit) ({ __typeof (*(mem)) __atg14_old; __typeof (mem) __atg14_memp = (mem); __typeof (*(mem)) __atg14_mask = ((__typeof (*(mem))) 1 << (bit)); __atg14_old = atomic_or_val (__atg14_memp, __atg14_mask); __atg14_old & __atg14_mask; })






/* Atomically *mem &= mask and return the old value of *mem.  */
/* The gcc builtin uses load-and-and instruction on z196 zarch and higher cpus
   instead of a loop with compare-and-swap instruction.  */
#define atomic_and_val(mem,operand) ({ __atomic_check_size((mem)); __atomic_fetch_and ((mem), (operand), __ATOMIC_ACQUIRE); })


/* Atomically *mem &= mask.  */
#define atomic_and(mem,mask) do { atomic_and_val (mem, mask); } while (0)



#define catomic_and(mem,mask) atomic_and(mem, mask)
# 50 "../include/atomic.h" 2

/* Wrapper macros to call pre_NN_post (mem, ...) where NN is the
   bit width of *MEM.  The calling macro puts parens around MEM
   and following args.  */
#define __atomic_val_bysize(pre,post,mem,...) ({ __typeof ((__typeof (*(mem))) *(mem)) __atg1_result; if (sizeof (*mem) == 1) __atg1_result = pre ##_8_ ##post (mem, __VA_ARGS__); else if (sizeof (*mem) == 2) __atg1_result = pre ##_16_ ##post (mem, __VA_ARGS__); else if (sizeof (*mem) == 4) __atg1_result = pre ##_32_ ##post (mem, __VA_ARGS__); else if (sizeof (*mem) == 8) __atg1_result = pre ##_64_ ##post (mem, __VA_ARGS__); else abort (); __atg1_result; })
# 69 "../include/atomic.h"
#define __atomic_bool_bysize(pre,post,mem,...) ({ int __atg2_result; if (sizeof (*mem) == 1) __atg2_result = pre ##_8_ ##post (mem, __VA_ARGS__); else if (sizeof (*mem) == 2) __atg2_result = pre ##_16_ ##post (mem, __VA_ARGS__); else if (sizeof (*mem) == 4) __atg2_result = pre ##_32_ ##post (mem, __VA_ARGS__); else if (sizeof (*mem) == 8) __atg2_result = pre ##_64_ ##post (mem, __VA_ARGS__); else abort (); __atg2_result; })
# 84 "../include/atomic.h"


/* Atomically store NEWVAL in *MEM if *MEM is equal to OLDVAL.
   Return the old *MEM value.  */














#define catomic_compare_and_exchange_val_acq(mem,newval,oldval) atomic_compare_and_exchange_val_acq (mem, newval, oldval)










#define catomic_compare_and_exchange_val_rel(mem,newval,oldval) atomic_compare_and_exchange_val_rel (mem, newval, oldval)











/* Atomically store NEWVAL in *MEM if *MEM is equal to OLDVAL.
   Return zero if *MEM was changed or non-zero if no exchange happened.  */
# 142 "../include/atomic.h"


# 159 "../include/atomic.h"


/* Store NEWVALUE in *MEM and return the old value.  */
# 176 "../include/atomic.h"






/* Add VALUE to *MEM and return the old value of *MEM.  */
# 204 "../include/atomic.h"







#define atomic_exchange_and_add(mem,value) atomic_exchange_and_add_acq(mem, value)



# 231 "../include/atomic.h"



#define atomic_max(mem,value) do { __typeof (*(mem)) __atg8_oldval; __typeof (mem) __atg8_memp = (mem); __typeof (*(mem)) __atg8_value = (value); do { __atg8_oldval = *__atg8_memp; if (__atg8_oldval >= __atg8_value) break; } while (__builtin_expect (atomic_compare_and_exchange_bool_acq (__atg8_memp, __atg8_value, __atg8_oldval), 0)); } while (0)
# 247 "../include/atomic.h"




#define catomic_max(mem,value) do { __typeof (*(mem)) __atg9_oldv; __typeof (mem) __atg9_memp = (mem); __typeof (*(mem)) __atg9_value = (value); do { __atg9_oldv = *__atg9_memp; if (__atg9_oldv >= __atg9_value) break; } while (__builtin_expect (catomic_compare_and_exchange_bool_acq (__atg9_memp, __atg9_value, __atg9_oldv), 0)); } while (0)
# 265 "../include/atomic.h"




#define atomic_min(mem,value) do { __typeof (*(mem)) __atg10_oldval; __typeof (mem) __atg10_memp = (mem); __typeof (*(mem)) __atg10_value = (value); do { __atg10_oldval = *__atg10_memp; if (__atg10_oldval <= __atg10_value) break; } while (__builtin_expect (atomic_compare_and_exchange_bool_acq (__atg10_memp, __atg10_value, __atg10_oldval), 0)); } while (0)
# 283 "../include/atomic.h"




#define atomic_add(mem,value) (void) atomic_exchange_and_add ((mem), (value))




#define catomic_add(mem,value) (void) catomic_exchange_and_add ((mem), (value))





#define atomic_increment(mem) atomic_add ((mem), 1)




#define catomic_increment(mem) catomic_add ((mem), 1)




#define atomic_increment_val(mem) (atomic_exchange_and_add ((mem), 1) + 1)




#define catomic_increment_val(mem) (catomic_exchange_and_add ((mem), 1) + 1)



/* Add one to *MEM and return true iff it's now zero.  */

#define atomic_increment_and_test(mem) (atomic_exchange_and_add ((mem), 1) + 1 == 0)





#define atomic_decrement(mem) atomic_add ((mem), -1)




#define catomic_decrement(mem) catomic_add ((mem), -1)




#define atomic_decrement_val(mem) (atomic_exchange_and_add ((mem), -1) - 1)




#define catomic_decrement_val(mem) (catomic_exchange_and_add ((mem), -1) - 1)



/* Subtract 1 from *MEM and return true iff it's now zero.  */

#define atomic_decrement_and_test(mem) (atomic_exchange_and_add ((mem), -1) == 1)




/* Decrement *MEM if it is > 0, and return the old value.  */

#define atomic_decrement_if_positive(mem) ({ __typeof (*(mem)) __atg11_oldval; __typeof (mem) __atg11_memp = (mem); do { __atg11_oldval = *__atg11_memp; if (__glibc_unlikely (__atg11_oldval <= 0)) break; } while (__builtin_expect (atomic_compare_and_exchange_bool_acq (__atg11_memp, __atg11_oldval - 1, __atg11_oldval), 0)); __atg11_oldval; })
# 368 "../include/atomic.h"




#define atomic_add_negative(mem,value) ({ __typeof (value) __atg12_value = (value); atomic_exchange_and_add (mem, __atg12_value) < -__atg12_value; })






#define atomic_add_zero(mem,value) ({ __typeof (value) __atg13_value = (value); atomic_exchange_and_add (mem, __atg13_value) == -__atg13_value; })






#define atomic_bit_set(mem,bit) (void) atomic_bit_test_set(mem, bit)




# 406 "../include/atomic.h"

/* Atomically *mem &= mask.  */
# 423 "../include/atomic.h"

# 439 "../include/atomic.h"

/* Atomically *mem &= mask and return the old value of *mem.  */
# 456 "../include/atomic.h"

/* Atomically *mem |= mask and return the old value of *mem.  */
# 473 "../include/atomic.h"

# 489 "../include/atomic.h"

/* Atomically *mem |= mask and return the old value of *mem.  */
# 506 "../include/atomic.h"


#define atomic_full_barrier() __asm ("" ::: "memory")




#define atomic_read_barrier() atomic_full_barrier ()




#define atomic_write_barrier() atomic_full_barrier ()




#define atomic_forced_read(x) ({ __typeof (x) __x; __asm ("" : "=r" (__x) : "0" (x)); __x; })



/* This is equal to 1 iff the architecture supports 64b atomic operations.  */




/* The following functions are a subset of the atomic operations provided by
   C11.  Usually, a function named atomic_OP_MO(args) is equivalent to C11's
   atomic_OP_explicit(args, memory_order_MO); exceptions noted below.  */

/* Each arch can request to use compiler built-ins for C11 atomics.  If it
   does, all atomics will be based on these.  */


/* We require 32b atomic operations; some archs also support 64b atomic
   operations.  */
void __atomic_link_error (void);

#define __atomic_check_size(mem) if ((sizeof (*mem) != 4) && (sizeof (*mem) != 8)) __atomic_link_error ();







/* We additionally provide 8b and 16b atomic loads and stores; we do not yet
   need other atomic operations of such sizes, and restricting the support to
   loads and stores makes this easier for archs that do not have native
   support for atomic operations to less-than-word-sized data.  */

#define __atomic_check_size_ls(mem) if ((sizeof (*mem) != 1) && (sizeof (*mem) != 2) && (sizeof (*mem) != 4) && (sizeof (*mem) != 8)) __atomic_link_error ();









#define atomic_thread_fence_acquire() __atomic_thread_fence (__ATOMIC_ACQUIRE)

#define atomic_thread_fence_release() __atomic_thread_fence (__ATOMIC_RELEASE)

#define atomic_thread_fence_seq_cst() __atomic_thread_fence (__ATOMIC_SEQ_CST)


#define atomic_load_relaxed(mem) ({ __atomic_check_size_ls((mem)); __atomic_load_n ((mem), __ATOMIC_RELAXED); })


#define atomic_load_acquire(mem) ({ __atomic_check_size_ls((mem)); __atomic_load_n ((mem), __ATOMIC_ACQUIRE); })



#define atomic_store_relaxed(mem,val) do { __atomic_check_size_ls((mem)); __atomic_store_n ((mem), (val), __ATOMIC_RELAXED); } while (0)




#define atomic_store_release(mem,val) do { __atomic_check_size_ls((mem)); __atomic_store_n ((mem), (val), __ATOMIC_RELEASE); } while (0)





/* On failure, this CAS has memory_order_relaxed semantics.  */
#define atomic_compare_exchange_weak_relaxed(mem,expected,desired) ({ __atomic_check_size((mem)); __atomic_compare_exchange_n ((mem), (expected), (desired), 1, __ATOMIC_RELAXED, __ATOMIC_RELAXED); })



#define atomic_compare_exchange_weak_acquire(mem,expected,desired) ({ __atomic_check_size((mem)); __atomic_compare_exchange_n ((mem), (expected), (desired), 1, __ATOMIC_ACQUIRE, __ATOMIC_RELAXED); })



#define atomic_compare_exchange_weak_release(mem,expected,desired) ({ __atomic_check_size((mem)); __atomic_compare_exchange_n ((mem), (expected), (desired), 1, __ATOMIC_RELEASE, __ATOMIC_RELAXED); })




#define atomic_exchange_relaxed(mem,desired) ({ __atomic_check_size((mem)); __atomic_exchange_n ((mem), (desired), __ATOMIC_RELAXED); })


#define atomic_exchange_acquire(mem,desired) ({ __atomic_check_size((mem)); __atomic_exchange_n ((mem), (desired), __ATOMIC_ACQUIRE); })


#define atomic_exchange_release(mem,desired) ({ __atomic_check_size((mem)); __atomic_exchange_n ((mem), (desired), __ATOMIC_RELEASE); })



#define atomic_fetch_add_relaxed(mem,operand) ({ __atomic_check_size((mem)); __atomic_fetch_add ((mem), (operand), __ATOMIC_RELAXED); })


#define atomic_fetch_add_acquire(mem,operand) ({ __atomic_check_size((mem)); __atomic_fetch_add ((mem), (operand), __ATOMIC_ACQUIRE); })


#define atomic_fetch_add_release(mem,operand) ({ __atomic_check_size((mem)); __atomic_fetch_add ((mem), (operand), __ATOMIC_RELEASE); })


#define atomic_fetch_add_acq_rel(mem,operand) ({ __atomic_check_size((mem)); __atomic_fetch_add ((mem), (operand), __ATOMIC_ACQ_REL); })



#define atomic_fetch_and_relaxed(mem,operand) ({ __atomic_check_size((mem)); __atomic_fetch_and ((mem), (operand), __ATOMIC_RELAXED); })


#define atomic_fetch_and_acquire(mem,operand) ({ __atomic_check_size((mem)); __atomic_fetch_and ((mem), (operand), __ATOMIC_ACQUIRE); })


#define atomic_fetch_and_release(mem,operand) ({ __atomic_check_size((mem)); __atomic_fetch_and ((mem), (operand), __ATOMIC_RELEASE); })



#define atomic_fetch_or_relaxed(mem,operand) ({ __atomic_check_size((mem)); __atomic_fetch_or ((mem), (operand), __ATOMIC_RELAXED); })


#define atomic_fetch_or_acquire(mem,operand) ({ __atomic_check_size((mem)); __atomic_fetch_or ((mem), (operand), __ATOMIC_ACQUIRE); })


#define atomic_fetch_or_release(mem,operand) ({ __atomic_check_size((mem)); __atomic_fetch_or ((mem), (operand), __ATOMIC_RELEASE); })



#define atomic_fetch_xor_release(mem,operand) ({ __atomic_check_size((mem)); __atomic_fetch_xor ((mem), (operand), __ATOMIC_RELEASE); })



# 813 "../include/atomic.h"

/* This operation does not affect synchronization semantics but can be used
   in the body of a spin loop to potentially improve its efficiency.  */

#define atomic_spin_nop() do { } while (0)


/* ATOMIC_EXCHANGE_USES_CAS is non-zero if atomic_exchange operations
   are implemented based on a CAS loop; otherwise, this is zero and we assume
   that the atomic_exchange operations could provide better performance
   than a CAS loop.  */




# 29 "../include/list.h" 2

/* Define a variable with the head and tail of the list.  */
#define LIST_HEAD(name) list_t name = { &(name), &(name) }


/* Initialize a new list head.  */
#define INIT_LIST_HEAD(ptr) (ptr)->next = (ptr)->prev = (ptr)



/* Add new element at the head of the list.  */
static inline void
list_add (list_t *newp, list_t *head)
{
  newp->next = head->next;
  newp->prev = head;
  head->next->prev = newp;
  atomic_write_barrier ();
  head->next = newp;
}


/* Remove element from list.  */
static inline void
list_del (list_t *elem)
{
  elem->next->prev = elem->prev;
  elem->prev->next = elem->next;
}


/* Join two lists.  */
static inline void
list_splice (list_t *add, list_t *head)
{
  /* Do nothing if the list which gets added is empty.  */
  if (add != add->next)
    {
      add->next->prev = head;
      add->prev->next = head->next;
      head->next->prev = add->prev;
      head->next = add->next;
    }
}


/* Get typed element from list at a given position.  */
#define list_entry(ptr,type,member) ((type *) ((char *) (ptr) - (unsigned long) (&((type *) 0)->member)))




/* Iterate forward over the elements of the list.  */
#define list_for_each(pos,head) for (pos = (head)->next; pos != (head); pos = pos->next)



/* Iterate forward over the elements of the list.  */
#define list_for_each_prev(pos,head) for (pos = (head)->prev; pos != (head); pos = pos->prev)



/* Iterate backwards over the elements list.  The list elements can be
   removed from the list while doing this.  */
#define list_for_each_prev_safe(pos,p,head) for (pos = (head)->prev, p = pos->prev; pos != (head); pos = p, p = pos->prev)




# 29 "../sysdeps/s390/nptl/tls.h" 2
# 1 "../sysdeps/unix/sysv/linux/s390/kernel-features.h" 1
/* Set flags signalling availability of kernel features based on given
   kernel version number.  S/390 version.
   Copyright (C) 1999-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/* Direct socketcalls available with kernel 4.3.  */
# 30 "../sysdeps/unix/sysv/linux/s390/kernel-features.h"



#undef __ASSUME_ACCEPT_SYSCALL


#undef __ASSUME_ACCEPT4_SYSCALL
#undef __ASSUME_RECVMMSG_SYSCALL
#undef __ASSUME_SENDMMSG_SYSCALL
#undef __ASSUME_SENDMSG_SYSCALL
#undef __ASSUME_RECVMSG_SYSCALL
#undef __ASSUME_CONNECT_SYSCALL
#undef __ASSUME_RECVFROM_SYSCALL
#undef __ASSUME_SENDTO_SYSCALL
#undef __ASSUME_GETSOCKOPT_SYSCALL
#undef __ASSUME_SETSOCKOPT_SYSCALL


/* s390 only supports ipc syscall before 5.1.  */

#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
#undef __ASSUME_SYSVIPC_DEFAULT_IPC_64





#undef __ASSUME_CLONE_DEFAULT
#define __ASSUME_CLONE_BACKWARDS2 
# 30 "../sysdeps/s390/nptl/tls.h" 2
# 1 "../sysdeps/generic/dl-dtv.h" 1
/* Generic declarations for DTV-based TLS handling in the dynamic linker.
   Copyright (C) 2002-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _DL_DTV_H 

struct dtv_pointer
{
  void *val;                    /* Pointer to data, or TLS_DTV_UNALLOCATED.  */
  void *to_free;                /* Unaligned pointer, for deallocation.  */
};

/* Type for the dtv.  */
typedef union dtv
{
  size_t counter;
  struct dtv_pointer pointer;
} dtv_t;

/* Value used for dtv entries for which the allocation is delayed.  */
#define TLS_DTV_UNALLOCATED ((void *) -1l)

# 31 "../sysdeps/s390/nptl/tls.h" 2

typedef struct
{
  void *tcb;		/* Pointer to the TCB.  Not necessary the
			   thread descriptor used by libpthread.  */
  dtv_t *dtv;
  void *self;		/* Pointer to the thread descriptor.  */
  int multiple_threads;
  uintptr_t sysinfo;
  uintptr_t stack_guard;
  int gscope_flag;
  int __glibc_reserved1;
  /* GCC split stack support.  */
  void *__private_ss;
} tcbhead_t;










/* Alignment requirement for the stack.  For IA-32 this is governed by
   the SSE memory functions.  */
#define STACK_ALIGN 16


/* Get system call information.  */
# 1 "../sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h" 1
/* Assembler macros for 64 bit S/390.
   Copyright (C) 2001-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

# 63 "../sysdeps/s390/nptl/tls.h" 2

/* This is the size of the initial TCB.  Can't be just sizeof (tcbhead_t),
   because NPTL getpid, __libc_alloca_cutoff etc. need (almost) the whole
   struct pthread even when not linked with -lpthread.  */
#define TLS_INIT_TCB_SIZE sizeof (struct pthread)

/* Alignment requirements for the initial TCB.  */
#define TLS_INIT_TCB_ALIGN __alignof__ (struct pthread)

/* This is the size of the TCB.  */
#define TLS_TCB_SIZE sizeof (struct pthread)

/* Alignment requirements for the TCB.  */
#define TLS_TCB_ALIGN __alignof__ (struct pthread)

/* The TCB can have any size and the memory following the address the
   thread pointer points to is unspecified.  Allocate the TCB there.  */
#define TLS_TCB_AT_TP 1
#define TLS_DTV_AT_TP 0

/* Get the thread descriptor definition.  */
# 1 "../nptl/descr.h" 1
/* Copyright (C) 2002-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _DESCR_H 1

# 1 "../include/limits.h" 1
/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/*
 *	ISO C99 Standard: 7.10/5.2.4.2.1 Sizes of integer types	<limits.h>
 */

# 116 "../include/limits.h"

 /* Get the compiler's limits.h, which defines almost all the ISO constants.

    We put this #include_next outside the double inclusion check because
    it should be possible to include this file more than once and still get
    the definitions from gcc's header.  */





/* The <limits.h> files in some gcc versions don't define LLONG_MIN,
   LLONG_MAX, and ULLONG_MAX.  Instead only the values gcc defined for
   ages are available.  */












/* The integer width macros are not defined by GCC's <limits.h> before
   GCC 7, or if _GNU_SOURCE rather than
   __STDC_WANT_IEC_60559_BFP_EXT__ is used to enable this feature.  */




































/* The macros for _Bool are not defined by GCC's <limits.h> before GCC
   11, or if _GNU_SOURCE is defined rather than enabling C2x support
   with -std.  */










/* POSIX adds things to <limits.h>.  */
# 1 "../include/bits/posix1_lim.h" 1
# 196 "../include/limits.h" 2



# 1 "../include/bits/posix2_lim.h" 1
# 200 "../include/limits.h" 2




# 22 "../nptl/descr.h" 2
# 1 "../include/sched.h" 1

# 1 "../posix/sched.h" 1
/* Definitions for POSIX 1003.1b-1993 (aka POSIX.4) scheduling interface.
   Copyright (C) 1996-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _SCHED_H 1



/* Get type definitions.  */
# 1 "../include/bits/types.h" 1
# 26 "../posix/sched.h" 2

#define __need_size_t 
#define __need_NULL 
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2021 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */






/* Any one of these symbols __need_* means that GNU libc
   wants us just to define one data type.  So don't define
   the symbols that indicate this file's entire job has been done.  */
# 44 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4


/* This avoids lossage on SunOS but only if stdtypes.h comes first.
   There's no way to win with the other order!  Sun lossage.  */









# 85 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
   Just ignore it.  */




/* On VxWorks, <type/vxTypesBase.h> may have defined macros like
   _TYPE_size_t which will typedef size_t.  fixincludes patched the
   vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
   not defined, and so that defining this macro defines _GCC_SIZE_T.
   If we find that the macros are still defined at this point, we must
   invoke them so that the type is defined as expected.  */













/* In case nobody has defined these types, but we aren't running under
   GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
   __WCHAR_TYPE__ have reasonable values.  This can happen if the
   parts of GCC is compiled by an older compiler, that actually
   include gstddef.h, such as collect2.  */

/* Signed type of difference of two pointers.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 153 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* If this symbol has done its job, get rid of it.  */
#undef __need_ptrdiff_t



/* Unsigned type of `sizeof' something.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 231 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
#undef __need_size_t



/* Wide character type.
   Locale-writers should change this as necessary to
   be big enough to hold unique values not between 0 and 127,
   and not (wchar_t) -1, for each defined multibyte character.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 340 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
#undef __need_wchar_t


# 354 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

# 384 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4



/* A null pointer constant.  */


#undef NULL




#define NULL ((void *)0)





#undef __need_NULL



/* Offset of member MEMBER in a struct of type TYPE. */
#define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)



# 428 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4











# 30 "../posix/sched.h" 2

# 1 "../include/bits/types/time_t.h" 1
# 32 "../posix/sched.h" 2
# 1 "../include/bits/types/struct_timespec.h" 1
# 33 "../posix/sched.h" 2









/* Get system specific constant and data structure definitions.  */
# 1 "../sysdeps/unix/sysv/linux/bits/sched.h" 1
/* Definitions of constants and data structure for POSIX 1003.1b-1993
   scheduling interface.
   Copyright (C) 1996-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _BITS_SCHED_H 1





/* Scheduling algorithms.  */
#define SCHED_OTHER 0
#define SCHED_FIFO 1
#define SCHED_RR 2

#define SCHED_BATCH 3
#define SCHED_ISO 4
#define SCHED_IDLE 5
#define SCHED_DEADLINE 6

#define SCHED_RESET_ON_FORK 0x40000000



/* Cloning flags.  */
#define CSIGNAL 0x000000ff
#define CLONE_VM 0x00000100
#define CLONE_FS 0x00000200
#define CLONE_FILES 0x00000400
#define CLONE_SIGHAND 0x00000800
#define CLONE_PIDFD 0x00001000

#define CLONE_PTRACE 0x00002000
#define CLONE_VFORK 0x00004000

#define CLONE_PARENT 0x00008000

#define CLONE_THREAD 0x00010000
#define CLONE_NEWNS 0x00020000
#define CLONE_SYSVSEM 0x00040000
#define CLONE_SETTLS 0x00080000
#define CLONE_PARENT_SETTID 0x00100000

#define CLONE_CHILD_CLEARTID 0x00200000

#define CLONE_DETACHED 0x00400000
#define CLONE_UNTRACED 0x00800000

#define CLONE_CHILD_SETTID 0x01000000

#define CLONE_NEWCGROUP 0x02000000
#define CLONE_NEWUTS 0x04000000
#define CLONE_NEWIPC 0x08000000
#define CLONE_NEWUSER 0x10000000
#define CLONE_NEWPID 0x20000000
#define CLONE_NEWNET 0x40000000
#define CLONE_IO 0x80000000


# 1 "../bits/types/struct_sched_param.h" 1
/* Sched parameter structure.  Generic version.
   Copyright (C) 1996-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library;  if not, see
   <https://www.gnu.org/licenses/>.  */


#define _BITS_TYPES_STRUCT_SCHED_PARAM 1

/* Data structure to describe a process' schedulability.  */
struct sched_param
{
  int sched_priority;
};

# 77 "../sysdeps/unix/sysv/linux/bits/sched.h" 2

__BEGIN_DECLS


/* Clone current process.  */
extern int clone (int (*__fn) (void *__arg), void *__child_stack,
		  int __flags, void *__arg, ...) __THROW;

/* Unshare the specified resources.  */
extern int unshare (int __flags) __THROW;

/* Get index of currently used CPU.  */
extern int sched_getcpu (void) __THROW;

/* Get currently used CPU and NUMA node.  */
extern int getcpu (unsigned int *, unsigned int *) __THROW;

/* Switch process to namespace of type NSTYPE indicated by FD.  */
extern int setns (int __fd, int __nstype) __THROW;


__END_DECLS

# 44 "../posix/sched.h" 2
# 1 "../include/bits/cpu-set.h" 1

# 1 "../posix/bits/cpu-set.h" 1
/* Definition of the cpu_set_t structure used by the POSIX 1003.1b-1993
   scheduling interface.
   Copyright (C) 1996-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _BITS_CPU_SET_H 1





/* Size definition for CPU sets.  */
#define __CPU_SETSIZE 1024
#define __NCPUBITS (8 * sizeof (__cpu_mask))

/* Type for array elements in 'cpu_set_t'.  */
typedef __CPU_MASK_TYPE __cpu_mask;

/* Basic access functions.  */
#define __CPUELT(cpu) ((cpu) / __NCPUBITS)
#define __CPUMASK(cpu) ((__cpu_mask) 1 << ((cpu) % __NCPUBITS))

/* Data structure to describe CPU mask.  */
typedef struct
{
  __cpu_mask __bits[__CPU_SETSIZE / __NCPUBITS];
} cpu_set_t;

/* Access functions for CPU masks.  */

#define __CPU_ZERO_S(setsize,cpusetp) do __builtin_memset (cpusetp, '\0', setsize); while (0)

# 58 "../posix/bits/cpu-set.h"
#define __CPU_SET_S(cpu,setsize,cpusetp) (__extension__ ({ size_t __cpu = (cpu); __cpu / 8 < (setsize) ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] |= __CPUMASK (__cpu)) : 0; }))






#define __CPU_CLR_S(cpu,setsize,cpusetp) (__extension__ ({ size_t __cpu = (cpu); __cpu / 8 < (setsize) ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] &= ~__CPUMASK (__cpu)) : 0; }))






#define __CPU_ISSET_S(cpu,setsize,cpusetp) (__extension__ ({ size_t __cpu = (cpu); __cpu / 8 < (setsize) ? ((((const __cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] & __CPUMASK (__cpu))) != 0 : 0; }))







#define __CPU_COUNT_S(setsize,cpusetp) __sched_cpucount (setsize, cpusetp)



#define __CPU_EQUAL_S(setsize,cpusetp1,cpusetp2) (__builtin_memcmp (cpusetp1, cpusetp2, setsize) == 0)

# 98 "../posix/bits/cpu-set.h"

#define __CPU_OP_S(setsize,destset,srcset1,srcset2,op) (__extension__ ({ cpu_set_t *__dest = (destset); const __cpu_mask *__arr1 = (srcset1)->__bits; const __cpu_mask *__arr2 = (srcset2)->__bits; size_t __imax = (setsize) / sizeof (__cpu_mask); size_t __i; for (__i = 0; __i < __imax; ++__i) ((__cpu_mask *) __dest->__bits)[__i] = __arr1[__i] op __arr2[__i]; __dest; }))
# 109 "../posix/bits/cpu-set.h"

#define __CPU_ALLOC_SIZE(count) ((((count) + __NCPUBITS - 1) / __NCPUBITS) * sizeof (__cpu_mask))

#define __CPU_ALLOC(count) __sched_cpualloc (count)
#define __CPU_FREE(cpuset) __sched_cpufree (cpuset)

__BEGIN_DECLS

extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp)
     __THROW;
extern cpu_set_t *__sched_cpualloc (size_t __count) __THROW __wur;
extern void __sched_cpufree (cpu_set_t *__set) __THROW;

__END_DECLS

# 3 "../include/bits/cpu-set.h" 2


int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp);
libc_hidden_proto (__sched_cpucount)


# 45 "../posix/sched.h" 2

/* Backward compatibility.  */
#define sched_priority sched_priority
#define __sched_priority sched_priority


__BEGIN_DECLS

/* Set scheduling parameters for a process.  */
extern int sched_setparam (__pid_t __pid, const struct sched_param *__param)
     __THROW;

/* Retrieve scheduling parameters for a particular process.  */
extern int sched_getparam (__pid_t __pid, struct sched_param *__param) __THROW;

/* Set scheduling algorithm and/or parameters for a process.  */
extern int sched_setscheduler (__pid_t __pid, int __policy,
			       const struct sched_param *__param) __THROW;

/* Retrieve scheduling algorithm for a particular purpose.  */
extern int sched_getscheduler (__pid_t __pid) __THROW;

/* Yield the processor.  */
extern int sched_yield (void) __THROW;

/* Get maximum priority value for a scheduler.  */
extern int sched_get_priority_max (int __algorithm) __THROW;

/* Get minimum priority value for a scheduler.  */
extern int sched_get_priority_min (int __algorithm) __THROW;

/* Get the SCHED_RR interval for the named process.  */

extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
# 88 "../posix/sched.h"


/* Access macros for `cpu_set'.  */
#define CPU_SETSIZE __CPU_SETSIZE
#define CPU_SET(cpu,cpusetp) __CPU_SET_S (cpu, sizeof (cpu_set_t), cpusetp)
#define CPU_CLR(cpu,cpusetp) __CPU_CLR_S (cpu, sizeof (cpu_set_t), cpusetp)
#define CPU_ISSET(cpu,cpusetp) __CPU_ISSET_S (cpu, sizeof (cpu_set_t), cpusetp)

#define CPU_ZERO(cpusetp) __CPU_ZERO_S (sizeof (cpu_set_t), cpusetp)
#define CPU_COUNT(cpusetp) __CPU_COUNT_S (sizeof (cpu_set_t), cpusetp)

#define CPU_SET_S(cpu,setsize,cpusetp) __CPU_SET_S (cpu, setsize, cpusetp)
#define CPU_CLR_S(cpu,setsize,cpusetp) __CPU_CLR_S (cpu, setsize, cpusetp)
#define CPU_ISSET_S(cpu,setsize,cpusetp) __CPU_ISSET_S (cpu, setsize, cpusetp)

#define CPU_ZERO_S(setsize,cpusetp) __CPU_ZERO_S (setsize, cpusetp)
#define CPU_COUNT_S(setsize,cpusetp) __CPU_COUNT_S (setsize, cpusetp)

#define CPU_EQUAL(cpusetp1,cpusetp2) __CPU_EQUAL_S (sizeof (cpu_set_t), cpusetp1, cpusetp2)

#define CPU_EQUAL_S(setsize,cpusetp1,cpusetp2) __CPU_EQUAL_S (setsize, cpusetp1, cpusetp2)


#define CPU_AND(destset,srcset1,srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, &)

#define CPU_OR(destset,srcset1,srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, |)

#define CPU_XOR(destset,srcset1,srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, ^)

#define CPU_AND_S(setsize,destset,srcset1,srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, &)

#define CPU_OR_S(setsize,destset,srcset1,srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, |)

#define CPU_XOR_S(setsize,destset,srcset1,srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, ^)


#define CPU_ALLOC_SIZE(count) __CPU_ALLOC_SIZE (count)
#define CPU_ALLOC(count) __CPU_ALLOC (count)
#define CPU_FREE(cpuset) __CPU_FREE (cpuset)


/* Set the CPU affinity for a task */
extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize,
			      const cpu_set_t *__cpuset) __THROW;

/* Get the CPU affinity for a task */
extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
			      cpu_set_t *__cpuset) __THROW;


__END_DECLS

# 3 "../include/sched.h" 2


/* Now define the internal interfaces.  */
extern int __sched_setparam (__pid_t __pid,
			     const struct sched_param *__param);
libc_hidden_proto (__sched_setparam)
extern int __sched_getparam (__pid_t __pid, struct sched_param *__param);
libc_hidden_proto (__sched_getparam)
extern int __sched_setscheduler (__pid_t __pid, int __policy,
				 const struct sched_param *__param);
libc_hidden_proto (__sched_setscheduler)
extern int __sched_getscheduler (__pid_t __pid);
libc_hidden_proto (__sched_getscheduler)
extern int __sched_yield (void);
libc_hidden_proto (__sched_yield)
extern int __sched_get_priority_max (int __algorithm);
libc_hidden_proto (__sched_get_priority_max)
extern int __sched_get_priority_min (int __algorithm);
libc_hidden_proto (__sched_get_priority_min)
extern int __sched_rr_get_interval (__pid_t __pid, struct timespec *__t);

/* These are Linux specific.  */
extern int __clone (int (*__fn) (void *__arg), void *__child_stack,
		    int __flags, void *__arg, ...);
libc_hidden_proto (__clone)
extern int __clone2 (int (*__fn) (void *__arg), void *__child_stack_base,
		     size_t __child_stack_size, int __flags, void *__arg, ...);
libc_hidden_proto (__clone2)
/* NB: Can't use "__typeof__ (getcpu)" since getcpu is Linux specific
   and Hurd doesn't have it.  */
extern int __getcpu (unsigned int *, unsigned int *);
libc_hidden_proto (__getcpu)

# 23 "../nptl/descr.h" 2
# 1 "../include/setjmp.h" 1

# 1 "../setjmp/setjmp.h" 1
/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/*
 *	ISO C99 Standard: 7.13 Nonlocal jumps	<setjmp.h>
 */


#define _SETJMP_H 1



__BEGIN_DECLS

# 1 "../sysdeps/s390/bits/setjmp.h" 1
/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/* Define the machine-dependent type `jmp_buf'.  IBM s390 version.  */


#define __S390_SETJMP_H__ 





# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
/* Determine the wordsize from the preprocessor defines.  */


#define __WORDSIZE 64






#define __WORDSIZE_TIME64_COMPAT32 0
# 28 "../sysdeps/s390/bits/setjmp.h" 2



typedef struct __s390_jmp_buf
{
  /* We save registers 6-15.  */
  long int __gregs[10];


  /* We save fpu registers f8 - f15.  */
  long __fpregs[8];




} __jmp_buf[1];



# 30 "../setjmp/setjmp.h" 2
# 1 "../include/bits/types/struct___jmp_buf_tag.h" 1
# 1 "../setjmp/bits/types/struct___jmp_buf_tag.h" 1
/* Define struct __jmp_buf_tag.
   Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define __jmp_buf_tag_defined 1




/* Calling environment, plus possibly a saved signal mask.  */
struct __jmp_buf_tag
  {
    /* NOTE: The machine-dependent definitions of `__sigsetjmp'
       assume that a `jmp_buf' begins with a `__jmp_buf' and that
       `__mask_was_saved' follows it.  Do not move these members
       or add others before it.  */
    __jmp_buf __jmpbuf;		/* Calling environment.  */
    int __mask_was_saved;	/* Saved the signal mask?  */
    __sigset_t __saved_mask;	/* Saved signal mask.  */
  };

# 2 "../include/bits/types/struct___jmp_buf_tag.h" 2
# 31 "../setjmp/setjmp.h" 2

typedef struct __jmp_buf_tag jmp_buf[1];

/* Store the calling environment in ENV, also saving the signal mask.
   Return 0.  */
extern int setjmp (jmp_buf __env) __THROWNL;

/* Store the calling environment in ENV, also saving the
   signal mask if SAVEMASK is nonzero.  Return 0.
   This is the internal name for `sigsetjmp'.  */
extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) __THROWNL;

/* Store the calling environment in ENV, not saving the signal mask.
   Return 0.  */
extern int _setjmp (struct __jmp_buf_tag __env[1]) __THROWNL;

/* Do not save the signal mask.  This is equivalent to the `_setjmp'
   BSD function.  */
#define setjmp(env) _setjmp (env)


/* Jump to the environment saved in ENV, making the
   `setjmp' call there return VAL, or 1 if VAL is 0.  */
extern void longjmp (struct __jmp_buf_tag __env[1], int __val)
     __THROWNL __attribute__ ((__noreturn__));


/* Same.  Usually `_longjmp' is used with `_setjmp', which does not save
   the signal mask.  But it is how ENV was saved that determines whether
   `longjmp' restores the mask; `_longjmp' is just an alias.  */
extern void _longjmp (struct __jmp_buf_tag __env[1], int __val)
     __THROWNL __attribute__ ((__noreturn__));




/* Use the same type for `jmp_buf' and `sigjmp_buf'.
   The `__mask_was_saved' flag determines whether
   or not `longjmp' will restore the signal mask.  */
typedef struct __jmp_buf_tag sigjmp_buf[1];

/* Store the calling environment in ENV, also saving the
   signal mask if SAVEMASK is nonzero.  Return 0.  */
#define sigsetjmp(env,savemask) __sigsetjmp (env, savemask)

/* Jump to the environment saved in ENV, making the
   sigsetjmp call there return VAL, or 1 if VAL is 0.
   Restore the signal mask if that sigsetjmp call saved it.
   This is just an alias `longjmp'.  */
extern void siglongjmp (sigjmp_buf __env, int __val)
     __THROWNL __attribute__ ((__noreturn__));



/* Define helper functions to catch unsafe code.  */




__END_DECLS

# 3 "../include/setjmp.h" 2


/* Now define the internal interfaces.  */

/* Internal machine-dependent function to restore context sans signal mask.  */
extern void __longjmp (__jmp_buf __env, int __val)
     __attribute__ ((__noreturn__)) attribute_hidden;

extern void ____longjmp_chk (__jmp_buf __env, int __val)
     __attribute__ ((__noreturn__)) attribute_hidden;

/* Internal function to possibly save the current mask of blocked signals
   in ENV, and always set the flag saying whether or not it was saved.
   This is used by the machine-dependent definition of `__sigsetjmp'.
   Always returns zero, for convenience.  */
extern int __sigjmp_save (jmp_buf __env, int __savemask);

extern void _longjmp_unwind (jmp_buf env, int val);

extern void __libc_siglongjmp (sigjmp_buf env, int val)
	  __attribute__ ((noreturn)) attribute_hidden;
extern void __libc_longjmp (sigjmp_buf env, int val)
     __attribute__ ((noreturn)) attribute_hidden;

libc_hidden_proto (_setjmp)
libc_hidden_proto (__sigsetjmp)





/* Check jmp_buf sizes, alignments and offsets.  */
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2021 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */
# 36 "../include/setjmp.h" 2
# 1 "../sysdeps/unix/sysv/linux/s390/s390-64/jmp_buf-macros.h" 1
#define JMP_BUF_SIZE 280
#define SIGJMP_BUF_SIZE 280
#define JMP_BUF_ALIGN 8
#define SIGJMP_BUF_ALIGN 8
#define MASK_WAS_SAVED_OFFSET 144
#define SAVED_MASK_OFFSET 152
# 37 "../include/setjmp.h" 2

#define SJSTR_HELPER(x) #x
#define SJSTR(x) SJSTR_HELPER(x)

#define TEST_SIZE(type,size) _Static_assert (sizeof (type) == size, "size of " #type " != " SJSTR (size))



#define TEST_ALIGN(type,align) _Static_assert (__alignof__ (type) == align , "align of " #type " != " SJSTR (align))



#define TEST_OFFSET(type,member,offset) _Static_assert (offsetof (type, member) == offset, "offset of " #member " field of " #type " != " SJSTR (offset))




/* Check if jmp_buf have the expected sizes.  */
TEST_SIZE (jmp_buf, JMP_BUF_SIZE);
TEST_SIZE (sigjmp_buf, SIGJMP_BUF_SIZE);

/* Check if jmp_buf have the expected alignments.  */
TEST_ALIGN (jmp_buf, JMP_BUF_ALIGN);
TEST_ALIGN (sigjmp_buf, SIGJMP_BUF_ALIGN);

/* Check if internal fields in jmp_buf have the expected offsets.  */
TEST_OFFSET (struct __jmp_buf_tag, __mask_was_saved,
	     MASK_WAS_SAVED_OFFSET);
TEST_OFFSET (struct __jmp_buf_tag, __saved_mask,
	     SAVED_MASK_OFFSET);


# 24 "../nptl/descr.h" 2

# 1 "../include/sys/types.h" 1
# 26 "../nptl/descr.h" 2
# 1 "../sysdeps/s390/hp-timing.h" 1
/* High precision, low overhead timing functions.  s390 version.
   Copyright (C) 2019-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library.  If not, see
   <https://www.gnu.org/licenses/>.  */


#define _HP_TIMING_S390_H 1

/* The stckf instruction is available starting with z9-109 zarch CPUs.
   As there is no extra configure check for z9-109, the z10 one is used.  */

# 1 "../sysdeps/generic/hp-timing-common.h" 1
/* High precision, low overhead timing functions.  Generic version.
   Copyright (C) 1998-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/* In case a platform supports timers in the hardware the following macros
   and types must be defined:

   - HP_TIMING_INLINE: this macro is non-zero if the functionality is not
     implemented using function calls but instead uses some inlined code
     which might simply consist of a few assembler instructions.  We have to
     know this since we might want to use the macros here in places where we
     cannot make function calls.

   - hp_timing_t: This is the type for variables used to store the time
     values.  This type must be integral.

   - HP_TIMING_NOW: place timestamp for current time in variable given as
     parameter.
*/

/* The target supports hp-timing.  Share the common infrastructure.  */

# 1 "../include/string.h" 1



/* Some of these are defined as macros in the real string.h, so we must
   prototype them before including it.  */
# 1 "../include/sys/types.h" 1
# 7 "../include/string.h" 2
# 1 "../include/locale.h" 1

# 1 "../locale/locale.h" 1
/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/*
 *	ISO C99 Standard: 7.11 Localization	<locale.h>
 */


#define _LOCALE_H 1



#define __need_NULL 
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2021 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */






/* Any one of these symbols __need_* means that GNU libc
   wants us just to define one data type.  So don't define
   the symbols that indicate this file's entire job has been done.  */
# 44 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4


/* This avoids lossage on SunOS but only if stdtypes.h comes first.
   There's no way to win with the other order!  Sun lossage.  */









# 85 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
   Just ignore it.  */




/* On VxWorks, <type/vxTypesBase.h> may have defined macros like
   _TYPE_size_t which will typedef size_t.  fixincludes patched the
   vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
   not defined, and so that defining this macro defines _GCC_SIZE_T.
   If we find that the macros are still defined at this point, we must
   invoke them so that the type is defined as expected.  */













/* In case nobody has defined these types, but we aren't running under
   GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
   __WCHAR_TYPE__ have reasonable values.  This can happen if the
   parts of GCC is compiled by an older compiler, that actually
   include gstddef.h, such as collect2.  */

/* Signed type of difference of two pointers.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 153 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* If this symbol has done its job, get rid of it.  */
#undef __need_ptrdiff_t



/* Unsigned type of `sizeof' something.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 231 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
#undef __need_size_t



/* Wide character type.
   Locale-writers should change this as necessary to
   be big enough to hold unique values not between 0 and 127,
   and not (wchar_t) -1, for each defined multibyte character.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 340 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
#undef __need_wchar_t


# 354 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

# 384 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4



/* A null pointer constant.  */


#undef NULL




#define NULL ((void *)0)





#undef __need_NULL



/* Offset of member MEMBER in a struct of type TYPE. */
#define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)



# 428 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4











# 29 "../locale/locale.h" 2
# 1 "../include/bits/locale.h" 1
# 1 "../locale/bits/locale.h" 1
/* Definition of locale category symbol values.
   Copyright (C) 2001-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */






#define _BITS_LOCALE_H 1

#define __LC_CTYPE 0
#define __LC_NUMERIC 1
#define __LC_TIME 2
#define __LC_COLLATE 3
#define __LC_MONETARY 4
#define __LC_MESSAGES 5
#define __LC_ALL 6
#define __LC_PAPER 7
#define __LC_NAME 8
#define __LC_ADDRESS 9
#define __LC_TELEPHONE 10
#define __LC_MEASUREMENT 11
#define __LC_IDENTIFICATION 12

# 2 "../include/bits/locale.h" 2
# 30 "../locale/locale.h" 2

__BEGIN_DECLS

/* These are the possibilities for the first argument to setlocale.
   The code assumes that the lowest LC_* symbol has the value zero.  */
#define LC_CTYPE __LC_CTYPE
#define LC_NUMERIC __LC_NUMERIC
#define LC_TIME __LC_TIME
#define LC_COLLATE __LC_COLLATE
#define LC_MONETARY __LC_MONETARY
#define LC_MESSAGES __LC_MESSAGES
#define LC_ALL __LC_ALL
#define LC_PAPER __LC_PAPER
#define LC_NAME __LC_NAME
#define LC_ADDRESS __LC_ADDRESS
#define LC_TELEPHONE __LC_TELEPHONE
#define LC_MEASUREMENT __LC_MEASUREMENT
#define LC_IDENTIFICATION __LC_IDENTIFICATION


/* Structure giving information about numeric and monetary notation.  */
struct lconv
{
  /* Numeric (non-monetary) information.  */

  char *decimal_point;		/* Decimal point character.  */
  char *thousands_sep;		/* Thousands separator.  */
  /* Each element is the number of digits in each group;
     elements with higher indices are farther left.
     An element with value CHAR_MAX means that no further grouping is done.
     An element with value 0 means that the previous element is used
     for all groups farther left.  */
  char *grouping;

  /* Monetary information.  */

  /* First three chars are a currency symbol from ISO 4217.
     Fourth char is the separator.  Fifth char is '\0'.  */
  char *int_curr_symbol;
  char *currency_symbol;	/* Local currency symbol.  */
  char *mon_decimal_point;	/* Decimal point character.  */
  char *mon_thousands_sep;	/* Thousands separator.  */
  char *mon_grouping;		/* Like `grouping' element (above).  */
  char *positive_sign;		/* Sign for positive values.  */
  char *negative_sign;		/* Sign for negative values.  */
  char int_frac_digits;		/* Int'l fractional digits.  */
  char frac_digits;		/* Local fractional digits.  */
  /* 1 if currency_symbol precedes a positive value, 0 if succeeds.  */
  char p_cs_precedes;
  /* 1 iff a space separates currency_symbol from a positive value.  */
  char p_sep_by_space;
  /* 1 if currency_symbol precedes a negative value, 0 if succeeds.  */
  char n_cs_precedes;
  /* 1 iff a space separates currency_symbol from a negative value.  */
  char n_sep_by_space;
  /* Positive and negative sign positions:
     0 Parentheses surround the quantity and currency_symbol.
     1 The sign string precedes the quantity and currency_symbol.
     2 The sign string follows the quantity and currency_symbol.
     3 The sign string immediately precedes the currency_symbol.
     4 The sign string immediately follows the currency_symbol.  */
  char p_sign_posn;
  char n_sign_posn;

  /* 1 if int_curr_symbol precedes a positive value, 0 if succeeds.  */
  char int_p_cs_precedes;
  /* 1 iff a space separates int_curr_symbol from a positive value.  */
  char int_p_sep_by_space;
  /* 1 if int_curr_symbol precedes a negative value, 0 if succeeds.  */
  char int_n_cs_precedes;
  /* 1 iff a space separates int_curr_symbol from a negative value.  */
  char int_n_sep_by_space;
  /* Positive and negative sign positions:
     0 Parentheses surround the quantity and int_curr_symbol.
     1 The sign string precedes the quantity and int_curr_symbol.
     2 The sign string follows the quantity and int_curr_symbol.
     3 The sign string immediately precedes the int_curr_symbol.
     4 The sign string immediately follows the int_curr_symbol.  */
  char int_p_sign_posn;
  char int_n_sign_posn;
# 118 "../locale/locale.h"
};


/* Set and/or return the current locale.  */
extern char *setlocale (int __category, const char *__locale) __THROW;

/* Return the numeric/monetary information for the current locale.  */
extern struct lconv *localeconv (void) __THROW;



/* POSIX.1-2008 extends the locale interface with functions for
   explicit creation and manipulation of 'locale_t' objects
   representing locale contexts, and a set of parallel
   locale-sensitive text processing functions that take a locale_t
   argument.  This enables applications to work with data from
   multiple locales simultaneously and thread-safely.  */
# 1 "../include/bits/types/locale_t.h" 1
# 136 "../locale/locale.h" 2

/* Return a reference to a data structure representing a set of locale
   datasets.  Unlike for the CATEGORY parameter for `setlocale' the
   CATEGORY_MASK parameter here uses a single bit for each category,
   made by OR'ing together LC_*_MASK bits above.  */
extern locale_t newlocale (int __category_mask, const char *__locale,
			   locale_t __base) __THROW;

/* These are the bits that can be set in the CATEGORY_MASK argument to
   `newlocale'.  In the GNU implementation, LC_FOO_MASK has the value
   of (1 << LC_FOO), but this is not a part of the interface that
   callers can assume will be true.  */
#define LC_CTYPE_MASK (1 << __LC_CTYPE)
#define LC_NUMERIC_MASK (1 << __LC_NUMERIC)
#define LC_TIME_MASK (1 << __LC_TIME)
#define LC_COLLATE_MASK (1 << __LC_COLLATE)
#define LC_MONETARY_MASK (1 << __LC_MONETARY)
#define LC_MESSAGES_MASK (1 << __LC_MESSAGES)
#define LC_PAPER_MASK (1 << __LC_PAPER)
#define LC_NAME_MASK (1 << __LC_NAME)
#define LC_ADDRESS_MASK (1 << __LC_ADDRESS)
#define LC_TELEPHONE_MASK (1 << __LC_TELEPHONE)
#define LC_MEASUREMENT_MASK (1 << __LC_MEASUREMENT)
#define LC_IDENTIFICATION_MASK (1 << __LC_IDENTIFICATION)
#define LC_ALL_MASK (LC_CTYPE_MASK | LC_NUMERIC_MASK | LC_TIME_MASK | LC_COLLATE_MASK | LC_MONETARY_MASK | LC_MESSAGES_MASK | LC_PAPER_MASK | LC_NAME_MASK | LC_ADDRESS_MASK | LC_TELEPHONE_MASK | LC_MEASUREMENT_MASK | LC_IDENTIFICATION_MASK )
# 173 "../locale/locale.h"

/* Return a duplicate of the set of locale in DATASET.  All usage
   counters are increased if necessary.  */
extern locale_t duplocale (locale_t __dataset) __THROW;

/* Free the data associated with a locale dataset previously returned
   by a call to `setlocale_r'.  */
extern void freelocale (locale_t __dataset) __THROW;

/* Switch the current thread's locale to DATASET.
   If DATASET is null, instead just return the current setting.
   The special value LC_GLOBAL_LOCALE is the initial setting
   for all threads and can also be installed any time, meaning
   the thread uses the global settings controlled by `setlocale'.  */
extern locale_t uselocale (locale_t __dataset) __THROW;

/* This value can be passed to `uselocale' and may be returned by it.
   Passing this value to any other function has undefined behavior.  */
#define LC_GLOBAL_LOCALE ((locale_t) -1L)



__END_DECLS

# 3 "../include/locale.h" 2


extern __typeof (uselocale) __uselocale;

libc_hidden_proto (setlocale)
libc_hidden_proto (__uselocale)

/* This has to be changed whenever a new locale is defined.  */
#define __LC_LAST 13

extern struct loaded_l10nfile *_nl_locale_file_list[] attribute_hidden;

/* Locale object for C locale.  */
extern const struct __locale_struct _nl_C_locobj attribute_hidden;
#define _nl_C_locobj_ptr ((struct __locale_struct *) &_nl_C_locobj)

/* Now define the internal interfaces.  */
extern struct lconv *__localeconv (void);

/* Fetch the name of the current locale set in the given category.  */
extern const char *__current_locale_name (int category) attribute_hidden;


# 8 "../include/string.h" 2

extern void *__memccpy (void *__dest, const void *__src,
			int __c, size_t __n);

extern size_t __strnlen (const char *__string, size_t __maxlen)
     __attribute_pure__;

extern char *__strsep (char **__stringp, const char *__delim);
libc_hidden_proto (__strsep)

extern int __strverscmp (const char *__s1, const char *__s2)
     __attribute_pure__;

extern int __strncasecmp (const char *__s1, const char *__s2,
			  size_t __n)
     __attribute_pure__;

extern int __strcasecmp (const char *__s1, const char *__s2)
     __attribute_pure__;

extern char *__strcasestr (const char *__haystack, const char *__needle)
     __attribute_pure__;

extern char *__strdup (const char *__string)
     __attribute_malloc__;
extern char *__strndup (const char *__string, size_t __n)
     __attribute_malloc__;

extern void *__rawmemchr (const void *__s, int __c)
     __attribute_pure__;

extern char *__strchrnul (const char *__s, int __c)
     __attribute_pure__;

extern void *__memrchr (const void *__s, int __c, size_t __n)
     __attribute_pure__;

extern void *__memchr (const void *__s, int __c, size_t __n)
     __attribute_pure__;

extern void __bzero (void *__s, size_t __n) __THROW __nonnull ((1));

extern int __ffs (int __i) __attribute__ ((const));

extern char *__strerror_r (int __errnum, char *__buf, size_t __buflen);

extern char *__strerror_l (int __errnum, locale_t __loc);

extern const char *__sigdescr_np (int __errnum);
libc_hidden_proto (__sigdescr_np)

/* Get _STRING_ARCH_unaligned.  */
# 1 "../sysdeps/s390/string_private.h" 1
/* Define _STRING_ARCH_unaligned.  S/390 version.
   Copyright (C) 2016-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/* The s390 processors can access unaligned multi-byte variables.  */
#define _STRING_ARCH_unaligned 1
# 61 "../include/string.h" 2


# 1 "../string/string.h" 1
/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/*
 *	ISO C99 Standard: 7.21 String handling	<string.h>
 */


#define _STRING_H 1

#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION 
# 1 "../bits/libc-header-start.h" 1
/* Handle feature test macros at the start of a header.
   Copyright (C) 2016-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/* This header is internal to glibc and should not be included outside
   of glibc headers.  Headers including it must define
   __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first.  This header
   cannot have multiple include guards because ISO C feature test
   macros depend on the definition of the macro when an affected
   header is included, not when the first system header is
   included.  */





#undef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION



/* ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__
   macro.  */
#undef __GLIBC_USE_LIB_EXT2


#define __GLIBC_USE_LIB_EXT2 1




/* ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__
   macro.  Most but not all symbols enabled by that macro in TS
   18661-1 are enabled unconditionally in C2X.  In C2X, the symbols in
   Annex F still require a new feature test macro
   __STDC_WANT_IEC_60559_EXT__ instead (C2X does not define
   __STDC_WANT_IEC_60559_BFP_EXT__), while a few features from TS
   18661-1 are not included in C2X (and thus should depend on
   __STDC_WANT_IEC_60559_BFP_EXT__ even when C2X features are
   enabled).

   __GLIBC_USE (IEC_60559_BFP_EXT) controls those features from TS
   18661-1 not included in C2X.

   __GLIBC_USE (IEC_60559_BFP_EXT_C2X) controls those features from TS
   18661-1 that are also included in C2X (with no feature test macro
   required in C2X).

   __GLIBC_USE (IEC_60559_EXT) controls those features from TS 18661-1
   that are included in C2X but conditional on
   __STDC_WANT_IEC_60559_EXT__.  (There are currently no features
   conditional on __STDC_WANT_IEC_60559_EXT__ that are not in TS
   18661-1.)  */
#undef __GLIBC_USE_IEC_60559_BFP_EXT

#define __GLIBC_USE_IEC_60559_BFP_EXT 1



#undef __GLIBC_USE_IEC_60559_BFP_EXT_C2X

#define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 1



#undef __GLIBC_USE_IEC_60559_EXT

#define __GLIBC_USE_IEC_60559_EXT 1




/* ISO/IEC TS 18661-4:2015 defines the
   __STDC_WANT_IEC_60559_FUNCS_EXT__ macro.  Other than the reduction
   functions, the symbols from this TS are enabled unconditionally in
   C2X.  */
#undef __GLIBC_USE_IEC_60559_FUNCS_EXT

#define __GLIBC_USE_IEC_60559_FUNCS_EXT 1



#undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X

#define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 1




/* ISO/IEC TS 18661-3:2015 defines the
   __STDC_WANT_IEC_60559_TYPES_EXT__ macro.  */
#undef __GLIBC_USE_IEC_60559_TYPES_EXT

#define __GLIBC_USE_IEC_60559_TYPES_EXT 1
# 27 "../string/string.h" 2

__BEGIN_DECLS

/* Get size_t and NULL from <stddef.h>.  */
#define __need_size_t 
#define __need_NULL 
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2021 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */






/* Any one of these symbols __need_* means that GNU libc
   wants us just to define one data type.  So don't define
   the symbols that indicate this file's entire job has been done.  */
# 44 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4


/* This avoids lossage on SunOS but only if stdtypes.h comes first.
   There's no way to win with the other order!  Sun lossage.  */









# 85 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
   Just ignore it.  */




/* On VxWorks, <type/vxTypesBase.h> may have defined macros like
   _TYPE_size_t which will typedef size_t.  fixincludes patched the
   vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
   not defined, and so that defining this macro defines _GCC_SIZE_T.
   If we find that the macros are still defined at this point, we must
   invoke them so that the type is defined as expected.  */













/* In case nobody has defined these types, but we aren't running under
   GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
   __WCHAR_TYPE__ have reasonable values.  This can happen if the
   parts of GCC is compiled by an older compiler, that actually
   include gstddef.h, such as collect2.  */

/* Signed type of difference of two pointers.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 153 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* If this symbol has done its job, get rid of it.  */
#undef __need_ptrdiff_t



/* Unsigned type of `sizeof' something.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 231 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
#undef __need_size_t



/* Wide character type.
   Locale-writers should change this as necessary to
   be big enough to hold unique values not between 0 and 127,
   and not (wchar_t) -1, for each defined multibyte character.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 340 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
#undef __need_wchar_t


# 354 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

# 384 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4



/* A null pointer constant.  */


#undef NULL




#define NULL ((void *)0)





#undef __need_NULL



/* Offset of member MEMBER in a struct of type TYPE. */
#define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)



# 428 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4











# 34 "../string/string.h" 2

/* Tell the caller that we provide correct C++ prototypes.  */






/* Copy N bytes of SRC to DEST.  */
extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
		     size_t __n) __THROW __nonnull ((1, 2));
/* Copy N bytes of SRC to DEST, guaranteeing
   correct behavior for overlapping strings.  */
extern void *memmove (void *__dest, const void *__src, size_t __n)
     __THROW __nonnull ((1, 2));

/* Copy no more than N bytes of SRC to DEST, stopping when C is found.
   Return the position in DEST one byte past where C was copied,
   or NULL if C was not found in the first N bytes of SRC.  */

extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
		      int __c, size_t __n)
    __THROW __nonnull ((1, 2)) __attr_access ((__write_only__, 1, 4));



/* Set N bytes of S to C.  */
extern void *memset (void *__s, int __c, size_t __n) __THROW __nonnull ((1));

/* Compare N bytes of S1 and S2.  */
extern int memcmp (const void *__s1, const void *__s2, size_t __n)
     __THROW __attribute_pure__ __nonnull ((1, 2));

/* Compare N bytes of S1 and S2.  Return zero if S1 and S2 are equal.
   Return some non-zero value otherwise.

   Essentially __memcmpeq has the exact same semantics as memcmp
   except the return value is less constrained.  memcmp is always a
   correct implementation of __memcmpeq.  As well !!memcmp, -memcmp,
   or bcmp are correct implementations.

   __memcmpeq is meant to be used by compilers when memcmp return is
   only used for its bolean value.

   __memcmpeq is declared only for use by compilers.  Programs should
   continue to use memcmp.  */
extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n)
     __THROW __attribute_pure__ __nonnull ((1, 2));

/* Search N bytes of S for C.  */
# 107 "../string/string.h"
extern void *memchr (const void *__s, int __c, size_t __n)
      __THROW __attribute_pure__ __nonnull ((1));



/* Search in S for C.  This is similar to `memchr' but there is no
   length limit.  */






extern void *rawmemchr (const void *__s, int __c)
     __THROW __attribute_pure__ __nonnull ((1));


/* Search N bytes of S for the final occurrence of C.  */
# 133 "../string/string.h"
extern void *memrchr (const void *__s, int __c, size_t __n)
      __THROW __attribute_pure__ __nonnull ((1))
      __attr_access ((__read_only__, 1, 3));




/* Copy SRC to DEST.  */
extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
     __THROW __nonnull ((1, 2));
/* Copy no more than N characters of SRC to DEST.  */
extern char *strncpy (char *__restrict __dest,
		      const char *__restrict __src, size_t __n)
     __THROW __nonnull ((1, 2));

/* Append SRC onto DEST.  */
extern char *strcat (char *__restrict __dest, const char *__restrict __src)
     __THROW __nonnull ((1, 2));
/* Append no more than N characters from SRC onto DEST.  */
extern char *strncat (char *__restrict __dest, const char *__restrict __src,
		      size_t __n) __THROW __nonnull ((1, 2));

/* Compare S1 and S2.  */
extern int strcmp (const char *__s1, const char *__s2)
     __THROW __attribute_pure__ __nonnull ((1, 2));
/* Compare N characters of S1 and S2.  */
extern int strncmp (const char *__s1, const char *__s2, size_t __n)
     __THROW __attribute_pure__ __nonnull ((1, 2));

/* Compare the collated forms of S1 and S2.  */
extern int strcoll (const char *__s1, const char *__s2)
     __THROW __attribute_pure__ __nonnull ((1, 2));
/* Put a transformation of SRC into no more than N bytes of DEST.  */
extern size_t strxfrm (char *__restrict __dest,
		       const char *__restrict __src, size_t __n)
    __THROW __nonnull ((2)) __attr_access ((__write_only__, 1, 3));


/* POSIX.1-2008 extended locale interface (see locale.h).  */
# 1 "../include/bits/types/locale_t.h" 1
# 173 "../string/string.h" 2

/* Compare the collated forms of S1 and S2, using sorting rules from L.  */
extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l)
     __THROW __attribute_pure__ __nonnull ((1, 2, 3));
/* Put a transformation of SRC into no more than N bytes of DEST,
   using sorting rules from L.  */
extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
			 locale_t __l) __THROW __nonnull ((2, 4))
     __attr_access ((__write_only__, 1, 3));




/* Duplicate S, returning an identical malloc'd string.  */
extern char *strdup (const char *__s)
     __THROW __attribute_malloc__ __nonnull ((1));


/* Return a malloc'd copy of at most N bytes of STRING.  The
   resultant string is terminated even if no null terminator
   appears before STRING[N].  */

extern char *strndup (const char *__string, size_t __n)
     __THROW __attribute_malloc__ __nonnull ((1));



/* Duplicate S, returning an identical alloca'd string.  */
#define strdupa(s) (__extension__ ({ const char *__old = (s); size_t __len = strlen (__old) + 1; char *__new = (char *) __builtin_alloca (__len); (char *) memcpy (__new, __old, __len); }))








/* Return an alloca'd copy of at most N bytes of string.  */
#define strndupa(s,n) (__extension__ ({ const char *__old = (s); size_t __len = strnlen (__old, (n)); char *__new = (char *) __builtin_alloca (__len + 1); __new[__len] = '\0'; (char *) memcpy (__new, __old, __len); }))
# 220 "../string/string.h"


/* Find the first occurrence of C in S.  */
# 246 "../string/string.h"
extern char *strchr (const char *__s, int __c)
     __THROW __attribute_pure__ __nonnull ((1));

/* Find the last occurrence of C in S.  */
# 273 "../string/string.h"
extern char *strrchr (const char *__s, int __c)
     __THROW __attribute_pure__ __nonnull ((1));



/* This function is similar to `strchr'.  But it returns a pointer to
   the closing NUL byte in case C is not found in S.  */






extern char *strchrnul (const char *__s, int __c)
     __THROW __attribute_pure__ __nonnull ((1));



/* Return the length of the initial segment of S which
   consists entirely of characters not in REJECT.  */
extern size_t strcspn (const char *__s, const char *__reject)
     __THROW __attribute_pure__ __nonnull ((1, 2));
/* Return the length of the initial segment of S which
   consists entirely of characters in ACCEPT.  */
extern size_t strspn (const char *__s, const char *__accept)
     __THROW __attribute_pure__ __nonnull ((1, 2));
/* Find the first occurrence in S of any character in ACCEPT.  */
# 323 "../string/string.h"
extern char *strpbrk (const char *__s, const char *__accept)
     __THROW __attribute_pure__ __nonnull ((1, 2));

/* Find the first occurrence of NEEDLE in HAYSTACK.  */
# 350 "../string/string.h"
extern char *strstr (const char *__haystack, const char *__needle)
     __THROW __attribute_pure__ __nonnull ((1, 2));



/* Divide S into tokens separated by characters in DELIM.  */
extern char *strtok (char *__restrict __s, const char *__restrict __delim)
     __THROW __nonnull ((2));

/* Divide S into tokens separated by characters in DELIM.  Information
   passed between calls are stored in SAVE_PTR.  */
extern char *__strtok_r (char *__restrict __s,
			 const char *__restrict __delim,
			 char **__restrict __save_ptr)
     __THROW __nonnull ((2, 3));

extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
		       char **__restrict __save_ptr)
     __THROW __nonnull ((2, 3));



/* Similar to `strstr' but this function ignores the case of both strings.  */







extern char *strcasestr (const char *__haystack, const char *__needle)
     __THROW __attribute_pure__ __nonnull ((1, 2));




/* Find the first occurrence of NEEDLE in HAYSTACK.
   NEEDLE is NEEDLELEN bytes long;
   HAYSTACK is HAYSTACKLEN bytes long.  */
extern void *memmem (const void *__haystack, size_t __haystacklen,
		     const void *__needle, size_t __needlelen)
     __THROW __attribute_pure__ __nonnull ((1, 3))
    __attr_access ((__read_only__, 1, 2))
    __attr_access ((__read_only__, 3, 4));

/* Copy N bytes of SRC to DEST, return pointer to bytes after the
   last written byte.  */
extern void *__mempcpy (void *__restrict __dest,
			const void *__restrict __src, size_t __n)
     __THROW __nonnull ((1, 2));
extern void *mempcpy (void *__restrict __dest,
		      const void *__restrict __src, size_t __n)
     __THROW __nonnull ((1, 2));



/* Return the length of S.  */
extern size_t strlen (const char *__s)
     __THROW __attribute_pure__ __nonnull ((1));


/* Find the length of STRING, but scan at most MAXLEN characters.
   If no '\0' terminator is found in that many characters, return MAXLEN.  */
extern size_t strnlen (const char *__string, size_t __maxlen)
     __THROW __attribute_pure__ __nonnull ((1));



/* Return a string describing the meaning of the `errno' code in ERRNUM.  */
extern char *strerror (int __errnum) __THROW;

/* Reentrant version of `strerror'.
   There are 2 flavors of `strerror_r', GNU which returns the string
   and may or may not use the supplied temporary buffer and POSIX one
   which fills the string into the buffer.
   To use the POSIX version, -D_XOPEN_SOURCE=600 or -D_POSIX_C_SOURCE=200112L
   without -D_GNU_SOURCE is needed, otherwise the GNU version is
   preferred.  */
# 442 "../string/string.h"
/* If a temporary buffer is required, at most BUFLEN bytes of BUF will be
   used.  */
extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
     __THROW __nonnull ((2)) __wur  __attr_access ((__write_only__, 2, 3));



/* Return a string describing the meaning of tthe error in ERR.  */
extern const char *strerrordesc_np (int __err) __THROW;
/* Return a string with the error name in ERR.  */
extern const char *strerrorname_np (int __err) __THROW;




/* Translate error number to string according to the locale L.  */
extern char *strerror_l (int __errnum, locale_t __l) __THROW;



# 1 "../include/strings.h" 1
# 1 "../string/strings.h" 1
/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _STRINGS_H 1


#define __need_size_t 
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2021 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */






/* Any one of these symbols __need_* means that GNU libc
   wants us just to define one data type.  So don't define
   the symbols that indicate this file's entire job has been done.  */
# 44 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4


/* This avoids lossage on SunOS but only if stdtypes.h comes first.
   There's no way to win with the other order!  Sun lossage.  */









# 85 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
   Just ignore it.  */




/* On VxWorks, <type/vxTypesBase.h> may have defined macros like
   _TYPE_size_t which will typedef size_t.  fixincludes patched the
   vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
   not defined, and so that defining this macro defines _GCC_SIZE_T.
   If we find that the macros are still defined at this point, we must
   invoke them so that the type is defined as expected.  */













/* In case nobody has defined these types, but we aren't running under
   GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
   __WCHAR_TYPE__ have reasonable values.  This can happen if the
   parts of GCC is compiled by an older compiler, that actually
   include gstddef.h, such as collect2.  */

/* Signed type of difference of two pointers.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 153 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* If this symbol has done its job, get rid of it.  */
#undef __need_ptrdiff_t



/* Unsigned type of `sizeof' something.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 231 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
#undef __need_size_t



/* Wide character type.
   Locale-writers should change this as necessary to
   be big enough to hold unique values not between 0 and 127,
   and not (wchar_t) -1, for each defined multibyte character.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 340 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
#undef __need_wchar_t


# 354 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

# 384 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4



/* A null pointer constant.  */


#undef NULL




#define NULL ((void *)0)





#undef __need_NULL



/* Offset of member MEMBER in a struct of type TYPE. */
#define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)



# 428 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4











# 24 "../string/strings.h" 2

/* Tell the caller that we provide correct C++ prototypes.  */




__BEGIN_DECLS


/* Compare N bytes of S1 and S2 (same as memcmp).  */
extern int bcmp (const void *__s1, const void *__s2, size_t __n)
     __THROW __attribute_pure__ __nonnull ((1, 2));

/* Copy N bytes of SRC to DEST (like memmove, but args reversed).  */
extern void bcopy (const void *__src, void *__dest, size_t __n)
  __THROW __nonnull ((1, 2));

/* Set N bytes of S to 0.  */
extern void bzero (void *__s, size_t __n) __THROW __nonnull ((1));

/* Find the first occurrence of C in S (same as strchr).  */
# 68 "../string/strings.h"
extern char *index (const char *__s, int __c)
     __THROW __attribute_pure__ __nonnull ((1));


/* Find the last occurrence of C in S (same as strrchr).  */
# 96 "../string/strings.h"
extern char *rindex (const char *__s, int __c)
     __THROW __attribute_pure__ __nonnull ((1));




/* Return the position of the first bit set in I, or 0 if none are set.
   The least-significant bit is position 1, the most-significant 32.  */
extern int ffs (int __i) __THROW __attribute_const__;


/* The following two functions are non-standard but necessary for non-32 bit
   platforms.  */

extern int ffsl (long int __l) __THROW __attribute_const__;
__extension__ extern int ffsll (long long int __ll)
     __THROW __attribute_const__;


/* Compare S1 and S2, ignoring case.  */
extern int strcasecmp (const char *__s1, const char *__s2)
     __THROW __attribute_pure__ __nonnull ((1, 2));

/* Compare no more than N chars of S1 and S2, ignoring case.  */
extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
     __THROW __attribute_pure__ __nonnull ((1, 2));


/* POSIX.1-2008 extended locale interface (see locale.h).  */
# 1 "../include/bits/types/locale_t.h" 1
# 126 "../string/strings.h" 2

/* Compare S1 and S2, ignoring case, using collation rules from LOC.  */
extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc)
     __THROW __attribute_pure__ __nonnull ((1, 2, 3));

/* Compare no more than N chars of S1 and S2, ignoring case, using
   collation rules from LOC.  */
extern int strncasecmp_l (const char *__s1, const char *__s2,
			  size_t __n, locale_t __loc)
     __THROW __attribute_pure__ __nonnull ((1, 2, 4));


__END_DECLS









# 2 "../include/strings.h" 2
# 463 "../string/string.h" 2

/* Set N bytes of S to 0.  The compiler will not delete a call to this
   function, even if S is dead after the call.  */
extern void explicit_bzero (void *__s, size_t __n) __THROW __nonnull ((1))
    __fortified_attr_access (__write_only__, 1, 2);

/* Return the next DELIM-delimited token from *STRINGP,
   terminating it with a '\0', and update *STRINGP to point past it.  */
extern char *strsep (char **__restrict __stringp,
		     const char *__restrict __delim)
     __THROW __nonnull ((1, 2));



/* Return a string describing the meaning of the signal number in SIG.  */
extern char *strsignal (int __sig) __THROW;


/* Return an abbreviation string for the signal number SIG.  */
extern const char *sigabbrev_np (int __sig) __THROW;
/* Return a string describing the meaning of the signal number in SIG,
   the result is not translated.  */
extern const char *sigdescr_np (int __sig) __THROW;


/* Copy SRC to DEST, returning the address of the terminating '\0' in DEST.  */
extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src)
     __THROW __nonnull ((1, 2));
extern char *stpcpy (char *__restrict __dest, const char *__restrict __src)
     __THROW __nonnull ((1, 2));

/* Copy no more than N characters of SRC to DEST, returning the address of
   the last character written into DEST.  */
extern char *__stpncpy (char *__restrict __dest,
			const char *__restrict __src, size_t __n)
     __THROW __nonnull ((1, 2));
extern char *stpncpy (char *__restrict __dest,
		      const char *__restrict __src, size_t __n)
     __THROW __nonnull ((1, 2));



/* Compare S1 and S2 as strings holding name & indices/version numbers.  */
extern int strverscmp (const char *__s1, const char *__s2)
     __THROW __attribute_pure__ __nonnull ((1, 2));

/* Sautee STRING briskly.  */
extern char *strfry (char *__string) __THROW __nonnull ((1));

/* Frobnicate N bytes of S.  */
extern void *memfrob (void *__s, size_t __n) __THROW __nonnull ((1))
    __attr_access ((__read_write__, 1, 2));


/* Return the file name within directory of FILENAME.  We don't
   declare the function if the `basename' macro is available (defined
   in <libgen.h>) which makes the XPG version of this function
   available.  */






extern char *basename (const char *__filename) __THROW __nonnull ((1));











__END_DECLS

# 64 "../include/string.h" 2


extern __typeof (strcoll_l) __strcoll_l;
extern __typeof (strxfrm_l) __strxfrm_l;
extern __typeof (strcasecmp_l) __strcasecmp_l;
extern __typeof (strncasecmp_l) __strncasecmp_l;

/* Alternative version which doesn't pollute glibc's namespace.  */

#undef strndupa
#define strndupa(s,n) (__extension__ ({ const char *__old = (s); size_t __len = __strnlen (__old, (n)); char *__new = (char *) __builtin_alloca (__len + 1); __new[__len] = '\0'; (char *) memcpy (__new, __old, __len); }))
# 83 "../include/string.h"


libc_hidden_proto (__mempcpy)

#define __mempcpy(dest,src,n) __builtin_mempcpy (dest, src, n)

libc_hidden_proto (__stpcpy)

#define __stpcpy(dest,src) __builtin_stpcpy (dest, src)

libc_hidden_proto (__stpncpy)
libc_hidden_proto (__rawmemchr)
libc_hidden_proto (__strcasecmp)
libc_hidden_proto (__strcasecmp_l)
libc_hidden_proto (__strncasecmp_l)
extern __typeof (strncat) __strncat;
libc_hidden_proto (__strncat)
libc_hidden_proto (__strdup)
libc_hidden_proto (__strndup)
libc_hidden_proto (__strerror_r)
libc_hidden_proto (__strverscmp)
libc_hidden_proto (basename)
extern char *__basename (const char *__filename) __THROW __nonnull ((1));
libc_hidden_proto (__basename)
libc_hidden_proto (strcoll)
libc_hidden_proto (__strcoll_l)
libc_hidden_proto (__strxfrm_l)
libc_hidden_proto (__strtok_r)
extern char *__strsep_g (char **__stringp, const char *__delim);
libc_hidden_proto (__strsep_g)
libc_hidden_proto (strnlen)
libc_hidden_proto (__strnlen)
libc_hidden_proto (__memcmpeq)
libc_hidden_proto (memmem)
extern __typeof (memmem) __memmem;
libc_hidden_proto (__memmem)
libc_hidden_proto (__ffs)
libc_hidden_proto (__strerror_l)


/* Avoid hidden reference to IFUNC symbol __explicit_bzero_chk.  */
void __explicit_bzero_chk_internal (void *, size_t, size_t)
  __THROW __nonnull ((1)) attribute_hidden;
#define explicit_bzero(buf,len) __explicit_bzero_chk_internal (buf, len, __glibc_objsize0 (buf))







libc_hidden_builtin_proto (memchr)
libc_hidden_builtin_proto (memcpy)
libc_hidden_builtin_proto (mempcpy)
libc_hidden_builtin_proto (memcmp)
libc_hidden_builtin_proto (memmove)
libc_hidden_builtin_proto (memset)
libc_hidden_builtin_proto (strcat)
libc_hidden_builtin_proto (strchr)
libc_hidden_builtin_proto (strcmp)
libc_hidden_builtin_proto (strcpy)
libc_hidden_builtin_proto (strcspn)
libc_hidden_builtin_proto (strlen)
libc_hidden_builtin_proto (strncmp)
libc_hidden_builtin_proto (strncpy)
libc_hidden_builtin_proto (strpbrk)
libc_hidden_builtin_proto (stpcpy)
libc_hidden_builtin_proto (strrchr)
libc_hidden_builtin_proto (strspn)
libc_hidden_builtin_proto (strstr)
libc_hidden_builtin_proto (ffs)

# 174 "../include/string.h"



/* Redirect calls to __builtin_mempcpy and __builtin_stpcpy to call
   __mempcpy and __stpcpy if not inlined.  */
extern __typeof (mempcpy) mempcpy __asm__ ("__mempcpy");
extern __typeof (stpcpy) stpcpy __asm__ ("__stpcpy");


extern void *__memcpy_chk (void *__restrict __dest,
			   const void *__restrict __src, size_t __len,
			   size_t __destlen) __THROW;
extern void *__memmove_chk (void *__dest, const void *__src, size_t __len,
			    size_t __destlen) __THROW;
extern void *__mempcpy_chk (void *__restrict __dest,
			    const void *__restrict __src, size_t __len,
			    size_t __destlen) __THROW;
extern void *__memset_chk (void *__dest, int __ch, size_t __len,
			   size_t __destlen) __THROW;
extern char *__strcpy_chk (char *__restrict __dest,
			   const char *__restrict __src,
			   size_t __destlen) __THROW;
extern char *__stpcpy_chk (char *__restrict __dest,
			   const char *__restrict __src,
			   size_t __destlen) __THROW;
extern char *__strncpy_chk (char *__restrict __dest,
			    const char *__restrict __src,
			    size_t __len, size_t __destlen) __THROW;
extern char *__strcat_chk (char *__restrict __dest,
			   const char *__restrict __src,
			   size_t __destlen) __THROW;
extern char *__strncat_chk (char *__restrict __dest,
			    const char *__restrict __src,
			    size_t __len, size_t __destlen) __THROW;


# 38 "../sysdeps/generic/hp-timing-common.h" 2
# 1 "../include/sys/param.h" 1
# 1 "../misc/sys/param.h" 1
/* Compatibility header for old-style Unix parameters and limits.
   Copyright (C) 1995-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _SYS_PARAM_H 1

#define __need_NULL 
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2021 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */






/* Any one of these symbols __need_* means that GNU libc
   wants us just to define one data type.  So don't define
   the symbols that indicate this file's entire job has been done.  */
# 44 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4


/* This avoids lossage on SunOS but only if stdtypes.h comes first.
   There's no way to win with the other order!  Sun lossage.  */









# 85 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
   Just ignore it.  */




/* On VxWorks, <type/vxTypesBase.h> may have defined macros like
   _TYPE_size_t which will typedef size_t.  fixincludes patched the
   vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
   not defined, and so that defining this macro defines _GCC_SIZE_T.
   If we find that the macros are still defined at this point, we must
   invoke them so that the type is defined as expected.  */













/* In case nobody has defined these types, but we aren't running under
   GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
   __WCHAR_TYPE__ have reasonable values.  This can happen if the
   parts of GCC is compiled by an older compiler, that actually
   include gstddef.h, such as collect2.  */

/* Signed type of difference of two pointers.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 153 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* If this symbol has done its job, get rid of it.  */
#undef __need_ptrdiff_t



/* Unsigned type of `sizeof' something.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 231 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
#undef __need_size_t



/* Wide character type.
   Locale-writers should change this as necessary to
   be big enough to hold unique values not between 0 and 127,
   and not (wchar_t) -1, for each defined multibyte character.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 340 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
#undef __need_wchar_t


# 354 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

# 384 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4



/* A null pointer constant.  */


#undef NULL




#define NULL ((void *)0)





#undef __need_NULL



/* Offset of member MEMBER in a struct of type TYPE. */
#define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)



# 428 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4











# 24 "../misc/sys/param.h" 2

# 1 "../include/sys/types.h" 1
# 26 "../misc/sys/param.h" 2
# 1 "../include/limits.h" 1
/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/*
 *	ISO C99 Standard: 7.10/5.2.4.2.1 Sizes of integer types	<limits.h>
 */

# 116 "../include/limits.h"

 /* Get the compiler's limits.h, which defines almost all the ISO constants.

    We put this #include_next outside the double inclusion check because
    it should be possible to include this file more than once and still get
    the definitions from gcc's header.  */





/* The <limits.h> files in some gcc versions don't define LLONG_MIN,
   LLONG_MAX, and ULLONG_MAX.  Instead only the values gcc defined for
   ages are available.  */












/* The integer width macros are not defined by GCC's <limits.h> before
   GCC 7, or if _GNU_SOURCE rather than
   __STDC_WANT_IEC_60559_BFP_EXT__ is used to enable this feature.  */




































/* The macros for _Bool are not defined by GCC's <limits.h> before GCC
   11, or if _GNU_SOURCE is defined rather than enabling C2x support
   with -std.  */










/* POSIX adds things to <limits.h>.  */
# 1 "../include/bits/posix1_lim.h" 1
# 196 "../include/limits.h" 2



# 1 "../include/bits/posix2_lim.h" 1
# 200 "../include/limits.h" 2




# 27 "../misc/sys/param.h" 2
# 1 "../include/endian.h" 1




#define BIG_ENDI 1
#undef LITTLE_ENDI
#define HIGH_HALF 0
#define LOW_HALF 1
# 17 "../include/endian.h"
# 28 "../misc/sys/param.h" 2
# 1 "../include/signal.h" 1

# 1 "../signal/signal.h" 1
/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/*
 *	ISO C99 Standard: 7.14 Signal handling <signal.h>
 */


#define _SIGNAL_H 



__BEGIN_DECLS

# 1 "../include/bits/types.h" 1
# 30 "../signal/signal.h" 2
# 1 "../bits/signum-generic.h" 1
/* Signal number constants.  Generic template.
   Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _BITS_SIGNUM_GENERIC_H 1





/* Fake signal functions.  */

#define SIG_ERR ((__sighandler_t) -1)
#define SIG_DFL ((__sighandler_t) 0)
#define SIG_IGN ((__sighandler_t) 1)


#define SIG_HOLD ((__sighandler_t) 2)


/* We define here all the signal names listed in POSIX (1003.1-2008);
   as of 1003.1-2013, no additional signals have been added by POSIX.
   We also define here signal names that historically exist in every
   real-world POSIX variant (e.g. SIGWINCH).

   Signals in the 1-15 range are defined with their historical numbers.
   For other signals, we use the BSD numbers.
   There are two unallocated signal numbers in the 1-31 range: 7 and 29.
   Signal number 0 is reserved for use as kill(pid, 0), to test whether
   a process exists without sending it a signal.  */

/* ISO C99 signals.  */
#define SIGINT 2
#define SIGILL 4
#define SIGABRT 6
#define SIGFPE 8
#define SIGSEGV 11
#define SIGTERM 15

/* Historical signals specified by POSIX. */
#define SIGHUP 1
#define SIGQUIT 3
#define SIGTRAP 5
#define SIGKILL 9
#define SIGPIPE 13
#define SIGALRM 14

/* Archaic names for compatibility.  */
#define SIGIO SIGPOLL
#define SIGIOT SIGABRT
#define SIGCLD SIGCHLD

/* Not all systems support real-time signals.  bits/signum.h indicates
   that they are supported by overriding __SIGRTMAX to a value greater
   than __SIGRTMIN.  These constants give the kernel-level hard limits,
   but some real-time signals may be used internally by glibc.  Do not
   use these constants in application code; use SIGRTMIN and SIGRTMAX
   (defined in signal.h) instead.  */

/* Include system specific bits.  */
# 1 "../sysdeps/unix/sysv/linux/bits/signum-arch.h" 1
/* Signal number definitions.  Linux version.
   Copyright (C) 1995-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _BITS_SIGNUM_ARCH_H 1





/* Adjustments and additions to the signal number constants for
   most Linux systems.  */

#define SIGSTKFLT 16
#define SIGPWR 30

/* Historical signals specified by POSIX. */
#define SIGBUS 7
#define SIGSYS 31

/* New(er) POSIX signals (1003.1-2008, 1003.1-2013).  */
#define SIGURG 23
#define SIGSTOP 19
#define SIGTSTP 20
#define SIGCONT 18
#define SIGCHLD 17
#define SIGTTIN 21
#define SIGTTOU 22
#define SIGPOLL 29
#define SIGXFSZ 25
#define SIGXCPU 24
#define SIGVTALRM 26
#define SIGPROF 27
#define SIGUSR1 10
#define SIGUSR2 12

/* Nonstandard signals found in all modern POSIX systems
   (including both BSD and Linux).  */
#define SIGWINCH 28

/* Archaic names for compatibility.  */
#define SIGIO SIGPOLL
#define SIGIOT SIGABRT
#define SIGCLD SIGCHLD

#define __SIGRTMIN 32
#define __SIGRTMAX 64

# 77 "../bits/signum-generic.h" 2

/* Biggest signal number + 1 (including real-time signals).  */
#define _NSIG (__SIGRTMAX + 1)

# 31 "../signal/signal.h" 2

# 1 "../include/bits/types/sig_atomic_t.h" 1
# 1 "../signal/bits/types/sig_atomic_t.h" 1

#define __sig_atomic_t_defined 1

# 1 "../include/bits/types.h" 1
# 5 "../signal/bits/types/sig_atomic_t.h" 2

/* An integral type that can be modified atomically, without the
   possibility of a signal arriving in the middle of the operation.  */
typedef __sig_atomic_t sig_atomic_t;

# 2 "../include/bits/types/sig_atomic_t.h" 2
# 33 "../signal/signal.h" 2


# 1 "../include/bits/types/sigset_t.h" 1
# 36 "../signal/signal.h" 2
















/* We need `struct timespec' later on.  */
# 1 "../include/bits/types/struct_timespec.h" 1
# 54 "../signal/signal.h" 2



# 1 "../sysdeps/unix/sysv/linux/bits/types/siginfo_t.h" 1

#define __siginfo_t_defined 1

# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
/* Determine the wordsize from the preprocessor defines.  */


#define __WORDSIZE 64






#define __WORDSIZE_TIME64_COMPAT32 0
# 5 "../sysdeps/unix/sysv/linux/bits/types/siginfo_t.h" 2
# 1 "../include/bits/types.h" 1
# 6 "../sysdeps/unix/sysv/linux/bits/types/siginfo_t.h" 2
# 1 "../include/bits/types/__sigval_t.h" 1
# 1 "../signal/bits/types/__sigval_t.h" 1
/* Define __sigval_t.
   Copyright (C) 1997-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define ____sigval_t_defined 

/* Type for data associated with a signal.  */

union sigval
{
  int sival_int;
  void *sival_ptr;
};

typedef union sigval __sigval_t;
# 40 "../signal/bits/types/__sigval_t.h"

# 2 "../include/bits/types/__sigval_t.h" 2
# 7 "../sysdeps/unix/sysv/linux/bits/types/siginfo_t.h" 2

#define __SI_MAX_SIZE 128

#define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 4)




/* Some fields of siginfo_t have architecture-specific variations.  */
# 1 "../sysdeps/unix/sysv/linux/bits/siginfo-arch.h" 1
/* Architecture-specific adjustments to siginfo_t.  */

#define _BITS_SIGINFO_ARCH_H 1

/* This architecture has no adjustments to make to siginfo_t.  */

# 17 "../sysdeps/unix/sysv/linux/bits/types/siginfo_t.h" 2

#define __SI_ALIGNMENT 


#define __SI_BAND_TYPE long int


#define __SI_CLOCK_T __clock_t


#define __SI_ERRNO_THEN_CODE 1


#define __SI_HAVE_SIGSYS 1


#define __SI_SIGFAULT_ADDL 


typedef struct
  {
    int si_signo;		/* Signal number.  */

    int si_errno;		/* If non-zero, an errno value associated with
				   this signal, as defined in <errno.h>.  */
    int si_code;		/* Signal code.  */





    int __pad0;			/* Explicit padding.  */


    union
      {
	int _pad[__SI_PAD_SIZE];

	 /* kill().  */
	struct
	  {
	    __pid_t si_pid;	/* Sending process ID.  */
	    __uid_t si_uid;	/* Real user ID of sending process.  */
	  } _kill;

	/* POSIX.1b timers.  */
	struct
	  {
	    int si_tid;		/* Timer ID.  */
	    int si_overrun;	/* Overrun count.  */
	    __sigval_t si_sigval;	/* Signal value.  */
	  } _timer;

	/* POSIX.1b signals.  */
	struct
	  {
	    __pid_t si_pid;	/* Sending process ID.  */
	    __uid_t si_uid;	/* Real user ID of sending process.  */
	    __sigval_t si_sigval;	/* Signal value.  */
	  } _rt;

	/* SIGCHLD.  */
	struct
	  {
	    __pid_t si_pid;	/* Which child.	 */
	    __uid_t si_uid;	/* Real user ID of sending process.  */
	    int si_status;	/* Exit value or signal.  */
	    __SI_CLOCK_T si_utime;
	    __SI_CLOCK_T si_stime;
	  } _sigchld;

	/* SIGILL, SIGFPE, SIGSEGV, SIGBUS.  */
	struct
	  {
	    void *si_addr;	    /* Faulting insn/memory ref.  */
	    __SI_SIGFAULT_ADDL
	    short int si_addr_lsb;  /* Valid LSB of the reported address.  */
	    union
	      {
		/* used when si_code=SEGV_BNDERR */
		struct
		  {
		    void *_lower;
		    void *_upper;
		  } _addr_bnd;
		/* used when si_code=SEGV_PKUERR */
		__uint32_t _pkey;
	      } _bounds;
	  } _sigfault;

	/* SIGPOLL.  */
	struct
	  {
	    __SI_BAND_TYPE si_band;	/* Band event for SIGPOLL.  */
	    int si_fd;
	  } _sigpoll;

	/* SIGSYS.  */

	struct
	  {
	    void *_call_addr;	/* Calling user insn.  */
	    int _syscall;	/* Triggering system call number.  */
	    unsigned int _arch; /* AUDIT_ARCH_* of syscall.  */
	  } _sigsys;

      } _sifields;
  } siginfo_t __SI_ALIGNMENT;


/* X/Open requires some more fields with fixed names.  */
#define si_pid _sifields._kill.si_pid
#define si_uid _sifields._kill.si_uid
#define si_timerid _sifields._timer.si_tid
#define si_overrun _sifields._timer.si_overrun
#define si_status _sifields._sigchld.si_status
#define si_utime _sifields._sigchld.si_utime
#define si_stime _sifields._sigchld.si_stime
#define si_value _sifields._rt.si_sigval
#define si_int _sifields._rt.si_sigval.sival_int
#define si_ptr _sifields._rt.si_sigval.sival_ptr
#define si_addr _sifields._sigfault.si_addr
#define si_addr_lsb _sifields._sigfault.si_addr_lsb
#define si_lower _sifields._sigfault._bounds._addr_bnd._lower
#define si_upper _sifields._sigfault._bounds._addr_bnd._upper
#define si_pkey _sifields._sigfault._bounds._pkey
#define si_band _sifields._sigpoll.si_band
#define si_fd _sifields._sigpoll.si_fd

#define si_call_addr _sifields._sigsys._call_addr
#define si_syscall _sifields._sigsys._syscall
#define si_arch _sifields._sigsys._arch


# 58 "../signal/signal.h" 2
# 1 "../sysdeps/unix/sysv/linux/bits/siginfo-consts.h" 1
/* siginfo constants.  Linux version.
   Copyright (C) 1997-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _BITS_SIGINFO_CONSTS_H 1





/* Most of these constants are uniform across all architectures, but there
   is one exception.  */


#define __SI_ASYNCIO_AFTER_SIGIO 1


/* Values for `si_code'.  Positive values are reserved for kernel-generated
   signals.  */
enum
{
  SI_ASYNCNL = -60,		/* Sent by asynch name lookup completion.  */
  SI_DETHREAD = -7,		/* Sent by execve killing subsidiary
				   threads.  */
  SI_TKILL,			/* Sent by tkill.  */
  SI_SIGIO,			/* Sent by queued SIGIO. */

  SI_ASYNCIO,			/* Sent by AIO completion.  */
  SI_MESGQ,			/* Sent by real time mesq state change.  */
  SI_TIMER,			/* Sent by timer expiration.  */





  SI_QUEUE,			/* Sent by sigqueue.  */
  SI_USER,			/* Sent by kill, sigsend.  */
  SI_KERNEL = 0x80		/* Send by kernel.  */

#define SI_ASYNCNL SI_ASYNCNL
#define SI_DETHREAD SI_DETHREAD
#define SI_TKILL SI_TKILL
#define SI_SIGIO SI_SIGIO
#define SI_ASYNCIO SI_ASYNCIO
#define SI_MESGQ SI_MESGQ
#define SI_TIMER SI_TIMER
#define SI_ASYNCIO SI_ASYNCIO
#define SI_QUEUE SI_QUEUE
#define SI_USER SI_USER
#define SI_KERNEL SI_KERNEL
};



/* `si_code' values for SIGILL signal.  */
enum
{
  ILL_ILLOPC = 1,		/* Illegal opcode.  */
#define ILL_ILLOPC ILL_ILLOPC
  ILL_ILLOPN,			/* Illegal operand.  */
#define ILL_ILLOPN ILL_ILLOPN
  ILL_ILLADR,			/* Illegal addressing mode.  */
#define ILL_ILLADR ILL_ILLADR
  ILL_ILLTRP,			/* Illegal trap. */
#define ILL_ILLTRP ILL_ILLTRP
  ILL_PRVOPC,			/* Privileged opcode.  */
#define ILL_PRVOPC ILL_PRVOPC
  ILL_PRVREG,			/* Privileged register.  */
#define ILL_PRVREG ILL_PRVREG
  ILL_COPROC,			/* Coprocessor error.  */
#define ILL_COPROC ILL_COPROC
  ILL_BADSTK,			/* Internal stack error.  */
#define ILL_BADSTK ILL_BADSTK
  ILL_BADIADDR			/* Unimplemented instruction address.  */
#define ILL_BADIADDR ILL_BADIADDR
};

/* `si_code' values for SIGFPE signal.  */
enum
{
  FPE_INTDIV = 1,		/* Integer divide by zero.  */
#define FPE_INTDIV FPE_INTDIV
  FPE_INTOVF,			/* Integer overflow.  */
#define FPE_INTOVF FPE_INTOVF
  FPE_FLTDIV,			/* Floating point divide by zero.  */
#define FPE_FLTDIV FPE_FLTDIV
  FPE_FLTOVF,			/* Floating point overflow.  */
#define FPE_FLTOVF FPE_FLTOVF
  FPE_FLTUND,			/* Floating point underflow.  */
#define FPE_FLTUND FPE_FLTUND
  FPE_FLTRES,			/* Floating point inexact result.  */
#define FPE_FLTRES FPE_FLTRES
  FPE_FLTINV,			/* Floating point invalid operation.  */
#define FPE_FLTINV FPE_FLTINV
  FPE_FLTSUB,			/* Subscript out of range.  */
#define FPE_FLTSUB FPE_FLTSUB
  FPE_FLTUNK = 14,		/* Undiagnosed floating-point exception.  */
#define FPE_FLTUNK FPE_FLTUNK
  FPE_CONDTRAP			/* Trap on condition.  */
#define FPE_CONDTRAP FPE_CONDTRAP
};

/* `si_code' values for SIGSEGV signal.  */
enum
{
  SEGV_MAPERR = 1,		/* Address not mapped to object.  */
#define SEGV_MAPERR SEGV_MAPERR
  SEGV_ACCERR,			/* Invalid permissions for mapped object.  */
#define SEGV_ACCERR SEGV_ACCERR
  SEGV_BNDERR,			/* Bounds checking failure.  */
#define SEGV_BNDERR SEGV_BNDERR
  SEGV_PKUERR,			/* Protection key checking failure.  */
#define SEGV_PKUERR SEGV_PKUERR
  SEGV_ACCADI,			/* ADI not enabled for mapped object.  */
#define SEGV_ACCADI SEGV_ACCADI
  SEGV_ADIDERR,			/* Disrupting MCD error.  */
#define SEGV_ADIDERR SEGV_ADIDERR
  SEGV_ADIPERR,			/* Precise MCD exception.  */
#define SEGV_ADIPERR SEGV_ADIPERR
  SEGV_MTEAERR,			/* Asynchronous ARM MTE error.  */
#define SEGV_MTEAERR SEGV_MTEAERR
  SEGV_MTESERR			/* Synchronous ARM MTE exception.  */
#define SEGV_MTESERR SEGV_MTESERR
};

/* `si_code' values for SIGBUS signal.  */
enum
{
  BUS_ADRALN = 1,		/* Invalid address alignment.  */
#define BUS_ADRALN BUS_ADRALN
  BUS_ADRERR,			/* Non-existant physical address.  */
#define BUS_ADRERR BUS_ADRERR
  BUS_OBJERR,			/* Object specific hardware error.  */
#define BUS_OBJERR BUS_OBJERR
  BUS_MCEERR_AR,		/* Hardware memory error: action required.  */
#define BUS_MCEERR_AR BUS_MCEERR_AR
  BUS_MCEERR_AO			/* Hardware memory error: action optional.  */
#define BUS_MCEERR_AO BUS_MCEERR_AO
};



/* `si_code' values for SIGTRAP signal.  */
enum
{
  TRAP_BRKPT = 1,		/* Process breakpoint.  */
#define TRAP_BRKPT TRAP_BRKPT
  TRAP_TRACE,			/* Process trace trap.  */
#define TRAP_TRACE TRAP_TRACE
  TRAP_BRANCH,			/* Process taken branch trap.  */
#define TRAP_BRANCH TRAP_BRANCH
  TRAP_HWBKPT,			/* Hardware breakpoint/watchpoint.  */
#define TRAP_HWBKPT TRAP_HWBKPT
  TRAP_UNK			/* Undiagnosed trap.  */
#define TRAP_UNK TRAP_UNK
};



/* `si_code' values for SIGCHLD signal.  */
enum
{
  CLD_EXITED = 1,		/* Child has exited.  */
#define CLD_EXITED CLD_EXITED
  CLD_KILLED,			/* Child was killed.  */
#define CLD_KILLED CLD_KILLED
  CLD_DUMPED,			/* Child terminated abnormally.  */
#define CLD_DUMPED CLD_DUMPED
  CLD_TRAPPED,			/* Traced child has trapped.  */
#define CLD_TRAPPED CLD_TRAPPED
  CLD_STOPPED,			/* Child has stopped.  */
#define CLD_STOPPED CLD_STOPPED
  CLD_CONTINUED			/* Stopped child has continued.  */
#define CLD_CONTINUED CLD_CONTINUED
};

/* `si_code' values for SIGPOLL signal.  */
enum
{
  POLL_IN = 1,			/* Data input available.  */
#define POLL_IN POLL_IN
  POLL_OUT,			/* Output buffers available.  */
#define POLL_OUT POLL_OUT
  POLL_MSG,			/* Input message available.   */
#define POLL_MSG POLL_MSG
  POLL_ERR,			/* I/O error.  */
#define POLL_ERR POLL_ERR
  POLL_PRI,			/* High priority input available.  */
#define POLL_PRI POLL_PRI
  POLL_HUP			/* Device disconnected.  */
#define POLL_HUP POLL_HUP
};


/* Architectures might also add architecture-specific constants.
   These are all considered GNU extensions.  */

# 1 "../sysdeps/unix/sysv/linux/bits/siginfo-consts-arch.h" 1
/* Architecture-specific additional siginfo constants.  */

#define _BITS_SIGINFO_CONSTS_ARCH_H 1

/* This architecture has no additional siginfo constants.  */

# 214 "../sysdeps/unix/sysv/linux/bits/siginfo-consts.h" 2


# 59 "../signal/signal.h" 2



# 1 "../include/bits/types/sigval_t.h" 1
# 1 "../signal/bits/types/sigval_t.h" 1

#define __sigval_t_defined 

# 1 "../include/bits/types/__sigval_t.h" 1
# 5 "../signal/bits/types/sigval_t.h" 2

/* To avoid sigval_t (not a standard type name) having C++ name
   mangling depending on whether the selected standard includes union
   sigval, it should not be defined at all when using a standard for
   which the sigval name is not reserved; in that case, headers should
   not include <bits/types/sigval_t.h> and should use only the
   internal __sigval_t name.  */




typedef __sigval_t sigval_t;

# 2 "../include/bits/types/sigval_t.h" 2
# 63 "../signal/signal.h" 2



# 1 "../sysdeps/unix/sysv/linux/bits/types/sigevent_t.h" 1

#define __sigevent_t_defined 1

# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
/* Determine the wordsize from the preprocessor defines.  */


#define __WORDSIZE 64






#define __WORDSIZE_TIME64_COMPAT32 0
# 5 "../sysdeps/unix/sysv/linux/bits/types/sigevent_t.h" 2
# 1 "../include/bits/types.h" 1
# 6 "../sysdeps/unix/sysv/linux/bits/types/sigevent_t.h" 2
# 1 "../include/bits/types/__sigval_t.h" 1
# 7 "../sysdeps/unix/sysv/linux/bits/types/sigevent_t.h" 2

#define __SIGEV_MAX_SIZE 64

#define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4)




/* Forward declaration.  */





/* Structure to transport application-defined values with signals.  */
typedef struct sigevent
  {
    __sigval_t sigev_value;
    int sigev_signo;
    int sigev_notify;

    union
      {
	int _pad[__SIGEV_PAD_SIZE];

	/* When SIGEV_SIGNAL and SIGEV_THREAD_ID set, LWP ID of the
	   thread to receive the signal.  */
	__pid_t _tid;

	struct
	  {
	    void (*_function) (__sigval_t);	/* Function to start.  */
	    pthread_attr_t *_attribute;		/* Thread attributes.  */
	  } _sigev_thread;
      } _sigev_un;
  } sigevent_t;

/* POSIX names to access some of the members.  */
#define sigev_notify_function _sigev_un._sigev_thread._function
#define sigev_notify_attributes _sigev_un._sigev_thread._attribute

# 67 "../signal/signal.h" 2
# 1 "../sysdeps/unix/sysv/linux/bits/sigevent-consts.h" 1
/* sigevent constants.  Linux version.
   Copyright (C) 1997-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _BITS_SIGEVENT_CONSTS_H 1





/* `sigev_notify' values.  */
enum
{
  SIGEV_SIGNAL = 0,		/* Notify via signal.  */
#define SIGEV_SIGNAL SIGEV_SIGNAL
  SIGEV_NONE,			/* Other notification: meaningless.  */
#define SIGEV_NONE SIGEV_NONE
  SIGEV_THREAD,			/* Deliver via thread creation.  */
#define SIGEV_THREAD SIGEV_THREAD

  SIGEV_THREAD_ID = 4		/* Send signal to specific thread.
				   This is a Linux extension.  */
#define SIGEV_THREAD_ID SIGEV_THREAD_ID
};

# 68 "../signal/signal.h" 2



/* Type of a signal handler.  */
typedef void (*__sighandler_t) (int);

/* The X/Open definition of `signal' specifies the SVID semantic.  Use
   the additional function `sysv_signal' when X/Open compatibility is
   requested.  */
extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler)
     __THROW;

extern __sighandler_t sysv_signal (int __sig, __sighandler_t __handler)
     __THROW;


/* Set the handler for the signal SIG to HANDLER, returning the old
   handler, or SIG_ERR on error.
   By default `signal' has the BSD semantic.  */

extern __sighandler_t signal (int __sig, __sighandler_t __handler)
     __THROW;
# 100 "../signal/signal.h"








/* Send signal SIG to process number PID.  If PID is zero,
   send SIG to all processes in the current process's process group.
   If PID is < -1, send SIG to all processes in process group - PID.  */

extern int kill (__pid_t __pid, int __sig) __THROW;



/* Send SIG to all processes in process group PGRP.
   If PGRP is zero, send SIG to all processes in
   the current process's process group.  */
extern int killpg (__pid_t __pgrp, int __sig) __THROW;


/* Raise signal SIG, i.e., send SIG to yourself.  */
extern int raise (int __sig) __THROW;


/* SVID names for the same things.  */
extern __sighandler_t ssignal (int __sig, __sighandler_t __handler)
     __THROW;
extern int gsignal (int __sig) __THROW;



/* Print a message describing the meaning of the given signal number.  */
extern void psignal (int __sig, const char *__s);

/* Print a message describing the meaning of the given signal information.  */
extern void psiginfo (const siginfo_t *__pinfo, const char *__s);




/* The `sigpause' function in X/Open defines the argument as the
   signal number.  This requires redirecting to another function
   because the default version in glibc uses an old BSD interface.

   This function is a cancellation point and therefore not marked with
   __THROW.  */



extern int sigpause (int __sig) __asm__ ("__xpg_sigpause")
  __attribute_deprecated_msg__ ("Use the sigsuspend function instead");









/* None of the following functions should be used anymore.  They are here
   only for compatibility.  A single word (`int') is not guaranteed to be
   enough to hold a complete signal mask and therefore these functions
   simply do not work in many situations.  Use `sigprocmask' instead.  */

/* Compute mask for signal SIG.  */
#define sigmask(sig) __glibc_macro_warning ("sigmask is deprecated") ((int)(1u << ((sig) - 1)))



/* Block signals in MASK, returning the old mask.  */
extern int sigblock (int __mask) __THROW __attribute_deprecated__;

/* Set the mask of blocked signals to MASK, returning the old mask.  */
extern int sigsetmask (int __mask) __THROW __attribute_deprecated__;

/* Return currently selected signal mask.  */
extern int siggetmask (void) __THROW __attribute_deprecated__;




#define NSIG _NSIG



typedef __sighandler_t sighandler_t;


/* 4.4 BSD uses the name `sig_t' for this.  */

typedef __sighandler_t sig_t;




/* Clear all signals from SET.  */
extern int sigemptyset (sigset_t *__set) __THROW __nonnull ((1));

/* Set all signals in SET.  */
extern int sigfillset (sigset_t *__set) __THROW __nonnull ((1));

/* Add SIGNO to SET.  */
extern int sigaddset (sigset_t *__set, int __signo) __THROW __nonnull ((1));

/* Remove SIGNO from SET.  */
extern int sigdelset (sigset_t *__set, int __signo) __THROW __nonnull ((1));

/* Return 1 if SIGNO is in SET, 0 if not.  */
extern int sigismember (const sigset_t *__set, int __signo)
     __THROW __nonnull ((1));


/* Return non-empty value is SET is not empty.  */
extern int sigisemptyset (const sigset_t *__set) __THROW __nonnull ((1));

/* Build new signal set by combining the two inputs set using logical AND.  */
extern int sigandset (sigset_t *__set, const sigset_t *__left,
		      const sigset_t *__right) __THROW __nonnull ((1, 2, 3));

/* Build new signal set by combining the two inputs set using logical OR.  */
extern int sigorset (sigset_t *__set, const sigset_t *__left,
		     const sigset_t *__right) __THROW __nonnull ((1, 2, 3));


/* Get the system-specific definitions of `struct sigaction'
   and the `SA_*' and `SIG_*'. constants.  */
# 1 "../sysdeps/unix/sysv/linux/s390/bits/sigaction.h" 1
/* Definitions for 31 & 64 bit S/390 sigaction.
   Copyright (C) 2001-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _BITS_SIGACTION_H 1





# 1 "../sysdeps/s390/s390-64/bits/wordsize.h" 1
/* Determine the wordsize from the preprocessor defines.  */


#define __WORDSIZE 64






#define __WORDSIZE_TIME64_COMPAT32 0
# 27 "../sysdeps/unix/sysv/linux/s390/bits/sigaction.h" 2


/* Structure describing the action to be taken when a signal arrives.  */
struct sigaction
  {
    /* Signal handler.	*/

    union
      {
	/* Used if SA_SIGINFO is not set.  */
	__sighandler_t sa_handler;
	/* Used if SA_SIGINFO is set.  */
	void (*sa_sigaction) (int, siginfo_t *, void *);
      }
    __sigaction_handler;
#define sa_handler __sigaction_handler.sa_handler
#define sa_sigaction __sigaction_handler.sa_sigaction




    /* Special flags.  */
    int __glibc_reserved0;
    int sa_flags;

    /* Restore handler.  */
    void (*sa_restorer) (void);

    /* Additional set of signals to be blocked.	 */
    __sigset_t sa_mask;
  };
# 88 "../sysdeps/unix/sysv/linux/s390/bits/sigaction.h"

/* Bits in `sa_flags'.  */
#define SA_NOCLDSTOP 1
#define SA_NOCLDWAIT 2
#define SA_SIGINFO 4


#define SA_ONSTACK 0x08000000


#define SA_RESTART 0x10000000
#define SA_NODEFER 0x40000000

#define SA_RESETHAND 0x80000000


#define SA_INTERRUPT 0x20000000

/* Some aliases for the SA_ constants.	*/
#define SA_NOMASK SA_NODEFER
#define SA_ONESHOT SA_RESETHAND
#define SA_STACK SA_ONSTACK


/* Values for the HOW argument to `sigprocmask'.  */
#define SIG_BLOCK 0
#define SIG_UNBLOCK 1
#define SIG_SETMASK 2

# 230 "../signal/signal.h" 2

/* Get and/or change the set of blocked signals.  */
extern int sigprocmask (int __how, const sigset_t *__restrict __set,
			sigset_t *__restrict __oset) __THROW;

/* Change the set of blocked signals to SET,
   wait until a signal arrives, and restore the set of blocked signals.

   This function is a cancellation point and therefore not marked with
   __THROW.  */
extern int sigsuspend (const sigset_t *__set) __nonnull ((1));

/* Get and/or set the action for signal SIG.  */
extern int sigaction (int __sig, const struct sigaction *__restrict __act,
		      struct sigaction *__restrict __oact) __THROW;

/* Put in SET all signals that are blocked and waiting to be delivered.  */
extern int sigpending (sigset_t *__set) __THROW __nonnull ((1));



/* Select any of pending signals from SET or wait for any to arrive.

   This function is a cancellation point and therefore not marked with
   __THROW.  */
extern int sigwait (const sigset_t *__restrict __set, int *__restrict __sig)
     __nonnull ((1, 2));



/* Select any of pending signals from SET and place information in INFO.

   This function is a cancellation point and therefore not marked with
   __THROW.  */
extern int sigwaitinfo (const sigset_t *__restrict __set,
			siginfo_t *__restrict __info) __nonnull ((1));

/* Select any of pending signals from SET and place information in INFO.
   Wait the time specified by TIMEOUT if no signal is pending.

   This function is a cancellation point and therefore not marked with
   __THROW.  */

extern int sigtimedwait (const sigset_t *__restrict __set,
			 siginfo_t *__restrict __info,
			 const struct timespec *__restrict __timeout)
     __nonnull ((1));
# 289 "../signal/signal.h"

/* Send signal SIG to the process PID.  Associate data in VAL with the
   signal.  */
extern int sigqueue (__pid_t __pid, int __sig, const union sigval __val)
     __THROW;






/* Get machine-dependent `struct sigcontext' and signal subcodes.  */
# 1 "../sysdeps/unix/sysv/linux/bits/sigcontext.h" 1
/* Copyright (C) 1996-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _BITS_SIGCONTEXT_H 1






/* Kernel headers before 2.1.1 define a struct sigcontext_struct, but
   we need sigcontext.  */
#define sigcontext_struct sigcontext

# 1 "/usr/include/asm/sigcontext.h" 1 3 4
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/*
 *  S390 version
 *    Copyright IBM Corp. 1999, 2000
 */


#define _ASM_S390_SIGCONTEXT_H 


# 1 "/usr/include/linux/types.h" 1 3 4
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */

#define _LINUX_TYPES_H 

# 1 "/usr/include/asm/types.h" 1 3 4
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/*
 *  S390 version
 *
 *  Derived from "include/asm-i386/types.h"
 */


#define _S390_TYPES_H 

# 1 "/usr/include/asm-generic/int-ll64.h" 1 3 4
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/*
 * asm-generic/int-ll64.h
 *
 * Integer declarations for architectures which use "long long"
 * for 64-bit types.
 */


#define _ASM_GENERIC_INT_LL64_H 

# 1 "/usr/include/asm/bitsperlong.h" 1 3 4
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */

#define __ASM_S390_BITSPERLONG_H 




#define __BITS_PER_LONG 64


# 1 "/usr/include/asm-generic/bitsperlong.h" 1 3 4
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */

#define __ASM_GENERIC_BITS_PER_LONG 

/*
 * There seems to be no way of detecting this automatically from user
 * space, so 64 bit architectures should override this in their
 * bitsperlong.h. In particular, an architecture that supports
 * both 32 and 64 bit user space must not rely on CONFIG_64BIT
 * to decide it, but rather check a compiler provided macro.
 */




# 12 "/usr/include/asm/bitsperlong.h" 2 3 4



# 13 "/usr/include/asm-generic/int-ll64.h" 2 3 4


/*
 * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
 * header files exported to user space
 */

typedef __signed__ char __s8;
typedef unsigned char __u8;

typedef __signed__ short __s16;
typedef unsigned short __u16;

typedef __signed__ int __s32;
typedef unsigned int __u32;


__extension__ typedef __signed__ long long __s64;
__extension__ typedef unsigned long long __u64;








# 12 "/usr/include/asm/types.h" 2 3 4



/* A address type so that arithmetic can be done on it & it can be upgraded to
   64 bit when necessary 
*/
typedef unsigned long addr_t; 
typedef __signed__ long saddr_t;

typedef struct {
	__u32 u[4];
} __vector128;



# 6 "/usr/include/linux/types.h" 2 3 4



# 1 "/usr/include/linux/posix_types.h" 1 3 4
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */

#define _LINUX_POSIX_TYPES_H 

# 1 "/usr/include/linux/stddef.h" 1 3 4
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */


# 6 "/usr/include/linux/posix_types.h" 2 3 4

/*
 * This allows for 1024 file descriptors: if NR_OPEN is ever grown
 * beyond that you'll have to change this too. But 1024 fd's seem to be
 * enough even for such "real" unices like OSF/1, so hopefully this is
 * one limit that doesn't have to be changed [again].
 *
 * Note that POSIX wants the FD_CLEAR(fd,fdsetp) defines to be in
 * <sys/time.h> (and thus <linux/time.h>) - but this is a more logical
 * place for them. Solved by having dummy defines in <sys/time.h>.
 */

/*
 * This macro may have been defined in <gnu/types.h>. But we always
 * use the one here.
 */
#undef __FD_SETSIZE
#define __FD_SETSIZE 1024

typedef struct {
	unsigned long fds_bits[__FD_SETSIZE / (8 * sizeof(long))];
} __kernel_fd_set;

/* Type of a signal handler.  */
typedef void (*__kernel_sighandler_t)(int);

/* Type of a SYSV IPC key.  */
typedef int __kernel_key_t;
typedef int __kernel_mqd_t;

# 1 "/usr/include/asm/posix_types.h" 1 3 4
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/*
 *  S390 version
 *
 */


#define __ARCH_S390_POSIX_TYPES_H 

/*
 * This file is generally used by user-level software, so you need to
 * be a little careful about namespace pollution etc.  Also, we cannot
 * assume GCC is being used.
 */

typedef unsigned long   __kernel_size_t;
typedef long            __kernel_ssize_t;
#define __kernel_size_t __kernel_size_t

typedef unsigned short	__kernel_old_dev_t;
#define __kernel_old_dev_t __kernel_old_dev_t


# 34 "/usr/include/asm/posix_types.h" 3 4

typedef unsigned int    __kernel_ino_t;
typedef unsigned int    __kernel_mode_t;
typedef int             __kernel_ipc_pid_t;
typedef unsigned int    __kernel_uid_t;
typedef unsigned int    __kernel_gid_t;
typedef long            __kernel_ptrdiff_t;
typedef unsigned long   __kernel_sigset_t;      /* at least 32 bits */



#define __kernel_ino_t __kernel_ino_t
#define __kernel_mode_t __kernel_mode_t
#define __kernel_ipc_pid_t __kernel_ipc_pid_t
#define __kernel_uid_t __kernel_uid_t
#define __kernel_gid_t __kernel_gid_t

# 1 "/usr/include/asm-generic/posix_types.h" 1 3 4
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */

#define __ASM_GENERIC_POSIX_TYPES_H 


/*
 * This file is generally used by user-level software, so you need to
 * be a little careful about namespace pollution etc.
 *
 * First the types that are often defined in different ways across
 * architectures, so that you can override them.
 */


typedef long		__kernel_long_t;
typedef unsigned long	__kernel_ulong_t;











typedef int		__kernel_pid_t;












typedef __kernel_long_t		__kernel_suseconds_t;



typedef int		__kernel_daddr_t;



typedef unsigned int	__kernel_uid32_t;
typedef unsigned int	__kernel_gid32_t;



typedef __kernel_uid_t	__kernel_old_uid_t;
typedef __kernel_gid_t	__kernel_old_gid_t;






/*
 * Most 32 bit architectures use "unsigned int" size_t,
 * and all 64 bit architectures use "unsigned long" size_t.
 */
# 77 "/usr/include/asm-generic/posix_types.h" 3 4


typedef struct {
	int	val[2];
} __kernel_fsid_t;


/*
 * anything below here should be completely generic
 */
typedef __kernel_long_t	__kernel_off_t;
typedef long long	__kernel_loff_t;
typedef __kernel_long_t	__kernel_old_time_t;
typedef __kernel_long_t	__kernel_time_t;
typedef long long __kernel_time64_t;
typedef __kernel_long_t	__kernel_clock_t;
typedef int		__kernel_timer_t;
typedef int		__kernel_clockid_t;
typedef char *		__kernel_caddr_t;
typedef unsigned short	__kernel_uid16_t;
typedef unsigned short	__kernel_gid16_t;

# 52 "/usr/include/asm/posix_types.h" 2 3 4

# 37 "/usr/include/linux/posix_types.h" 2 3 4

# 10 "/usr/include/linux/types.h" 2 3 4


/*
 * Below are truly Linux-specific types that should never collide with
 * any application/library that wants linux/types.h.
 */




#define __bitwise__ 

#define __bitwise __bitwise__

typedef __u16 __bitwise __le16;
typedef __u16 __bitwise __be16;
typedef __u32 __bitwise __le32;
typedef __u32 __bitwise __be32;
typedef __u64 __bitwise __le64;
typedef __u64 __bitwise __be64;

typedef __u16 __bitwise __sum16;
typedef __u32 __bitwise __wsum;

/*
 * aligned_u64 should be used in defining kernel<->userspace ABIs to avoid
 * common 32/64-bit compat problems.
 * 64-bit values align to 4-byte boundaries on x86_32 (and possibly other
 * architectures) and to 8-byte boundaries on 64-bit architectures.  The new
 * aligned_64 type enforces 8-byte alignment so that structs containing
 * aligned_64 values have the same alignment on 32-bit and 64-bit architectures.
 * No conversions are necessary between 32-bit user-space and a 64-bit kernel.
 */
#define __aligned_u64 __u64 __attribute__((aligned(8)))
#define __aligned_be64 __be64 __attribute__((aligned(8)))
#define __aligned_le64 __le64 __attribute__((aligned(8)))

typedef unsigned __bitwise __poll_t;


# 12 "/usr/include/asm/sigcontext.h" 2 3 4

#define __NUM_GPRS 16
#define __NUM_FPRS 16
#define __NUM_ACRS 16
#define __NUM_VXRS 32
#define __NUM_VXRS_LOW 16
#define __NUM_VXRS_HIGH 16

# 29 "/usr/include/asm/sigcontext.h" 3 4

/* Has to be at least _NSIG_WORDS from asm/signal.h */
#define _SIGCONTEXT_NSIG 64
#define _SIGCONTEXT_NSIG_BPW 64
/* Size of stack frame allocated when calling signal handler. */
#define __SIGNAL_FRAMESIZE 160



#define _SIGCONTEXT_NSIG_WORDS (_SIGCONTEXT_NSIG / _SIGCONTEXT_NSIG_BPW)
#define _SIGMASK_COPY_SIZE (sizeof(unsigned long)*_SIGCONTEXT_NSIG_WORDS)

typedef struct 
{
        unsigned long mask;
        unsigned long addr;
} __attribute__ ((aligned(8))) _psw_t;

typedef struct
{
	_psw_t psw;
	unsigned long gprs[__NUM_GPRS];
	unsigned int  acrs[__NUM_ACRS];
} _s390_regs_common;

typedef struct
{
	unsigned int fpc;
	unsigned int pad;
	double   fprs[__NUM_FPRS];
} _s390_fp_regs;

typedef struct
{
	_s390_regs_common regs;
	_s390_fp_regs     fpregs;
} _sigregs;

typedef struct
{



	unsigned long long vxrs_low[__NUM_VXRS_LOW];
	__vector128 vxrs_high[__NUM_VXRS_HIGH];
	unsigned char __reserved[128];
} _sigregs_ext;

struct sigcontext
{
	unsigned long	oldmask[_SIGCONTEXT_NSIG_WORDS];
	_sigregs        *sregs;
};




# 31 "../sysdeps/unix/sysv/linux/bits/sigcontext.h" 2

/* The Linux kernel headers redefine NULL wrongly, so cleanup afterwards.  */
#define __need_NULL 
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2021 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */






/* Any one of these symbols __need_* means that GNU libc
   wants us just to define one data type.  So don't define
   the symbols that indicate this file's entire job has been done.  */
# 44 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4


/* This avoids lossage on SunOS but only if stdtypes.h comes first.
   There's no way to win with the other order!  Sun lossage.  */









# 85 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
   Just ignore it.  */




/* On VxWorks, <type/vxTypesBase.h> may have defined macros like
   _TYPE_size_t which will typedef size_t.  fixincludes patched the
   vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
   not defined, and so that defining this macro defines _GCC_SIZE_T.
   If we find that the macros are still defined at this point, we must
   invoke them so that the type is defined as expected.  */













/* In case nobody has defined these types, but we aren't running under
   GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
   __WCHAR_TYPE__ have reasonable values.  This can happen if the
   parts of GCC is compiled by an older compiler, that actually
   include gstddef.h, such as collect2.  */

/* Signed type of difference of two pointers.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 153 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* If this symbol has done its job, get rid of it.  */
#undef __need_ptrdiff_t



/* Unsigned type of `sizeof' something.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 231 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
#undef __need_size_t



/* Wide character type.
   Locale-writers should change this as necessary to
   be big enough to hold unique values not between 0 and 127,
   and not (wchar_t) -1, for each defined multibyte character.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 340 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
#undef __need_wchar_t


# 354 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

# 384 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4



/* A null pointer constant.  */


#undef NULL




#define NULL ((void *)0)





#undef __need_NULL



/* Offset of member MEMBER in a struct of type TYPE. */
#define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)



# 428 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4











# 35 "../sysdeps/unix/sysv/linux/bits/sigcontext.h" 2


# 302 "../signal/signal.h" 2

/* Restore the state saved in SCP.  */
extern int sigreturn (struct sigcontext *__scp) __THROW;





#define __need_size_t 
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2021 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */






/* Any one of these symbols __need_* means that GNU libc
   wants us just to define one data type.  So don't define
   the symbols that indicate this file's entire job has been done.  */
# 44 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4


/* This avoids lossage on SunOS but only if stdtypes.h comes first.
   There's no way to win with the other order!  Sun lossage.  */









# 85 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
   Just ignore it.  */




/* On VxWorks, <type/vxTypesBase.h> may have defined macros like
   _TYPE_size_t which will typedef size_t.  fixincludes patched the
   vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
   not defined, and so that defining this macro defines _GCC_SIZE_T.
   If we find that the macros are still defined at this point, we must
   invoke them so that the type is defined as expected.  */













/* In case nobody has defined these types, but we aren't running under
   GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
   __WCHAR_TYPE__ have reasonable values.  This can happen if the
   parts of GCC is compiled by an older compiler, that actually
   include gstddef.h, such as collect2.  */

/* Signed type of difference of two pointers.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 153 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* If this symbol has done its job, get rid of it.  */
#undef __need_ptrdiff_t



/* Unsigned type of `sizeof' something.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 231 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
#undef __need_size_t



/* Wide character type.
   Locale-writers should change this as necessary to
   be big enough to hold unique values not between 0 and 127,
   and not (wchar_t) -1, for each defined multibyte character.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 340 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
#undef __need_wchar_t


# 354 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

# 384 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4



/* A null pointer constant.  */


#undef NULL




#define NULL ((void *)0)





#undef __need_NULL



/* Offset of member MEMBER in a struct of type TYPE. */
#define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)



# 428 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4











# 312 "../signal/signal.h" 2

# 1 "../sysdeps/unix/sysv/linux/bits/types/stack_t.h" 1
/* Define stack_t.  Linux version.
   Copyright (C) 1998-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define __stack_t_defined 1

#define __need_size_t 
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2021 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */






/* Any one of these symbols __need_* means that GNU libc
   wants us just to define one data type.  So don't define
   the symbols that indicate this file's entire job has been done.  */
# 44 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4


/* This avoids lossage on SunOS but only if stdtypes.h comes first.
   There's no way to win with the other order!  Sun lossage.  */









# 85 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
   Just ignore it.  */




/* On VxWorks, <type/vxTypesBase.h> may have defined macros like
   _TYPE_size_t which will typedef size_t.  fixincludes patched the
   vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
   not defined, and so that defining this macro defines _GCC_SIZE_T.
   If we find that the macros are still defined at this point, we must
   invoke them so that the type is defined as expected.  */













/* In case nobody has defined these types, but we aren't running under
   GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
   __WCHAR_TYPE__ have reasonable values.  This can happen if the
   parts of GCC is compiled by an older compiler, that actually
   include gstddef.h, such as collect2.  */

/* Signed type of difference of two pointers.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 153 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* If this symbol has done its job, get rid of it.  */
#undef __need_ptrdiff_t



/* Unsigned type of `sizeof' something.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 231 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
#undef __need_size_t



/* Wide character type.
   Locale-writers should change this as necessary to
   be big enough to hold unique values not between 0 and 127,
   and not (wchar_t) -1, for each defined multibyte character.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 340 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
#undef __need_wchar_t


# 354 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

# 384 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4



/* A null pointer constant.  */


#undef NULL




#define NULL ((void *)0)





#undef __need_NULL



/* Offset of member MEMBER in a struct of type TYPE. */
#define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)



# 428 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4











# 24 "../sysdeps/unix/sysv/linux/bits/types/stack_t.h" 2

/* Structure describing a signal stack.  */
typedef struct
  {
    void *ss_sp;
    int ss_flags;
    size_t ss_size;
  } stack_t;

# 314 "../signal/signal.h" 2

/* This will define `ucontext_t' and `mcontext_t'.  */
# 1 "../sysdeps/unix/sysv/linux/s390/sys/ucontext.h" 1
/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _SYS_UCONTEXT_H 1



# 1 "../include/bits/types/sigset_t.h" 1
# 24 "../sysdeps/unix/sysv/linux/s390/sys/ucontext.h" 2




#define __ctx(fld) fld




/* Type for a program status word.  */
typedef struct
{
  unsigned long __ctx(mask);
  unsigned long __ctx(addr);
} __attribute__ ((__aligned__(8))) __psw_t;

/* Type for a general-purpose register.  */
typedef unsigned long greg_t;

/* And the whole bunch of them.  We should have used `struct s390_regs',
   but to avoid name space pollution and since the tradition says that
   the register set is an array, we make gregset_t a simple array
   that has the same size as s390_regs.  This is needed for the
   elf_prstatus structure.  */

#define __NGREG 27




#define NGREG __NGREG

/* Must match kernels psw_t alignment.  */
typedef greg_t gregset_t[__NGREG] __attribute__ ((__aligned__(8)));

typedef union
  {
    double  __ctx(d);
    float   __ctx(f);
  } fpreg_t;

/* Register set for the floating-point registers.  */
typedef struct
  {
    unsigned int __ctx(fpc);
    fpreg_t __ctx(fprs)[16];
  } fpregset_t;

/* Context to describe whole processor state.  */
typedef struct
  {
    __psw_t __ctx(psw);
    unsigned long __ctx(gregs)[16];
    unsigned int __ctx(aregs)[16];
    fpregset_t __ctx(fpregs);
  } mcontext_t;

/* Userlevel context.  */
typedef struct ucontext_t
  {
    unsigned long int __ctx(uc_flags);
    struct ucontext_t *uc_link;
    stack_t uc_stack;
    mcontext_t uc_mcontext;
    sigset_t uc_sigmask;
  } ucontext_t;

#undef __ctx


# 317 "../signal/signal.h" 2




/* If INTERRUPT is nonzero, make signal SIG interrupt system calls
   (causing them to fail with EINTR); if INTERRUPT is zero, make system
   calls be restarted after signal SIG.  */
extern int siginterrupt (int __sig, int __interrupt) __THROW
  __attribute_deprecated_msg__ ("Use sigaction with SA_RESTART instead");

# 1 "../include/bits/sigstack.h" 1
# 1 "../sysdeps/unix/sysv/linux/bits/sigstack.h" 1
/* sigstack, sigaltstack definitions.
   Copyright (C) 1998-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _BITS_SIGSTACK_H 1





/* Minimum stack size for a signal handler.  */
#define MINSIGSTKSZ 2048

/* System default stack size.  */
#define SIGSTKSZ 8192

# 2 "../include/bits/sigstack.h" 2


#define CONSTANT_MINSIGSTKSZ MINSIGSTKSZ
# 328 "../signal/signal.h" 2
# 1 "../include/bits/sigstksz.h" 1
/* NB: Don't define MINSIGSTKSZ nor SIGSTKSZ to sysconf (SC_SIGSTKSZ) for
   glibc build.  IS_IN can only be used when _ISOMAC isn't defined.  */
# 329 "../signal/signal.h" 2
# 1 "../sysdeps/unix/sysv/linux/bits/ss_flags.h" 1
/* ss_flags values for stack_t.  Linux version.
   Copyright (C) 1998-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _BITS_SS_FLAGS_H 1





/* Possible values for `ss_flags'.  */
enum
{
  SS_ONSTACK = 1,
#define SS_ONSTACK SS_ONSTACK
  SS_DISABLE
#define SS_DISABLE SS_DISABLE
};

# 330 "../signal/signal.h" 2

/* Alternate signal handler stack interface.
   This interface should always be preferred over `sigstack'.  */
extern int sigaltstack (const stack_t *__restrict __ss,
			stack_t *__restrict __oss) __THROW;




# 1 "../include/bits/types/struct_sigstack.h" 1
# 1 "../signal/bits/types/struct_sigstack.h" 1
/* Define struct sigstack.
   Copyright (C) 1998-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define __sigstack_defined 1

/* Structure describing a signal stack (obsolete).  */
struct sigstack
  {
    void *ss_sp;		/* Signal stack pointer.  */
    int ss_onstack;		/* Nonzero if executing on this stack.  */
  };

# 2 "../include/bits/types/struct_sigstack.h" 2
# 340 "../signal/signal.h" 2




/* Run signals handlers on the stack specified by SS (if not NULL).
   If OSS is not NULL, it is filled in with the old signal stack status.
   This interface is obsolete and on many platform not implemented.  */
extern int sigstack (struct sigstack *__ss, struct sigstack *__oss)
     __THROW __attribute_deprecated__;



/* Simplified interface for signal management.  */

/* Add SIG to the calling process' signal mask.  */
extern int sighold (int __sig) __THROW
  __attribute_deprecated_msg__ ("Use the sigprocmask function instead");

/* Remove SIG from the calling process' signal mask.  */
extern int sigrelse (int __sig) __THROW
  __attribute_deprecated_msg__ ("Use the sigprocmask function instead");

/* Set the disposition of SIG to SIG_IGN.  */
extern int sigignore (int __sig) __THROW
  __attribute_deprecated_msg__ ("Use the signal function instead");

/* Set the disposition of SIG.  */
extern __sighandler_t sigset (int __sig, __sighandler_t __disp) __THROW
  __attribute_deprecated_msg__
    ("Use the signal and sigprocmask functions instead");



/* Some of the functions for handling signals in threaded programs must
   be defined here.  */

# 1 "../sysdeps/pthread/bits/sigthread.h" 1
/* Signal handling function for threaded programs.
   Copyright (C) 1998-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public License as
   published by the Free Software Foundation; either version 2.1 of the
   License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; see the file COPYING.LIB.  If
   not, see <https://www.gnu.org/licenses/>.  */


#define _BITS_SIGTHREAD_H 1





/* Functions for handling signals. */


/* Modify the signal mask for the calling thread.  The arguments have
   the same meaning as for sigprocmask(2). */
extern int pthread_sigmask (int __how,
			    const __sigset_t *__restrict __newmask,
			    __sigset_t *__restrict __oldmask)__THROW;

/* Send signal SIGNO to the given thread. */
extern int pthread_kill (pthread_t __threadid, int __signo) __THROW;


/* Queue signal and data to a thread.  */
extern int pthread_sigqueue (pthread_t __threadid, int __signo,
			     const union sigval __value) __THROW;


# 377 "../signal/signal.h" 2


/* The following functions are used internally in the C library and in
   other code which need deep insights.  */

/* Return number of available real-time signal with highest priority.  */
extern int __libc_current_sigrtmin (void) __THROW;
/* Return number of available real-time signal with lowest priority.  */
extern int __libc_current_sigrtmax (void) __THROW;

#define SIGRTMIN (__libc_current_sigrtmin ())
#define SIGRTMAX (__libc_current_sigrtmax ())

/* System-specific extensions.  */
# 1 "../sysdeps/unix/sysv/linux/bits/signal_ext.h" 1
/* System-specific extensions of <signal.h>, Linux version.
   Copyright (C) 2019-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */







/* Send SIGNAL to the thread TID in the thread group (process)
   identified by TGID.  This function behaves like kill, but also
   fails with ESRCH if the specified TID does not belong to the
   specified thread group.  */
extern int tgkill (__pid_t __tgid, __pid_t __tid, int __signal);

# 392 "../signal/signal.h" 2

__END_DECLS

# 3 "../include/signal.h" 2


# 1 "../sysdeps/unix/sysv/linux/sigsetops.h" 1
/* __sigset_t manipulators.  Linux version.
   Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _SIGSETOPS_H 1

# 1 "../include/signal.h" 1
# 23 "../sysdeps/unix/sysv/linux/sigsetops.h" 2
# 1 "../include/limits.h" 1
/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/*
 *	ISO C99 Standard: 7.10/5.2.4.2.1 Sizes of integer types	<limits.h>
 */

# 116 "../include/limits.h"

 /* Get the compiler's limits.h, which defines almost all the ISO constants.

    We put this #include_next outside the double inclusion check because
    it should be possible to include this file more than once and still get
    the definitions from gcc's header.  */





/* The <limits.h> files in some gcc versions don't define LLONG_MIN,
   LLONG_MAX, and ULLONG_MAX.  Instead only the values gcc defined for
   ages are available.  */












/* The integer width macros are not defined by GCC's <limits.h> before
   GCC 7, or if _GNU_SOURCE rather than
   __STDC_WANT_IEC_60559_BFP_EXT__ is used to enable this feature.  */




































/* The macros for _Bool are not defined by GCC's <limits.h> before GCC
   11, or if _GNU_SOURCE is defined rather than enabling C2x support
   with -std.  */










/* POSIX adds things to <limits.h>.  */
# 1 "../include/bits/posix1_lim.h" 1
# 196 "../include/limits.h" 2



# 1 "../include/bits/posix2_lim.h" 1
# 200 "../include/limits.h" 2




# 24 "../sysdeps/unix/sysv/linux/sigsetops.h" 2


/* Return a mask that includes the bit for SIG only.  */
#define __sigmask(sig) (1UL << (((sig) - 1) % ULONG_WIDTH))


/* Return the word index for SIG.  */
static inline unsigned long int
__sigword (int sig)
{
  return (sig - 1) / ULONG_WIDTH;
}

/* Linux sig* functions only handle up to __NSIG_WORDS words instead of
   full _SIGSET_NWORDS sigset size.  The signal numbers are 1-based, and
   bit 0 of a signal mask is for signal 1.  */
#define __NSIG_WORDS (ALIGN_UP ((_NSIG - 1), ULONG_WIDTH) / ULONG_WIDTH)
_Static_assert (__NSIG_WORDS <= _SIGSET_NWORDS,
		"__NSIG_WORDS > _SIGSET_WORDS");

/* This macro is used on syscall that takes a sigset_t to specify the expected
   size in bytes.  As for glibc, kernel sigset is implemented as an array of
   unsigned long.  */
#define __NSIG_BYTES (__NSIG_WORDS * (ULONG_WIDTH / UCHAR_WIDTH))

static inline void
__sigemptyset (sigset_t *set)
{
  int cnt = __NSIG_WORDS;
  while (--cnt >= 0)
   set->__val[cnt] = 0;
}

static inline void
__sigfillset (sigset_t *set)
{
  int cnt = __NSIG_WORDS;
  while (--cnt >= 0)
   set->__val[cnt] = ~0UL;
}

static inline int
__sigisemptyset (const sigset_t *set)
{
  int cnt = __NSIG_WORDS;
  int ret = set->__val[--cnt];
  while (ret == 0 && --cnt >= 0)
    ret = set->__val[cnt];
  return ret == 0;
}

static inline void
__sigandset (sigset_t *dest, const sigset_t *left, const sigset_t *right)
{
  int cnt = __NSIG_WORDS;
  while (--cnt >= 0)
    dest->__val[cnt] = left->__val[cnt] & right->__val[cnt];
}

static inline void
__sigorset (sigset_t *dest, const sigset_t *left, const sigset_t *right)
{
  int cnt = __NSIG_WORDS;
  while (--cnt >= 0)
    dest->__val[cnt] = left->__val[cnt] | right->__val[cnt];
}

static inline int
__sigismember (const sigset_t *set, int sig)
{
  unsigned long int mask = __sigmask (sig);
  unsigned long int word = __sigword (sig);
  return set->__val[word] & mask ? 1 : 0;
}

static inline void
__sigaddset (sigset_t *set, int sig)
{
  unsigned long int mask = __sigmask (sig);
  unsigned long int word = __sigword (sig);
  set->__val[word] |= mask;
}

static inline void
__sigdelset (sigset_t *set, int sig)
{
  unsigned long int mask = __sigmask (sig);
  unsigned long int word = __sigword (sig);
  set->__val[word] &= ~mask;
}

# 6 "../include/signal.h" 2

libc_hidden_proto (sigemptyset)
libc_hidden_proto (sigfillset)
libc_hidden_proto (sigaddset)
libc_hidden_proto (sigdelset)
libc_hidden_proto (sigismember)
extern int __sigpause (int sig_or_mask, int is_sig);
libc_hidden_proto (__sigpause)
libc_hidden_proto (raise)
libc_hidden_proto (__libc_current_sigrtmin)
libc_hidden_proto (__libc_current_sigrtmax)
extern const char * const __sys_siglist[_NSIG];
libc_hidden_proto (__sys_siglist)
extern const char * const __sys_sigabbrev[_NSIG];
libc_hidden_proto (__sys_sigabbrev)

/* Now define the internal interfaces.  */
extern __sighandler_t __bsd_signal (int __sig, __sighandler_t __handler);
extern int __kill (__pid_t __pid, int __sig);
libc_hidden_proto (__kill)
extern int __sigaction (int __sig, const struct sigaction *__restrict __act,
			struct sigaction *__restrict __oact);
libc_hidden_proto (__sigaction)
extern int __sigblock (int __mask);
libc_hidden_proto (__sigblock)
extern int __sigsetmask (int __mask);
extern int __sigprocmask (int __how,
			  const sigset_t *__set, sigset_t *__oset);
libc_hidden_proto (__sigprocmask)
extern int __sigsuspend (const sigset_t *__set);
libc_hidden_proto (__sigsuspend)
extern int __sigwait (const sigset_t *__set, int *__sig);
libc_hidden_proto (__sigwait)
extern int __sigwaitinfo (const sigset_t *__set, siginfo_t *__info);
libc_hidden_proto (__sigwaitinfo)

#define __sigtimedwait64 __sigtimedwait






extern int __sigtimedwait (const sigset_t *__set, siginfo_t *__info,
			   const struct timespec *__timeout);
libc_hidden_proto (__sigtimedwait)
extern int __sigqueue (__pid_t __pid, int __sig,
		       const union sigval __val);

extern int __sigreturn (struct sigcontext *__scp);

extern int __sigaltstack (const stack_t *__ss,
			  stack_t *__oss);
libc_hidden_proto (__sigaltstack)
extern int __libc_sigaction (int sig, const struct sigaction *act,
			     struct sigaction *oact);
libc_hidden_proto (__libc_sigaction)

extern int __default_sigpause (int mask);
extern int __xpg_sigpause (int sig);

/* Allocate real-time signal with highest/lowest available priority.  */
extern int __libc_allocate_rtsig (int __high);







# 29 "../misc/sys/param.h" 2

/* This file defines some things in system-specific ways.  */
# 1 "../sysdeps/unix/sysv/linux/bits/param.h" 1
/* Old-style Unix parameters and limits.  Linux version.
   Copyright (C) 1995-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */






#define __undef_ARG_MAX 



# 1 "/usr/include/linux/param.h" 1 3 4
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */

#define _LINUX_PARAM_H 

# 1 "/usr/include/asm/param.h" 1 3 4
# 1 "/usr/include/asm-generic/param.h" 1 3 4
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */

#define __ASM_GENERIC_PARAM_H 


#define HZ 100



#define EXEC_PAGESIZE 4096



#define NOGROUP (-1)


#define MAXHOSTNAMELEN 64


# 2 "/usr/include/asm/param.h" 2 3 4
# 6 "/usr/include/linux/param.h" 2 3 4

# 29 "../sysdeps/unix/sysv/linux/bits/param.h" 2

/* The kernel headers define ARG_MAX.  The value is wrong, though.  */

#undef ARG_MAX
#undef __undef_ARG_MAX


#define MAXSYMLINKS 20

/* The following are not really correct but it is a value we used for a
   long time and which seems to be usable.  People should not use NOFILE
   and NCARGS anyway.  */
#define NOFILE 256
#define NCARGS 131072
# 32 "../misc/sys/param.h" 2


/* BSD names for some <limits.h> values.  */

#define NBBY CHAR_BIT


#define NGROUPS NGROUPS_MAX





#define CANBSIZ MAX_CANON


#define MAXPATHLEN PATH_MAX







# 65 "../misc/sys/param.h"


/* Magical constants.  */




#define NODEV ((dev_t) -1)



/* Unit of `st_blocks'.  */

#define DEV_BSIZE 512



/* Bit map related macros.  */
#define setbit(a,i) ((a)[(i)/NBBY] |= 1<<((i)%NBBY))
#define clrbit(a,i) ((a)[(i)/NBBY] &= ~(1<<((i)%NBBY)))
#define isset(a,i) ((a)[(i)/NBBY] & (1<<((i)%NBBY)))
#define isclr(a,i) (((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0)

/* Macros for counting and rounding.  */

#define howmany(x,y) (((x) + ((y) - 1)) / (y))


#define roundup(x,y) (__builtin_constant_p (y) && powerof2 (y) ? (((x) + (y) - 1) & ~((y) - 1)) : ((((x) + ((y) - 1)) / (y)) * (y)))





#define powerof2(x) ((((x) - 1) & (x)) == 0)

/* Macros for min/max.  */
#define MIN(a,b) (((a)<(b))?(a):(b))
#define MAX(a,b) (((a)>(b))?(a):(b))


# 2 "../include/sys/param.h" 2
# 39 "../sysdeps/generic/hp-timing-common.h" 2
# 1 "../sysdeps/generic/_itoa.h" 1
/* Internal function for converting integers to ASCII.
   Copyright (C) 1994-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _ITOA_H 

# 1 "../include/limits.h" 1
/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/*
 *	ISO C99 Standard: 7.10/5.2.4.2.1 Sizes of integer types	<limits.h>
 */

# 116 "../include/limits.h"

 /* Get the compiler's limits.h, which defines almost all the ISO constants.

    We put this #include_next outside the double inclusion check because
    it should be possible to include this file more than once and still get
    the definitions from gcc's header.  */





/* The <limits.h> files in some gcc versions don't define LLONG_MIN,
   LLONG_MAX, and ULLONG_MAX.  Instead only the values gcc defined for
   ages are available.  */












/* The integer width macros are not defined by GCC's <limits.h> before
   GCC 7, or if _GNU_SOURCE rather than
   __STDC_WANT_IEC_60559_BFP_EXT__ is used to enable this feature.  */




































/* The macros for _Bool are not defined by GCC's <limits.h> before GCC
   11, or if _GNU_SOURCE is defined rather than enabling C2x support
   with -std.  */










/* POSIX adds things to <limits.h>.  */
# 1 "../include/bits/posix1_lim.h" 1
# 196 "../include/limits.h" 2



# 1 "../include/bits/posix2_lim.h" 1
# 200 "../include/limits.h" 2




# 23 "../sysdeps/generic/_itoa.h" 2

/* When long long is different from long, by default, _itoa_word is
   provided to convert long to ASCII and _itoa is provided to convert
   long long.  A sysdeps _itoa.h can define _ITOA_NEEDED to 0 and define
   _ITOA_WORD_TYPE to unsigned long long int to override it so that
   _itoa_word is changed to convert long long to ASCII and _itoa is
   mapped to _itoa_word.  */


#define _ITOA_NEEDED (LONG_MAX != LLONG_MAX)


#define _ITOA_WORD_TYPE unsigned long int



/* Convert VALUE into ASCII in base BASE (2..36).
   Write backwards starting the character just before BUFLIM.
   Return the address of the first (left-to-right) character in the number.
   Use upper case letters iff UPPER_CASE is nonzero.  */

extern char *_itoa (unsigned long long int value, char *buflim,
		    unsigned int base, int upper_case) attribute_hidden;

extern const char _itoa_upper_digits[];
extern const char _itoa_lower_digits[];

hidden_proto (_itoa_upper_digits)
hidden_proto (_itoa_lower_digits)



extern char *_itoa_word (_ITOA_WORD_TYPE value, char *buflim,
			 unsigned int base,
			 int upper_case) attribute_hidden;
# 88 "../sysdeps/generic/_itoa.h"

/* Similar to the _itoa functions, but output starts at buf and pointer
   after the last written character is returned.  */
extern char *_fitoa_word (_ITOA_WORD_TYPE value, char *buf,
			  unsigned int base,
			  int upper_case) attribute_hidden;
extern char *_fitoa (unsigned long long value, char *buf, unsigned int base,
		     int upper_case) attribute_hidden;


/* No need for special long long versions.  */
#define _itoa(value,buf,base,upper_case) _itoa_word (value, buf, base, upper_case)

#define _fitoa(value,buf,base,upper_case) _fitoa_word (value, buf, base, upper_case)



# 40 "../sysdeps/generic/hp-timing-common.h" 2

/* Compute the difference between START and END, storing into DIFF.  */
#define HP_TIMING_DIFF(Diff,Start,End) ((Diff) = (End) - (Start))

/* Accumulate ADD into SUM.  No attempt is made to be thread-safe.  */
#define HP_TIMING_ACCUM_NT(Sum,Diff) ((Sum) += (Diff))

#define HP_TIMING_PRINT_SIZE (3 * sizeof (hp_timing_t) + 1)

/* Write a decimal representation of the timing value into the given string.  */
#define HP_TIMING_PRINT(Dest,Len,Val) do { char __buf[HP_TIMING_PRINT_SIZE]; char *__dest = (Dest); size_t __len = (Len); char *__cp = _itoa ((Val), __buf + sizeof (__buf), 10, 0); size_t __cp_len = MIN (__buf + sizeof (__buf) - __cp, __len); memcpy (__dest, __cp, __cp_len); __dest[__cp_len - 1] = '\0'; } while (0)
# 26 "../sysdeps/s390/hp-timing.h" 2

/* We use 64 bit values for the times.
   Note: Bit 51 is incremented every 0.000 001s = 1us.  */
typedef unsigned long long int hp_timing_t;

#define HP_TIMING_INLINE (1)

#define HP_TIMING_NOW(VAR) do { __asm__ __volatile__ ("stckf %0" : "=Q" (VAR) : : "cc"); } while (0)








# 27 "../nptl/descr.h" 2

# 1 "../sysdeps/nptl/lowlevellock.h" 1
/* Low-level lock implementation.  Generic futex-based version.
   Copyright (C) 2005-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library.  If not, see
   <https://www.gnu.org/licenses/>.  */


#define _LOWLEVELLOCK_H 1


# 1 "../sysdeps/unix/sysv/linux/s390/elision-conf.h" 1
/* Lock elision tunable parameters.
   Copyright (C) 2014-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

#define _ELISION_CONF_H 1

# 1 "../include/pthread.h" 1
# 1 "../sysdeps/nptl/pthread.h" 1
/* Copyright (C) 2002-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _PTHREAD_H 1



# 1 "../include/time.h" 1

# 1 "../time/time.h" 1
/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/*
 *	ISO C99 Standard: 7.23 Date and time	<time.h>
 */


#define _TIME_H 1



#define __need_size_t 
#define __need_NULL 
# 1 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 1 3 4
/* Copyright (C) 1989-2021 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/*
 * ISO C Standard:  7.17  Common definitions  <stddef.h>
 */






/* Any one of these symbols __need_* means that GNU libc
   wants us just to define one data type.  So don't define
   the symbols that indicate this file's entire job has been done.  */
# 44 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4


/* This avoids lossage on SunOS but only if stdtypes.h comes first.
   There's no way to win with the other order!  Sun lossage.  */









# 85 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
   Just ignore it.  */




/* On VxWorks, <type/vxTypesBase.h> may have defined macros like
   _TYPE_size_t which will typedef size_t.  fixincludes patched the
   vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
   not defined, and so that defining this macro defines _GCC_SIZE_T.
   If we find that the macros are still defined at this point, we must
   invoke them so that the type is defined as expected.  */













/* In case nobody has defined these types, but we aren't running under
   GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
   __WCHAR_TYPE__ have reasonable values.  This can happen if the
   parts of GCC is compiled by an older compiler, that actually
   include gstddef.h, such as collect2.  */

/* Signed type of difference of two pointers.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 153 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

/* If this symbol has done its job, get rid of it.  */
#undef __need_ptrdiff_t



/* Unsigned type of `sizeof' something.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 231 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
#undef __need_size_t



/* Wide character type.
   Locale-writers should change this as necessary to
   be big enough to hold unique values not between 0 and 127,
   and not (wchar_t) -1, for each defined multibyte character.  */

/* Define this type if we are doing the whole job,
   or if we want this type in particular.  */

# 340 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4
#undef __need_wchar_t


# 354 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4

# 384 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4



/* A null pointer constant.  */


#undef NULL




#define NULL ((void *)0)





#undef __need_NULL



/* Offset of member MEMBER in a struct of type TYPE. */
#define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)



# 428 "/usr/lib/gcc/s390x-redhat-linux/11/include/stddef.h" 3 4











# 30 "../time/time.h" 2

/* This defines CLOCKS_PER_SEC, which is the number of processor clock
   ticks per second, and possibly a number of other constants.   */
# 1 "../sysdeps/unix/sysv/linux/bits/time.h" 1
/* System-dependent timing definitions.  Linux version.
   Copyright (C) 1996-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

/*
 * Never include this file directly; use <time.h> instead.
 */


#define _BITS_TIME_H 1

# 1 "../include/bits/types.h" 1
# 27 "../sysdeps/unix/sysv/linux/bits/time.h" 2

/* ISO/IEC 9899:1999 7.23.1: Components of time
   The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is
   the number per second of the value returned by the `clock' function.  */
/* CAE XSH, Issue 4, Version 2: <time.h>
   The value of CLOCKS_PER_SEC is required to be 1 million on all
   XSI-conformant systems. */
#define CLOCKS_PER_SEC ((__clock_t) 1000000)










/* Identifier for system-wide realtime clock.  */
#define CLOCK_REALTIME 0
/* Monotonic system-wide clock.  */
#define CLOCK_MONOTONIC 1
/* High-resolution timer from the CPU.  */
#define CLOCK_PROCESS_CPUTIME_ID 2
/* Thread-specific CPU-time clock.  */
#define CLOCK_THREAD_CPUTIME_ID 3
/* Monotonic system-wide clock, not adjusted for frequency scaling.  */
#define CLOCK_MONOTONIC_RAW 4
/* Identifier for system-wide realtime clock, updated only on ticks.  */
#define CLOCK_REALTIME_COARSE 5
/* Monotonic system-wide clock, updated only on ticks.  */
#define CLOCK_MONOTONIC_COARSE 6
/* Monotonic system-wide clock that includes time spent in suspension.  */
#define CLOCK_BOOTTIME 7
/* Like CLOCK_REALTIME but also wakes suspended system.  */
#define CLOCK_REALTIME_ALARM 8
/* Like CLOCK_BOOTTIME but also wakes suspended system.  */
#define CLOCK_BOOTTIME_ALARM 9
/* Like CLOCK_REALTIME but in International Atomic Time.  */
#define CLOCK_TAI 11

/* Flag to indicate time is absolute.  */
#define TIMER_ABSTIME 1



# 1 "../sysdeps/unix/sysv/linux/bits/timex.h" 1
/* Copyright (C) 1995-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _BITS_TIMEX_H 1

# 1 "../include/bits/types.h" 1
# 22 "../sysdeps/unix/sysv/linux/bits/timex.h" 2
# 1 "../include/bits/types/struct_timeval.h" 1
# 23 "../sysdeps/unix/sysv/linux/bits/timex.h" 2

/* These definitions from linux/timex.h as of 3.18.  */

struct timex
{
# 58 "../sysdeps/unix/sysv/linux/bits/timex.h"
  unsigned int modes;		/* mode selector */
  __syscall_slong_t offset;	/* time offset (usec) */
  __syscall_slong_t freq;	/* frequency offset (scaled ppm) */
  __syscall_slong_t maxerror;	/* maximum error (usec) */
  __syscall_slong_t esterror;	/* estimated error (usec) */
  int status;			/* clock command/status */
  __syscall_slong_t constant;	/* pll time constant */
  __syscall_slong_t precision;	/* clock precision (usec) (ro) */
  __syscall_slong_t tolerance;	/* clock frequency tolerance (ppm) (ro) */
  struct timeval time;		/* (read only, except for ADJ_SETOFFSET) */
  __syscall_slong_t tick;	/* (modified) usecs between clock ticks */
  __syscall_slong_t ppsfreq;	/* pps frequency (scaled ppm) (ro) */
  __syscall_slong_t jitter;	/* pps jitter (us) (ro) */
  int shift;			/* interval duration (s) (shift) (ro) */
  __syscall_slong_t stabil;	/* pps stability (scaled ppm) (ro) */
  __syscall_slong_t jitcnt;	/* jitter limit exceeded (ro) */
  __syscall_slong_t calcnt;	/* calibration intervals (ro) */
  __syscall_slong_t errcnt;	/* calibration errors (ro) */
  __syscall_slong_t stbcnt;	/* stability limit exceeded (ro) */

  int tai;			/* TAI offset (ro) */

  /* ??? */
  int  :32; int  :32; int  :32; int  :32;
  int  :32; int  :32; int  :32; int  :32;
  int  :32; int  :32; int  :32;

};

/* Mode codes (timex.mode) */
#define ADJ_OFFSET 0x0001
#define ADJ_FREQUENCY 0x0002
#define ADJ_MAXERROR 0x0004
#define ADJ_ESTERROR 0x0008
#define ADJ_STATUS 0x0010
#define ADJ_TIMECONST 0x0020
#define ADJ_TAI 0x0080
#define ADJ_SETOFFSET 0x0100
#define ADJ_MICRO 0x1000
#define ADJ_NANO 0x2000
#define ADJ_TICK 0x4000
#define ADJ_OFFSET_SINGLESHOT 0x8001
#define ADJ_OFFSET_SS_READ 0xa001

/* xntp 3.4 compatibility names */
#define MOD_OFFSET ADJ_OFFSET
#define MOD_FREQUENCY ADJ_FREQUENCY
#define MOD_MAXERROR ADJ_MAXERROR
#define MOD_ESTERROR ADJ_ESTERROR
#define MOD_STATUS ADJ_STATUS
#define MOD_TIMECONST ADJ_TIMECONST
#define MOD_CLKB ADJ_TICK
#define MOD_CLKA ADJ_OFFSET_SINGLESHOT
#define MOD_TAI ADJ_TAI
#define MOD_MICRO ADJ_MICRO
#define MOD_NANO ADJ_NANO


/* Status codes (timex.status) */
#define STA_PLL 0x0001
#define STA_PPSFREQ 0x0002
#define STA_PPSTIME 0x0004
#define STA_FLL 0x0008

#define STA_INS 0x0010
#define STA_DEL 0x0020
#define STA_UNSYNC 0x0040
#define STA_FREQHOLD 0x0080

#define STA_PPSSIGNAL 0x0100
#define STA_PPSJITTER 0x0200
#define STA_PPSWANDER 0x0400
#define STA_PPSERROR 0x0800

#define STA_CLOCKERR 0x1000
#define STA_NANO 0x2000
#define STA_MODE 0x4000
#define STA_CLK 0x8000

/* Read-only bits */
#define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK)


# 74 "../sysdeps/unix/sysv/linux/bits/time.h" 2

__BEGIN_DECLS

/* Tune a POSIX clock.  */
extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __THROW;

# 89 "../sysdeps/unix/sysv/linux/bits/time.h"

__END_DECLS


# 34 "../time/time.h" 2

/* Many of the typedefs and structs whose official home is this header
   may also need to be defined by other headers.  */
# 1 "../include/bits/types/clock_t.h" 1
# 38 "../time/time.h" 2
# 1 "../include/bits/types/time_t.h" 1
# 39 "../time/time.h" 2
# 1 "../include/bits/types/struct_tm.h" 1
# 1 "../time/bits/types/struct_tm.h" 1

#define __struct_tm_defined 1

# 1 "../include/bits/types.h" 1
# 5 "../time/bits/types/struct_tm.h" 2

/* ISO C `broken-down time' structure.  */
struct tm
{
  int tm_sec;			/* Seconds.	[0-60] (1 leap second) */
  int tm_min;			/* Minutes.	[0-59] */
  int tm_hour;			/* Hours.	[0-23] */
  int tm_mday;			/* Day.		[1-31] */
  int tm_mon;			/* Month.	[0-11] */
  int tm_year;			/* Year	- 1900.  */
  int tm_wday;			/* Day of week.	[0-6] */
  int tm_yday;			/* Days in year.[0-365]	*/
  int tm_isdst;			/* DST.		[-1/0/1]*/


  long int tm_gmtoff;		/* Seconds east of UTC.  */
  const char *tm_zone;		/* Timezone abbreviation.  */




};

# 2 "../include/bits/types/struct_tm.h" 2
# 40 "../time/time.h" 2


# 1 "../include/bits/types/struct_timespec.h" 1
# 43 "../time/time.h" 2



# 1 "../include/bits/types/clockid_t.h" 1
# 47 "../time/time.h" 2
# 1 "../include/bits/types/timer_t.h" 1
# 48 "../time/time.h" 2
# 1 "../include/bits/types/struct_itimerspec.h" 1
# 1 "../time/bits/types/struct_itimerspec.h" 1

#define __itimerspec_defined 1

# 1 "../include/bits/types.h" 1
# 5 "../time/bits/types/struct_itimerspec.h" 2
# 1 "../include/bits/types/struct_timespec.h" 1
# 6 "../time/bits/types/struct_itimerspec.h" 2

/* POSIX.1b structure for timer start values and intervals.  */
struct itimerspec
  {
    struct timespec it_interval;
    struct timespec it_value;
  };

# 2 "../include/bits/types/struct_itimerspec.h" 2
# 49 "../time/time.h" 2
struct sigevent;










# 1 "../include/bits/types/locale_t.h" 1
# 61 "../time/time.h" 2



/* Time base values for timespec_get.  */
#define TIME_UTC 1


__BEGIN_DECLS

/* Time used by the program so far (user time + system time).
   The result / CLOCKS_PER_SEC is program time in seconds.  */
extern clock_t clock (void) __THROW;


/* Return the current time and put it in *TIMER if TIMER is not NULL.  */
extern time_t time (time_t *__timer) __THROW;

/* Return the difference between TIME1 and TIME0.  */
extern double difftime (time_t __time1, time_t __time0)
     __THROW __attribute__ ((__const__));

/* Return the `time_t' representation of TP and normalize TP.  */
extern time_t mktime (struct tm *__tp) __THROW;
# 96 "../time/time.h"

/* Format TP into S according to FORMAT.
   Write no more than MAXSIZE characters and return the number
   of characters written, or 0 if it would exceed MAXSIZE.  */
extern size_t strftime (char *__restrict __s, size_t __maxsize,
			const char *__restrict __format,
			const struct tm *__restrict __tp) __THROW;


/* Parse S according to FORMAT and store binary time information in TP.
   The return value is a pointer to the first unparsed character in S.  */
extern char *strptime (const char *__restrict __s,
		       const char *__restrict __fmt, struct tm *__tp)
     __THROW;



/* Similar to the two functions above but take the information from
   the provided locale and not the global locale.  */

extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
			  const char *__restrict __format,
			  const struct tm *__restrict __tp,
			  locale_t __loc) __THROW;



extern char *strptime_l (const char *__restrict __s,
			 const char *__restrict __fmt, struct tm *__tp,
			 locale_t __loc) __THROW;




/* Return the `struct tm' representation of *TIMER
   in Universal Coordinated Time (aka Greenwich Mean Time).  */
extern struct tm *gmtime (const time_t *__timer) __THROW;

/* Return the `struct tm' representation
   of *TIMER in the local timezone.  */
extern struct tm *localtime (const time_t *__timer) __THROW;

# 148 "../time/time.h"




/* Return the `struct tm' representation of *TIMER in UTC,
   using *TP to store the result.  */
extern struct tm *gmtime_r (const time_t *__restrict __timer,
			    struct tm *__restrict __tp) __THROW;

/* Return the `struct tm' representation of *TIMER in local time,
   using *TP to store the result.  */
extern struct tm *localtime_r (const time_t *__restrict __timer,
			       struct tm *__restrict __tp) __THROW;
# 175 "../time/time.h"


/* Return a string of the form "Day Mon dd hh:mm:ss yyyy\n"
   that is the representation of TP in this format.  */
extern char *asctime (const struct tm *__tp) __THROW;

/* Equivalent to `asctime (localtime (timer))'.  */

extern char *ctime (const time_t *__timer) __THROW;









/* Reentrant versions of the above functions.  */

/* Return in BUF a string of the form "Day Mon dd hh:mm:ss yyyy\n"
   that is the representation of TP in this format.  */
extern char *asctime_r (const struct tm *__restrict __tp,
			char *__restrict __buf) __THROW;

/* Equivalent to `asctime_r (localtime_r (timer, *TMP*), buf)'.  */

extern char *ctime_r (const time_t *__restrict __timer,
		      char *__restrict __buf) __THROW;
# 212 "../time/time.h"




/* Defined in localtime.c.  */
extern char *__tzname[2];	/* Current timezone names.  */
extern int __daylight;		/* If daylight-saving time is ever in use.  */
extern long int __timezone;	/* Seconds west of UTC.  */



/* Same as above.  */
extern char *tzname[2];

/* Set time conversion information from the TZ environment variable.
   If TZ is not defined, a locale-dependent default is used.  */
extern void tzset (void) __THROW;



extern int daylight;
extern long int timezone;



/* Nonzero if YEAR is a leap year (every 4 years,
   except every 100th isn't, and every 400th is).  */
#define __isleap(year) ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0))




/* Miscellaneous functions many Unices inherited from the public domain
   localtime package.  These are included only for compatibility.  */


/* Like `mktime', but for TP represents Universal Time, not local time.  */
extern time_t timegm (struct tm *__tp) __THROW;
/* Another name for `mktime'.  */
extern time_t timelocal (struct tm *__tp) __THROW;
# 260 "../time/time.h"

/* Return the number of days in YEAR.  */
extern int dysize (int __year) __THROW  __attribute__ ((__const__));





/* Pause execution for a number of nanoseconds.

   This function is a cancellation point and therefore not marked with
   __THROW.  */
extern int nanosleep (const struct timespec *__requested_time,
		      struct timespec *__remaining);

/* Get resolution of clock CLOCK_ID.  */
extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __THROW;

/* Get current value of clock CLOCK_ID and store it in TP.  */
extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __THROW;

/* Set clock CLOCK_ID to value TP.  */
extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp)
     __THROW;
# 303 "../time/time.h"



/* High-resolution sleep with the specified clock.

   This function is a cancellation point and therefore not marked with
   __THROW.  */

extern int clock_nanosleep (clockid_t __clock_id, int __flags,
			    const struct timespec *__req,
			    struct timespec *__rem);
# 324 "../time/time.h"

/* Return clock ID for CPU-time clock.  */
extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __THROW;



/* Create new per-process timer using CLOCK_ID.  */
extern int timer_create (clockid_t __clock_id,
			 struct sigevent *__restrict __evp,
			 timer_t *__restrict __timerid) __THROW;

/* Delete timer TIMERID.  */
extern int timer_delete (timer_t __timerid) __THROW;

/* Set timer TIMERID to VALUE, returning old value in OVALUE.  */

extern int timer_settime (timer_t __timerid, int __flags,
			  const struct itimerspec *__restrict __value,
			  struct itimerspec *__restrict __ovalue) __THROW;

/* Get current value of timer TIMERID and store it in VALUE.  */
extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
     __THROW;
# 362 "../time/time.h"

/* Get expiration overrun for timer TIMERID.  */
extern int timer_getoverrun (timer_t __timerid) __THROW;





/* Set TS to calendar time based in time base BASE.  */
extern int timespec_get (struct timespec *__ts, int __base)
     __THROW __nonnull ((1));
# 381 "../time/time.h"





/* Set TS to resolution of time base BASE.  */
extern int timespec_getres (struct timespec *__ts, int __base)
     __THROW;
# 398 "../time/time.h"




/* Set to one of the following values to indicate an error.
     1  the DATEMSK environment variable is null or undefined,
     2  the template file cannot be opened for reading,
     3  failed to get file status information,
     4  the template file is not a regular file,
     5  an error is encountered while reading the template file,
     6  memory allication failed (not enough memory available),
     7  there is no line in the template that matches the input,
     8  invalid input specification Example: February 31 or a time is
	specified that can not be represented in a time_t (representing
	the time in seconds since 00:00:00 UTC, January 1, 1970) */
extern int getdate_err;

/* Parse the given string as a date specification and return a value
   representing the value.  The templates from the file identified by
   the environment variable DATEMSK are used.  In case of an error
   `getdate_err' is set.

   This function is a possible cancellation point and therefore not
   marked with __THROW.  */
extern struct tm *getdate (const char *__string);



/* Since `getdate' is not reentrant because of the use of `getdate_err'
   and the static buffer to return the result in, we provide a thread-safe
   variant.  The functionality is the same.  The result is returned in
   the buffer pointed to by RESBUFP and in case of an error the return
   value is != 0 with the same values as given above for `getdate_err'.

   This function is not part of POSIX and therefore no official
   cancellation point.  But due to similarity with an POSIX interface
   or due to the implementation it is a cancellation point and
   therefore not marked with __THROW.  */
extern int getdate_r (const char *__restrict __string,
		      struct tm *__restrict __resbufp);


__END_DECLS

# 3 "../include/time.h" 2


# 1 "../include/bits/types/struct_timeval.h" 1
# 6 "../include/time.h" 2

# 1 "../include/struct___timeval64.h" 1

#define _STRUCT_TIMEVAL64_H 


#define __timeval64 timeval
# 17 "../include/struct___timeval64.h"
# 8 "../include/time.h" 2
# 1 "../include/bits/types/locale_t.h" 1
# 9 "../include/time.h" 2

# 1 "../time/mktime-internal.h" 1
/* Internals of mktime and related functions
   Copyright 2016-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.
   Contributed by Paul Eggert <eggert@cs.ucla.edu>.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */





/* mktime_offset_t is a signed type wide enough to hold a UTC offset
   in seconds, and used as part of the type of the offset-guess
   argument to mktime_internal.  In Glibc, it is always long int.
   When in Gnulib, use time_t on platforms where time_t
   is signed, to be compatible with platforms like BeOS that export
   this implementation detail of mktime.  On platforms where time_t is
   unsigned, GNU and POSIX code can assume 'int' is at least 32 bits
   which is wide enough for a UTC offset.  */

typedef long int mktime_offset_t;






/* The source code uses identifiers like __time64_t for glibc
   timestamps that can contain 64-bit values even when time_t is only
   32 bits.  These are just macros for the ordinary identifiers unless
   compiling within glibc when time_t is 32 bits.  */

#undef __time64_t
#define __time64_t time_t
#define __gmtime64_r __gmtime_r
#define __localtime64_r __localtime_r
#define __mktime64 mktime
#define __timegm64 timegm


# 72 "../time/mktime-internal.h"

/* Subroutine of mktime.  Return the time_t representation of TP and
   normalize TP, given that a struct tm * maps to a time_t as performed
   by FUNC.  Record next guess for localtime-gmtime offset in *OFFSET.  */
extern __time64_t __mktime_internal (struct tm *tp,
                                     struct tm *(*func) (__time64_t const *,
                                                         struct tm *),
                                     mktime_offset_t *offset) attribute_hidden;
# 11 "../include/time.h" 2
# 1 "../include/sys/time.h" 1
/* Time function internal interfaces.
   Copyright (C) 1997-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


# 1 "../time/sys/time.h" 1
/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */


#define _SYS_TIME_H 1



# 1 "../include/bits/t