From df1f8e4ac15e051695bbb0410efe6eb04acb37cf Mon Sep 17 00:00:00 2001
From: alexmwst <83560159+alexmwst@users.noreply.github.com>
Date: Wed, 22 Jan 2025 15:51:04 +0100
Subject: [PATCH] initial commit

---
 ultrasonic-bela/settings.json      |   34 
 ultrasonic-bela/build/render.bc    |    0 
 ultrasonic-bela/build/render.ii    | 36842 ++++++++++++++++++++++++++++++++++++++
 .DS_Store                          |    0 
 ultrasonic-bela/build/render.s     | 20537 +++++++++++++++++++++
 ultrasonic-bela/build/Makefile.inc |    4 
 ultrasonic-bela/build/render.d     |   25 
 ultrasonic-bela/render.cpp         |  117 
 8 files changed, 57,559 insertions(+), 0 deletions(-)

diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..b5e2e59
--- /dev/null
+++ b/.DS_Store
Binary files differ
diff --git a/ultrasonic-bela/build/Makefile.inc b/ultrasonic-bela/build/Makefile.inc
new file mode 100644
index 0000000..4ebac32
--- /dev/null
+++ b/ultrasonic-bela/build/Makefile.inc
@@ -0,0 +1,4 @@
+-include libraries/PulseIn/build/Makefile.link
+-include libraries/Scope/build/Makefile.link
+-include libraries/WSServer/build/Makefile.link
+-include libraries/ne10/build/Makefile.link
diff --git a/ultrasonic-bela/build/render.bc b/ultrasonic-bela/build/render.bc
new file mode 100644
index 0000000..9fd1d9d
--- /dev/null
+++ b/ultrasonic-bela/build/render.bc
Binary files differ
diff --git a/ultrasonic-bela/build/render.d b/ultrasonic-bela/build/render.d
new file mode 100644
index 0000000..ef9a1c0
--- /dev/null
+++ b/ultrasonic-bela/build/render.d
@@ -0,0 +1,25 @@
+/root/Bela/projects/my_ultrasonic_ranger2/build/render.o: \
+  /root/Bela/projects/my_ultrasonic_ranger2/render.cpp include/Bela.h \
+  /usr/xenomai/include/cobalt/unistd.h \
+  /usr/xenomai/include/cobalt/stdio.h include/GPIOcontrol.h \
+  /usr/xenomai/include/cobalt/time.h include/Utilities.h \
+  /usr/xenomai/include/cobalt/stdlib.h libraries/Scope/Scope.h \
+  libraries/PulseIn/PulseIn.h
+
+include/Bela.h:
+
+/usr/xenomai/include/cobalt/unistd.h:
+
+/usr/xenomai/include/cobalt/stdio.h:
+
+include/GPIOcontrol.h:
+
+/usr/xenomai/include/cobalt/time.h:
+
+include/Utilities.h:
+
+/usr/xenomai/include/cobalt/stdlib.h:
+
+libraries/Scope/Scope.h:
+
+libraries/PulseIn/PulseIn.h:
diff --git a/ultrasonic-bela/build/render.ii b/ultrasonic-bela/build/render.ii
new file mode 100644
index 0000000..511ef8b
--- /dev/null
+++ b/ultrasonic-bela/build/render.ii
@@ -0,0 +1,36842 @@
+# 1 "/root/Bela/projects/my_ultrasonic_ranger2/render.cpp"
+# 1 "<built-in>" 1
+# 1 "<built-in>" 3
+# 365 "<built-in>" 3
+# 1 "<command line>" 1
+# 1 "<built-in>" 2
+# 1 "/root/Bela/projects/my_ultrasonic_ranger2/render.cpp" 2
+# 48 "/root/Bela/projects/my_ultrasonic_ranger2/render.cpp"
+# 1 "./include/Bela.h" 1
+# 86 "./include/Bela.h"
+extern "C"
+{
+
+
+
+# 1 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stdint.h" 1 3
+# 61 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stdint.h" 3
+# 1 "/usr/include/stdint.h" 1 3 4
+# 25 "/usr/include/stdint.h" 3 4
+# 1 "/usr/include/features.h" 1 3 4
+# 342 "/usr/include/features.h" 3 4
+# 1 "/usr/include/stdc-predef.h" 1 3 4
+# 343 "/usr/include/features.h" 2 3 4
+# 364 "/usr/include/features.h" 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/sys/cdefs.h" 1 3 4
+# 415 "/usr/include/arm-linux-gnueabihf/sys/cdefs.h" 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/bits/wordsize.h" 1 3 4
+# 416 "/usr/include/arm-linux-gnueabihf/sys/cdefs.h" 2 3 4
+# 365 "/usr/include/features.h" 2 3 4
+# 388 "/usr/include/features.h" 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/gnu/stubs.h" 1 3 4
+# 10 "/usr/include/arm-linux-gnueabihf/gnu/stubs.h" 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/gnu/stubs-hard.h" 1 3 4
+# 11 "/usr/include/arm-linux-gnueabihf/gnu/stubs.h" 2 3 4
+# 389 "/usr/include/features.h" 2 3 4
+# 26 "/usr/include/stdint.h" 2 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/bits/wchar.h" 1 3 4
+# 27 "/usr/include/stdint.h" 2 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/bits/wordsize.h" 1 3 4
+# 28 "/usr/include/stdint.h" 2 3 4
+
+
+
+
+
+
+
+
+typedef signed char int8_t;
+typedef short int int16_t;
+typedef int int32_t;
+
+
+
+__extension__
+typedef long long int int64_t;
+
+
+
+
+typedef unsigned char uint8_t;
+typedef unsigned short int uint16_t;
+
+typedef unsigned int uint32_t;
+
+
+
+
+
+__extension__
+typedef unsigned long long int uint64_t;
+
+
+
+
+
+
+typedef signed char int_least8_t;
+typedef short int int_least16_t;
+typedef int int_least32_t;
+
+
+
+__extension__
+typedef long long int int_least64_t;
+
+
+
+typedef unsigned char uint_least8_t;
+typedef unsigned short int uint_least16_t;
+typedef unsigned int uint_least32_t;
+
+
+
+__extension__
+typedef unsigned long long int uint_least64_t;
+
+
+
+
+
+
+typedef signed char int_fast8_t;
+
+
+
+
+
+typedef int int_fast16_t;
+typedef int int_fast32_t;
+__extension__
+typedef long long int int_fast64_t;
+
+
+
+typedef unsigned char uint_fast8_t;
+
+
+
+
+
+typedef unsigned int uint_fast16_t;
+typedef unsigned int uint_fast32_t;
+__extension__
+typedef unsigned long long int uint_fast64_t;
+# 125 "/usr/include/stdint.h" 3 4
+typedef int intptr_t;
+
+
+typedef unsigned int uintptr_t;
+# 137 "/usr/include/stdint.h" 3 4
+__extension__
+typedef long long int intmax_t;
+__extension__
+typedef unsigned long long int uintmax_t;
+# 62 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stdint.h" 2 3
+# 91 "./include/Bela.h" 2
+# 1 "/usr/xenomai/include/cobalt/unistd.h" 1
+# 19 "/usr/xenomai/include/cobalt/unistd.h" 3
+# 1 "/usr/include/unistd.h" 1 3 4
+# 27 "/usr/include/unistd.h" 3 4
+extern "C" {
+# 205 "/usr/include/unistd.h" 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/bits/posix_opt.h" 1 3 4
+# 206 "/usr/include/unistd.h" 2 3 4
+
+
+
+# 1 "/usr/include/arm-linux-gnueabihf/bits/environments.h" 1 3 4
+# 22 "/usr/include/arm-linux-gnueabihf/bits/environments.h" 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/bits/wordsize.h" 1 3 4
+# 23 "/usr/include/arm-linux-gnueabihf/bits/environments.h" 2 3 4
+# 210 "/usr/include/unistd.h" 2 3 4
+# 220 "/usr/include/unistd.h" 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/bits/types.h" 1 3 4
+# 27 "/usr/include/arm-linux-gnueabihf/bits/types.h" 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/bits/wordsize.h" 1 3 4
+# 28 "/usr/include/arm-linux-gnueabihf/bits/types.h" 2 3 4
+
+
+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;
+
+
+
+
+__extension__ typedef signed long long int __int64_t;
+__extension__ typedef unsigned long long int __uint64_t;
+
+
+
+
+
+
+
+__extension__ typedef long long int __quad_t;
+__extension__ typedef unsigned long long int __u_quad_t;
+# 121 "/usr/include/arm-linux-gnueabihf/bits/types.h" 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/bits/typesizes.h" 1 3 4
+# 122 "/usr/include/arm-linux-gnueabihf/bits/types.h" 2 3 4
+
+
+__extension__ typedef __u_quad_t __dev_t;
+__extension__ typedef unsigned int __uid_t;
+__extension__ typedef unsigned int __gid_t;
+__extension__ typedef unsigned long int __ino_t;
+__extension__ typedef __u_quad_t __ino64_t;
+__extension__ typedef unsigned int __mode_t;
+__extension__ typedef unsigned int __nlink_t;
+__extension__ typedef long int __off_t;
+__extension__ typedef __quad_t __off64_t;
+__extension__ typedef int __pid_t;
+__extension__ typedef struct { int __val[2]; } __fsid_t;
+__extension__ typedef long int __clock_t;
+__extension__ typedef unsigned long int __rlim_t;
+__extension__ typedef __u_quad_t __rlim64_t;
+__extension__ typedef unsigned int __id_t;
+__extension__ typedef long int __time_t;
+__extension__ typedef unsigned int __useconds_t;
+__extension__ typedef long int __suseconds_t;
+
+__extension__ typedef int __daddr_t;
+__extension__ typedef int __key_t;
+
+
+__extension__ typedef int __clockid_t;
+
+
+__extension__ typedef void * __timer_t;
+
+
+__extension__ typedef long int __blksize_t;
+
+
+
+
+__extension__ typedef long int __blkcnt_t;
+__extension__ typedef __quad_t __blkcnt64_t;
+
+
+__extension__ typedef unsigned long int __fsblkcnt_t;
+__extension__ typedef __u_quad_t __fsblkcnt64_t;
+
+
+__extension__ typedef unsigned long int __fsfilcnt_t;
+__extension__ typedef __u_quad_t __fsfilcnt64_t;
+
+
+__extension__ typedef int __fsword_t;
+
+__extension__ typedef int __ssize_t;
+
+
+__extension__ typedef long int __syscall_slong_t;
+
+__extension__ typedef unsigned long int __syscall_ulong_t;
+
+
+
+typedef __off64_t __loff_t;
+typedef __quad_t *__qaddr_t;
+typedef char *__caddr_t;
+
+
+__extension__ typedef int __intptr_t;
+
+
+__extension__ typedef unsigned int __socklen_t;
+# 221 "/usr/include/unistd.h" 2 3 4
+
+
+typedef __ssize_t ssize_t;
+
+
+
+
+
+
+# 1 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stddef.h" 1 3 4
+# 62 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stddef.h" 3 4
+typedef unsigned int size_t;
+# 230 "/usr/include/unistd.h" 2 3 4
+
+
+
+
+
+typedef __gid_t gid_t;
+
+
+
+
+typedef __uid_t uid_t;
+
+
+
+
+
+typedef __off_t off_t;
+
+
+
+
+
+
+typedef __off64_t off64_t;
+
+
+
+
+typedef __useconds_t useconds_t;
+
+
+
+
+typedef __pid_t pid_t;
+# 277 "/usr/include/unistd.h" 3 4
+typedef __socklen_t socklen_t;
+# 290 "/usr/include/unistd.h" 3 4
+extern int access (const char *__name, int __type) throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+
+extern int euidaccess (const char *__name, int __type)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int eaccess (const char *__name, int __type)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+extern int faccessat (int __fd, const char *__file, int __type, int __flag)
+     throw () __attribute__ ((__nonnull__ (2))) ;
+# 337 "/usr/include/unistd.h" 3 4
+extern __off_t lseek (int __fd, __off_t __offset, int __whence) throw ();
+# 348 "/usr/include/unistd.h" 3 4
+extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence)
+     throw ();
+
+
+
+
+
+
+extern int close (int __fd);
+
+
+
+
+
+
+extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ;
+
+
+
+
+
+extern ssize_t write (int __fd, const void *__buf, size_t __n) ;
+# 379 "/usr/include/unistd.h" 3 4
+extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
+        __off_t __offset) ;
+
+
+
+
+
+
+extern ssize_t pwrite (int __fd, const void *__buf, size_t __n,
+         __off_t __offset) ;
+# 407 "/usr/include/unistd.h" 3 4
+extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes,
+   __off64_t __offset) ;
+
+
+extern ssize_t pwrite64 (int __fd, const void *__buf, size_t __n,
+    __off64_t __offset) ;
+
+
+
+
+
+
+
+extern int pipe (int __pipedes[2]) throw () ;
+
+
+
+
+extern int pipe2 (int __pipedes[2], int __flags) throw () ;
+# 435 "/usr/include/unistd.h" 3 4
+extern unsigned int alarm (unsigned int __seconds) throw ();
+# 447 "/usr/include/unistd.h" 3 4
+extern unsigned int sleep (unsigned int __seconds);
+
+
+
+
+
+
+
+extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
+     throw ();
+
+
+
+
+
+
+extern int usleep (__useconds_t __useconds);
+# 472 "/usr/include/unistd.h" 3 4
+extern int pause (void);
+
+
+
+extern int chown (const char *__file, __uid_t __owner, __gid_t __group)
+     throw () __attribute__ ((__nonnull__ (1))) ;
+
+
+
+extern int fchown (int __fd, __uid_t __owner, __gid_t __group) throw () ;
+
+
+
+
+extern int lchown (const char *__file, __uid_t __owner, __gid_t __group)
+     throw () __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+
+extern int fchownat (int __fd, const char *__file, __uid_t __owner,
+       __gid_t __group, int __flag)
+     throw () __attribute__ ((__nonnull__ (2))) ;
+
+
+
+extern int chdir (const char *__path) throw () __attribute__ ((__nonnull__ (1))) ;
+
+
+
+extern int fchdir (int __fd) throw () ;
+# 514 "/usr/include/unistd.h" 3 4
+extern char *getcwd (char *__buf, size_t __size) throw () ;
+
+
+
+
+
+extern char *get_current_dir_name (void) throw ();
+
+
+
+
+
+
+
+extern char *getwd (char *__buf)
+     throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ;
+
+
+
+
+extern int dup (int __fd) throw () ;
+
+
+extern int dup2 (int __fd, int __fd2) throw ();
+
+
+
+
+extern int dup3 (int __fd, int __fd2, int __flags) throw ();
+
+
+
+extern char **__environ;
+
+extern char **environ;
+
+
+
+
+
+extern int execve (const char *__path, char *const __argv[],
+     char *const __envp[]) throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+extern int fexecve (int __fd, char *const __argv[], char *const __envp[])
+     throw () __attribute__ ((__nonnull__ (2)));
+
+
+
+
+extern int execv (const char *__path, char *const __argv[])
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+extern int execle (const char *__path, const char *__arg, ...)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+extern int execl (const char *__path, const char *__arg, ...)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+extern int execvp (const char *__file, char *const __argv[])
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+extern int execlp (const char *__file, const char *__arg, ...)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+extern int execvpe (const char *__file, char *const __argv[],
+      char *const __envp[])
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+extern int nice (int __inc) throw () ;
+
+
+
+
+extern void _exit (int __status) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+# 1 "/usr/include/arm-linux-gnueabihf/bits/confname.h" 1 3 4
+# 24 "/usr/include/arm-linux-gnueabihf/bits/confname.h" 3 4
+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
+
+  };
+
+
+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
+
+  };
+# 613 "/usr/include/unistd.h" 2 3 4
+
+
+extern long int pathconf (const char *__path, int __name)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern long int fpathconf (int __fd, int __name) throw ();
+
+
+extern long int sysconf (int __name) throw ();
+
+
+
+extern size_t confstr (int __name, char *__buf, size_t __len) throw ();
+
+
+
+
+extern __pid_t getpid (void) throw ();
+
+
+extern __pid_t getppid (void) throw ();
+
+
+extern __pid_t getpgrp (void) throw ();
+
+
+extern __pid_t __getpgid (__pid_t __pid) throw ();
+
+extern __pid_t getpgid (__pid_t __pid) throw ();
+
+
+
+
+
+
+extern int setpgid (__pid_t __pid, __pid_t __pgid) throw ();
+# 663 "/usr/include/unistd.h" 3 4
+extern int setpgrp (void) throw ();
+
+
+
+
+
+
+extern __pid_t setsid (void) throw ();
+
+
+
+extern __pid_t getsid (__pid_t __pid) throw ();
+
+
+
+extern __uid_t getuid (void) throw ();
+
+
+extern __uid_t geteuid (void) throw ();
+
+
+extern __gid_t getgid (void) throw ();
+
+
+extern __gid_t getegid (void) throw ();
+
+
+
+
+extern int getgroups (int __size, __gid_t __list[]) throw () ;
+
+
+
+extern int group_member (__gid_t __gid) throw ();
+
+
+
+
+
+
+extern int setuid (__uid_t __uid) throw () ;
+
+
+
+
+extern int setreuid (__uid_t __ruid, __uid_t __euid) throw () ;
+
+
+
+
+extern int seteuid (__uid_t __uid) throw () ;
+
+
+
+
+
+
+extern int setgid (__gid_t __gid) throw () ;
+
+
+
+
+extern int setregid (__gid_t __rgid, __gid_t __egid) throw () ;
+
+
+
+
+extern int setegid (__gid_t __gid) throw () ;
+
+
+
+
+
+extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid)
+     throw ();
+
+
+
+extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid)
+     throw ();
+
+
+
+extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid)
+     throw () ;
+
+
+
+extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid)
+     throw () ;
+
+
+
+
+
+
+extern __pid_t fork (void) throw ();
+
+
+
+
+
+
+
+extern __pid_t vfork (void) throw ();
+
+
+
+
+
+extern char *ttyname (int __fd) throw ();
+
+
+
+extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
+     throw () __attribute__ ((__nonnull__ (2))) ;
+
+
+
+extern int isatty (int __fd) throw ();
+
+
+
+
+extern int ttyslot (void) throw ();
+
+
+
+
+extern int link (const char *__from, const char *__to)
+     throw () __attribute__ ((__nonnull__ (1, 2))) ;
+
+
+
+
+extern int linkat (int __fromfd, const char *__from, int __tofd,
+     const char *__to, int __flags)
+     throw () __attribute__ ((__nonnull__ (2, 4))) ;
+
+
+
+
+extern int symlink (const char *__from, const char *__to)
+     throw () __attribute__ ((__nonnull__ (1, 2))) ;
+
+
+
+
+extern ssize_t readlink (const char *__restrict __path,
+    char *__restrict __buf, size_t __len)
+     throw () __attribute__ ((__nonnull__ (1, 2))) ;
+
+
+
+
+extern int symlinkat (const char *__from, int __tofd,
+        const char *__to) throw () __attribute__ ((__nonnull__ (1, 3))) ;
+
+
+extern ssize_t readlinkat (int __fd, const char *__restrict __path,
+      char *__restrict __buf, size_t __len)
+     throw () __attribute__ ((__nonnull__ (2, 3))) ;
+
+
+
+extern int unlink (const char *__name) throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+extern int unlinkat (int __fd, const char *__name, int __flag)
+     throw () __attribute__ ((__nonnull__ (2)));
+
+
+
+extern int rmdir (const char *__path) throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+extern __pid_t tcgetpgrp (int __fd) throw ();
+
+
+extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) throw ();
+
+
+
+
+
+
+extern char *getlogin (void);
+
+
+
+
+
+
+
+extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+extern int setlogin (const char *__name) throw () __attribute__ ((__nonnull__ (1)));
+# 873 "/usr/include/unistd.h" 3 4
+# 1 "/usr/include/getopt.h" 1 3 4
+# 48 "/usr/include/getopt.h" 3 4
+extern "C" {
+# 57 "/usr/include/getopt.h" 3 4
+extern char *optarg;
+# 71 "/usr/include/getopt.h" 3 4
+extern int optind;
+
+
+
+
+extern int opterr;
+
+
+
+extern int optopt;
+# 150 "/usr/include/getopt.h" 3 4
+extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
+       throw ();
+# 185 "/usr/include/getopt.h" 3 4
+}
+# 874 "/usr/include/unistd.h" 2 3 4
+
+
+
+
+
+
+
+extern int gethostname (char *__name, size_t __len) throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+extern int sethostname (const char *__name, size_t __len)
+     throw () __attribute__ ((__nonnull__ (1))) ;
+
+
+
+extern int sethostid (long int __id) throw () ;
+
+
+
+
+
+extern int getdomainname (char *__name, size_t __len)
+     throw () __attribute__ ((__nonnull__ (1))) ;
+extern int setdomainname (const char *__name, size_t __len)
+     throw () __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+extern int vhangup (void) throw ();
+
+
+extern int revoke (const char *__file) throw () __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+
+
+extern int profil (unsigned short int *__sample_buffer, size_t __size,
+     size_t __offset, unsigned int __scale)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+extern int acct (const char *__name) throw ();
+
+
+
+extern char *getusershell (void) throw ();
+extern void endusershell (void) throw ();
+extern void setusershell (void) throw ();
+
+
+
+
+
+extern int daemon (int __nochdir, int __noclose) throw () ;
+
+
+
+
+
+
+extern int chroot (const char *__path) throw () __attribute__ ((__nonnull__ (1))) ;
+
+
+
+extern char *getpass (const char *__prompt) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+extern int fsync (int __fd);
+
+
+
+
+
+extern int syncfs (int __fd) throw ();
+
+
+
+
+
+
+extern long int gethostid (void);
+
+
+extern void sync (void) throw ();
+
+
+
+
+
+extern int getpagesize (void) throw () __attribute__ ((__const__));
+
+
+
+
+extern int getdtablesize (void) throw ();
+# 995 "/usr/include/unistd.h" 3 4
+extern int truncate (const char *__file, __off_t __length)
+     throw () __attribute__ ((__nonnull__ (1))) ;
+# 1007 "/usr/include/unistd.h" 3 4
+extern int truncate64 (const char *__file, __off64_t __length)
+     throw () __attribute__ ((__nonnull__ (1))) ;
+# 1018 "/usr/include/unistd.h" 3 4
+extern int ftruncate (int __fd, __off_t __length) throw () ;
+# 1028 "/usr/include/unistd.h" 3 4
+extern int ftruncate64 (int __fd, __off64_t __length) throw () ;
+# 1039 "/usr/include/unistd.h" 3 4
+extern int brk (void *__addr) throw () ;
+
+
+
+
+
+extern void *sbrk (intptr_t __delta) throw ();
+# 1060 "/usr/include/unistd.h" 3 4
+extern long int syscall (long int __sysno, ...) throw ();
+# 1083 "/usr/include/unistd.h" 3 4
+extern int lockf (int __fd, int __cmd, __off_t __len) ;
+# 1093 "/usr/include/unistd.h" 3 4
+extern int lockf64 (int __fd, int __cmd, __off64_t __len) ;
+# 1114 "/usr/include/unistd.h" 3 4
+extern int fdatasync (int __fildes);
+
+
+
+
+
+
+
+extern char *crypt (const char *__key, const char *__salt)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+extern void encrypt (char *__glibc_block, int __edflag)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+extern void swab (const void *__restrict __from, void *__restrict __to,
+    ssize_t __n) throw () __attribute__ ((__nonnull__ (1, 2)));
+# 1166 "/usr/include/unistd.h" 3 4
+}
+# 20 "/usr/xenomai/include/cobalt/unistd.h" 2 3
+
+
+
+
+# 1 "/usr/xenomai/include/cobalt/wrappers.h" 1 3
+# 21 "/usr/xenomai/include/cobalt/wrappers.h" 3
+# 1 "/usr/xenomai/include/boilerplate/compiler.h" 1 3
+# 21 "/usr/xenomai/include/boilerplate/compiler.h" 3
+# 1 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stddef.h" 1 3
+# 51 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stddef.h" 3
+typedef int ptrdiff_t;
+# 118 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stddef.h" 3
+# 1 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/__stddef_max_align_t.h" 1 3
+# 35 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/__stddef_max_align_t.h" 3
+typedef struct {
+  long long __clang_max_align_nonce1
+      __attribute__((__aligned__(__alignof__(long long))));
+  long double __clang_max_align_nonce2
+      __attribute__((__aligned__(__alignof__(long double))));
+} max_align_t;
+# 119 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stddef.h" 2 3
+# 22 "/usr/xenomai/include/boilerplate/compiler.h" 2 3
+# 62 "/usr/xenomai/include/boilerplate/compiler.h" 3
+extern "C" {
+
+
+void __invalid_operand_size(void);
+# 106 "/usr/xenomai/include/boilerplate/compiler.h" 3
+}
+# 22 "/usr/xenomai/include/cobalt/wrappers.h" 2 3
+# 25 "/usr/xenomai/include/cobalt/unistd.h" 2 3
+
+
+extern "C" {
+
+
+__typeof__(ssize_t) __cobalt_read(int fd, void *buf, size_t nbyte); __typeof__(ssize_t) __real_read(int fd, void *buf, size_t nbyte); __typeof__(ssize_t) __wrap_read(int fd, void *buf, size_t nbyte);
+
+__typeof__(ssize_t) __cobalt_write(int fd, const void *buf, size_t nbyte); __typeof__(ssize_t) __real_write(int fd, const void *buf, size_t nbyte); __typeof__(ssize_t) __wrap_write(int fd, const void *buf, size_t nbyte);
+
+__typeof__(int) __cobalt_close(int fildes); __typeof__(int) __real_close(int fildes); __typeof__(int) __wrap_close(int fildes);
+
+__typeof__(unsigned int) __cobalt_sleep(unsigned int seconds); __typeof__(unsigned int) __real_sleep(unsigned int seconds); __typeof__(unsigned int) __wrap_sleep(unsigned int seconds);
+
+
+}
+# 92 "./include/Bela.h" 2
+# 1 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stdbool.h" 1 3
+# 93 "./include/Bela.h" 2
+# 1 "/usr/xenomai/include/cobalt/stdio.h" 1
+# 20 "/usr/xenomai/include/cobalt/stdio.h" 3
+# 1 "/usr/include/stdio.h" 1 3 4
+# 29 "/usr/include/stdio.h" 3 4
+extern "C" {
+
+
+
+
+# 1 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stddef.h" 1 3 4
+# 34 "/usr/include/stdio.h" 2 3 4
+# 44 "/usr/include/stdio.h" 3 4
+struct _IO_FILE;
+
+
+
+typedef struct _IO_FILE FILE;
+# 64 "/usr/include/stdio.h" 3 4
+typedef struct _IO_FILE __FILE;
+# 74 "/usr/include/stdio.h" 3 4
+# 1 "/usr/include/libio.h" 1 3 4
+# 31 "/usr/include/libio.h" 3 4
+# 1 "/usr/include/_G_config.h" 1 3 4
+# 15 "/usr/include/_G_config.h" 3 4
+# 1 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stddef.h" 1 3 4
+# 16 "/usr/include/_G_config.h" 2 3 4
+
+
+
+
+# 1 "/usr/include/wchar.h" 1 3 4
+# 82 "/usr/include/wchar.h" 3 4
+typedef struct
+{
+  int __count;
+  union
+  {
+
+    unsigned int __wch;
+
+
+
+    char __wchb[4];
+  } __value;
+} __mbstate_t;
+# 21 "/usr/include/_G_config.h" 2 3 4
+typedef struct
+{
+  __off_t __pos;
+  __mbstate_t __state;
+} _G_fpos_t;
+typedef struct
+{
+  __off64_t __pos;
+  __mbstate_t __state;
+} _G_fpos64_t;
+# 32 "/usr/include/libio.h" 2 3 4
+# 49 "/usr/include/libio.h" 3 4
+# 1 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stdarg.h" 1 3 4
+# 30 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stdarg.h" 3 4
+typedef __builtin_va_list va_list;
+# 50 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stdarg.h" 3 4
+typedef __builtin_va_list __gnuc_va_list;
+# 50 "/usr/include/libio.h" 2 3 4
+# 144 "/usr/include/libio.h" 3 4
+struct _IO_jump_t; struct _IO_FILE;
+
+
+
+
+
+typedef void _IO_lock_t;
+
+
+
+
+
+struct _IO_marker {
+  struct _IO_marker *_next;
+  struct _IO_FILE *_sbuf;
+
+
+
+  int _pos;
+# 173 "/usr/include/libio.h" 3 4
+};
+
+
+enum __codecvt_result
+{
+  __codecvt_ok,
+  __codecvt_partial,
+  __codecvt_error,
+  __codecvt_noconv
+};
+# 241 "/usr/include/libio.h" 3 4
+struct _IO_FILE {
+  int _flags;
+
+
+
+
+  char* _IO_read_ptr;
+  char* _IO_read_end;
+  char* _IO_read_base;
+  char* _IO_write_base;
+  char* _IO_write_ptr;
+  char* _IO_write_end;
+  char* _IO_buf_base;
+  char* _IO_buf_end;
+
+  char *_IO_save_base;
+  char *_IO_backup_base;
+  char *_IO_save_end;
+
+  struct _IO_marker *_markers;
+
+  struct _IO_FILE *_chain;
+
+  int _fileno;
+
+
+
+  int _flags2;
+
+  __off_t _old_offset;
+
+
+
+  unsigned short _cur_column;
+  signed char _vtable_offset;
+  char _shortbuf[1];
+
+
+
+  _IO_lock_t *_lock;
+# 289 "/usr/include/libio.h" 3 4
+  __off64_t _offset;
+
+
+
+
+
+
+
+  void *__pad1;
+  void *__pad2;
+  void *__pad3;
+  void *__pad4;
+
+  size_t __pad5;
+  int _mode;
+
+  char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
+
+};
+
+
+
+
+
+struct _IO_FILE_plus;
+
+extern struct _IO_FILE_plus _IO_2_1_stdin_;
+extern struct _IO_FILE_plus _IO_2_1_stdout_;
+extern struct _IO_FILE_plus _IO_2_1_stderr_;
+# 333 "/usr/include/libio.h" 3 4
+typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
+
+
+
+
+
+
+
+typedef __ssize_t __io_write_fn (void *__cookie, const char *__buf,
+     size_t __n);
+
+
+
+
+
+
+
+typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
+
+
+typedef int __io_close_fn (void *__cookie);
+
+
+
+
+typedef __io_read_fn cookie_read_function_t;
+typedef __io_write_fn cookie_write_function_t;
+typedef __io_seek_fn cookie_seek_function_t;
+typedef __io_close_fn cookie_close_function_t;
+
+
+typedef struct
+{
+  __io_read_fn *read;
+  __io_write_fn *write;
+  __io_seek_fn *seek;
+  __io_close_fn *close;
+} _IO_cookie_io_functions_t;
+typedef _IO_cookie_io_functions_t cookie_io_functions_t;
+
+struct _IO_cookie_file;
+
+
+extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write,
+        void *__cookie, _IO_cookie_io_functions_t __fns);
+
+
+
+
+extern "C" {
+
+
+extern int __underflow (_IO_FILE *);
+extern int __uflow (_IO_FILE *);
+extern int __overflow (_IO_FILE *, int);
+# 429 "/usr/include/libio.h" 3 4
+extern int _IO_getc (_IO_FILE *__fp);
+extern int _IO_putc (int __c, _IO_FILE *__fp);
+extern int _IO_feof (_IO_FILE *__fp) throw ();
+extern int _IO_ferror (_IO_FILE *__fp) throw ();
+
+extern int _IO_peekc_locked (_IO_FILE *__fp);
+
+
+
+
+
+extern void _IO_flockfile (_IO_FILE *) throw ();
+extern void _IO_funlockfile (_IO_FILE *) throw ();
+extern int _IO_ftrylockfile (_IO_FILE *) throw ();
+# 459 "/usr/include/libio.h" 3 4
+extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
+   __gnuc_va_list, int *__restrict);
+extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
+    __gnuc_va_list);
+extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
+extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);
+
+extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
+extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);
+
+extern void _IO_free_backup_area (_IO_FILE *) throw ();
+# 521 "/usr/include/libio.h" 3 4
+}
+# 75 "/usr/include/stdio.h" 2 3 4
+
+
+
+
+typedef __gnuc_va_list va_list;
+# 112 "/usr/include/stdio.h" 3 4
+typedef _G_fpos_t fpos_t;
+
+
+
+
+
+typedef _G_fpos64_t fpos64_t;
+# 166 "/usr/include/stdio.h" 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/bits/stdio_lim.h" 1 3 4
+# 167 "/usr/include/stdio.h" 2 3 4
+
+
+
+extern struct _IO_FILE *stdin;
+extern struct _IO_FILE *stdout;
+extern struct _IO_FILE *stderr;
+
+
+
+
+
+
+
+extern int remove (const char *__filename) throw ();
+
+extern int rename (const char *__old, const char *__new) throw ();
+
+
+
+
+extern int renameat (int __oldfd, const char *__old, int __newfd,
+       const char *__new) throw ();
+# 197 "/usr/include/stdio.h" 3 4
+extern FILE *tmpfile (void) ;
+# 207 "/usr/include/stdio.h" 3 4
+extern FILE *tmpfile64 (void) ;
+
+
+
+extern char *tmpnam (char *__s) throw () ;
+
+
+
+
+
+extern char *tmpnam_r (char *__s) throw () ;
+# 229 "/usr/include/stdio.h" 3 4
+extern char *tempnam (const char *__dir, const char *__pfx)
+     throw () __attribute__ ((__malloc__)) ;
+# 239 "/usr/include/stdio.h" 3 4
+extern int fclose (FILE *__stream);
+
+
+
+
+extern int fflush (FILE *__stream);
+# 254 "/usr/include/stdio.h" 3 4
+extern int fflush_unlocked (FILE *__stream);
+# 264 "/usr/include/stdio.h" 3 4
+extern int fcloseall (void);
+# 274 "/usr/include/stdio.h" 3 4
+extern FILE *fopen (const char *__restrict __filename,
+      const char *__restrict __modes) ;
+
+
+
+
+extern FILE *freopen (const char *__restrict __filename,
+        const char *__restrict __modes,
+        FILE *__restrict __stream) ;
+# 299 "/usr/include/stdio.h" 3 4
+extern FILE *fopen64 (const char *__restrict __filename,
+        const char *__restrict __modes) ;
+extern FILE *freopen64 (const char *__restrict __filename,
+   const char *__restrict __modes,
+   FILE *__restrict __stream) ;
+
+
+
+
+extern FILE *fdopen (int __fd, const char *__modes) throw () ;
+
+
+
+
+
+extern FILE *fopencookie (void *__restrict __magic_cookie,
+     const char *__restrict __modes,
+     _IO_cookie_io_functions_t __io_funcs) throw () ;
+
+
+
+
+extern FILE *fmemopen (void *__s, size_t __len, const char *__modes)
+  throw () ;
+
+
+
+
+extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) throw () ;
+
+
+
+
+
+
+extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw ();
+
+
+
+extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
+      int __modes, size_t __n) throw ();
+
+
+
+
+
+extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
+         size_t __size) throw ();
+
+
+extern void setlinebuf (FILE *__stream) throw ();
+# 358 "/usr/include/stdio.h" 3 4
+extern int fprintf (FILE *__restrict __stream,
+      const char *__restrict __format, ...);
+
+
+
+
+extern int printf (const char *__restrict __format, ...);
+
+extern int sprintf (char *__restrict __s,
+      const char *__restrict __format, ...) throw ();
+
+
+
+
+
+extern int vfprintf (FILE *__restrict __s, const char *__restrict __format,
+       __gnuc_va_list __arg);
+
+
+
+
+extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg);
+
+extern int vsprintf (char *__restrict __s, const char *__restrict __format,
+       __gnuc_va_list __arg) throw ();
+
+
+
+
+
+extern int snprintf (char *__restrict __s, size_t __maxlen,
+       const char *__restrict __format, ...)
+     throw () __attribute__ ((__format__ (__printf__, 3, 4)));
+
+extern int vsnprintf (char *__restrict __s, size_t __maxlen,
+        const char *__restrict __format, __gnuc_va_list __arg)
+     throw () __attribute__ ((__format__ (__printf__, 3, 0)));
+
+
+
+
+
+
+extern int vasprintf (char **__restrict __ptr, const char *__restrict __f,
+        __gnuc_va_list __arg)
+     throw () __attribute__ ((__format__ (__printf__, 2, 0))) ;
+extern int __asprintf (char **__restrict __ptr,
+         const char *__restrict __fmt, ...)
+     throw () __attribute__ ((__format__ (__printf__, 2, 3))) ;
+extern int asprintf (char **__restrict __ptr,
+       const char *__restrict __fmt, ...)
+     throw () __attribute__ ((__format__ (__printf__, 2, 3))) ;
+
+
+
+
+extern int vdprintf (int __fd, const char *__restrict __fmt,
+       __gnuc_va_list __arg)
+     __attribute__ ((__format__ (__printf__, 2, 0)));
+extern int dprintf (int __fd, const char *__restrict __fmt, ...)
+     __attribute__ ((__format__ (__printf__, 2, 3)));
+# 427 "/usr/include/stdio.h" 3 4
+extern int fscanf (FILE *__restrict __stream,
+     const char *__restrict __format, ...) ;
+
+
+
+
+extern int scanf (const char *__restrict __format, ...) ;
+
+extern int sscanf (const char *__restrict __s,
+     const char *__restrict __format, ...) throw ();
+# 473 "/usr/include/stdio.h" 3 4
+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format,
+      __gnuc_va_list __arg)
+     __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+
+
+
+
+
+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg)
+     __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+
+
+extern int vsscanf (const char *__restrict __s,
+      const char *__restrict __format, __gnuc_va_list __arg)
+     throw () __attribute__ ((__format__ (__scanf__, 2, 0)));
+# 533 "/usr/include/stdio.h" 3 4
+extern int fgetc (FILE *__stream);
+extern int getc (FILE *__stream);
+
+
+
+
+
+extern int getchar (void);
+# 552 "/usr/include/stdio.h" 3 4
+extern int getc_unlocked (FILE *__stream);
+extern int getchar_unlocked (void);
+# 563 "/usr/include/stdio.h" 3 4
+extern int fgetc_unlocked (FILE *__stream);
+# 575 "/usr/include/stdio.h" 3 4
+extern int fputc (int __c, FILE *__stream);
+extern int putc (int __c, FILE *__stream);
+
+
+
+
+
+extern int putchar (int __c);
+# 596 "/usr/include/stdio.h" 3 4
+extern int fputc_unlocked (int __c, FILE *__stream);
+
+
+
+
+
+
+
+extern int putc_unlocked (int __c, FILE *__stream);
+extern int putchar_unlocked (int __c);
+
+
+
+
+
+
+extern int getw (FILE *__stream);
+
+
+extern int putw (int __w, FILE *__stream);
+# 624 "/usr/include/stdio.h" 3 4
+extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
+          ;
+# 640 "/usr/include/stdio.h" 3 4
+extern char *gets (char *__s) __attribute__ ((__deprecated__));
+# 651 "/usr/include/stdio.h" 3 4
+extern char *fgets_unlocked (char *__restrict __s, int __n,
+        FILE *__restrict __stream) ;
+# 667 "/usr/include/stdio.h" 3 4
+extern __ssize_t __getdelim (char **__restrict __lineptr,
+          size_t *__restrict __n, int __delimiter,
+          FILE *__restrict __stream) ;
+extern __ssize_t getdelim (char **__restrict __lineptr,
+        size_t *__restrict __n, int __delimiter,
+        FILE *__restrict __stream) ;
+
+
+
+
+
+
+
+extern __ssize_t getline (char **__restrict __lineptr,
+       size_t *__restrict __n,
+       FILE *__restrict __stream) ;
+# 691 "/usr/include/stdio.h" 3 4
+extern int fputs (const char *__restrict __s, FILE *__restrict __stream);
+
+
+
+
+
+extern int puts (const char *__s);
+
+
+
+
+
+
+extern int ungetc (int __c, FILE *__stream);
+
+
+
+
+
+
+extern size_t fread (void *__restrict __ptr, size_t __size,
+       size_t __n, FILE *__restrict __stream) ;
+
+
+
+
+extern size_t fwrite (const void *__restrict __ptr, size_t __size,
+        size_t __n, FILE *__restrict __s);
+# 728 "/usr/include/stdio.h" 3 4
+extern int fputs_unlocked (const char *__restrict __s,
+      FILE *__restrict __stream);
+# 739 "/usr/include/stdio.h" 3 4
+extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
+         size_t __n, FILE *__restrict __stream) ;
+extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size,
+          size_t __n, FILE *__restrict __stream);
+# 751 "/usr/include/stdio.h" 3 4
+extern int fseek (FILE *__stream, long int __off, int __whence);
+
+
+
+
+extern long int ftell (FILE *__stream) ;
+
+
+
+
+extern void rewind (FILE *__stream);
+# 775 "/usr/include/stdio.h" 3 4
+extern int fseeko (FILE *__stream, __off_t __off, int __whence);
+
+
+
+
+extern __off_t ftello (FILE *__stream) ;
+# 800 "/usr/include/stdio.h" 3 4
+extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
+
+
+
+
+extern int fsetpos (FILE *__stream, const fpos_t *__pos);
+# 820 "/usr/include/stdio.h" 3 4
+extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence);
+extern __off64_t ftello64 (FILE *__stream) ;
+extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
+extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos);
+
+
+
+
+extern void clearerr (FILE *__stream) throw ();
+
+extern int feof (FILE *__stream) throw () ;
+
+extern int ferror (FILE *__stream) throw () ;
+
+
+
+
+extern void clearerr_unlocked (FILE *__stream) throw ();
+extern int feof_unlocked (FILE *__stream) throw () ;
+extern int ferror_unlocked (FILE *__stream) throw () ;
+# 848 "/usr/include/stdio.h" 3 4
+extern void perror (const char *__s);
+
+
+
+
+
+
+
+# 1 "/usr/include/arm-linux-gnueabihf/bits/sys_errlist.h" 1 3 4
+# 26 "/usr/include/arm-linux-gnueabihf/bits/sys_errlist.h" 3 4
+extern int sys_nerr;
+extern const char *const sys_errlist[];
+
+
+extern int _sys_nerr;
+extern const char *const _sys_errlist[];
+# 856 "/usr/include/stdio.h" 2 3 4
+
+
+
+
+extern int fileno (FILE *__stream) throw () ;
+
+
+
+
+extern int fileno_unlocked (FILE *__stream) throw () ;
+# 874 "/usr/include/stdio.h" 3 4
+extern FILE *popen (const char *__command, const char *__modes) ;
+
+
+
+
+
+extern int pclose (FILE *__stream);
+
+
+
+
+
+extern char *ctermid (char *__s) throw ();
+
+
+
+
+
+extern char *cuserid (char *__s);
+
+
+
+
+struct obstack;
+
+
+extern int obstack_printf (struct obstack *__restrict __obstack,
+      const char *__restrict __format, ...)
+     throw () __attribute__ ((__format__ (__printf__, 2, 3)));
+extern int obstack_vprintf (struct obstack *__restrict __obstack,
+       const char *__restrict __format,
+       __gnuc_va_list __args)
+     throw () __attribute__ ((__format__ (__printf__, 2, 0)));
+
+
+
+
+
+
+
+extern void flockfile (FILE *__stream) throw ();
+
+
+
+extern int ftrylockfile (FILE *__stream) throw () ;
+
+
+extern void funlockfile (FILE *__stream) throw ();
+# 935 "/usr/include/stdio.h" 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/bits/stdio.h" 1 3 4
+# 35 "/usr/include/arm-linux-gnueabihf/bits/stdio.h" 3 4
+extern __inline __attribute__ ((__gnu_inline__)) int
+vprintf (const char *__restrict __fmt, __gnuc_va_list __arg)
+{
+  return vfprintf (stdout, __fmt, __arg);
+}
+
+
+
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar (void)
+{
+  return _IO_getc (stdin);
+}
+
+
+
+
+extern __inline __attribute__ ((__gnu_inline__)) int
+fgetc_unlocked (FILE *__fp)
+{
+  return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+
+
+
+extern __inline __attribute__ ((__gnu_inline__)) int
+getc_unlocked (FILE *__fp)
+{
+  return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar_unlocked (void)
+{
+  return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
+}
+
+
+
+
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar (int __c)
+{
+  return _IO_putc (__c, stdout);
+}
+
+
+
+
+extern __inline __attribute__ ((__gnu_inline__)) int
+fputc_unlocked (int __c, FILE *__stream)
+{
+  return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+
+
+extern __inline __attribute__ ((__gnu_inline__)) int
+putc_unlocked (int __c, FILE *__stream)
+{
+  return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar_unlocked (int __c)
+{
+  return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+
+
+extern __inline __attribute__ ((__gnu_inline__)) __ssize_t
+getline (char **__lineptr, size_t *__n, FILE *__stream)
+{
+  return __getdelim (__lineptr, __n, '\n', __stream);
+}
+
+
+
+
+
+extern __inline __attribute__ ((__gnu_inline__)) int
+ feof_unlocked (FILE *__stream) throw ()
+{
+  return (((__stream)->_flags & 0x10) != 0);
+}
+
+
+extern __inline __attribute__ ((__gnu_inline__)) int
+ ferror_unlocked (FILE *__stream) throw ()
+{
+  return (((__stream)->_flags & 0x20) != 0);
+}
+# 936 "/usr/include/stdio.h" 2 3 4
+
+
+
+
+
+
+
+
+}
+# 21 "/usr/xenomai/include/cobalt/stdio.h" 2 3
+
+
+
+
+# 1 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stddef.h" 1 3
+# 26 "/usr/xenomai/include/cobalt/stdio.h" 2 3
+
+# 1 "/usr/xenomai/include/xeno_config.h" 1 3
+# 28 "/usr/xenomai/include/cobalt/stdio.h" 2 3
+
+
+
+extern "C" {
+
+
+__typeof__(int) __cobalt_vfprintf(FILE *stream, const char *fmt, va_list args); __typeof__(int) __real_vfprintf(FILE *stream, const char *fmt, va_list args); __typeof__(int) __wrap_vfprintf(FILE *stream, const char *fmt, va_list args);
+
+
+
+__typeof__(int) __cobalt___vfprintf_chk(FILE *stream, int level, const char *fmt, va_list ap); __typeof__(int) __real___vfprintf_chk(FILE *stream, int level, const char *fmt, va_list ap); __typeof__(int) __wrap___vfprintf_chk(FILE *stream, int level, const char *fmt, va_list ap);
+
+
+__typeof__(int) __cobalt___vprintf_chk(int flag, const char *fmt, va_list ap); __typeof__(int) __real___vprintf_chk(int flag, const char *fmt, va_list ap); __typeof__(int) __wrap___vprintf_chk(int flag, const char *fmt, va_list ap);
+
+
+__typeof__(int) __cobalt___printf_chk(int flag, const char *fmt, ...); __typeof__(int) __real___printf_chk(int flag, const char *fmt, ...); __typeof__(int) __wrap___printf_chk(int flag, const char *fmt, ...);
+
+__typeof__(int) __cobalt___fprintf_chk(FILE *fp, int flag, const char *fmt, ...); __typeof__(int) __real___fprintf_chk(FILE *fp, int flag, const char *fmt, ...); __typeof__(int) __wrap___fprintf_chk(FILE *fp, int flag, const char *fmt, ...);
+
+int __rt_vfprintf_chk(FILE *stream, int level,
+        const char *fmt, va_list args);
+
+void __rt_vsyslog_chk(int priority, int level,
+        const char *fmt, va_list args);
+
+
+
+__typeof__(int) __cobalt_vprintf(const char *fmt, va_list args); __typeof__(int) __real_vprintf(const char *fmt, va_list args); __typeof__(int) __wrap_vprintf(const char *fmt, va_list args);
+
+__typeof__(int) __cobalt_fprintf(FILE *stream, const char *fmt, ...); __typeof__(int) __real_fprintf(FILE *stream, const char *fmt, ...); __typeof__(int) __wrap_fprintf(FILE *stream, const char *fmt, ...);
+
+__typeof__(int) __cobalt_printf(const char *fmt, ...); __typeof__(int) __real_printf(const char *fmt, ...); __typeof__(int) __wrap_printf(const char *fmt, ...);
+
+__typeof__(int) __cobalt_puts(const char *s); __typeof__(int) __real_puts(const char *s); __typeof__(int) __wrap_puts(const char *s);
+
+__typeof__(int) __cobalt_fputs(const char *s, FILE *stream); __typeof__(int) __real_fputs(const char *s, FILE *stream); __typeof__(int) __wrap_fputs(const char *s, FILE *stream);
+
+
+__typeof__(int) __cobalt_putchar(int c); __typeof__(int) __real_putchar(int c); __typeof__(int) __wrap_putchar(int c);
+# 80 "/usr/xenomai/include/cobalt/stdio.h" 3
+__typeof__(int) __cobalt_fputc(int c, FILE *stream); __typeof__(int) __real_fputc(int c, FILE *stream); __typeof__(int) __wrap_fputc(int c, FILE *stream);
+# 92 "/usr/xenomai/include/cobalt/stdio.h" 3
+__typeof__(size_t) __cobalt_fwrite(const void *ptr, size_t sz, size_t nmemb, FILE *stream); __typeof__(size_t) __real_fwrite(const void *ptr, size_t sz, size_t nmemb, FILE *stream); __typeof__(size_t) __wrap_fwrite(const void *ptr, size_t sz, size_t nmemb, FILE *stream);
+
+
+__typeof__(int) __cobalt_fclose(FILE *stream); __typeof__(int) __real_fclose(FILE *stream); __typeof__(int) __wrap_fclose(FILE *stream);
+
+int rt_vfprintf(FILE *stream, const char *format, va_list args);
+
+int rt_vprintf(const char *format, va_list args);
+
+int rt_fprintf(FILE *stream, const char *format, ...);
+
+int rt_printf(const char *format, ...);
+
+int rt_puts(const char *s);
+
+int rt_fputs(const char *s, FILE *stream);
+
+int rt_fputc(int c, FILE *stream);
+
+int rt_putchar(int c);
+
+size_t rt_fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
+
+void rt_syslog(int priority, const char *format, ...);
+
+void rt_vsyslog(int priority, const char *format, va_list args);
+
+int rt_print_init(size_t buffer_size, const char *name);
+
+const char *rt_print_buffer_name(void);
+
+void rt_print_flush_buffers(void);
+
+
+}
+# 94 "./include/Bela.h" 2
+
+
+
+int rt_printf(const char *format, ...);
+int rt_fprintf(FILE *stream, const char *format, ...);
+int rt_vprintf(const char *format, va_list ap);
+int rt_vfprintf(FILE *stream, const char *format, va_list ap);
+
+
+
+
+typedef enum
+{
+ BelaHw_NoHw = -1,
+ BelaHw_Bela,
+ BelaHw_BelaMini,
+ BelaHw_Salt,
+ BelaHw_CtagFace,
+ BelaHw_CtagBeast,
+ BelaHw_CtagFaceBela,
+ BelaHw_CtagBeastBela,
+ BelaHw_BelaMiniMultiAudio,
+ BelaHw_BelaMiniMultiTdm,
+ BelaHw_BelaMultiTdm,
+ BelaHw_BelaMiniMultiI2s,
+ BelaHw_BelaEs9080,
+ BelaHw_BelaRevC,
+ BelaHw_Batch,
+} BelaHw;
+
+typedef struct _BelaHwConfig
+{
+ float audioSampleRate;
+ unsigned int audioInChannels;
+ unsigned int audioOutChannels;
+ unsigned int analogInChannels;
+ unsigned int analogOutChannels;
+ unsigned int digitalChannels;
+} BelaHwConfig;
+
+
+
+
+
+
+
+BelaHwConfig* Bela_HwConfig_new(BelaHw hw);
+
+
+
+
+void Bela_HwConfig_delete(BelaHwConfig* cfg);
+
+
+
+
+typedef enum
+{
+ BelaHwDetectMode_Scan,
+ BelaHwDetectMode_Cache,
+ BelaHwDetectMode_CacheOnly,
+ BelaHwDetectMode_User,
+ BelaHwDetectMode_UserOnly,
+} BelaHwDetectMode;
+
+
+# 1 "./include/GPIOcontrol.h" 1
+# 41 "./include/GPIOcontrol.h"
+extern "C"
+{
+# 53 "./include/GPIOcontrol.h"
+enum PIN_DIRECTION{
+ INPUT_PIN=0,
+ OUTPUT_PIN=1
+};
+
+enum PIN_VALUE{
+ LOW=0,
+ HIGH=1
+};
+
+
+
+
+int gpio_setup(unsigned int gpio, int out_flag);
+int gpio_export(unsigned int gpio);
+int gpio_unexport(unsigned int gpio);
+int gpio_set_dir(unsigned int gpio, int out_flag);
+int gpio_set_value(unsigned int gpio, int value);
+int gpio_get_value(unsigned int gpio, unsigned int *value);
+int gpio_set_edge(unsigned int gpio, char *edge);
+int gpio_fd_open(unsigned int gpio, int writeFlag);
+int gpio_fd_close(int fd);
+int gpio_write(int fd, int value);
+int gpio_read(int fd, unsigned int *value);
+int gpio_dismiss(int fd, unsigned int gpio);
+
+int led_set_trigger(unsigned int lednum, const char *trigger);
+
+
+}
+# 160 "./include/Bela.h" 2
+# 219 "./include/Bela.h"
+struct option;
+# 229 "./include/Bela.h"
+typedef struct {
+# 247 "./include/Bela.h"
+ const float * const audioIn;
+# 262 "./include/Bela.h"
+ float * const audioOut;
+# 281 "./include/Bela.h"
+ const float * const analogIn;
+# 296 "./include/Bela.h"
+ float * const analogOut;
+# 306 "./include/Bela.h"
+ uint32_t * const digital;
+# 320 "./include/Bela.h"
+ const uint32_t audioFrames;
+
+ const uint32_t audioInChannels;
+
+ const uint32_t audioOutChannels;
+
+ const float audioSampleRate;
+# 339 "./include/Bela.h"
+ const uint32_t analogFrames;
+
+
+
+
+ const uint32_t analogInChannels;
+
+
+
+
+ const uint32_t analogOutChannels;
+# 360 "./include/Bela.h"
+ const float analogSampleRate;
+
+
+ const uint32_t digitalFrames;
+
+
+
+ const uint32_t digitalChannels;
+
+ const float digitalSampleRate;
+
+
+
+
+
+
+
+ const uint64_t audioFramesElapsed;
+
+
+
+
+
+ const uint32_t multiplexerChannels;
+
+
+
+
+
+ const uint32_t multiplexerStartingChannel;
+
+
+
+
+
+
+ const float * const multiplexerAnalogIn;
+
+
+
+
+
+ const uint32_t audioExpanderEnabled;
+# 412 "./include/Bela.h"
+ const uint32_t flags;
+
+
+ char projectName[256];
+
+
+ const unsigned int underrunCount;
+} BelaContext;
+
+struct BelaChannelGain {
+ int channel;
+ float gain;
+};
+
+struct BelaChannelGainArray {
+ unsigned int length;
+ struct BelaChannelGain* data;
+};
+# 439 "./include/Bela.h"
+typedef struct {
+
+
+
+
+
+
+
+ int periodSize;
+
+ int useAnalog;
+
+ int useDigital;
+
+ int numAudioInChannels;
+
+ int numAudioOutChannels;
+
+ int numAnalogInChannels;
+
+ int numAnalogOutChannels;
+
+ int numDigitalChannels;
+
+
+ int beginMuted;
+
+ float dacLevel;
+
+ float adcLevel;
+
+ float pgaGain[2];
+
+ float headphoneLevel;
+
+ int numMuxChannels;
+
+ unsigned int audioExpanderInputs;
+
+ unsigned int audioExpanderOutputs;
+
+
+ int pruNumber;
+
+ char pruFilename[256];
+
+ int detectUnderruns;
+
+ int verbose;
+
+ int enableLED;
+
+
+ int stopButtonPin;
+
+
+
+
+ int highPerformanceMode;
+
+
+
+
+
+ int interleave;
+
+
+
+ int analogOutputsPersist;
+
+
+ int uniformSampleRate;
+
+
+ unsigned int audioThreadStackSize;
+
+
+ unsigned int auxiliaryTaskStackSize;
+
+
+ bool (*setup)(BelaContext*, void*);
+ void (*render)(BelaContext*, void*);
+ void (*cleanup)(BelaContext*, void*);
+
+
+
+
+ int ampMutePin;
+
+
+
+ void (*audioThreadDone)(BelaContext*, void*);
+
+ char* codecMode;
+
+ struct BelaChannelGainArray audioInputGains;
+
+ struct BelaChannelGainArray headphoneGains;
+
+ struct BelaChannelGainArray adcGains;
+
+ struct BelaChannelGainArray lineOutGains;
+
+ char unused[224];
+
+
+ BelaHw board;
+
+
+ char* projectName;
+
+} BelaInitSettings;
+
+
+
+
+
+
+typedef void* AuxiliaryTask;
+# 575 "./include/Bela.h"
+extern int volatile gShouldStop;
+# 605 "./include/Bela.h"
+bool setup(BelaContext *context, void *userData);
+# 621 "./include/Bela.h"
+void render(BelaContext *context, void *userData);
+# 638 "./include/Bela.h"
+void cleanup(BelaContext *context, void *userData);
+# 661 "./include/Bela.h"
+BelaInitSettings* Bela_InitSettings_alloc();
+# 671 "./include/Bela.h"
+void Bela_InitSettings_free(BelaInitSettings* settings);
+# 682 "./include/Bela.h"
+void Bela_defaultSettings(BelaInitSettings *settings);
+
+#pragma weak Bela_userSettings
+# 696 "./include/Bela.h"
+void Bela_userSettings(BelaInitSettings *settings);
+# 719 "./include/Bela.h"
+int Bela_getopt_long(int argc, char * const argv[], const char *customShortOptions,
+       const struct option *customLongOptions, BelaInitSettings *settings);
+# 729 "./include/Bela.h"
+void Bela_usage();
+
+
+
+
+void Bela_getVersion(int* major, int* minor, int* bugfix);
+
+
+
+
+
+
+
+void Bela_setVerboseLevel(int level);
+# 751 "./include/Bela.h"
+BelaHw Bela_detectHw(BelaHwDetectMode mode);
+# 770 "./include/Bela.h"
+int Bela_initAudio(BelaInitSettings *settings, void *userData);
+# 780 "./include/Bela.h"
+int Bela_startAudio();
+# 790 "./include/Bela.h"
+int Bela_runInSameThread();
+
+
+
+
+
+
+
+void Bela_stopAudio();
+# 807 "./include/Bela.h"
+void Bela_cleanupAudio();
+# 816 "./include/Bela.h"
+void Bela_setUserData(void* newUserData);
+# 830 "./include/Bela.h"
+void Bela_requestStop();
+# 841 "./include/Bela.h"
+int Bela_stopRequested();
+# 867 "./include/Bela.h"
+# 1 "/usr/xenomai/include/cobalt/time.h" 1
+# 19 "/usr/xenomai/include/cobalt/time.h" 3
+# 1 "/usr/include/time.h" 1 3 4
+# 29 "/usr/include/time.h" 3 4
+extern "C" {
+
+
+
+
+
+
+
+
+# 1 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stddef.h" 1 3 4
+# 38 "/usr/include/time.h" 2 3 4
+
+
+
+# 1 "/usr/include/arm-linux-gnueabihf/bits/time.h" 1 3 4
+# 30 "/usr/include/arm-linux-gnueabihf/bits/time.h" 3 4
+struct timeval
+  {
+    __time_t tv_sec;
+    __suseconds_t tv_usec;
+  };
+# 88 "/usr/include/arm-linux-gnueabihf/bits/time.h" 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/bits/timex.h" 1 3 4
+# 25 "/usr/include/arm-linux-gnueabihf/bits/timex.h" 3 4
+struct timex
+{
+  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;
+};
+# 89 "/usr/include/arm-linux-gnueabihf/bits/time.h" 2 3 4
+
+extern "C" {
+
+
+extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) throw ();
+
+}
+# 42 "/usr/include/time.h" 2 3 4
+# 59 "/usr/include/time.h" 3 4
+typedef __clock_t clock_t;
+# 75 "/usr/include/time.h" 3 4
+typedef __time_t time_t;
+# 91 "/usr/include/time.h" 3 4
+typedef __clockid_t clockid_t;
+# 103 "/usr/include/time.h" 3 4
+typedef __timer_t timer_t;
+# 120 "/usr/include/time.h" 3 4
+struct timespec
+  {
+    __time_t tv_sec;
+    __syscall_slong_t tv_nsec;
+  };
+# 133 "/usr/include/time.h" 3 4
+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;
+
+
+
+
+};
+# 161 "/usr/include/time.h" 3 4
+struct itimerspec
+  {
+    struct timespec it_interval;
+    struct timespec it_value;
+  };
+
+
+struct sigevent;
+# 189 "/usr/include/time.h" 3 4
+extern clock_t clock (void) throw ();
+
+
+extern time_t time (time_t *__timer) throw ();
+
+
+extern double difftime (time_t __time1, time_t __time0)
+     throw () __attribute__ ((__const__));
+
+
+extern time_t mktime (struct tm *__tp) throw ();
+
+
+
+
+
+extern size_t strftime (char *__restrict __s, size_t __maxsize,
+   const char *__restrict __format,
+   const struct tm *__restrict __tp) throw ();
+
+
+
+
+
+extern char *strptime (const char *__restrict __s,
+         const char *__restrict __fmt, struct tm *__tp)
+     throw ();
+
+
+
+
+
+
+# 1 "/usr/include/xlocale.h" 1 3 4
+# 27 "/usr/include/xlocale.h" 3 4
+typedef 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];
+} *__locale_t;
+
+
+typedef __locale_t locale_t;
+# 222 "/usr/include/time.h" 2 3 4
+
+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 ();
+
+
+
+
+
+
+extern struct tm *gmtime (const time_t *__timer) throw ();
+
+
+
+extern struct tm *localtime (const time_t *__timer) throw ();
+
+
+
+
+
+extern struct tm *gmtime_r (const time_t *__restrict __timer,
+       struct tm *__restrict __tp) throw ();
+
+
+
+extern struct tm *localtime_r (const time_t *__restrict __timer,
+          struct tm *__restrict __tp) throw ();
+
+
+
+
+
+extern char *asctime (const struct tm *__tp) throw ();
+
+
+extern char *ctime (const time_t *__timer) throw ();
+
+
+
+
+
+
+
+extern char *asctime_r (const struct tm *__restrict __tp,
+   char *__restrict __buf) throw ();
+
+
+extern char *ctime_r (const time_t *__restrict __timer,
+        char *__restrict __buf) throw ();
+
+
+
+
+extern char *__tzname[2];
+extern int __daylight;
+extern long int __timezone;
+
+
+
+
+extern char *tzname[2];
+
+
+
+extern void tzset (void) throw ();
+
+
+
+extern int daylight;
+extern long int timezone;
+
+
+
+
+
+extern int stime (const time_t *__when) throw ();
+# 319 "/usr/include/time.h" 3 4
+extern time_t timegm (struct tm *__tp) throw ();
+
+
+extern time_t timelocal (struct tm *__tp) throw ();
+
+
+extern int dysize (int __year) throw () __attribute__ ((__const__));
+# 334 "/usr/include/time.h" 3 4
+extern int nanosleep (const struct timespec *__requested_time,
+        struct timespec *__remaining);
+
+
+
+extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw ();
+
+
+extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw ();
+
+
+extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp)
+     throw ();
+
+
+
+
+
+
+extern int clock_nanosleep (clockid_t __clock_id, int __flags,
+       const struct timespec *__req,
+       struct timespec *__rem);
+
+
+extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw ();
+
+
+
+
+extern int timer_create (clockid_t __clock_id,
+    struct sigevent *__restrict __evp,
+    timer_t *__restrict __timerid) throw ();
+
+
+extern int timer_delete (timer_t __timerid) throw ();
+
+
+extern int timer_settime (timer_t __timerid, int __flags,
+     const struct itimerspec *__restrict __value,
+     struct itimerspec *__restrict __ovalue) throw ();
+
+
+extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
+     throw ();
+
+
+extern int timer_getoverrun (timer_t __timerid) throw ();
+
+
+
+
+
+extern int timespec_get (struct timespec *__ts, int __base)
+     throw () __attribute__ ((__nonnull__ (1)));
+# 403 "/usr/include/time.h" 3 4
+extern int getdate_err;
+# 412 "/usr/include/time.h" 3 4
+extern struct tm *getdate (const char *__string);
+# 426 "/usr/include/time.h" 3 4
+extern int getdate_r (const char *__restrict __string,
+        struct tm *__restrict __resbufp);
+
+
+}
+# 20 "/usr/xenomai/include/cobalt/time.h" 2 3
+
+
+
+
+
+
+
+# 1 "/usr/xenomai/include/cobalt/uapi/time.h" 1 3
+# 28 "/usr/xenomai/include/cobalt/time.h" 2 3
+
+
+extern "C" {
+
+
+struct timex;
+
+__typeof__(int) __cobalt_clock_getres(clockid_t clock_id, struct timespec *tp); __typeof__(int) __real_clock_getres(clockid_t clock_id, struct timespec *tp); __typeof__(int) __wrap_clock_getres(clockid_t clock_id, struct timespec *tp);
+
+
+__typeof__(int) __cobalt_clock_gettime(clockid_t clock_id, struct timespec *tp); __typeof__(int) __real_clock_gettime(clockid_t clock_id, struct timespec *tp); __typeof__(int) __wrap_clock_gettime(clockid_t clock_id, struct timespec *tp);
+
+
+__typeof__(int) __cobalt_clock_settime(clockid_t clock_id, const struct timespec *tp); __typeof__(int) __real_clock_settime(clockid_t clock_id, const struct timespec *tp); __typeof__(int) __wrap_clock_settime(clockid_t clock_id, const struct timespec *tp);
+
+
+__typeof__(int) __cobalt_clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); __typeof__(int) __real_clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); __typeof__(int) __wrap_clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp);
+
+
+
+
+__typeof__(time_t) __cobalt_time(time_t *t); __typeof__(time_t) __real_time(time_t *t); __typeof__(time_t) __wrap_time(time_t *t);
+
+__typeof__(int) __cobalt_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); __typeof__(int) __real_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); __typeof__(int) __wrap_nanosleep(const struct timespec *rqtp, struct timespec *rmtp);
+
+
+__typeof__(int) __cobalt_timer_create(clockid_t clockid, const struct sigevent *__restrict__ evp, timer_t * __restrict__ timerid); __typeof__(int) __real_timer_create(clockid_t clockid, const struct sigevent *__restrict__ evp, timer_t * __restrict__ timerid); __typeof__(int) __wrap_timer_create(clockid_t clockid, const struct sigevent *__restrict__ evp, timer_t * __restrict__ timerid);
+
+
+
+__typeof__(int) __cobalt_timer_delete(timer_t timerid); __typeof__(int) __real_timer_delete(timer_t timerid); __typeof__(int) __wrap_timer_delete(timer_t timerid);
+
+__typeof__(int) __cobalt_timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); __typeof__(int) __real_timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); __typeof__(int) __wrap_timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue);
+
+
+
+
+__typeof__(int) __cobalt_timer_gettime(timer_t timerid, struct itimerspec *value); __typeof__(int) __real_timer_gettime(timer_t timerid, struct itimerspec *value); __typeof__(int) __wrap_timer_gettime(timer_t timerid, struct itimerspec *value);
+
+
+__typeof__(int) __cobalt_timer_getoverrun(timer_t timerid); __typeof__(int) __real_timer_getoverrun(timer_t timerid); __typeof__(int) __wrap_timer_getoverrun(timer_t timerid);
+
+
+}
+# 868 "./include/Bela.h" 2
+typedef struct {
+ int count;
+ unsigned int currentCount;
+ long long unsigned int busy;
+ long long unsigned int total;
+ struct timespec tic;
+ struct timespec toc;
+ float percentage;
+} BelaCpuData;
+
+
+
+
+
+int Bela_cpuMonitoringInit(int count);
+
+
+
+
+
+
+BelaCpuData* Bela_cpuMonitoringGet();
+
+
+
+
+
+
+
+void Bela_cpuTic(BelaCpuData* data);
+
+
+
+
+
+void Bela_cpuToc(BelaCpuData* data);
+# 930 "./include/Bela.h"
+int Bela_setLineOutLevel(int channel, float decibel);
+# 939 "./include/Bela.h"
+int Bela_setDacLevel(int channel, float decibels);
+
+
+
+
+
+
+int Bela_setDACLevel(float decibels);
+# 963 "./include/Bela.h"
+int Bela_setAdcLevel(int channel, float decibels);
+
+
+
+
+
+
+int Bela_setADCLevel(float decibels);
+# 989 "./include/Bela.h"
+int Bela_setAudioInputGain(int channel, float decibels);
+
+
+
+
+
+
+int Bela_setPgaGain(float decibels, int channel);
+# 1014 "./include/Bela.h"
+int Bela_setHpLevel(int channel, float decibels);
+
+
+
+
+int Bela_setHeadphoneLevel(float decibels);
+# 1034 "./include/Bela.h"
+int Bela_muteSpeakers(int mute);
+# 1070 "./include/Bela.h"
+AuxiliaryTask Bela_createAuxiliaryTask(void (*callback)(void*), int priority, const char *name, void* arg
+
+= __null
+
+);
+# 1091 "./include/Bela.h"
+int Bela_scheduleAuxiliaryTask(AuxiliaryTask task);
+# 1106 "./include/Bela.h"
+AuxiliaryTask Bela_runAuxiliaryTask(void (*callback)(void*), int priority = 0, void* arg = nullptr);
+# 1126 "./include/Bela.h"
+int Bela_startAuxiliaryTask(AuxiliaryTask task);
+int Bela_startAllAuxiliaryTasks();
+void Bela_stopAllAuxiliaryTasks();
+void Bela_deleteAllAuxiliaryTasks();
+
+
+
+
+
+
+# 1 "./include/Utilities.h" 1
+# 29 "./include/Utilities.h"
+static inline float map(float x, float in_min, float in_max, float out_min, float out_max);
+# 47 "./include/Utilities.h"
+static inline float constrain(float x, float min_val, float max_val);
+
+
+
+
+
+
+static inline float min(float x, float y);
+
+
+
+
+
+
+static inline float max(float x, float y);
+# 71 "./include/Utilities.h"
+static inline float map(float x, float in_min, float in_max, float out_min, float out_max)
+{
+ return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
+}
+
+
+
+
+
+
+static inline float constrain(float x, float min_val, float max_val)
+{
+ if(x < min_val) return min_val;
+ if(x > max_val) return max_val;
+ return x;
+}
+
+static inline float max(float x, float y){
+ return x > y ? x : y;
+}
+
+static inline float min(float x, float y){
+ return x < y ? x : y;
+}
+# 1136 "./include/Bela.h" 2
+# 1154 "./include/Bela.h"
+enum {
+ INPUT = 0,
+ OUTPUT = 1,
+};
+# 1205 "./include/Bela.h"
+static inline float audioRead(BelaContext *context, int frame, int channel);
+
+
+
+
+
+
+static inline float audioReadNI(BelaContext *context, int frame, int channel);
+# 1227 "./include/Bela.h"
+static inline void audioWrite(BelaContext *context, int frame, int channel, float value);
+
+
+
+
+
+
+static inline void audioWriteNI(BelaContext *context, int frame, int channel, float value);
+# 1249 "./include/Bela.h"
+static inline float analogRead(BelaContext *context, int frame, int channel);
+
+
+
+
+
+
+static inline float analogReadNI(BelaContext *context, int frame, int channel);
+# 1274 "./include/Bela.h"
+static inline void analogWrite(BelaContext *context, int frame, int channel, float value);
+
+
+
+
+
+
+static inline void analogWriteNI(BelaContext *context, int frame, int channel, float value);
+# 1302 "./include/Bela.h"
+static inline void analogWriteOnce(BelaContext *context, int frame, int channel, float value);
+
+
+
+
+
+
+static inline void analogWriteOnceNI(BelaContext *context, int frame, int channel, float value);
+# 1325 "./include/Bela.h"
+static inline int digitalRead(BelaContext *context, int frame, int channel);
+# 1343 "./include/Bela.h"
+static inline void digitalWrite(BelaContext *context, int frame, int channel, int value);
+# 1363 "./include/Bela.h"
+static inline void digitalWriteOnce(BelaContext *context, int frame, int channel, int value);
+# 1381 "./include/Bela.h"
+static inline void pinMode(BelaContext *context, int frame, int channel, int mode);
+# 1399 "./include/Bela.h"
+static inline void pinModeOnce(BelaContext *context, int frame, int channel, int mode);
+# 1424 "./include/Bela.h"
+static inline float multiplexerAnalogRead(BelaContext *context, int input, int muxChannel);
+# 1447 "./include/Bela.h"
+static inline unsigned int multiplexerChannelForFrame(BelaContext *context, int frame);
+
+
+
+
+
+
+static inline float audioRead(BelaContext *context, int frame, int channel) {
+ return context->audioIn[frame * context->audioInChannels + channel];
+}
+
+static inline float audioReadNI(BelaContext *context, int frame, int channel) {
+ return context->audioIn[channel * context->audioFrames + frame];
+}
+
+
+
+
+static inline void audioWrite(BelaContext *context, int frame, int channel, float value) {
+ context->audioOut[frame * context->audioOutChannels + channel] = value;
+}
+
+static inline void audioWriteNI(BelaContext *context, int frame, int channel, float value) {
+ context->audioOut[channel * context->audioFrames + frame] = value;
+}
+
+
+
+
+static inline float analogRead(BelaContext *context, int frame, int channel) {
+ return context->analogIn[frame * context->analogInChannels + channel];
+}
+
+static inline float analogReadNI(BelaContext *context, int frame, int channel) {
+ return context->analogIn[channel * context->analogFrames + frame];
+}
+
+
+
+
+static inline void analogWriteOnce(BelaContext *context, int frame, int channel, float value) {
+ context->analogOut[frame * context->analogOutChannels + channel] = value;
+}
+
+static inline void analogWriteOnceNI(BelaContext *context, int frame, int channel, float value) {
+ context->analogOut[channel * context->analogFrames + frame] = value;
+}
+
+
+
+
+
+static inline void analogWrite(BelaContext *context, int frame, int channel, float value) {
+ unsigned int f;
+ for(f = frame; f < context->analogFrames; f++)
+  analogWriteOnce(context, f, channel, value);
+}
+
+static inline void analogWriteNI(BelaContext *context, int frame, int channel, float value) {
+ unsigned int f;
+ for(f = frame; f < context->analogFrames; f++)
+  analogWriteOnceNI(context, f, channel, value);
+}
+
+
+
+
+static inline int digitalRead(BelaContext *context, int frame, int channel) {
+ return (((context->digital[frame]) >> (channel + 16)) & 1);
+}
+
+
+
+
+static inline void digitalWrite(BelaContext *context, int frame, int channel, int value) {
+ unsigned int f;
+ for(f = frame; f < context->digitalFrames; f++) {
+  if(value)
+   context->digital[f] |= 1 << (channel + 16);
+  else
+   context->digital[f] &= ~(1 << (channel + 16));
+ }
+}
+
+
+
+
+static inline void digitalWriteOnce(BelaContext *context, int frame, int channel, int value) {
+ if(value)
+  context->digital[frame] |= 1 << (channel + 16);
+ else
+  context->digital[frame] &= ~(1 << (channel + 16));
+}
+
+
+
+
+static inline void pinMode(BelaContext *context, int frame, int channel, int mode) {
+ unsigned int f;
+ for(f = frame; f < context->digitalFrames; f++) {
+  if(mode == INPUT)
+   context->digital[f] |= (1 << channel);
+  else
+   context->digital[f] &= ~(1 << channel);
+ }
+}
+
+
+
+
+static inline void pinModeOnce(BelaContext *context, int frame, int channel, int mode) {
+ if(mode == INPUT)
+  context->digital[frame] |= (1 << channel);
+ else
+  context->digital[frame] &= ~(1 << channel);
+}
+
+
+
+
+static inline float multiplexerAnalogRead(BelaContext *context, int input, int muxChannel) {
+ return context->multiplexerAnalogIn[muxChannel * context->analogInChannels + input];
+}
+
+
+
+
+static inline unsigned int multiplexerChannelForFrame(BelaContext *context, int frame) {
+ if(context->multiplexerChannels <= 1)
+  return 1;
+ return (context->multiplexerStartingChannel + frame) % context->multiplexerChannels;
+}
+
+
+}
+# 49 "/root/Bela/projects/my_ultrasonic_ranger2/render.cpp" 2
+# 1 "/usr/xenomai/include/cobalt/stdlib.h" 1
+# 19 "/usr/xenomai/include/cobalt/stdlib.h" 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/stdlib.h" 1 3
+# 36 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/stdlib.h" 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cstdlib" 1 3
+# 40 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cstdlib" 3
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/c++config.h" 1 3
+# 199 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/c++config.h" 3
+namespace std
+{
+  typedef unsigned int size_t;
+  typedef int ptrdiff_t;
+
+
+  typedef decltype(nullptr) nullptr_t;
+
+}
+# 221 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/c++config.h" 3
+namespace std
+{
+  inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { }
+}
+namespace __gnu_cxx
+{
+  inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { }
+}
+# 507 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/c++config.h" 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/os_defines.h" 1 3
+# 508 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/c++config.h" 2 3
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/cpu_defines.h" 1 3
+# 511 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/c++config.h" 2 3
+# 42 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cstdlib" 2 3
+# 75 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cstdlib" 3
+# 1 "/usr/include/stdlib.h" 1 3 4
+# 32 "/usr/include/stdlib.h" 3 4
+# 1 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stddef.h" 1 3 4
+# 33 "/usr/include/stdlib.h" 2 3 4
+
+extern "C" {
+
+
+
+
+
+
+
+# 1 "/usr/include/arm-linux-gnueabihf/bits/waitflags.h" 1 3 4
+# 50 "/usr/include/arm-linux-gnueabihf/bits/waitflags.h" 3 4
+typedef enum
+{
+  P_ALL,
+  P_PID,
+  P_PGID
+} idtype_t;
+# 42 "/usr/include/stdlib.h" 2 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/bits/waitstatus.h" 1 3 4
+# 43 "/usr/include/stdlib.h" 2 3 4
+# 58 "/usr/include/stdlib.h" 3 4
+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;
+# 100 "/usr/include/stdlib.h" 3 4
+extern size_t __ctype_get_mb_cur_max (void) throw () ;
+
+
+
+
+extern double atof (const char *__nptr)
+     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+extern int atoi (const char *__nptr)
+     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+extern long int atol (const char *__nptr)
+     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+__extension__ extern long long int atoll (const char *__nptr)
+     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+extern double strtod (const char *__restrict __nptr,
+        char **__restrict __endptr)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+extern float strtof (const char *__restrict __nptr,
+       char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1)));
+
+extern long double strtold (const char *__restrict __nptr,
+       char **__restrict __endptr)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+extern long int strtol (const char *__restrict __nptr,
+   char **__restrict __endptr, int __base)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+extern unsigned long int strtoul (const char *__restrict __nptr,
+      char **__restrict __endptr, int __base)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+
+__extension__
+extern long long int strtoq (const char *__restrict __nptr,
+        char **__restrict __endptr, int __base)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+__extension__
+extern unsigned long long int strtouq (const char *__restrict __nptr,
+           char **__restrict __endptr, int __base)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+__extension__
+extern long long int strtoll (const char *__restrict __nptr,
+         char **__restrict __endptr, int __base)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+__extension__
+extern unsigned long long int strtoull (const char *__restrict __nptr,
+     char **__restrict __endptr, int __base)
+     throw () __attribute__ ((__nonnull__ (1)));
+# 200 "/usr/include/stdlib.h" 3 4
+extern long int strtol_l (const char *__restrict __nptr,
+     char **__restrict __endptr, int __base,
+     __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4)));
+
+extern unsigned long int strtoul_l (const char *__restrict __nptr,
+        char **__restrict __endptr,
+        int __base, __locale_t __loc)
+     throw () __attribute__ ((__nonnull__ (1, 4)));
+
+__extension__
+extern long long int strtoll_l (const char *__restrict __nptr,
+    char **__restrict __endptr, int __base,
+    __locale_t __loc)
+     throw () __attribute__ ((__nonnull__ (1, 4)));
+
+__extension__
+extern unsigned long long int strtoull_l (const char *__restrict __nptr,
+       char **__restrict __endptr,
+       int __base, __locale_t __loc)
+     throw () __attribute__ ((__nonnull__ (1, 4)));
+
+extern double strtod_l (const char *__restrict __nptr,
+   char **__restrict __endptr, __locale_t __loc)
+     throw () __attribute__ ((__nonnull__ (1, 3)));
+
+extern float strtof_l (const char *__restrict __nptr,
+         char **__restrict __endptr, __locale_t __loc)
+     throw () __attribute__ ((__nonnull__ (1, 3)));
+
+extern long double strtold_l (const char *__restrict __nptr,
+         char **__restrict __endptr,
+         __locale_t __loc)
+     throw () __attribute__ ((__nonnull__ (1, 3)));
+
+
+
+
+
+extern __inline __attribute__ ((__gnu_inline__)) int
+ atoi (const char *__nptr) throw ()
+{
+  return (int) strtol (__nptr, (char **) __null, 10);
+}
+extern __inline __attribute__ ((__gnu_inline__)) long int
+ atol (const char *__nptr) throw ()
+{
+  return strtol (__nptr, (char **) __null, 10);
+}
+
+
+
+
+__extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int
+ atoll (const char *__nptr) throw ()
+{
+  return strtoll (__nptr, (char **) __null, 10);
+}
+# 266 "/usr/include/stdlib.h" 3 4
+extern char *l64a (long int __n) throw () ;
+
+
+extern long int a64l (const char *__s)
+     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+# 1 "/usr/include/arm-linux-gnueabihf/sys/types.h" 1 3 4
+# 27 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4
+extern "C" {
+
+
+
+
+
+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;
+# 70 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4
+typedef __mode_t mode_t;
+
+
+
+
+typedef __nlink_t nlink_t;
+# 104 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4
+typedef __id_t id_t;
+# 115 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4
+typedef __daddr_t daddr_t;
+typedef __caddr_t caddr_t;
+
+
+
+
+
+typedef __key_t key_t;
+# 132 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4
+# 1 "/usr/xenomai/include/cobalt/time.h" 1 3 4
+# 19 "/usr/xenomai/include/cobalt/time.h" 3
+# 133 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4
+
+
+
+
+
+
+
+typedef __suseconds_t suseconds_t;
+
+
+
+
+
+
+# 1 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stddef.h" 1 3 4
+# 147 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4
+
+
+
+typedef unsigned long int ulong;
+typedef unsigned short int ushort;
+typedef unsigned int uint;
+# 200 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4
+typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
+typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
+typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
+typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
+
+typedef int register_t __attribute__ ((__mode__ (__word__)));
+# 216 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4
+# 1 "/usr/include/endian.h" 1 3 4
+# 36 "/usr/include/endian.h" 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/bits/endian.h" 1 3 4
+# 37 "/usr/include/endian.h" 2 3 4
+# 60 "/usr/include/endian.h" 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/bits/byteswap.h" 1 3 4
+# 34 "/usr/include/arm-linux-gnueabihf/bits/byteswap.h" 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/bits/byteswap-16.h" 1 3 4
+# 35 "/usr/include/arm-linux-gnueabihf/bits/byteswap.h" 2 3 4
+# 61 "/usr/include/endian.h" 2 3 4
+# 217 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4
+
+
+# 1 "/usr/xenomai/include/cobalt/sys/select.h" 1 3 4
+# 19 "/usr/xenomai/include/cobalt/sys/select.h" 3
+# 1 "/usr/include/arm-linux-gnueabihf/sys/select.h" 1 3 4
+# 30 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/bits/select.h" 1 3 4
+# 31 "/usr/include/arm-linux-gnueabihf/sys/select.h" 2 3 4
+
+
+# 1 "/usr/include/arm-linux-gnueabihf/bits/sigset.h" 1 3 4
+# 22 "/usr/include/arm-linux-gnueabihf/bits/sigset.h" 3 4
+typedef int __sig_atomic_t;
+
+
+
+
+typedef struct
+  {
+    unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
+  } __sigset_t;
+# 34 "/usr/include/arm-linux-gnueabihf/sys/select.h" 2 3 4
+
+
+
+typedef __sigset_t sigset_t;
+
+
+
+
+
+
+
+
+# 1 "/usr/xenomai/include/cobalt/time.h" 1 3 4
+# 19 "/usr/xenomai/include/cobalt/time.h" 3
+# 46 "/usr/include/arm-linux-gnueabihf/sys/select.h" 2 3 4
+
+# 1 "/usr/include/arm-linux-gnueabihf/bits/time.h" 1 3 4
+# 48 "/usr/include/arm-linux-gnueabihf/sys/select.h" 2 3 4
+
+
+
+
+
+
+
+
+typedef long int __fd_mask;
+# 66 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4
+typedef struct
+  {
+
+
+
+    __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
+
+
+
+
+
+  } fd_set;
+
+
+
+
+
+
+typedef __fd_mask fd_mask;
+# 98 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4
+extern "C" {
+# 108 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4
+extern int select (int __nfds, fd_set *__restrict __readfds,
+     fd_set *__restrict __writefds,
+     fd_set *__restrict __exceptfds,
+     struct timeval *__restrict __timeout);
+# 120 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4
+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);
+# 133 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4
+}
+# 20 "/usr/xenomai/include/cobalt/sys/select.h" 2 3
+
+
+
+
+
+
+
+extern "C" {
+
+
+__typeof__(int) __cobalt_select(int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout); __typeof__(int) __real_select(int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout); __typeof__(int) __wrap_select(int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout);
+
+
+
+
+}
+# 220 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4
+
+
+# 1 "/usr/include/arm-linux-gnueabihf/sys/sysmacros.h" 1 3 4
+# 24 "/usr/include/arm-linux-gnueabihf/sys/sysmacros.h" 3 4
+extern "C" {
+
+__extension__
+extern unsigned int gnu_dev_major (unsigned long long int __dev)
+     throw () __attribute__ ((__const__));
+__extension__
+extern unsigned int gnu_dev_minor (unsigned long long int __dev)
+     throw () __attribute__ ((__const__));
+__extension__
+extern unsigned long long int gnu_dev_makedev (unsigned int __major,
+            unsigned int __minor)
+     throw () __attribute__ ((__const__));
+
+
+__extension__ extern __inline __attribute__ ((__gnu_inline__)) __attribute__ ((__const__)) unsigned int
+ gnu_dev_major (unsigned long long int __dev) throw ()
+{
+  return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
+}
+
+__extension__ extern __inline __attribute__ ((__gnu_inline__)) __attribute__ ((__const__)) unsigned int
+ gnu_dev_minor (unsigned long long int __dev) throw ()
+{
+  return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
+}
+
+__extension__ extern __inline __attribute__ ((__gnu_inline__)) __attribute__ ((__const__)) unsigned long long int
+ gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw ()
+{
+  return ((__minor & 0xff) | ((__major & 0xfff) << 8)
+   | (((unsigned long long int) (__minor & ~0xff)) << 12)
+   | (((unsigned long long int) (__major & ~0xfff)) << 32));
+}
+
+}
+# 223 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4
+
+
+
+
+
+typedef __blksize_t blksize_t;
+
+
+
+
+
+
+typedef __blkcnt_t blkcnt_t;
+
+
+
+typedef __fsblkcnt_t fsblkcnt_t;
+
+
+
+typedef __fsfilcnt_t fsfilcnt_t;
+# 262 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4
+typedef __blkcnt64_t blkcnt64_t;
+typedef __fsblkcnt64_t fsblkcnt64_t;
+typedef __fsfilcnt64_t fsfilcnt64_t;
+
+
+
+
+
+
+# 1 "/usr/include/arm-linux-gnueabihf/bits/pthreadtypes.h" 1 3 4
+# 37 "/usr/include/arm-linux-gnueabihf/bits/pthreadtypes.h" 3 4
+typedef unsigned long int pthread_t;
+
+
+union pthread_attr_t
+{
+  char __size[36];
+  long int __align;
+};
+
+typedef union pthread_attr_t pthread_attr_t;
+
+
+
+
+typedef struct __pthread_internal_slist
+{
+  struct __pthread_internal_slist *__next;
+} __pthread_slist_t;
+
+
+
+
+typedef union
+{
+  struct __pthread_mutex_s
+  {
+    int __lock;
+    unsigned int __count;
+    int __owner;
+
+
+    int __kind;
+    unsigned int __nusers;
+    __extension__ union
+    {
+      int __spins;
+      __pthread_slist_t __list;
+    };
+  } __data;
+  char __size[24];
+  long int __align;
+} pthread_mutex_t;
+
+
+
+
+typedef union
+{
+  char __size[4];
+  long int __align;
+} pthread_mutexattr_t;
+
+
+
+
+typedef union
+{
+  struct
+  {
+    int __lock;
+    unsigned int __futex;
+    __extension__ unsigned long long int __total_seq;
+    __extension__ unsigned long long int __wakeup_seq;
+    __extension__ unsigned long long int __woken_seq;
+    void *__mutex;
+    unsigned int __nwaiters;
+    unsigned int __broadcast_seq;
+  } __data;
+  char __size[48];
+  __extension__ long long int __align;
+} pthread_cond_t;
+
+typedef union
+{
+  char __size[4];
+  long int __align;
+} pthread_condattr_t;
+
+
+
+typedef unsigned int pthread_key_t;
+
+
+
+typedef int pthread_once_t;
+
+
+
+
+
+typedef union
+{
+  struct
+  {
+    int __lock;
+    unsigned int __nr_readers;
+    unsigned int __readers_wakeup;
+    unsigned int __writer_wakeup;
+    unsigned int __nr_readers_queued;
+    unsigned int __nr_writers_queued;
+# 147 "/usr/include/arm-linux-gnueabihf/bits/pthreadtypes.h" 3 4
+    unsigned char __flags;
+    unsigned char __shared;
+    unsigned char __pad1;
+    unsigned char __pad2;
+
+    int __writer;
+  } __data;
+  char __size[32];
+  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[20];
+  long int __align;
+} pthread_barrier_t;
+
+typedef union
+{
+  char __size[4];
+  int __align;
+} pthread_barrierattr_t;
+# 271 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4
+
+
+}
+# 276 "/usr/include/stdlib.h" 2 3 4
+
+
+
+
+
+
+extern long int random (void) throw ();
+
+
+extern void srandom (unsigned int __seed) throw ();
+
+
+
+
+
+extern char *initstate (unsigned int __seed, char *__statebuf,
+   size_t __statelen) throw () __attribute__ ((__nonnull__ (2)));
+
+
+
+extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+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) throw () __attribute__ ((__nonnull__ (1, 2)));
+
+extern int srandom_r (unsigned int __seed, struct random_data *__buf)
+     throw () __attribute__ ((__nonnull__ (2)));
+
+extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
+   size_t __statelen,
+   struct random_data *__restrict __buf)
+     throw () __attribute__ ((__nonnull__ (2, 4)));
+
+extern int setstate_r (char *__restrict __statebuf,
+         struct random_data *__restrict __buf)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+extern int rand (void) throw ();
+
+extern void srand (unsigned int __seed) throw ();
+
+
+
+
+extern int rand_r (unsigned int *__seed) throw ();
+
+
+
+
+
+
+
+extern double drand48 (void) throw ();
+extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern long int lrand48 (void) throw ();
+extern long int nrand48 (unsigned short int __xsubi[3])
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern long int mrand48 (void) throw ();
+extern long int jrand48 (unsigned short int __xsubi[3])
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern void srand48 (long int __seedval) throw ();
+extern unsigned short int *seed48 (unsigned short int __seed16v[3])
+     throw () __attribute__ ((__nonnull__ (1)));
+extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+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) throw () __attribute__ ((__nonnull__ (1, 2)));
+extern int erand48_r (unsigned short int __xsubi[3],
+        struct drand48_data *__restrict __buffer,
+        double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+extern int lrand48_r (struct drand48_data *__restrict __buffer,
+        long int *__restrict __result)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+extern int nrand48_r (unsigned short int __xsubi[3],
+        struct drand48_data *__restrict __buffer,
+        long int *__restrict __result)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+extern int mrand48_r (struct drand48_data *__restrict __buffer,
+        long int *__restrict __result)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+extern int jrand48_r (unsigned short int __xsubi[3],
+        struct drand48_data *__restrict __buffer,
+        long int *__restrict __result)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
+     throw () __attribute__ ((__nonnull__ (2)));
+
+extern int seed48_r (unsigned short int __seed16v[3],
+       struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2)));
+
+extern int lcong48_r (unsigned short int __param[7],
+        struct drand48_data *__buffer)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+# 427 "/usr/include/stdlib.h" 3 4
+extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) ;
+
+extern void *calloc (size_t __nmemb, size_t __size)
+     throw () __attribute__ ((__malloc__)) ;
+# 441 "/usr/include/stdlib.h" 3 4
+extern void *realloc (void *__ptr, size_t __size)
+     throw () __attribute__ ((__warn_unused_result__));
+
+extern void free (void *__ptr) throw ();
+
+
+
+
+extern void cfree (void *__ptr) throw ();
+
+
+
+
+# 1 "/usr/include/alloca.h" 1 3 4
+# 24 "/usr/include/alloca.h" 3 4
+# 1 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stddef.h" 1 3 4
+# 25 "/usr/include/alloca.h" 2 3 4
+
+extern "C" {
+
+
+
+
+
+extern void *alloca (size_t __size) throw ();
+
+
+
+
+
+}
+# 454 "/usr/include/stdlib.h" 2 3 4
+
+
+
+
+
+extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) ;
+
+
+
+
+extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
+     throw () __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+extern void *aligned_alloc (size_t __alignment, size_t __size)
+     throw () __attribute__ ((__malloc__)) ;
+
+
+
+
+extern void abort (void) throw () __attribute__ ((__noreturn__));
+
+
+
+extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+
+extern "C++" int at_quick_exit (void (*__func) (void))
+     throw () __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1)));
+# 496 "/usr/include/stdlib.h" 3 4
+extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+extern void exit (int __status) throw () __attribute__ ((__noreturn__));
+
+
+
+
+
+extern void quick_exit (int __status) throw () __attribute__ ((__noreturn__));
+
+
+
+
+
+
+
+extern void _Exit (int __status) throw () __attribute__ ((__noreturn__));
+
+
+
+
+
+
+extern char *getenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+extern char *secure_getenv (const char *__name)
+     throw () __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+
+extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+extern int setenv (const char *__name, const char *__value, int __replace)
+     throw () __attribute__ ((__nonnull__ (2)));
+
+
+extern int unsetenv (const char *__name) throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+extern int clearenv (void) throw ();
+# 567 "/usr/include/stdlib.h" 3 4
+extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1)));
+# 580 "/usr/include/stdlib.h" 3 4
+extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
+# 590 "/usr/include/stdlib.h" 3 4
+extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ;
+# 602 "/usr/include/stdlib.h" 3 4
+extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
+# 612 "/usr/include/stdlib.h" 3 4
+extern int mkstemps64 (char *__template, int __suffixlen)
+     __attribute__ ((__nonnull__ (1))) ;
+# 623 "/usr/include/stdlib.h" 3 4
+extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ;
+# 634 "/usr/include/stdlib.h" 3 4
+extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ;
+# 644 "/usr/include/stdlib.h" 3 4
+extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ;
+# 654 "/usr/include/stdlib.h" 3 4
+extern int mkostemps (char *__template, int __suffixlen, int __flags)
+     __attribute__ ((__nonnull__ (1))) ;
+# 666 "/usr/include/stdlib.h" 3 4
+extern int mkostemps64 (char *__template, int __suffixlen, int __flags)
+     __attribute__ ((__nonnull__ (1))) ;
+# 677 "/usr/include/stdlib.h" 3 4
+extern int system (const char *__command) ;
+
+
+
+
+
+
+extern char *canonicalize_file_name (const char *__name)
+     throw () __attribute__ ((__nonnull__ (1))) ;
+# 694 "/usr/include/stdlib.h" 3 4
+extern char *realpath (const char *__restrict __name,
+         char *__restrict __resolved) throw () ;
+
+
+
+
+
+
+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)
+     __attribute__ ((__nonnull__ (1, 2, 5))) ;
+
+
+
+# 1 "/usr/include/arm-linux-gnueabihf/bits/stdlib-bsearch.h" 1 3 4
+# 19 "/usr/include/arm-linux-gnueabihf/bits/stdlib-bsearch.h" 3 4
+extern __inline __attribute__ ((__gnu_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 = (void *) (((const char *) __base) + (__idx * __size));
+      __comparison = (*__compar) (__key, __p);
+      if (__comparison < 0)
+ __u = __idx;
+      else if (__comparison > 0)
+ __l = __idx + 1;
+      else
+ return (void *) __p;
+    }
+
+  return __null;
+}
+# 721 "/usr/include/stdlib.h" 2 3 4
+
+
+
+
+extern void qsort (void *__base, size_t __nmemb, size_t __size,
+     __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
+
+extern void qsort_r (void *__base, size_t __nmemb, size_t __size,
+       __compar_d_fn_t __compar, void *__arg)
+  __attribute__ ((__nonnull__ (1, 4)));
+
+
+
+
+extern int abs (int __x) throw () __attribute__ ((__const__)) ;
+extern long int labs (long int __x) throw () __attribute__ ((__const__)) ;
+
+
+
+__extension__ extern long long int llabs (long long int __x)
+     throw () __attribute__ ((__const__)) ;
+
+
+
+
+
+
+
+extern div_t div (int __numer, int __denom)
+     throw () __attribute__ ((__const__)) ;
+extern ldiv_t ldiv (long int __numer, long int __denom)
+     throw () __attribute__ ((__const__)) ;
+
+
+
+
+__extension__ extern lldiv_t lldiv (long long int __numer,
+        long long int __denom)
+     throw () __attribute__ ((__const__)) ;
+# 772 "/usr/include/stdlib.h" 3 4
+extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
+     int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
+     int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+extern char *gcvt (double __value, int __ndigit, char *__buf)
+     throw () __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+extern char *qecvt (long double __value, int __ndigit,
+      int *__restrict __decpt, int *__restrict __sign)
+     throw () __attribute__ ((__nonnull__ (3, 4))) ;
+extern char *qfcvt (long double __value, int __ndigit,
+      int *__restrict __decpt, int *__restrict __sign)
+     throw () __attribute__ ((__nonnull__ (3, 4))) ;
+extern char *qgcvt (long double __value, int __ndigit, char *__buf)
+     throw () __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
+     int *__restrict __sign, char *__restrict __buf,
+     size_t __len) throw () __attribute__ ((__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 () __attribute__ ((__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 () __attribute__ ((__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 () __attribute__ ((__nonnull__ (3, 4, 5)));
+
+
+
+
+
+
+extern int mblen (const char *__s, size_t __n) throw ();
+
+
+extern int mbtowc (wchar_t *__restrict __pwc,
+     const char *__restrict __s, size_t __n) throw ();
+
+
+extern int wctomb (char *__s, wchar_t __wchar) throw ();
+
+
+
+extern size_t mbstowcs (wchar_t *__restrict __pwcs,
+   const char *__restrict __s, size_t __n) throw ();
+
+extern size_t wcstombs (char *__restrict __s,
+   const wchar_t *__restrict __pwcs, size_t __n)
+     throw ();
+# 848 "/usr/include/stdlib.h" 3 4
+extern int rpmatch (const char *__response) throw () __attribute__ ((__nonnull__ (1))) ;
+# 859 "/usr/include/stdlib.h" 3 4
+extern int getsubopt (char **__restrict __optionp,
+        char *const *__restrict __tokens,
+        char **__restrict __valuep)
+     throw () __attribute__ ((__nonnull__ (1, 2, 3))) ;
+
+
+
+
+
+extern void setkey (const char *__key) throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+extern int posix_openpt (int __oflag) ;
+
+
+
+
+
+
+
+extern int grantpt (int __fd) throw ();
+
+
+
+extern int unlockpt (int __fd) throw ();
+
+
+
+
+extern char *ptsname (int __fd) throw () ;
+
+
+
+
+
+
+extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
+     throw () __attribute__ ((__nonnull__ (2)));
+
+
+extern int getpt (void);
+
+
+
+
+
+
+extern int getloadavg (double __loadavg[], int __nelem)
+     throw () __attribute__ ((__nonnull__ (1)));
+# 921 "/usr/include/stdlib.h" 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/bits/stdlib-float.h" 1 3 4
+# 25 "/usr/include/arm-linux-gnueabihf/bits/stdlib-float.h" 3 4
+extern __inline __attribute__ ((__gnu_inline__)) double
+ atof (const char *__nptr) throw ()
+{
+  return strtod (__nptr, (char **) __null);
+}
+# 922 "/usr/include/stdlib.h" 2 3 4
+# 934 "/usr/include/stdlib.h" 3 4
+}
+# 76 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cstdlib" 2 3
+# 118 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cstdlib" 3
+extern "C++"
+{
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+  using ::div_t;
+  using ::ldiv_t;
+
+  using ::abort;
+  using ::abs;
+  using ::atexit;
+
+
+  using ::at_quick_exit;
+
+
+  using ::atof;
+  using ::atoi;
+  using ::atol;
+  using ::bsearch;
+  using ::calloc;
+  using ::div;
+  using ::exit;
+  using ::free;
+  using ::getenv;
+  using ::labs;
+  using ::ldiv;
+  using ::malloc;
+
+  using ::mblen;
+  using ::mbstowcs;
+  using ::mbtowc;
+
+  using ::qsort;
+
+
+  using ::quick_exit;
+
+
+  using ::rand;
+  using ::realloc;
+  using ::srand;
+  using ::strtod;
+  using ::strtol;
+  using ::strtoul;
+  using ::system;
+
+  using ::wcstombs;
+  using ::wctomb;
+
+
+
+  inline long
+  abs(long __i) { return __builtin_labs(__i); }
+
+  inline ldiv_t
+  div(long __i, long __j) { return ldiv(__i, __j); }
+
+
+
+  inline long long
+  abs(long long __x) { return __builtin_llabs (__x); }
+# 202 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cstdlib" 3
+}
+# 215 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cstdlib" 3
+namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
+{
+
+
+
+  using ::lldiv_t;
+
+
+
+
+
+  using ::_Exit;
+
+
+
+  using ::llabs;
+
+  inline lldiv_t
+  div(long long __n, long long __d)
+  { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }
+
+  using ::lldiv;
+# 247 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cstdlib" 3
+  using ::atoll;
+  using ::strtoll;
+  using ::strtoull;
+
+  using ::strtof;
+  using ::strtold;
+
+
+}
+
+namespace std
+{
+
+  using ::__gnu_cxx::lldiv_t;
+
+  using ::__gnu_cxx::_Exit;
+
+  using ::__gnu_cxx::llabs;
+  using ::__gnu_cxx::div;
+  using ::__gnu_cxx::lldiv;
+
+  using ::__gnu_cxx::atoll;
+  using ::__gnu_cxx::strtof;
+  using ::__gnu_cxx::strtoll;
+  using ::__gnu_cxx::strtoull;
+  using ::__gnu_cxx::strtold;
+}
+
+
+
+}
+# 37 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/stdlib.h" 2 3
+
+using std::abort;
+using std::atexit;
+using std::exit;
+
+
+  using std::at_quick_exit;
+
+
+  using std::quick_exit;
+
+
+
+
+using std::div_t;
+using std::ldiv_t;
+
+using std::abs;
+using std::atof;
+using std::atoi;
+using std::atol;
+using std::bsearch;
+using std::calloc;
+using std::div;
+using std::free;
+using std::getenv;
+using std::labs;
+using std::ldiv;
+using std::malloc;
+
+using std::mblen;
+using std::mbstowcs;
+using std::mbtowc;
+
+using std::qsort;
+using std::rand;
+using std::realloc;
+using std::srand;
+using std::strtod;
+using std::strtol;
+using std::strtoul;
+using std::system;
+
+using std::wcstombs;
+using std::wctomb;
+# 20 "/usr/xenomai/include/cobalt/stdlib.h" 2 3
+
+
+
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/stdlib.h" 1 3
+# 26 "/usr/xenomai/include/cobalt/stdlib.h" 2 3
+
+
+
+extern "C" {
+
+
+__typeof__(void) __cobalt_free(void *ptr); __typeof__(void) __real_free(void *ptr); __typeof__(void) __wrap_free(void *ptr);
+
+__typeof__(void *) __cobalt_malloc(size_t size); __typeof__(void *) __real_malloc(size_t size); __typeof__(void *) __wrap_malloc(size_t size);
+
+
+}
+# 50 "/root/Bela/projects/my_ultrasonic_ranger2/render.cpp" 2
+# 1 "./libraries/Scope/Scope.h" 1
+
+# 1 "/usr/include/ne10/NE10_types.h" 1 3 4
+# 39 "/usr/include/ne10/NE10_types.h" 3 4
+# 1 "/usr/include/assert.h" 1 3 4
+# 40 "/usr/include/ne10/NE10_types.h" 2 3 4
+# 1 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stdint.h" 1 3 4
+# 41 "/usr/include/ne10/NE10_types.h" 2 3 4
+# 68 "/usr/include/ne10/NE10_types.h" 3 4
+typedef int8_t ne10_int8_t;
+typedef uint8_t ne10_uint8_t;
+typedef int16_t ne10_int16_t;
+typedef uint16_t ne10_uint16_t;
+typedef int32_t ne10_int32_t;
+typedef uint32_t ne10_uint32_t;
+typedef int64_t ne10_int64_t;
+typedef uint64_t ne10_uint64_t;
+typedef float ne10_float32_t;
+typedef double ne10_float64_t;
+typedef int ne10_result_t;
+
+
+
+
+typedef struct
+{
+    ne10_float32_t x;
+    ne10_float32_t y;
+} ne10_vec2f_t;
+
+
+
+
+typedef struct
+{
+    ne10_float32_t x;
+    ne10_float32_t y;
+    ne10_float32_t z;
+} ne10_vec3f_t;
+
+
+
+
+typedef struct
+{
+    ne10_float32_t x;
+    ne10_float32_t y;
+    ne10_float32_t z;
+    ne10_float32_t w;
+} ne10_vec4f_t;
+
+
+
+
+
+typedef struct
+{
+    ne10_float32_t r1;
+    ne10_float32_t r2;
+} __attribute__ ( (packed)) ne10_mat_row2f;
+
+typedef struct
+{
+    ne10_mat_row2f c1;
+    ne10_mat_row2f c2;
+
+} __attribute__ ( (packed)) ne10_mat2x2f_t;
+
+static inline void createColumnMajorMatrix2x2 (ne10_mat2x2f_t * outMat, ne10_float32_t m11, ne10_float32_t m21, ne10_float32_t m12, ne10_float32_t m22)
+{
+    (static_cast<void> (0));
+
+    outMat->c1.r1 = m11;
+    outMat->c1.r2 = m21;
+    outMat->c2.r1 = m12;
+    outMat->c2.r2 = m22;
+}
+
+
+typedef struct
+{
+    ne10_float32_t r1;
+    ne10_float32_t r2;
+    ne10_float32_t r3;
+} __attribute__ ( (packed)) ne10_mat_row3f;
+
+typedef struct
+{
+    ne10_mat_row3f c1;
+    ne10_mat_row3f c2;
+    ne10_mat_row3f c3;
+
+} __attribute__ ( (packed)) ne10_mat3x3f_t;
+
+static inline void createColumnMajorMatrix3x3 (ne10_mat3x3f_t * outMat, ne10_float32_t m11, ne10_float32_t m21, ne10_float32_t m31,
+        ne10_float32_t m12, ne10_float32_t m22, ne10_float32_t m32,
+        ne10_float32_t m13, ne10_float32_t m23, ne10_float32_t m33)
+{
+    (static_cast<void> (0));
+
+    outMat->c1.r1 = m11;
+    outMat->c1.r2 = m21;
+    outMat->c1.r3 = m31;
+
+    outMat->c2.r1 = m12;
+    outMat->c2.r2 = m22;
+    outMat->c2.r3 = m32;
+
+    outMat->c3.r1 = m13;
+    outMat->c3.r2 = m23;
+    outMat->c3.r3 = m33;
+}
+
+
+typedef struct
+{
+    ne10_float32_t r1;
+    ne10_float32_t r2;
+    ne10_float32_t r3;
+    ne10_float32_t r4;
+} __attribute__ ( (packed)) ne10_mat_row4f;
+
+typedef struct
+{
+    ne10_mat_row4f c1;
+    ne10_mat_row4f c2;
+    ne10_mat_row4f c3;
+    ne10_mat_row4f c4;
+
+} __attribute__ ( (packed)) ne10_mat4x4f_t;
+
+static inline void createColumnMajorMatrix4x4 (ne10_mat4x4f_t * outMat, ne10_float32_t m11, ne10_float32_t m21, ne10_float32_t m31, ne10_float32_t m41,
+        ne10_float32_t m12, ne10_float32_t m22, ne10_float32_t m32, ne10_float32_t m42,
+        ne10_float32_t m13, ne10_float32_t m23, ne10_float32_t m33, ne10_float32_t m43,
+        ne10_float32_t m14, ne10_float32_t m24, ne10_float32_t m34, ne10_float32_t m44)
+{
+    (static_cast<void> (0));
+
+    outMat->c1.r1 = m11;
+    outMat->c1.r2 = m21;
+    outMat->c1.r3 = m31;
+    outMat->c1.r4 = m41;
+
+    outMat->c2.r1 = m12;
+    outMat->c2.r2 = m22;
+    outMat->c2.r3 = m32;
+    outMat->c2.r4 = m42;
+
+    outMat->c3.r1 = m13;
+    outMat->c3.r2 = m23;
+    outMat->c3.r3 = m33;
+    outMat->c3.r4 = m43;
+
+    outMat->c4.r1 = m14;
+    outMat->c4.r2 = m24;
+    outMat->c4.r3 = m34;
+    outMat->c4.r4 = m44;
+}
+# 226 "/usr/include/ne10/NE10_types.h" 3 4
+typedef struct
+{
+    ne10_float32_t r;
+    ne10_float32_t i;
+} ne10_fft_cpx_float32_t;
+
+
+
+
+typedef struct
+{
+    ne10_int32_t nfft;
+    ne10_int32_t *factors;
+    ne10_fft_cpx_float32_t *twiddles;
+    ne10_fft_cpx_float32_t *buffer;
+    ne10_fft_cpx_float32_t *last_twiddles;
+
+
+
+
+
+
+
+    ne10_int32_t is_forward_scaled;
+
+
+
+
+
+
+
+    ne10_int32_t is_backward_scaled;
+} ne10_fft_state_float32_t;
+
+
+
+
+typedef ne10_fft_state_float32_t* ne10_fft_cfg_float32_t;
+
+typedef struct
+{
+    ne10_fft_cpx_float32_t *buffer;
+
+    ne10_int32_t ncfft;
+    ne10_int32_t *factors;
+    ne10_fft_cpx_float32_t *twiddles;
+    ne10_fft_cpx_float32_t *super_twiddles;
+# 283 "/usr/include/ne10/NE10_types.h" 3 4
+} ne10_fft_r2c_state_float32_t;
+
+typedef ne10_fft_r2c_state_float32_t* ne10_fft_r2c_cfg_float32_t;
+
+
+
+
+typedef struct
+{
+    ne10_int16_t r;
+    ne10_int16_t i;
+} ne10_fft_cpx_int16_t;
+
+typedef struct
+{
+    ne10_int32_t nfft;
+    ne10_int32_t *factors;
+    ne10_fft_cpx_int16_t *twiddles;
+    ne10_fft_cpx_int16_t *buffer;
+} ne10_fft_state_int16_t;
+
+typedef ne10_fft_state_int16_t* ne10_fft_cfg_int16_t;
+
+typedef struct
+{
+    ne10_int32_t nfft;
+    ne10_int32_t ncfft;
+    ne10_int32_t *factors;
+    ne10_fft_cpx_int16_t *twiddles;
+    ne10_fft_cpx_int16_t *super_twiddles;
+    ne10_fft_cpx_int16_t *buffer;
+} ne10_fft_r2c_state_int16_t;
+
+typedef ne10_fft_r2c_state_int16_t* ne10_fft_r2c_cfg_int16_t;
+
+
+
+
+typedef struct
+{
+    ne10_int32_t r;
+    ne10_int32_t i;
+} ne10_fft_cpx_int32_t;
+
+typedef struct
+{
+    ne10_int32_t nfft;
+    ne10_int32_t *factors;
+    ne10_fft_cpx_int32_t *twiddles;
+    ne10_fft_cpx_int32_t *buffer;
+    ne10_fft_cpx_int32_t *last_twiddles;
+} ne10_fft_state_int32_t;
+
+typedef ne10_fft_state_int32_t* ne10_fft_cfg_int32_t;
+
+typedef struct
+{
+    ne10_int32_t nfft;
+    ne10_int32_t ncfft;
+    ne10_int32_t *factors;
+    ne10_fft_cpx_int32_t *twiddles;
+    ne10_fft_cpx_int32_t *super_twiddles;
+    ne10_fft_cpx_int32_t *buffer;
+} ne10_fft_r2c_state_int32_t;
+
+typedef ne10_fft_r2c_state_int32_t* ne10_fft_r2c_cfg_int32_t;
+# 357 "/usr/include/ne10/NE10_types.h" 3 4
+typedef struct
+{
+    ne10_uint16_t numTaps;
+    ne10_float32_t *pState;
+    ne10_float32_t *pCoeffs;
+} ne10_fir_instance_f32_t;
+
+
+
+
+typedef struct
+{
+    ne10_uint16_t numStages;
+    ne10_float32_t *pState;
+    ne10_float32_t *pCoeffs;
+} ne10_fir_lattice_instance_f32_t;
+
+
+
+
+typedef struct
+{
+    ne10_uint8_t M;
+    ne10_uint16_t numTaps;
+    ne10_float32_t *pCoeffs;
+    ne10_float32_t *pState;
+} ne10_fir_decimate_instance_f32_t;
+
+
+
+
+typedef struct
+{
+    ne10_uint8_t L;
+    ne10_uint16_t phaseLength;
+    ne10_float32_t *pCoeffs;
+    ne10_float32_t *pState;
+} ne10_fir_interpolate_instance_f32_t;
+
+
+
+
+typedef struct
+{
+    ne10_uint16_t numTaps;
+    ne10_uint16_t stateIndex;
+    ne10_float32_t *pState;
+    ne10_float32_t *pCoeffs;
+    ne10_uint16_t maxDelay;
+    ne10_int32_t *pTapDelay;
+} ne10_fir_sparse_instance_f32_t;
+
+
+
+
+typedef struct
+{
+    ne10_uint16_t numStages;
+    ne10_float32_t *pState;
+    ne10_float32_t *pkCoeffs;
+    ne10_float32_t *pvCoeffs;
+} ne10_iir_lattice_instance_f32_t;
+# 427 "/usr/include/ne10/NE10_types.h" 3 4
+typedef struct
+{
+    ne10_uint32_t x;
+    ne10_uint32_t y;
+} ne10_point_t;
+
+typedef struct
+{
+    ne10_uint32_t x;
+    ne10_uint32_t y;
+} ne10_size_t;
+
+typedef enum
+{
+    UBUNTU_COMMAND_LINE,
+    ANDROID_DEMO,
+    IOS_DEMO
+} ne10_print_target_t;
+# 3 "./libraries/Scope/Scope.h" 2
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/vector" 1 3
+# 59 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/vector" 3
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 1 3
+# 60 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/functexcept.h" 1 3
+# 40 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/functexcept.h" 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/exception_defines.h" 1 3
+# 41 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/functexcept.h" 2 3
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+
+  void
+  __throw_bad_exception(void) __attribute__((__noreturn__));
+
+
+  void
+  __throw_bad_alloc(void) __attribute__((__noreturn__));
+
+
+  void
+  __throw_bad_cast(void) __attribute__((__noreturn__));
+
+  void
+  __throw_bad_typeid(void) __attribute__((__noreturn__));
+
+
+  void
+  __throw_logic_error(const char*) __attribute__((__noreturn__));
+
+  void
+  __throw_domain_error(const char*) __attribute__((__noreturn__));
+
+  void
+  __throw_invalid_argument(const char*) __attribute__((__noreturn__));
+
+  void
+  __throw_length_error(const char*) __attribute__((__noreturn__));
+
+  void
+  __throw_out_of_range(const char*) __attribute__((__noreturn__));
+
+  void
+  __throw_out_of_range_fmt(const char*, ...) __attribute__((__noreturn__))
+    __attribute__((__format__(__gnu_printf__, 1, 2)));
+
+  void
+  __throw_runtime_error(const char*) __attribute__((__noreturn__));
+
+  void
+  __throw_range_error(const char*) __attribute__((__noreturn__));
+
+  void
+  __throw_overflow_error(const char*) __attribute__((__noreturn__));
+
+  void
+  __throw_underflow_error(const char*) __attribute__((__noreturn__));
+
+
+  void
+  __throw_ios_failure(const char*) __attribute__((__noreturn__));
+
+  void
+  __throw_system_error(int) __attribute__((__noreturn__));
+
+  void
+  __throw_future_error(int) __attribute__((__noreturn__));
+
+
+  void
+  __throw_bad_function_call() __attribute__((__noreturn__));
+
+
+}
+# 61 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/cpp_type_traits.h" 1 3
+# 36 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/cpp_type_traits.h" 3
+# 67 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/cpp_type_traits.h" 3
+extern "C++" {
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+  struct __true_type { };
+  struct __false_type { };
+
+  template<bool>
+    struct __truth_type
+    { typedef __false_type __type; };
+
+  template<>
+    struct __truth_type<true>
+    { typedef __true_type __type; };
+
+
+
+  template<class _Sp, class _Tp>
+    struct __traitor
+    {
+      enum { __value = bool(_Sp::__value) || bool(_Tp::__value) };
+      typedef typename __truth_type<__value>::__type __type;
+    };
+
+
+  template<typename, typename>
+    struct __are_same
+    {
+      enum { __value = 0 };
+      typedef __false_type __type;
+    };
+
+  template<typename _Tp>
+    struct __are_same<_Tp, _Tp>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+
+  template<typename _Tp>
+    struct __is_void
+    {
+      enum { __value = 0 };
+      typedef __false_type __type;
+    };
+
+  template<>
+    struct __is_void<void>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+
+
+
+  template<typename _Tp>
+    struct __is_integer
+    {
+      enum { __value = 0 };
+      typedef __false_type __type;
+    };
+
+
+
+
+
+  template<>
+    struct __is_integer<bool>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+  template<>
+    struct __is_integer<char>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+  template<>
+    struct __is_integer<signed char>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+  template<>
+    struct __is_integer<unsigned char>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+
+  template<>
+    struct __is_integer<wchar_t>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+
+
+  template<>
+    struct __is_integer<char16_t>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+  template<>
+    struct __is_integer<char32_t>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+
+  template<>
+    struct __is_integer<short>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+  template<>
+    struct __is_integer<unsigned short>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+  template<>
+    struct __is_integer<int>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+  template<>
+    struct __is_integer<unsigned int>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+  template<>
+    struct __is_integer<long>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+  template<>
+    struct __is_integer<unsigned long>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+  template<>
+    struct __is_integer<long long>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+  template<>
+    struct __is_integer<unsigned long long>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+# 278 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/cpp_type_traits.h" 3
+  template<typename _Tp>
+    struct __is_floating
+    {
+      enum { __value = 0 };
+      typedef __false_type __type;
+    };
+
+
+  template<>
+    struct __is_floating<float>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+  template<>
+    struct __is_floating<double>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+  template<>
+    struct __is_floating<long double>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+
+
+
+  template<typename _Tp>
+    struct __is_pointer
+    {
+      enum { __value = 0 };
+      typedef __false_type __type;
+    };
+
+  template<typename _Tp>
+    struct __is_pointer<_Tp*>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+
+
+
+  template<typename _Tp>
+    struct __is_arithmetic
+    : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> >
+    { };
+
+
+
+
+  template<typename _Tp>
+    struct __is_scalar
+    : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> >
+    { };
+
+
+
+
+  template<typename _Tp>
+    struct __is_char
+    {
+      enum { __value = 0 };
+      typedef __false_type __type;
+    };
+
+  template<>
+    struct __is_char<char>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+
+  template<>
+    struct __is_char<wchar_t>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+
+  template<typename _Tp>
+    struct __is_byte
+    {
+      enum { __value = 0 };
+      typedef __false_type __type;
+    };
+
+  template<>
+    struct __is_byte<char>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+  template<>
+    struct __is_byte<signed char>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+  template<>
+    struct __is_byte<unsigned char>
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+
+
+
+  template<typename _Tp>
+    struct __is_move_iterator
+    {
+      enum { __value = 0 };
+      typedef __false_type __type;
+    };
+
+
+
+  template<typename _Iterator>
+    inline _Iterator
+    __miter_base(_Iterator __it)
+    { return __it; }
+
+
+}
+}
+# 62 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/type_traits.h" 1 3
+# 33 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/type_traits.h" 3
+
+
+
+
+extern "C++" {
+
+namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
+{
+
+
+
+  template<bool, typename>
+    struct __enable_if
+    { };
+
+  template<typename _Tp>
+    struct __enable_if<true, _Tp>
+    { typedef _Tp __type; };
+
+
+
+  template<bool _Cond, typename _Iftrue, typename _Iffalse>
+    struct __conditional_type
+    { typedef _Iftrue __type; };
+
+  template<typename _Iftrue, typename _Iffalse>
+    struct __conditional_type<false, _Iftrue, _Iffalse>
+    { typedef _Iffalse __type; };
+
+
+
+  template<typename _Tp>
+    struct __add_unsigned
+    {
+    private:
+      typedef __enable_if<std::__is_integer<_Tp>::__value, _Tp> __if_type;
+
+    public:
+      typedef typename __if_type::__type __type;
+    };
+
+  template<>
+    struct __add_unsigned<char>
+    { typedef unsigned char __type; };
+
+  template<>
+    struct __add_unsigned<signed char>
+    { typedef unsigned char __type; };
+
+  template<>
+    struct __add_unsigned<short>
+    { typedef unsigned short __type; };
+
+  template<>
+    struct __add_unsigned<int>
+    { typedef unsigned int __type; };
+
+  template<>
+    struct __add_unsigned<long>
+    { typedef unsigned long __type; };
+
+  template<>
+    struct __add_unsigned<long long>
+    { typedef unsigned long long __type; };
+
+
+  template<>
+    struct __add_unsigned<bool>;
+
+  template<>
+    struct __add_unsigned<wchar_t>;
+
+
+
+  template<typename _Tp>
+    struct __remove_unsigned
+    {
+    private:
+      typedef __enable_if<std::__is_integer<_Tp>::__value, _Tp> __if_type;
+
+    public:
+      typedef typename __if_type::__type __type;
+    };
+
+  template<>
+    struct __remove_unsigned<char>
+    { typedef signed char __type; };
+
+  template<>
+    struct __remove_unsigned<unsigned char>
+    { typedef signed char __type; };
+
+  template<>
+    struct __remove_unsigned<unsigned short>
+    { typedef short __type; };
+
+  template<>
+    struct __remove_unsigned<unsigned int>
+    { typedef int __type; };
+
+  template<>
+    struct __remove_unsigned<unsigned long>
+    { typedef long __type; };
+
+  template<>
+    struct __remove_unsigned<unsigned long long>
+    { typedef long long __type; };
+
+
+  template<>
+    struct __remove_unsigned<bool>;
+
+  template<>
+    struct __remove_unsigned<wchar_t>;
+
+
+
+  template<typename _Type>
+    inline bool
+    __is_null_pointer(_Type* __ptr)
+    { return __ptr == 0; }
+
+  template<typename _Type>
+    inline bool
+    __is_null_pointer(_Type)
+    { return false; }
+
+
+  inline bool
+  __is_null_pointer(std::nullptr_t)
+  { return true; }
+
+
+
+  template<typename _Tp, bool = std::__is_integer<_Tp>::__value>
+    struct __promote
+    { typedef double __type; };
+
+
+
+
+  template<typename _Tp>
+    struct __promote<_Tp, false>
+    { };
+
+  template<>
+    struct __promote<long double>
+    { typedef long double __type; };
+
+  template<>
+    struct __promote<double>
+    { typedef double __type; };
+
+  template<>
+    struct __promote<float>
+    { typedef float __type; };
+
+  template<typename _Tp, typename _Up,
+           typename _Tp2 = typename __promote<_Tp>::__type,
+           typename _Up2 = typename __promote<_Up>::__type>
+    struct __promote_2
+    {
+      typedef __typeof__(_Tp2() + _Up2()) __type;
+    };
+
+  template<typename _Tp, typename _Up, typename _Vp,
+           typename _Tp2 = typename __promote<_Tp>::__type,
+           typename _Up2 = typename __promote<_Up>::__type,
+           typename _Vp2 = typename __promote<_Vp>::__type>
+    struct __promote_3
+    {
+      typedef __typeof__(_Tp2() + _Up2() + _Vp2()) __type;
+    };
+
+  template<typename _Tp, typename _Up, typename _Vp, typename _Wp,
+           typename _Tp2 = typename __promote<_Tp>::__type,
+           typename _Up2 = typename __promote<_Up>::__type,
+           typename _Vp2 = typename __promote<_Vp>::__type,
+           typename _Wp2 = typename __promote<_Wp>::__type>
+    struct __promote_4
+    {
+      typedef __typeof__(_Tp2() + _Up2() + _Vp2() + _Wp2()) __type;
+    };
+
+
+}
+}
+# 63 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/numeric_traits.h" 1 3
+# 33 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/numeric_traits.h" 3
+
+
+
+
+namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
+{
+# 54 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/numeric_traits.h" 3
+  template<typename _Value>
+    struct __numeric_traits_integer
+    {
+
+      static const _Value __min = (((_Value)(-1) < 0) ? (_Value)1 << (sizeof(_Value) * 8 - ((_Value)(-1) < 0)) : (_Value)0);
+      static const _Value __max = (((_Value)(-1) < 0) ? (((((_Value)1 << ((sizeof(_Value) * 8 - ((_Value)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(_Value)0);
+
+
+
+      static const bool __is_signed = ((_Value)(-1) < 0);
+      static const int __digits = (sizeof(_Value) * 8 - ((_Value)(-1) < 0));
+    };
+
+  template<typename _Value>
+    const _Value __numeric_traits_integer<_Value>::__min;
+
+  template<typename _Value>
+    const _Value __numeric_traits_integer<_Value>::__max;
+
+  template<typename _Value>
+    const bool __numeric_traits_integer<_Value>::__is_signed;
+
+  template<typename _Value>
+    const int __numeric_traits_integer<_Value>::__digits;
+# 99 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/numeric_traits.h" 3
+  template<typename _Value>
+    struct __numeric_traits_floating
+    {
+
+      static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 53) * 643L / 2136);
+
+
+      static const bool __is_signed = true;
+      static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 15);
+      static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 308);
+    };
+
+  template<typename _Value>
+    const int __numeric_traits_floating<_Value>::__max_digits10;
+
+  template<typename _Value>
+    const bool __numeric_traits_floating<_Value>::__is_signed;
+
+  template<typename _Value>
+    const int __numeric_traits_floating<_Value>::__digits10;
+
+  template<typename _Value>
+    const int __numeric_traits_floating<_Value>::__max_exponent10;
+
+  template<typename _Value>
+    struct __numeric_traits
+    : public __conditional_type<std::__is_integer<_Value>::__value,
+    __numeric_traits_integer<_Value>,
+    __numeric_traits_floating<_Value> >::__type
+    { };
+
+
+}
+# 64 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_pair.h" 1 3
+# 59 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_pair.h" 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/move.h" 1 3
+# 34 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/move.h" 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/concept_check.h" 1 3
+# 34 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/concept_check.h" 3
+# 35 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/move.h" 2 3
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+
+
+
+
+
+  template<typename _Tp>
+    inline _Tp*
+    __addressof(_Tp& __r) noexcept
+    {
+      return reinterpret_cast<_Tp*>
+ (&const_cast<char&>(reinterpret_cast<const volatile char&>(__r)));
+    }
+
+
+}
+
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/type_traits" 1 3
+# 33 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/type_traits" 3
+# 42 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/type_traits" 3
+namespace std
+{
+  typedef unsigned short uint_least16_t;
+  typedef unsigned int uint_least32_t;
+}
+
+
+
+
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 68 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/type_traits" 3
+  template<typename _Tp, _Tp __v>
+    struct integral_constant
+    {
+      static constexpr _Tp value = __v;
+      typedef _Tp value_type;
+      typedef integral_constant<_Tp, __v> type;
+      constexpr operator value_type() const { return value; }
+
+
+
+
+
+
+    };
+
+  template<typename _Tp, _Tp __v>
+    constexpr _Tp integral_constant<_Tp, __v>::value;
+
+
+  typedef integral_constant<bool, true> true_type;
+
+
+  typedef integral_constant<bool, false> false_type;
+
+  template<bool __v>
+    using __bool_constant = integral_constant<bool, __v>;
+# 103 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/type_traits" 3
+  template<bool, typename, typename>
+    struct conditional;
+
+  template<typename...>
+    struct __or_;
+
+  template<>
+    struct __or_<>
+    : public false_type
+    { };
+
+  template<typename _B1>
+    struct __or_<_B1>
+    : public _B1
+    { };
+
+  template<typename _B1, typename _B2>
+    struct __or_<_B1, _B2>
+    : public conditional<_B1::value, _B1, _B2>::type
+    { };
+
+  template<typename _B1, typename _B2, typename _B3, typename... _Bn>
+    struct __or_<_B1, _B2, _B3, _Bn...>
+    : public conditional<_B1::value, _B1, __or_<_B2, _B3, _Bn...>>::type
+    { };
+
+  template<typename...>
+    struct __and_;
+
+  template<>
+    struct __and_<>
+    : public true_type
+    { };
+
+  template<typename _B1>
+    struct __and_<_B1>
+    : public _B1
+    { };
+
+  template<typename _B1, typename _B2>
+    struct __and_<_B1, _B2>
+    : public conditional<_B1::value, _B2, _B1>::type
+    { };
+
+  template<typename _B1, typename _B2, typename _B3, typename... _Bn>
+    struct __and_<_B1, _B2, _B3, _Bn...>
+    : public conditional<_B1::value, __and_<_B2, _B3, _Bn...>, _B1>::type
+    { };
+
+  template<typename _Pp>
+    struct __not_
+    : public integral_constant<bool, !_Pp::value>
+    { };
+
+  struct __nonesuch {
+    __nonesuch() = delete;
+    ~__nonesuch() = delete;
+    __nonesuch(__nonesuch const&) = delete;
+    void operator=(__nonesuch const&) = delete;
+  };
+# 189 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/type_traits" 3
+  template<typename _Tp>
+    struct __success_type
+    { typedef _Tp type; };
+
+  struct __failure_type
+  { };
+
+
+
+  template<typename>
+    struct remove_cv;
+
+  template<typename>
+    struct __is_void_helper
+    : public false_type { };
+
+  template<>
+    struct __is_void_helper<void>
+    : public true_type { };
+
+
+  template<typename _Tp>
+    struct is_void
+    : public __is_void_helper<typename remove_cv<_Tp>::type>::type
+    { };
+
+  template<typename>
+    struct __is_integral_helper
+    : public false_type { };
+
+  template<>
+    struct __is_integral_helper<bool>
+    : public true_type { };
+
+  template<>
+    struct __is_integral_helper<char>
+    : public true_type { };
+
+  template<>
+    struct __is_integral_helper<signed char>
+    : public true_type { };
+
+  template<>
+    struct __is_integral_helper<unsigned char>
+    : public true_type { };
+
+
+  template<>
+    struct __is_integral_helper<wchar_t>
+    : public true_type { };
+
+
+  template<>
+    struct __is_integral_helper<char16_t>
+    : public true_type { };
+
+  template<>
+    struct __is_integral_helper<char32_t>
+    : public true_type { };
+
+  template<>
+    struct __is_integral_helper<short>
+    : public true_type { };
+
+  template<>
+    struct __is_integral_helper<unsigned short>
+    : public true_type { };
+
+  template<>
+    struct __is_integral_helper<int>
+    : public true_type { };
+
+  template<>
+    struct __is_integral_helper<unsigned int>
+    : public true_type { };
+
+  template<>
+    struct __is_integral_helper<long>
+    : public true_type { };
+
+  template<>
+    struct __is_integral_helper<unsigned long>
+    : public true_type { };
+
+  template<>
+    struct __is_integral_helper<long long>
+    : public true_type { };
+
+  template<>
+    struct __is_integral_helper<unsigned long long>
+    : public true_type { };
+# 321 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/type_traits" 3
+  template<typename _Tp>
+    struct is_integral
+    : public __is_integral_helper<typename remove_cv<_Tp>::type>::type
+    { };
+
+  template<typename>
+    struct __is_floating_point_helper
+    : public false_type { };
+
+  template<>
+    struct __is_floating_point_helper<float>
+    : public true_type { };
+
+  template<>
+    struct __is_floating_point_helper<double>
+    : public true_type { };
+
+  template<>
+    struct __is_floating_point_helper<long double>
+    : public true_type { };
+# 349 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/type_traits" 3
+  template<typename _Tp>
+    struct is_floating_point
+    : public __is_floating_point_helper<typename remove_cv<_Tp>::type>::type
+    { };
+
+
+  template<typename>
+    struct is_array
+    : public false_type { };
+
+  template<typename _Tp, std::size_t _Size>
+    struct is_array<_Tp[_Size]>
+    : public true_type { };
+
+  template<typename _Tp>
+    struct is_array<_Tp[]>
+    : public true_type { };
+
+  template<typename>
+    struct __is_pointer_helper
+    : public false_type { };
+
+  template<typename _Tp>
+    struct __is_pointer_helper<_Tp*>
+    : public true_type { };
+
+
+  template<typename _Tp>
+    struct is_pointer
+    : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
+    { };
+
+
+  template<typename>
+    struct is_lvalue_reference
+    : public false_type { };
+
+  template<typename _Tp>
+    struct is_lvalue_reference<_Tp&>
+    : public true_type { };
+
+
+  template<typename>
+    struct is_rvalue_reference
+    : public false_type { };
+
+  template<typename _Tp>
+    struct is_rvalue_reference<_Tp&&>
+    : public true_type { };
+
+  template<typename>
+    struct is_function;
+
+  template<typename>
+    struct __is_member_object_pointer_helper
+    : public false_type { };
+
+  template<typename _Tp, typename _Cp>
+    struct __is_member_object_pointer_helper<_Tp _Cp::*>
+    : public integral_constant<bool, !is_function<_Tp>::value> { };
+
+
+  template<typename _Tp>
+    struct is_member_object_pointer
+    : public __is_member_object_pointer_helper<
+    typename remove_cv<_Tp>::type>::type
+    { };
+
+  template<typename>
+    struct __is_member_function_pointer_helper
+    : public false_type { };
+
+  template<typename _Tp, typename _Cp>
+    struct __is_member_function_pointer_helper<_Tp _Cp::*>
+    : public integral_constant<bool, is_function<_Tp>::value> { };
+
+
+  template<typename _Tp>
+    struct is_member_function_pointer
+    : public __is_member_function_pointer_helper<
+    typename remove_cv<_Tp>::type>::type
+    { };
+
+
+  template<typename _Tp>
+    struct is_enum
+    : public integral_constant<bool, __is_enum(_Tp)>
+    { };
+
+
+  template<typename _Tp>
+    struct is_union
+    : public integral_constant<bool, __is_union(_Tp)>
+    { };
+
+
+  template<typename _Tp>
+    struct is_class
+    : public integral_constant<bool, __is_class(_Tp)>
+    { };
+
+
+  template<typename>
+    struct is_function
+    : public false_type { };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct is_function<_Res(_ArgTypes...)>
+    : public true_type { };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct is_function<_Res(_ArgTypes...) &>
+    : public true_type { };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct is_function<_Res(_ArgTypes...) &&>
+    : public true_type { };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct is_function<_Res(_ArgTypes......)>
+    : public true_type { };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct is_function<_Res(_ArgTypes......) &>
+    : public true_type { };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct is_function<_Res(_ArgTypes......) &&>
+    : public true_type { };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct is_function<_Res(_ArgTypes...) const>
+    : public true_type { };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct is_function<_Res(_ArgTypes...) const &>
+    : public true_type { };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct is_function<_Res(_ArgTypes...) const &&>
+    : public true_type { };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct is_function<_Res(_ArgTypes......) const>
+    : public true_type { };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct is_function<_Res(_ArgTypes......) const &>
+    : public true_type { };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct is_function<_Res(_ArgTypes......) const &&>
+    : public true_type { };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct is_function<_Res(_ArgTypes...) volatile>
+    : public true_type { };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct is_function<_Res(_ArgTypes...) volatile &>
+    : public true_type { };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct is_function<_Res(_ArgTypes...) volatile &&>
+    : public true_type { };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct is_function<_Res(_ArgTypes......) volatile>
+    : public true_type { };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct is_function<_Res(_ArgTypes......) volatile &>
+    : public true_type { };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct is_function<_Res(_ArgTypes......) volatile &&>
+    : public true_type { };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct is_function<_Res(_ArgTypes...) const volatile>
+    : public true_type { };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct is_function<_Res(_ArgTypes...) const volatile &>
+    : public true_type { };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct is_function<_Res(_ArgTypes...) const volatile &&>
+    : public true_type { };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct is_function<_Res(_ArgTypes......) const volatile>
+    : public true_type { };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct is_function<_Res(_ArgTypes......) const volatile &>
+    : public true_type { };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct is_function<_Res(_ArgTypes......) const volatile &&>
+    : public true_type { };
+
+
+
+  template<typename>
+    struct __is_null_pointer_helper
+    : public false_type { };
+
+  template<>
+    struct __is_null_pointer_helper<std::nullptr_t>
+    : public true_type { };
+
+
+  template<typename _Tp>
+    struct is_null_pointer
+    : public __is_null_pointer_helper<typename remove_cv<_Tp>::type>::type
+    { };
+
+
+  template<typename _Tp>
+    struct __is_nullptr_t
+    : public is_null_pointer<_Tp>
+    { };
+
+
+
+
+  template<typename _Tp>
+    struct is_reference
+    : public __or_<is_lvalue_reference<_Tp>,
+                   is_rvalue_reference<_Tp>>::type
+    { };
+
+
+  template<typename _Tp>
+    struct is_arithmetic
+    : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
+    { };
+
+
+  template<typename _Tp>
+    struct is_fundamental
+    : public __or_<is_arithmetic<_Tp>, is_void<_Tp>,
+     is_null_pointer<_Tp>>::type
+    { };
+
+
+  template<typename _Tp>
+    struct is_object
+    : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
+                          is_void<_Tp>>>::type
+    { };
+
+  template<typename>
+    struct is_member_pointer;
+
+
+  template<typename _Tp>
+    struct is_scalar
+    : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
+                   is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
+    { };
+
+
+  template<typename _Tp>
+    struct is_compound
+    : public integral_constant<bool, !is_fundamental<_Tp>::value> { };
+
+  template<typename _Tp>
+    struct __is_member_pointer_helper
+    : public false_type { };
+
+  template<typename _Tp, typename _Cp>
+    struct __is_member_pointer_helper<_Tp _Cp::*>
+    : public true_type { };
+
+
+  template<typename _Tp>
+    struct is_member_pointer
+    : public __is_member_pointer_helper<typename remove_cv<_Tp>::type>::type
+    { };
+
+
+
+  template<typename _Tp>
+    struct __is_referenceable
+    : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
+    { };
+
+  template<typename _Res, typename... _Args>
+    struct __is_referenceable<_Res(_Args...)>
+    : public true_type
+    { };
+
+  template<typename _Res, typename... _Args>
+    struct __is_referenceable<_Res(_Args......)>
+    : public true_type
+    { };
+
+
+
+
+  template<typename>
+    struct is_const
+    : public false_type { };
+
+  template<typename _Tp>
+    struct is_const<_Tp const>
+    : public true_type { };
+
+
+  template<typename>
+    struct is_volatile
+    : public false_type { };
+
+  template<typename _Tp>
+    struct is_volatile<_Tp volatile>
+    : public true_type { };
+
+
+  template<typename _Tp>
+    struct is_trivial
+    : public integral_constant<bool, __is_trivial(_Tp)>
+    { };
+
+
+  template<typename _Tp>
+    struct is_trivially_copyable
+    : public integral_constant<bool, __is_trivially_copyable(_Tp)>
+    { };
+
+
+  template<typename _Tp>
+    struct is_standard_layout
+    : public integral_constant<bool, __is_standard_layout(_Tp)>
+    { };
+
+
+
+  template<typename _Tp>
+    struct is_pod
+    : public integral_constant<bool, __is_pod(_Tp)>
+    { };
+
+
+  template<typename _Tp>
+    struct is_literal_type
+    : public integral_constant<bool, __is_literal_type(_Tp)>
+    { };
+
+
+  template<typename _Tp>
+    struct is_empty
+    : public integral_constant<bool, __is_empty(_Tp)>
+    { };
+
+
+  template<typename _Tp>
+    struct is_polymorphic
+    : public integral_constant<bool, __is_polymorphic(_Tp)>
+    { };
+# 721 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/type_traits" 3
+  template<typename _Tp>
+    struct is_abstract
+    : public integral_constant<bool, __is_abstract(_Tp)>
+    { };
+
+  template<typename _Tp,
+    bool = is_arithmetic<_Tp>::value>
+    struct __is_signed_helper
+    : public false_type { };
+
+  template<typename _Tp>
+    struct __is_signed_helper<_Tp, true>
+    : public integral_constant<bool, _Tp(-1) < _Tp(0)>
+    { };
+
+
+  template<typename _Tp>
+    struct is_signed
+    : public __is_signed_helper<_Tp>::type
+    { };
+
+
+  template<typename _Tp>
+    struct is_unsigned
+    : public __and_<is_arithmetic<_Tp>, __not_<is_signed<_Tp>>>
+    { };
+
+
+
+
+  template<typename>
+    struct add_rvalue_reference;
+
+
+
+
+
+  template<typename _Tp>
+    typename add_rvalue_reference<_Tp>::type declval() noexcept;
+
+  template<typename, unsigned = 0>
+    struct extent;
+
+  template<typename>
+    struct remove_all_extents;
+
+  template<typename _Tp>
+    struct __is_array_known_bounds
+    : public integral_constant<bool, (extent<_Tp>::value > 0)>
+    { };
+
+  template<typename _Tp>
+    struct __is_array_unknown_bounds
+    : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
+    { };
+
+
+
+
+
+
+  struct __do_is_destructible_impl
+  {
+    template<typename _Tp, typename = decltype(declval<_Tp&>().~_Tp())>
+      static true_type __test(int);
+
+    template<typename>
+      static false_type __test(...);
+  };
+
+  template<typename _Tp>
+    struct __is_destructible_impl
+    : public __do_is_destructible_impl
+    {
+      typedef decltype(__test<_Tp>(0)) type;
+    };
+
+  template<typename _Tp,
+           bool = __or_<is_void<_Tp>,
+                        __is_array_unknown_bounds<_Tp>,
+                        is_function<_Tp>>::value,
+           bool = __or_<is_reference<_Tp>, is_scalar<_Tp>>::value>
+    struct __is_destructible_safe;
+
+  template<typename _Tp>
+    struct __is_destructible_safe<_Tp, false, false>
+    : public __is_destructible_impl<typename
+               remove_all_extents<_Tp>::type>::type
+    { };
+
+  template<typename _Tp>
+    struct __is_destructible_safe<_Tp, true, false>
+    : public false_type { };
+
+  template<typename _Tp>
+    struct __is_destructible_safe<_Tp, false, true>
+    : public true_type { };
+
+
+  template<typename _Tp>
+    struct is_destructible
+    : public __is_destructible_safe<_Tp>::type
+    { };
+
+
+
+
+
+  struct __do_is_nt_destructible_impl
+  {
+    template<typename _Tp>
+      static integral_constant<bool, noexcept(declval<_Tp&>().~_Tp())>
+        __test(int);
+
+    template<typename>
+      static false_type __test(...);
+  };
+
+  template<typename _Tp>
+    struct __is_nt_destructible_impl
+    : public __do_is_nt_destructible_impl
+    {
+      typedef decltype(__test<_Tp>(0)) type;
+    };
+
+  template<typename _Tp,
+           bool = __or_<is_void<_Tp>,
+                        __is_array_unknown_bounds<_Tp>,
+                        is_function<_Tp>>::value,
+           bool = __or_<is_reference<_Tp>, is_scalar<_Tp>>::value>
+    struct __is_nt_destructible_safe;
+
+  template<typename _Tp>
+    struct __is_nt_destructible_safe<_Tp, false, false>
+    : public __is_nt_destructible_impl<typename
+               remove_all_extents<_Tp>::type>::type
+    { };
+
+  template<typename _Tp>
+    struct __is_nt_destructible_safe<_Tp, true, false>
+    : public false_type { };
+
+  template<typename _Tp>
+    struct __is_nt_destructible_safe<_Tp, false, true>
+    : public true_type { };
+
+
+  template<typename _Tp>
+    struct is_nothrow_destructible
+    : public __is_nt_destructible_safe<_Tp>::type
+    { };
+
+  struct __do_is_default_constructible_impl
+  {
+    template<typename _Tp, typename = decltype(_Tp())>
+      static true_type __test(int);
+
+    template<typename>
+      static false_type __test(...);
+  };
+
+  template<typename _Tp>
+    struct __is_default_constructible_impl
+    : public __do_is_default_constructible_impl
+    {
+      typedef decltype(__test<_Tp>(0)) type;
+    };
+
+  template<typename _Tp>
+    struct __is_default_constructible_atom
+    : public __and_<__not_<is_void<_Tp>>,
+                    __is_default_constructible_impl<_Tp>>
+    { };
+
+  template<typename _Tp, bool = is_array<_Tp>::value>
+    struct __is_default_constructible_safe;
+
+
+
+
+
+
+  template<typename _Tp>
+    struct __is_default_constructible_safe<_Tp, true>
+    : public __and_<__is_array_known_bounds<_Tp>,
+      __is_default_constructible_atom<typename
+                      remove_all_extents<_Tp>::type>>
+    { };
+
+  template<typename _Tp>
+    struct __is_default_constructible_safe<_Tp, false>
+    : public __is_default_constructible_atom<_Tp>::type
+    { };
+
+
+  template<typename _Tp>
+    struct is_default_constructible
+    : public __is_default_constructible_safe<_Tp>::type
+    { };
+# 933 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/type_traits" 3
+  struct __do_is_static_castable_impl
+  {
+    template<typename _From, typename _To, typename
+             = decltype(static_cast<_To>(declval<_From>()))>
+      static true_type __test(int);
+
+    template<typename, typename>
+      static false_type __test(...);
+  };
+
+  template<typename _From, typename _To>
+    struct __is_static_castable_impl
+    : public __do_is_static_castable_impl
+    {
+      typedef decltype(__test<_From, _To>(0)) type;
+    };
+
+  template<typename _From, typename _To>
+    struct __is_static_castable_safe
+    : public __is_static_castable_impl<_From, _To>::type
+    { };
+
+
+  template<typename _From, typename _To>
+    struct __is_static_castable
+    : public integral_constant<bool, (__is_static_castable_safe<
+          _From, _To>::value)>
+    { };
+
+
+
+
+
+
+  struct __do_is_direct_constructible_impl
+  {
+    template<typename _Tp, typename _Arg, typename
+      = decltype(::new _Tp(declval<_Arg>()))>
+      static true_type __test(int);
+
+    template<typename, typename>
+      static false_type __test(...);
+  };
+
+  template<typename _Tp, typename _Arg>
+    struct __is_direct_constructible_impl
+    : public __do_is_direct_constructible_impl
+    {
+      typedef decltype(__test<_Tp, _Arg>(0)) type;
+    };
+
+  template<typename _Tp, typename _Arg>
+    struct __is_direct_constructible_new_safe
+    : public __and_<is_destructible<_Tp>,
+                    __is_direct_constructible_impl<_Tp, _Arg>>
+    { };
+
+  template<typename, typename>
+    struct is_same;
+
+  template<typename, typename>
+    struct is_base_of;
+
+  template<typename>
+    struct remove_reference;
+
+  template<typename _From, typename _To, bool
+           = __not_<__or_<is_void<_From>,
+                          is_function<_From>>>::value>
+    struct __is_base_to_derived_ref;
+
+  template<typename _Tp, typename... _Args>
+    struct is_constructible;
+
+
+
+  template<typename _From, typename _To>
+    struct __is_base_to_derived_ref<_From, _To, true>
+    {
+      typedef typename remove_cv<typename remove_reference<_From
+        >::type>::type __src_t;
+      typedef typename remove_cv<typename remove_reference<_To
+        >::type>::type __dst_t;
+      typedef __and_<__not_<is_same<__src_t, __dst_t>>,
+       is_base_of<__src_t, __dst_t>,
+       __not_<is_constructible<__dst_t, _From>>> type;
+      static constexpr bool value = type::value;
+    };
+
+  template<typename _From, typename _To>
+    struct __is_base_to_derived_ref<_From, _To, false>
+    : public false_type
+    { };
+
+  template<typename _From, typename _To, bool
+           = __and_<is_lvalue_reference<_From>,
+                    is_rvalue_reference<_To>>::value>
+    struct __is_lvalue_to_rvalue_ref;
+
+
+
+  template<typename _From, typename _To>
+    struct __is_lvalue_to_rvalue_ref<_From, _To, true>
+    {
+      typedef typename remove_cv<typename remove_reference<
+        _From>::type>::type __src_t;
+      typedef typename remove_cv<typename remove_reference<
+        _To>::type>::type __dst_t;
+      typedef __and_<__not_<is_function<__src_t>>,
+        __or_<is_same<__src_t, __dst_t>,
+      is_base_of<__dst_t, __src_t>>> type;
+      static constexpr bool value = type::value;
+    };
+
+  template<typename _From, typename _To>
+    struct __is_lvalue_to_rvalue_ref<_From, _To, false>
+    : public false_type
+    { };
+
+
+
+
+
+
+
+  template<typename _Tp, typename _Arg>
+    struct __is_direct_constructible_ref_cast
+    : public __and_<__is_static_castable<_Arg, _Tp>,
+                    __not_<__or_<__is_base_to_derived_ref<_Arg, _Tp>,
+                                 __is_lvalue_to_rvalue_ref<_Arg, _Tp>
+                   >>>
+    { };
+
+  template<typename _Tp, typename _Arg>
+    struct __is_direct_constructible_new
+    : public conditional<is_reference<_Tp>::value,
+    __is_direct_constructible_ref_cast<_Tp, _Arg>,
+    __is_direct_constructible_new_safe<_Tp, _Arg>
+    >::type
+    { };
+
+  template<typename _Tp, typename _Arg>
+    struct __is_direct_constructible
+    : public __is_direct_constructible_new<_Tp, _Arg>::type
+    { };
+
+
+
+
+
+
+  struct __do_is_nary_constructible_impl
+  {
+    template<typename _Tp, typename... _Args, typename
+             = decltype(_Tp(declval<_Args>()...))>
+      static true_type __test(int);
+
+    template<typename, typename...>
+      static false_type __test(...);
+  };
+
+  template<typename _Tp, typename... _Args>
+    struct __is_nary_constructible_impl
+    : public __do_is_nary_constructible_impl
+    {
+      typedef decltype(__test<_Tp, _Args...>(0)) type;
+    };
+
+  template<typename _Tp, typename... _Args>
+    struct __is_nary_constructible
+    : public __is_nary_constructible_impl<_Tp, _Args...>::type
+    {
+      static_assert(sizeof...(_Args) > 1,
+                    "Only useful for > 1 arguments");
+    };
+
+  template<typename _Tp, typename... _Args>
+    struct __is_constructible_impl
+    : public __is_nary_constructible<_Tp, _Args...>
+    { };
+
+  template<typename _Tp, typename _Arg>
+    struct __is_constructible_impl<_Tp, _Arg>
+    : public __is_direct_constructible<_Tp, _Arg>
+    { };
+
+  template<typename _Tp>
+    struct __is_constructible_impl<_Tp>
+    : public is_default_constructible<_Tp>
+    { };
+
+
+  template<typename _Tp, typename... _Args>
+    struct is_constructible
+    : public __is_constructible_impl<_Tp, _Args...>::type
+    { };
+
+  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
+    struct __is_copy_constructible_impl;
+
+  template<typename _Tp>
+    struct __is_copy_constructible_impl<_Tp, false>
+    : public false_type { };
+
+  template<typename _Tp>
+    struct __is_copy_constructible_impl<_Tp, true>
+    : public is_constructible<_Tp, const _Tp&>
+    { };
+
+
+  template<typename _Tp>
+    struct is_copy_constructible
+    : public __is_copy_constructible_impl<_Tp>
+    { };
+
+  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
+    struct __is_move_constructible_impl;
+
+  template<typename _Tp>
+    struct __is_move_constructible_impl<_Tp, false>
+    : public false_type { };
+
+  template<typename _Tp>
+    struct __is_move_constructible_impl<_Tp, true>
+    : public is_constructible<_Tp, _Tp&&>
+    { };
+
+
+  template<typename _Tp>
+    struct is_move_constructible
+    : public __is_move_constructible_impl<_Tp>
+    { };
+
+  template<typename _Tp>
+    struct __is_nt_default_constructible_atom
+    : public integral_constant<bool, noexcept(_Tp())>
+    { };
+
+  template<typename _Tp, bool = is_array<_Tp>::value>
+    struct __is_nt_default_constructible_impl;
+
+  template<typename _Tp>
+    struct __is_nt_default_constructible_impl<_Tp, true>
+    : public __and_<__is_array_known_bounds<_Tp>,
+      __is_nt_default_constructible_atom<typename
+                      remove_all_extents<_Tp>::type>>
+    { };
+
+  template<typename _Tp>
+    struct __is_nt_default_constructible_impl<_Tp, false>
+    : public __is_nt_default_constructible_atom<_Tp>
+    { };
+
+
+  template<typename _Tp>
+    struct is_nothrow_default_constructible
+    : public __and_<is_default_constructible<_Tp>,
+                    __is_nt_default_constructible_impl<_Tp>>
+    { };
+
+  template<typename _Tp, typename... _Args>
+    struct __is_nt_constructible_impl
+    : public integral_constant<bool, noexcept(_Tp(declval<_Args>()...))>
+    { };
+
+  template<typename _Tp, typename _Arg>
+    struct __is_nt_constructible_impl<_Tp, _Arg>
+    : public integral_constant<bool,
+                               noexcept(static_cast<_Tp>(declval<_Arg>()))>
+    { };
+
+  template<typename _Tp>
+    struct __is_nt_constructible_impl<_Tp>
+    : public is_nothrow_default_constructible<_Tp>
+    { };
+
+
+  template<typename _Tp, typename... _Args>
+    struct is_nothrow_constructible
+    : public __and_<is_constructible<_Tp, _Args...>,
+      __is_nt_constructible_impl<_Tp, _Args...>>
+    { };
+
+  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
+    struct __is_nothrow_copy_constructible_impl;
+
+  template<typename _Tp>
+    struct __is_nothrow_copy_constructible_impl<_Tp, false>
+    : public false_type { };
+
+  template<typename _Tp>
+    struct __is_nothrow_copy_constructible_impl<_Tp, true>
+    : public is_nothrow_constructible<_Tp, const _Tp&>
+    { };
+
+
+  template<typename _Tp>
+    struct is_nothrow_copy_constructible
+    : public __is_nothrow_copy_constructible_impl<_Tp>
+    { };
+
+  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
+    struct __is_nothrow_move_constructible_impl;
+
+  template<typename _Tp>
+    struct __is_nothrow_move_constructible_impl<_Tp, false>
+    : public false_type { };
+
+  template<typename _Tp>
+    struct __is_nothrow_move_constructible_impl<_Tp, true>
+    : public is_nothrow_constructible<_Tp, _Tp&&>
+    { };
+
+
+  template<typename _Tp>
+    struct is_nothrow_move_constructible
+    : public __is_nothrow_move_constructible_impl<_Tp>
+    { };
+
+  template<typename _Tp, typename _Up>
+    class __is_assignable_helper
+    {
+      template<typename _Tp1, typename _Up1,
+        typename = decltype(declval<_Tp1>() = declval<_Up1>())>
+ static true_type
+ __test(int);
+
+      template<typename, typename>
+ static false_type
+ __test(...);
+
+    public:
+      typedef decltype(__test<_Tp, _Up>(0)) type;
+    };
+
+
+  template<typename _Tp, typename _Up>
+    struct is_assignable
+      : public __is_assignable_helper<_Tp, _Up>::type
+    { };
+
+  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
+    struct __is_copy_assignable_impl;
+
+  template<typename _Tp>
+    struct __is_copy_assignable_impl<_Tp, false>
+    : public false_type { };
+
+  template<typename _Tp>
+    struct __is_copy_assignable_impl<_Tp, true>
+    : public is_assignable<_Tp&, const _Tp&>
+    { };
+
+
+  template<typename _Tp>
+    struct is_copy_assignable
+    : public __is_copy_assignable_impl<_Tp>
+    { };
+
+  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
+    struct __is_move_assignable_impl;
+
+  template<typename _Tp>
+    struct __is_move_assignable_impl<_Tp, false>
+    : public false_type { };
+
+  template<typename _Tp>
+    struct __is_move_assignable_impl<_Tp, true>
+    : public is_assignable<_Tp&, _Tp&&>
+    { };
+
+
+  template<typename _Tp>
+    struct is_move_assignable
+    : public __is_move_assignable_impl<_Tp>
+    { };
+
+  template<typename _Tp, typename _Up>
+    struct __is_nt_assignable_impl
+    : public integral_constant<bool, noexcept(declval<_Tp>() = declval<_Up>())>
+    { };
+
+
+  template<typename _Tp, typename _Up>
+    struct is_nothrow_assignable
+    : public __and_<is_assignable<_Tp, _Up>,
+      __is_nt_assignable_impl<_Tp, _Up>>
+    { };
+
+  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
+    struct __is_nt_copy_assignable_impl;
+
+  template<typename _Tp>
+    struct __is_nt_copy_assignable_impl<_Tp, false>
+    : public false_type { };
+
+  template<typename _Tp>
+    struct __is_nt_copy_assignable_impl<_Tp, true>
+    : public is_nothrow_assignable<_Tp&, const _Tp&>
+    { };
+
+
+  template<typename _Tp>
+    struct is_nothrow_copy_assignable
+    : public __is_nt_copy_assignable_impl<_Tp>
+    { };
+
+  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
+    struct __is_nt_move_assignable_impl;
+
+  template<typename _Tp>
+    struct __is_nt_move_assignable_impl<_Tp, false>
+    : public false_type { };
+
+  template<typename _Tp>
+    struct __is_nt_move_assignable_impl<_Tp, true>
+    : public is_nothrow_assignable<_Tp&, _Tp&&>
+    { };
+
+
+  template<typename _Tp>
+    struct is_nothrow_move_assignable
+    : public __is_nt_move_assignable_impl<_Tp>
+    { };
+
+
+  template<typename _Tp, typename... _Args>
+    struct is_trivially_constructible
+    : public __and_<is_constructible<_Tp, _Args...>, integral_constant<bool,
+   __is_trivially_constructible(_Tp, _Args...)>>
+    { };
+
+
+  template<typename _Tp>
+    struct is_trivially_default_constructible
+    : public is_trivially_constructible<_Tp>::type
+    { };
+
+  struct __do_is_implicitly_default_constructible_impl
+  {
+    template <typename _Tp>
+    static void __helper(const _Tp&);
+
+    template <typename _Tp>
+    static true_type __test(const _Tp&,
+                            decltype(__helper<const _Tp&>({}))* = 0);
+
+    static false_type __test(...);
+  };
+
+  template<typename _Tp>
+    struct __is_implicitly_default_constructible_impl
+      : public __do_is_implicitly_default_constructible_impl
+  {
+    typedef decltype(__test(declval<_Tp>())) type;
+  };
+
+  template<typename _Tp>
+    struct __is_implicitly_default_constructible_safe
+      : public __is_implicitly_default_constructible_impl<_Tp>::type
+  { };
+
+  template <typename _Tp>
+    struct __is_implicitly_default_constructible
+      : public __and_<is_default_constructible<_Tp>,
+                      __is_implicitly_default_constructible_safe<_Tp>>
+  { };
+
+
+  template<typename _Tp>
+    struct is_trivially_copy_constructible
+    : public __and_<is_copy_constructible<_Tp>,
+      integral_constant<bool,
+   __is_trivially_constructible(_Tp, const _Tp&)>>
+    { };
+
+
+  template<typename _Tp>
+    struct is_trivially_move_constructible
+    : public __and_<is_move_constructible<_Tp>,
+      integral_constant<bool,
+   __is_trivially_constructible(_Tp, _Tp&&)>>
+    { };
+
+
+  template<typename _Tp, typename _Up>
+    struct is_trivially_assignable
+    : public __and_<is_assignable<_Tp, _Up>,
+      integral_constant<bool,
+   __is_trivially_assignable(_Tp, _Up)>>
+    { };
+
+
+  template<typename _Tp>
+    struct is_trivially_copy_assignable
+    : public __and_<is_copy_assignable<_Tp>,
+      integral_constant<bool,
+   __is_trivially_assignable(_Tp&, const _Tp&)>>
+    { };
+
+
+  template<typename _Tp>
+    struct is_trivially_move_assignable
+    : public __and_<is_move_assignable<_Tp>,
+      integral_constant<bool,
+   __is_trivially_assignable(_Tp&, _Tp&&)>>
+    { };
+
+
+  template<typename _Tp>
+    struct is_trivially_destructible
+    : public __and_<is_destructible<_Tp>, integral_constant<bool,
+         __has_trivial_destructor(_Tp)>>
+    { };
+
+
+  template<typename _Tp>
+    struct has_trivial_default_constructor
+    : public integral_constant<bool, __has_trivial_constructor(_Tp)>
+    { } __attribute__ ((__deprecated__));
+
+
+  template<typename _Tp>
+    struct has_trivial_copy_constructor
+    : public integral_constant<bool, __has_trivial_copy(_Tp)>
+    { } __attribute__ ((__deprecated__));
+
+
+  template<typename _Tp>
+    struct has_trivial_copy_assign
+    : public integral_constant<bool, __has_trivial_assign(_Tp)>
+    { } __attribute__ ((__deprecated__));
+
+
+  template<typename _Tp>
+    struct has_virtual_destructor
+    : public integral_constant<bool, __has_virtual_destructor(_Tp)>
+    { };
+
+
+
+
+
+  template<typename _Tp>
+    struct alignment_of
+    : public integral_constant<std::size_t, __alignof__(_Tp)> { };
+
+
+  template<typename>
+    struct rank
+    : public integral_constant<std::size_t, 0> { };
+
+  template<typename _Tp, std::size_t _Size>
+    struct rank<_Tp[_Size]>
+    : public integral_constant<std::size_t, 1 + rank<_Tp>::value> { };
+
+  template<typename _Tp>
+    struct rank<_Tp[]>
+    : public integral_constant<std::size_t, 1 + rank<_Tp>::value> { };
+
+
+  template<typename, unsigned _Uint>
+    struct extent
+    : public integral_constant<std::size_t, 0> { };
+
+  template<typename _Tp, unsigned _Uint, std::size_t _Size>
+    struct extent<_Tp[_Size], _Uint>
+    : public integral_constant<std::size_t,
+          _Uint == 0 ? _Size : extent<_Tp,
+          _Uint - 1>::value>
+    { };
+
+  template<typename _Tp, unsigned _Uint>
+    struct extent<_Tp[], _Uint>
+    : public integral_constant<std::size_t,
+          _Uint == 0 ? 0 : extent<_Tp,
+             _Uint - 1>::value>
+    { };
+
+
+
+
+
+  template<typename, typename>
+    struct is_same
+    : public false_type { };
+
+  template<typename _Tp>
+    struct is_same<_Tp, _Tp>
+    : public true_type { };
+
+
+  template<typename _Base, typename _Derived>
+    struct is_base_of
+    : public integral_constant<bool, __is_base_of(_Base, _Derived)>
+    { };
+
+  template<typename _From, typename _To,
+           bool = __or_<is_void<_From>, is_function<_To>,
+                        is_array<_To>>::value>
+    struct __is_convertible_helper
+    { typedef typename is_void<_To>::type type; };
+
+  template<typename _From, typename _To>
+    class __is_convertible_helper<_From, _To, false>
+    {
+       template<typename _To1>
+ static void __test_aux(_To1);
+
+      template<typename _From1, typename _To1,
+        typename = decltype(__test_aux<_To1>(std::declval<_From1>()))>
+ static true_type
+ __test(int);
+
+      template<typename, typename>
+ static false_type
+ __test(...);
+
+    public:
+      typedef decltype(__test<_From, _To>(0)) type;
+    };
+
+
+
+  template<typename _From, typename _To>
+    struct is_convertible
+    : public __is_convertible_helper<_From, _To>::type
+    { };
+
+
+
+
+
+  template<typename _Tp>
+    struct remove_const
+    { typedef _Tp type; };
+
+  template<typename _Tp>
+    struct remove_const<_Tp const>
+    { typedef _Tp type; };
+
+
+  template<typename _Tp>
+    struct remove_volatile
+    { typedef _Tp type; };
+
+  template<typename _Tp>
+    struct remove_volatile<_Tp volatile>
+    { typedef _Tp type; };
+
+
+  template<typename _Tp>
+    struct remove_cv
+    {
+      typedef typename
+      remove_const<typename remove_volatile<_Tp>::type>::type type;
+    };
+
+
+  template<typename _Tp>
+    struct add_const
+    { typedef _Tp const type; };
+
+
+  template<typename _Tp>
+    struct add_volatile
+    { typedef _Tp volatile type; };
+
+
+  template<typename _Tp>
+    struct add_cv
+    {
+      typedef typename
+      add_const<typename add_volatile<_Tp>::type>::type type;
+    };
+# 1641 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/type_traits" 3
+  template<typename _Tp>
+    struct remove_reference
+    { typedef _Tp type; };
+
+  template<typename _Tp>
+    struct remove_reference<_Tp&>
+    { typedef _Tp type; };
+
+  template<typename _Tp>
+    struct remove_reference<_Tp&&>
+    { typedef _Tp type; };
+
+  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
+    struct __add_lvalue_reference_helper
+    { typedef _Tp type; };
+
+  template<typename _Tp>
+    struct __add_lvalue_reference_helper<_Tp, true>
+    { typedef _Tp& type; };
+
+
+  template<typename _Tp>
+    struct add_lvalue_reference
+    : public __add_lvalue_reference_helper<_Tp>
+    { };
+
+  template<typename _Tp, bool = __is_referenceable<_Tp>::value>
+    struct __add_rvalue_reference_helper
+    { typedef _Tp type; };
+
+  template<typename _Tp>
+    struct __add_rvalue_reference_helper<_Tp, true>
+    { typedef _Tp&& type; };
+
+
+  template<typename _Tp>
+    struct add_rvalue_reference
+    : public __add_rvalue_reference_helper<_Tp>
+    { };
+# 1698 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/type_traits" 3
+  template<typename _Unqualified, bool _IsConst, bool _IsVol>
+    struct __cv_selector;
+
+  template<typename _Unqualified>
+    struct __cv_selector<_Unqualified, false, false>
+    { typedef _Unqualified __type; };
+
+  template<typename _Unqualified>
+    struct __cv_selector<_Unqualified, false, true>
+    { typedef volatile _Unqualified __type; };
+
+  template<typename _Unqualified>
+    struct __cv_selector<_Unqualified, true, false>
+    { typedef const _Unqualified __type; };
+
+  template<typename _Unqualified>
+    struct __cv_selector<_Unqualified, true, true>
+    { typedef const volatile _Unqualified __type; };
+
+  template<typename _Qualified, typename _Unqualified,
+    bool _IsConst = is_const<_Qualified>::value,
+    bool _IsVol = is_volatile<_Qualified>::value>
+    class __match_cv_qualifiers
+    {
+      typedef __cv_selector<_Unqualified, _IsConst, _IsVol> __match;
+
+    public:
+      typedef typename __match::__type __type;
+    };
+
+
+  template<typename _Tp>
+    struct __make_unsigned
+    { typedef _Tp __type; };
+
+  template<>
+    struct __make_unsigned<char>
+    { typedef unsigned char __type; };
+
+  template<>
+    struct __make_unsigned<signed char>
+    { typedef unsigned char __type; };
+
+  template<>
+    struct __make_unsigned<short>
+    { typedef unsigned short __type; };
+
+  template<>
+    struct __make_unsigned<int>
+    { typedef unsigned int __type; };
+
+  template<>
+    struct __make_unsigned<long>
+    { typedef unsigned long __type; };
+
+  template<>
+    struct __make_unsigned<long long>
+    { typedef unsigned long long __type; };
+# 1785 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/type_traits" 3
+  template<typename _Tp,
+    bool _IsInt = is_integral<_Tp>::value,
+    bool _IsEnum = is_enum<_Tp>::value>
+    class __make_unsigned_selector;
+
+  template<typename _Tp>
+    class __make_unsigned_selector<_Tp, true, false>
+    {
+      typedef __make_unsigned<typename remove_cv<_Tp>::type> __unsignedt;
+      typedef typename __unsignedt::__type __unsigned_type;
+      typedef __match_cv_qualifiers<_Tp, __unsigned_type> __cv_unsigned;
+
+    public:
+      typedef typename __cv_unsigned::__type __type;
+    };
+
+  template<typename _Tp>
+    class __make_unsigned_selector<_Tp, false, true>
+    {
+
+      typedef unsigned char __smallest;
+      static const bool __b0 = sizeof(_Tp) <= sizeof(__smallest);
+      static const bool __b1 = sizeof(_Tp) <= sizeof(unsigned short);
+      static const bool __b2 = sizeof(_Tp) <= sizeof(unsigned int);
+      static const bool __b3 = sizeof(_Tp) <= sizeof(unsigned long);
+      typedef conditional<__b3, unsigned long, unsigned long long> __cond3;
+      typedef typename __cond3::type __cond3_type;
+      typedef conditional<__b2, unsigned int, __cond3_type> __cond2;
+      typedef typename __cond2::type __cond2_type;
+      typedef conditional<__b1, unsigned short, __cond2_type> __cond1;
+      typedef typename __cond1::type __cond1_type;
+
+      typedef typename conditional<__b0, __smallest, __cond1_type>::type
+ __unsigned_type;
+      typedef __match_cv_qualifiers<_Tp, __unsigned_type> __cv_unsigned;
+
+    public:
+      typedef typename __cv_unsigned::__type __type;
+    };
+
+
+
+
+
+  template<typename _Tp>
+    struct make_unsigned
+    { typedef typename __make_unsigned_selector<_Tp>::__type type; };
+
+
+  template<>
+    struct make_unsigned<bool>;
+
+
+
+  template<typename _Tp>
+    struct __make_signed
+    { typedef _Tp __type; };
+
+  template<>
+    struct __make_signed<char>
+    { typedef signed char __type; };
+
+  template<>
+    struct __make_signed<unsigned char>
+    { typedef signed char __type; };
+
+  template<>
+    struct __make_signed<unsigned short>
+    { typedef signed short __type; };
+
+  template<>
+    struct __make_signed<unsigned int>
+    { typedef signed int __type; };
+
+  template<>
+    struct __make_signed<unsigned long>
+    { typedef signed long __type; };
+
+  template<>
+    struct __make_signed<unsigned long long>
+    { typedef signed long long __type; };
+
+
+  template<>
+    struct __make_signed<wchar_t> : __make_signed<unsigned int>
+    { };
+
+
+
+  template<>
+    struct __make_signed<char16_t> : __make_signed<uint_least16_t>
+    { };
+  template<>
+    struct __make_signed<char32_t> : __make_signed<uint_least32_t>
+    { };
+# 1904 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/type_traits" 3
+  template<typename _Tp,
+    bool _IsInt = is_integral<_Tp>::value,
+    bool _IsEnum = is_enum<_Tp>::value>
+    class __make_signed_selector;
+
+  template<typename _Tp>
+    class __make_signed_selector<_Tp, true, false>
+    {
+      typedef __make_signed<typename remove_cv<_Tp>::type> __signedt;
+      typedef typename __signedt::__type __signed_type;
+      typedef __match_cv_qualifiers<_Tp, __signed_type> __cv_signed;
+
+    public:
+      typedef typename __cv_signed::__type __type;
+    };
+
+  template<typename _Tp>
+    class __make_signed_selector<_Tp, false, true>
+    {
+      typedef typename __make_unsigned_selector<_Tp>::__type __unsigned_type;
+
+    public:
+      typedef typename __make_signed_selector<__unsigned_type>::__type __type;
+    };
+
+
+
+
+
+  template<typename _Tp>
+    struct make_signed
+    { typedef typename __make_signed_selector<_Tp>::__type type; };
+
+
+  template<>
+    struct make_signed<bool>;
+# 1954 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/type_traits" 3
+  template<typename _Tp>
+    struct remove_extent
+    { typedef _Tp type; };
+
+  template<typename _Tp, std::size_t _Size>
+    struct remove_extent<_Tp[_Size]>
+    { typedef _Tp type; };
+
+  template<typename _Tp>
+    struct remove_extent<_Tp[]>
+    { typedef _Tp type; };
+
+
+  template<typename _Tp>
+    struct remove_all_extents
+    { typedef _Tp type; };
+
+  template<typename _Tp, std::size_t _Size>
+    struct remove_all_extents<_Tp[_Size]>
+    { typedef typename remove_all_extents<_Tp>::type type; };
+
+  template<typename _Tp>
+    struct remove_all_extents<_Tp[]>
+    { typedef typename remove_all_extents<_Tp>::type type; };
+# 1991 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/type_traits" 3
+  template<typename _Tp, typename>
+    struct __remove_pointer_helper
+    { typedef _Tp type; };
+
+  template<typename _Tp, typename _Up>
+    struct __remove_pointer_helper<_Tp, _Up*>
+    { typedef _Up type; };
+
+
+  template<typename _Tp>
+    struct remove_pointer
+    : public __remove_pointer_helper<_Tp, typename remove_cv<_Tp>::type>
+    { };
+
+
+  template<typename _Tp, bool = __or_<__is_referenceable<_Tp>,
+          is_void<_Tp>>::value>
+    struct __add_pointer_helper
+    { typedef _Tp type; };
+
+  template<typename _Tp>
+    struct __add_pointer_helper<_Tp, true>
+    { typedef typename remove_reference<_Tp>::type* type; };
+
+  template<typename _Tp>
+    struct add_pointer
+    : public __add_pointer_helper<_Tp>
+    { };
+# 2030 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/type_traits" 3
+  template<std::size_t _Len>
+    struct __aligned_storage_msa
+    {
+      union __type
+      {
+ unsigned char __data[_Len];
+ struct __attribute__((__aligned__)) { } __align;
+      };
+    };
+# 2050 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/type_traits" 3
+  template<std::size_t _Len, std::size_t _Align =
+    __alignof__(typename __aligned_storage_msa<_Len>::__type)>
+    struct aligned_storage
+    {
+      union type
+      {
+ unsigned char __data[_Len];
+ struct __attribute__((__aligned__((_Align)))) { } __align;
+      };
+    };
+
+  template <typename... _Types>
+    struct __strictest_alignment
+    {
+      static const size_t _S_alignment = 0;
+      static const size_t _S_size = 0;
+    };
+
+  template <typename _Tp, typename... _Types>
+    struct __strictest_alignment<_Tp, _Types...>
+    {
+      static const size_t _S_alignment =
+        alignof(_Tp) > __strictest_alignment<_Types...>::_S_alignment
+ ? alignof(_Tp) : __strictest_alignment<_Types...>::_S_alignment;
+      static const size_t _S_size =
+        sizeof(_Tp) > __strictest_alignment<_Types...>::_S_size
+ ? sizeof(_Tp) : __strictest_alignment<_Types...>::_S_size;
+    };
+# 2089 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/type_traits" 3
+  template <size_t _Len, typename... _Types>
+    struct aligned_union
+    {
+    private:
+      static_assert(sizeof...(_Types) != 0, "At least one type is required");
+
+      using __strictest = __strictest_alignment<_Types...>;
+      static const size_t _S_len = _Len > __strictest::_S_size
+ ? _Len : __strictest::_S_size;
+    public:
+
+      static const size_t alignment_value = __strictest::_S_alignment;
+
+      typedef typename aligned_storage<_S_len, alignment_value>::type type;
+    };
+
+  template <size_t _Len, typename... _Types>
+    const size_t aligned_union<_Len, _Types...>::alignment_value;
+
+
+
+  template<typename _Up,
+    bool _IsArray = is_array<_Up>::value,
+    bool _IsFunction = is_function<_Up>::value>
+    struct __decay_selector;
+
+
+  template<typename _Up>
+    struct __decay_selector<_Up, false, false>
+    { typedef typename remove_cv<_Up>::type __type; };
+
+  template<typename _Up>
+    struct __decay_selector<_Up, true, false>
+    { typedef typename remove_extent<_Up>::type* __type; };
+
+  template<typename _Up>
+    struct __decay_selector<_Up, false, true>
+    { typedef typename add_pointer<_Up>::type __type; };
+
+
+  template<typename _Tp>
+    class decay
+    {
+      typedef typename remove_reference<_Tp>::type __remove_type;
+
+    public:
+      typedef typename __decay_selector<__remove_type>::__type type;
+    };
+
+  template<typename _Tp>
+    class reference_wrapper;
+
+
+  template<typename _Tp>
+    struct __strip_reference_wrapper
+    {
+      typedef _Tp __type;
+    };
+
+  template<typename _Tp>
+    struct __strip_reference_wrapper<reference_wrapper<_Tp> >
+    {
+      typedef _Tp& __type;
+    };
+
+  template<typename _Tp>
+    struct __decay_and_strip
+    {
+      typedef typename __strip_reference_wrapper<
+ typename decay<_Tp>::type>::__type __type;
+    };
+
+
+
+
+  template<bool, typename _Tp = void>
+    struct enable_if
+    { };
+
+
+  template<typename _Tp>
+    struct enable_if<true, _Tp>
+    { typedef _Tp type; };
+
+  template<typename... _Cond>
+    using _Require = typename enable_if<__and_<_Cond...>::value>::type;
+
+
+
+  template<bool _Cond, typename _Iftrue, typename _Iffalse>
+    struct conditional
+    { typedef _Iftrue type; };
+
+
+  template<typename _Iftrue, typename _Iffalse>
+    struct conditional<false, _Iftrue, _Iffalse>
+    { typedef _Iffalse type; };
+
+
+  template<typename... _Tp>
+    struct common_type;
+
+
+
+  struct __do_common_type_impl
+  {
+    template<typename _Tp, typename _Up>
+      static __success_type<typename decay<decltype
+       (true ? std::declval<_Tp>()
+        : std::declval<_Up>())>::type> _S_test(int);
+
+    template<typename, typename>
+      static __failure_type _S_test(...);
+  };
+
+  template<typename _Tp, typename _Up>
+    struct __common_type_impl
+    : private __do_common_type_impl
+    {
+      typedef decltype(_S_test<_Tp, _Up>(0)) type;
+    };
+
+  struct __do_member_type_wrapper
+  {
+    template<typename _Tp>
+      static __success_type<typename _Tp::type> _S_test(int);
+
+    template<typename>
+      static __failure_type _S_test(...);
+  };
+
+  template<typename _Tp>
+    struct __member_type_wrapper
+    : private __do_member_type_wrapper
+    {
+      typedef decltype(_S_test<_Tp>(0)) type;
+    };
+
+  template<typename _CTp, typename... _Args>
+    struct __expanded_common_type_wrapper
+    {
+      typedef common_type<typename _CTp::type, _Args...> type;
+    };
+
+  template<typename... _Args>
+    struct __expanded_common_type_wrapper<__failure_type, _Args...>
+    { typedef __failure_type type; };
+
+  template<typename _Tp>
+    struct common_type<_Tp>
+    { typedef typename decay<_Tp>::type type; };
+
+  template<typename _Tp, typename _Up>
+    struct common_type<_Tp, _Up>
+    : public __common_type_impl<_Tp, _Up>::type
+    { };
+
+  template<typename _Tp, typename _Up, typename... _Vp>
+    struct common_type<_Tp, _Up, _Vp...>
+    : public __expanded_common_type_wrapper<typename __member_type_wrapper<
+               common_type<_Tp, _Up>>::type, _Vp...>::type
+    { };
+
+
+  template<typename _Tp>
+    struct underlying_type
+    {
+      typedef __underlying_type(_Tp) type;
+    };
+
+  template<typename _Tp>
+    struct __declval_protector
+    {
+      static const bool __stop = false;
+      static typename add_rvalue_reference<_Tp>::type __delegate();
+    };
+
+  template<typename _Tp>
+    inline typename add_rvalue_reference<_Tp>::type
+    declval() noexcept
+    {
+      static_assert(__declval_protector<_Tp>::__stop,
+      "declval() must not be used!");
+      return __declval_protector<_Tp>::__delegate();
+    }
+
+
+  template<typename _Signature>
+    class result_of;
+
+
+
+
+
+  struct __invoke_memfun_ref { };
+  struct __invoke_memfun_deref { };
+  struct __invoke_memobj_ref { };
+  struct __invoke_memobj_deref { };
+  struct __invoke_other { };
+
+
+  template<typename _Tp, typename _Tag>
+    struct __result_of_success : __success_type<_Tp>
+    { using __invoke_type = _Tag; };
+
+
+  struct __result_of_memfun_ref_impl
+  {
+    template<typename _Fp, typename _Tp1, typename... _Args>
+      static __result_of_success<decltype(
+      (std::declval<_Tp1>().*std::declval<_Fp>())(std::declval<_Args>()...)
+      ), __invoke_memfun_ref> _S_test(int);
+
+    template<typename...>
+      static __failure_type _S_test(...);
+  };
+
+  template<typename _MemPtr, typename _Arg, typename... _Args>
+    struct __result_of_memfun_ref
+    : private __result_of_memfun_ref_impl
+    {
+      typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type;
+    };
+
+
+  struct __result_of_memfun_deref_impl
+  {
+    template<typename _Fp, typename _Tp1, typename... _Args>
+      static __result_of_success<decltype(
+      ((*std::declval<_Tp1>()).*std::declval<_Fp>())(std::declval<_Args>()...)
+      ), __invoke_memfun_deref> _S_test(int);
+
+    template<typename...>
+      static __failure_type _S_test(...);
+  };
+
+  template<typename _MemPtr, typename _Arg, typename... _Args>
+    struct __result_of_memfun_deref
+    : private __result_of_memfun_deref_impl
+    {
+      typedef decltype(_S_test<_MemPtr, _Arg, _Args...>(0)) type;
+    };
+
+
+  struct __result_of_memobj_ref_impl
+  {
+    template<typename _Fp, typename _Tp1>
+      static __result_of_success<decltype(
+      std::declval<_Tp1>().*std::declval<_Fp>()
+      ), __invoke_memobj_ref> _S_test(int);
+
+    template<typename, typename>
+      static __failure_type _S_test(...);
+  };
+
+  template<typename _MemPtr, typename _Arg>
+    struct __result_of_memobj_ref
+    : private __result_of_memobj_ref_impl
+    {
+      typedef decltype(_S_test<_MemPtr, _Arg>(0)) type;
+    };
+
+
+  struct __result_of_memobj_deref_impl
+  {
+    template<typename _Fp, typename _Tp1>
+      static __result_of_success<decltype(
+      (*std::declval<_Tp1>()).*std::declval<_Fp>()
+      ), __invoke_memobj_deref> _S_test(int);
+
+    template<typename, typename>
+      static __failure_type _S_test(...);
+  };
+
+  template<typename _MemPtr, typename _Arg>
+    struct __result_of_memobj_deref
+    : private __result_of_memobj_deref_impl
+    {
+      typedef decltype(_S_test<_MemPtr, _Arg>(0)) type;
+    };
+
+  template<typename _MemPtr, typename _Arg>
+    struct __result_of_memobj;
+
+  template<typename _Res, typename _Class, typename _Arg>
+    struct __result_of_memobj<_Res _Class::*, _Arg>
+    {
+      typedef typename remove_cv<typename remove_reference<
+        _Arg>::type>::type _Argval;
+      typedef _Res _Class::* _MemPtr;
+      typedef typename conditional<__or_<is_same<_Argval, _Class>,
+        is_base_of<_Class, _Argval>>::value,
+        __result_of_memobj_ref<_MemPtr, _Arg>,
+        __result_of_memobj_deref<_MemPtr, _Arg>
+      >::type::type type;
+    };
+
+  template<typename _MemPtr, typename _Arg, typename... _Args>
+    struct __result_of_memfun;
+
+  template<typename _Res, typename _Class, typename _Arg, typename... _Args>
+    struct __result_of_memfun<_Res _Class::*, _Arg, _Args...>
+    {
+      typedef typename remove_cv<typename remove_reference<
+        _Arg>::type>::type _Argval;
+      typedef _Res _Class::* _MemPtr;
+      typedef typename conditional<__or_<is_same<_Argval, _Class>,
+        is_base_of<_Class, _Argval>>::value,
+        __result_of_memfun_ref<_MemPtr, _Arg, _Args...>,
+        __result_of_memfun_deref<_MemPtr, _Arg, _Args...>
+      >::type::type type;
+    };
+
+
+
+
+
+  template<typename _Res, typename _Class, typename _Arg>
+    struct __result_of_memobj<_Res _Class::*, reference_wrapper<_Arg>>
+    : __result_of_memobj_ref<_Res _Class::*, _Arg&>
+    { };
+
+  template<typename _Res, typename _Class, typename _Arg>
+    struct __result_of_memobj<_Res _Class::*, reference_wrapper<_Arg>&>
+    : __result_of_memobj_ref<_Res _Class::*, _Arg&>
+    { };
+
+  template<typename _Res, typename _Class, typename _Arg>
+    struct __result_of_memobj<_Res _Class::*, const reference_wrapper<_Arg>&>
+    : __result_of_memobj_ref<_Res _Class::*, _Arg&>
+    { };
+
+  template<typename _Res, typename _Class, typename _Arg>
+    struct __result_of_memobj<_Res _Class::*, reference_wrapper<_Arg>&&>
+    : __result_of_memobj_ref<_Res _Class::*, _Arg&>
+    { };
+
+  template<typename _Res, typename _Class, typename _Arg>
+    struct __result_of_memobj<_Res _Class::*, const reference_wrapper<_Arg>&&>
+    : __result_of_memobj_ref<_Res _Class::*, _Arg&>
+    { };
+
+  template<typename _Res, typename _Class, typename _Arg, typename... _Args>
+    struct __result_of_memfun<_Res _Class::*, reference_wrapper<_Arg>, _Args...>
+    : __result_of_memfun_ref<_Res _Class::*, _Arg&, _Args...>
+    { };
+
+  template<typename _Res, typename _Class, typename _Arg, typename... _Args>
+    struct __result_of_memfun<_Res _Class::*, reference_wrapper<_Arg>&,
+         _Args...>
+    : __result_of_memfun_ref<_Res _Class::*, _Arg&, _Args...>
+    { };
+
+  template<typename _Res, typename _Class, typename _Arg, typename... _Args>
+    struct __result_of_memfun<_Res _Class::*, const reference_wrapper<_Arg>&,
+         _Args...>
+    : __result_of_memfun_ref<_Res _Class::*, _Arg&, _Args...>
+    { };
+
+  template<typename _Res, typename _Class, typename _Arg, typename... _Args>
+    struct __result_of_memfun<_Res _Class::*, reference_wrapper<_Arg>&&,
+         _Args...>
+    : __result_of_memfun_ref<_Res _Class::*, _Arg&, _Args...>
+    { };
+
+  template<typename _Res, typename _Class, typename _Arg, typename... _Args>
+    struct __result_of_memfun<_Res _Class::*, const reference_wrapper<_Arg>&&,
+         _Args...>
+    : __result_of_memfun_ref<_Res _Class::*, _Arg&, _Args...>
+    { };
+
+  template<bool, bool, typename _Functor, typename... _ArgTypes>
+    struct __result_of_impl
+    {
+      typedef __failure_type type;
+    };
+
+  template<typename _MemPtr, typename _Arg>
+    struct __result_of_impl<true, false, _MemPtr, _Arg>
+    : public __result_of_memobj<typename decay<_MemPtr>::type, _Arg>
+    { };
+
+  template<typename _MemPtr, typename _Arg, typename... _Args>
+    struct __result_of_impl<false, true, _MemPtr, _Arg, _Args...>
+    : public __result_of_memfun<typename decay<_MemPtr>::type, _Arg, _Args...>
+    { };
+
+
+  struct __result_of_other_impl
+  {
+    template<typename _Fn, typename... _Args>
+      static __result_of_success<decltype(
+      std::declval<_Fn>()(std::declval<_Args>()...)
+      ), __invoke_other> _S_test(int);
+
+    template<typename...>
+      static __failure_type _S_test(...);
+  };
+
+  template<typename _Functor, typename... _ArgTypes>
+    struct __result_of_impl<false, false, _Functor, _ArgTypes...>
+    : private __result_of_other_impl
+    {
+      typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type;
+    };
+
+  template<typename _Functor, typename... _ArgTypes>
+    struct result_of<_Functor(_ArgTypes...)>
+    : public __result_of_impl<
+        is_member_object_pointer<
+          typename remove_reference<_Functor>::type
+        >::value,
+        is_member_function_pointer<
+          typename remove_reference<_Functor>::type
+        >::value,
+     _Functor, _ArgTypes...
+      >::type
+    { };
+# 2542 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/type_traits" 3
+  template<typename...> using __void_t = void;
+# 2551 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/type_traits" 3
+  template<typename _Default, typename _AlwaysVoid,
+    template<typename...> class _Op, typename... _Args>
+    struct __detector
+    {
+      using value_t = false_type;
+      using type = _Default;
+    };
+
+
+  template<typename _Default, template<typename...> class _Op,
+     typename... _Args>
+    struct __detector<_Default, __void_t<_Op<_Args...>>, _Op, _Args...>
+    {
+      using value_t = true_type;
+      using type = _Op<_Args...>;
+    };
+
+
+  template<typename _Default, template<typename...> class _Op,
+    typename... _Args>
+    using __detected_or = __detector<_Default, void, _Op, _Args...>;
+
+
+  template<typename _Default, template<typename...> class _Op,
+    typename... _Args>
+    using __detected_or_t
+      = typename __detected_or<_Default, _Op, _Args...>::type;
+# 2595 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/type_traits" 3
+  template <typename _Tp>
+    struct __is_swappable;
+
+  template <typename _Tp>
+    struct __is_nothrow_swappable;
+
+  template<typename _Tp>
+    inline
+    typename enable_if<__and_<is_move_constructible<_Tp>,
+         is_move_assignable<_Tp>>::value>::type
+    swap(_Tp&, _Tp&)
+    noexcept(__and_<is_nothrow_move_constructible<_Tp>,
+             is_nothrow_move_assignable<_Tp>>::value);
+
+  template<typename _Tp, size_t _Nm>
+    inline
+    typename enable_if<__is_swappable<_Tp>::value>::type
+    swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm])
+    noexcept(__is_nothrow_swappable<_Tp>::value);
+
+  namespace __swappable_details {
+    using std::swap;
+
+    struct __do_is_swappable_impl
+    {
+      template<typename _Tp, typename
+               = decltype(swap(std::declval<_Tp&>(), std::declval<_Tp&>()))>
+        static true_type __test(int);
+
+      template<typename>
+        static false_type __test(...);
+    };
+
+    struct __do_is_nothrow_swappable_impl
+    {
+      template<typename _Tp>
+        static __bool_constant<
+          noexcept(swap(std::declval<_Tp&>(), std::declval<_Tp&>()))
+        > __test(int);
+
+      template<typename>
+        static false_type __test(...);
+    };
+
+  }
+
+  template<typename _Tp>
+    struct __is_swappable_impl
+    : public __swappable_details::__do_is_swappable_impl
+    {
+      typedef decltype(__test<_Tp>(0)) type;
+    };
+
+  template<typename _Tp>
+    struct __is_nothrow_swappable_impl
+    : public __swappable_details::__do_is_nothrow_swappable_impl
+    {
+      typedef decltype(__test<_Tp>(0)) type;
+    };
+
+  template<typename _Tp>
+    struct __is_swappable
+    : public __is_swappable_impl<_Tp>::type
+    { };
+
+  template<typename _Tp>
+    struct __is_nothrow_swappable
+    : public __is_nothrow_swappable_impl<_Tp>::type
+    { };
+
+
+}
+# 58 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/move.h" 2 3
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 74 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/move.h" 3
+  template<typename _Tp>
+    constexpr _Tp&&
+    forward(typename std::remove_reference<_Tp>::type& __t) noexcept
+    { return static_cast<_Tp&&>(__t); }
+
+
+
+
+
+
+
+  template<typename _Tp>
+    constexpr _Tp&&
+    forward(typename std::remove_reference<_Tp>::type&& __t) noexcept
+    {
+      static_assert(!std::is_lvalue_reference<_Tp>::value, "template argument"
+      " substituting _Tp is an lvalue reference type");
+      return static_cast<_Tp&&>(__t);
+    }
+
+
+
+
+
+
+  template<typename _Tp>
+    constexpr typename std::remove_reference<_Tp>::type&&
+    move(_Tp&& __t) noexcept
+    { return static_cast<typename std::remove_reference<_Tp>::type&&>(__t); }
+
+
+  template<typename _Tp>
+    struct __move_if_noexcept_cond
+    : public __and_<__not_<is_nothrow_move_constructible<_Tp>>,
+                    is_copy_constructible<_Tp>>::type { };
+# 118 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/move.h" 3
+  template<typename _Tp>
+    constexpr typename
+    conditional<__move_if_noexcept_cond<_Tp>::value, const _Tp&, _Tp&&>::type
+    move_if_noexcept(_Tp& __x) noexcept
+    { return std::move(__x); }
+# 133 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/move.h" 3
+  template<typename _Tp>
+    inline _Tp*
+    addressof(_Tp& __r) noexcept
+    { return std::__addressof(__r); }
+
+
+  template <typename _Tp, typename _Up = _Tp>
+    inline _Tp
+    __exchange(_Tp& __obj, _Up&& __new_val)
+    {
+      _Tp __old_val = std::move(__obj);
+      __obj = std::forward<_Up>(__new_val);
+      return __old_val;
+    }
+
+
+
+}
+# 159 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/move.h" 3
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 174 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/move.h" 3
+  template<typename _Tp>
+    inline
+
+    typename enable_if<__and_<is_move_constructible<_Tp>,
+         is_move_assignable<_Tp>>::value>::type
+    swap(_Tp& __a, _Tp& __b)
+    noexcept(__and_<is_nothrow_move_constructible<_Tp>,
+             is_nothrow_move_assignable<_Tp>>::value)
+
+
+
+
+    {
+
+
+
+      _Tp __tmp = std::move(__a);
+      __a = std::move(__b);
+      __b = std::move(__tmp);
+    }
+
+
+
+
+  template<typename _Tp, size_t _Nm>
+    inline
+
+    typename enable_if<__is_swappable<_Tp>::value>::type
+    swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm])
+    noexcept(__is_nothrow_swappable<_Tp>::value)
+
+
+
+
+    {
+      for (size_t __n = 0; __n < _Nm; ++__n)
+ swap(__a[__n], __b[__n]);
+    }
+
+
+
+}
+# 60 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_pair.h" 2 3
+
+
+
+
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 76 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_pair.h" 3
+  struct piecewise_construct_t { explicit piecewise_construct_t() = default; };
+
+
+  constexpr piecewise_construct_t piecewise_construct = piecewise_construct_t();
+
+
+  template<typename...>
+    class tuple;
+
+  template<std::size_t...>
+    struct _Index_tuple;
+
+
+
+
+
+
+  template <bool, typename _T1, typename _T2>
+    struct _PCC
+    {
+      template <typename _U1, typename _U2>
+      static constexpr bool _ConstructiblePair()
+      {
+ return __and_<is_constructible<_T1, const _U1&>,
+        is_constructible<_T2, const _U2&>>::value;
+      }
+
+      template <typename _U1, typename _U2>
+      static constexpr bool _ImplicitlyConvertiblePair()
+      {
+ return __and_<is_convertible<const _U1&, _T1>,
+        is_convertible<const _U2&, _T2>>::value;
+      }
+
+      template <typename _U1, typename _U2>
+      static constexpr bool _MoveConstructiblePair()
+      {
+ return __and_<is_constructible<_T1, _U1&&>,
+        is_constructible<_T2, _U2&&>>::value;
+      }
+
+      template <typename _U1, typename _U2>
+      static constexpr bool _ImplicitlyMoveConvertiblePair()
+      {
+ return __and_<is_convertible<_U1&&, _T1>,
+        is_convertible<_U2&&, _T2>>::value;
+      }
+
+      template <bool __implicit, typename _U1, typename _U2>
+      static constexpr bool _CopyMovePair()
+      {
+ using __do_converts = __and_<is_convertible<const _U1&, _T1>,
+      is_convertible<_U2&&, _T2>>;
+ using __converts = typename conditional<__implicit,
+           __do_converts,
+           __not_<__do_converts>>::type;
+ return __and_<is_constructible<_T1, const _U1&>,
+        is_constructible<_T2, _U2&&>,
+        __converts
+        >::value;
+      }
+
+      template <bool __implicit, typename _U1, typename _U2>
+      static constexpr bool _MoveCopyPair()
+      {
+ using __do_converts = __and_<is_convertible<_U1&&, _T1>,
+      is_convertible<const _U2&, _T2>>;
+ using __converts = typename conditional<__implicit,
+           __do_converts,
+           __not_<__do_converts>>::type;
+ return __and_<is_constructible<_T1, _U1&&>,
+        is_constructible<_T2, const _U2&&>,
+        __converts
+        >::value;
+      }
+  };
+
+  template <typename _T1, typename _T2>
+    struct _PCC<false, _T1, _T2>
+    {
+      template <typename _U1, typename _U2>
+      static constexpr bool _ConstructiblePair()
+      {
+ return false;
+      }
+
+      template <typename _U1, typename _U2>
+      static constexpr bool _ImplicitlyConvertiblePair()
+      {
+ return false;
+      }
+
+      template <typename _U1, typename _U2>
+      static constexpr bool _MoveConstructiblePair()
+      {
+ return false;
+      }
+
+      template <typename _U1, typename _U2>
+      static constexpr bool _ImplicitlyMoveConvertiblePair()
+      {
+ return false;
+      }
+  };
+
+  struct __wrap_nonesuch : std::__nonesuch {
+    explicit __wrap_nonesuch(const __nonesuch&) = delete;
+  };
+# 193 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_pair.h" 3
+  template<typename _T1, typename _T2>
+    struct pair
+    {
+      typedef _T1 first_type;
+      typedef _T2 second_type;
+
+      _T1 first;
+      _T2 second;
+
+
+
+
+
+
+      template <typename _U1 = _T1,
+                typename _U2 = _T2,
+                typename enable_if<__and_<
+                                     __is_implicitly_default_constructible<_U1>,
+                                     __is_implicitly_default_constructible<_U2>>
+                                   ::value, bool>::type = true>
+
+      constexpr pair()
+      : first(), second() { }
+
+
+      template <typename _U1 = _T1,
+                typename _U2 = _T2,
+                typename enable_if<__and_<
+                       is_default_constructible<_U1>,
+                       is_default_constructible<_U2>,
+                       __not_<
+                         __and_<__is_implicitly_default_constructible<_U1>,
+                                __is_implicitly_default_constructible<_U2>>>>
+                                   ::value, bool>::type = false>
+      explicit constexpr pair()
+      : first(), second() { }
+# 237 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_pair.h" 3
+      using _PCCP = _PCC<true, _T1, _T2>;
+
+      template<typename _U1 = _T1, typename _U2=_T2, typename
+        enable_if<_PCCP::template
+      _ConstructiblePair<_U1, _U2>()
+                  && _PCCP::template
+      _ImplicitlyConvertiblePair<_U1, _U2>(),
+                         bool>::type=true>
+      constexpr pair(const _T1& __a, const _T2& __b)
+      : first(__a), second(__b) { }
+
+       template<typename _U1 = _T1, typename _U2=_T2, typename
+  enable_if<_PCCP::template
+       _ConstructiblePair<_U1, _U2>()
+                   && !_PCCP::template
+       _ImplicitlyConvertiblePair<_U1, _U2>(),
+                         bool>::type=false>
+      explicit constexpr pair(const _T1& __a, const _T2& __b)
+      : first(__a), second(__b) { }
+# 265 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_pair.h" 3
+      template <typename _U1, typename _U2>
+        using _PCCFP = _PCC<!is_same<_T1, _U1>::value
+       || !is_same<_T2, _U2>::value,
+       _T1, _T2>;
+
+      template<typename _U1, typename _U2, typename
+        enable_if<_PCCFP<_U1, _U2>::template
+      _ConstructiblePair<_U1, _U2>()
+                  && _PCCFP<_U1, _U2>::template
+      _ImplicitlyConvertiblePair<_U1, _U2>(),
+     bool>::type=true>
+        constexpr pair(const pair<_U1, _U2>& __p)
+        : first(__p.first), second(__p.second) { }
+
+      template<typename _U1, typename _U2, typename
+        enable_if<_PCCFP<_U1, _U2>::template
+      _ConstructiblePair<_U1, _U2>()
+    && !_PCCFP<_U1, _U2>::template
+      _ImplicitlyConvertiblePair<_U1, _U2>(),
+                         bool>::type=false>
+ explicit constexpr pair(const pair<_U1, _U2>& __p)
+ : first(__p.first), second(__p.second) { }
+
+      constexpr pair(const pair&) = default;
+      constexpr pair(pair&&) = default;
+
+
+      template<typename _U1, typename
+        enable_if<_PCCP::template
+      _MoveCopyPair<true, _U1, _T2>(),
+                         bool>::type=true>
+       constexpr pair(_U1&& __x, const _T2& __y)
+       : first(std::forward<_U1>(__x)), second(__y) { }
+
+      template<typename _U1, typename
+        enable_if<_PCCP::template
+      _MoveCopyPair<false, _U1, _T2>(),
+                         bool>::type=false>
+       explicit constexpr pair(_U1&& __x, const _T2& __y)
+       : first(std::forward<_U1>(__x)), second(__y) { }
+
+      template<typename _U2, typename
+        enable_if<_PCCP::template
+      _CopyMovePair<true, _T1, _U2>(),
+                         bool>::type=true>
+       constexpr pair(const _T1& __x, _U2&& __y)
+       : first(__x), second(std::forward<_U2>(__y)) { }
+
+      template<typename _U2, typename
+        enable_if<_PCCP::template
+      _CopyMovePair<false, _T1, _U2>(),
+                         bool>::type=false>
+       explicit pair(const _T1& __x, _U2&& __y)
+       : first(__x), second(std::forward<_U2>(__y)) { }
+
+      template<typename _U1, typename _U2, typename
+        enable_if<_PCCP::template
+      _MoveConstructiblePair<_U1, _U2>()
+     && _PCCP::template
+      _ImplicitlyMoveConvertiblePair<_U1, _U2>(),
+                         bool>::type=true>
+ constexpr pair(_U1&& __x, _U2&& __y)
+ : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { }
+
+      template<typename _U1, typename _U2, typename
+        enable_if<_PCCP::template
+      _MoveConstructiblePair<_U1, _U2>()
+     && !_PCCP::template
+      _ImplicitlyMoveConvertiblePair<_U1, _U2>(),
+                         bool>::type=false>
+ explicit constexpr pair(_U1&& __x, _U2&& __y)
+ : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { }
+
+
+      template<typename _U1, typename _U2, typename
+        enable_if<_PCCFP<_U1, _U2>::template
+      _MoveConstructiblePair<_U1, _U2>()
+     && _PCCFP<_U1, _U2>::template
+      _ImplicitlyMoveConvertiblePair<_U1, _U2>(),
+                         bool>::type=true>
+ constexpr pair(pair<_U1, _U2>&& __p)
+ : first(std::forward<_U1>(__p.first)),
+   second(std::forward<_U2>(__p.second)) { }
+
+      template<typename _U1, typename _U2, typename
+        enable_if<_PCCFP<_U1, _U2>::template
+      _MoveConstructiblePair<_U1, _U2>()
+     && !_PCCFP<_U1, _U2>::template
+      _ImplicitlyMoveConvertiblePair<_U1, _U2>(),
+                         bool>::type=false>
+ explicit constexpr pair(pair<_U1, _U2>&& __p)
+ : first(std::forward<_U1>(__p.first)),
+   second(std::forward<_U2>(__p.second)) { }
+
+      template<typename... _Args1, typename... _Args2>
+        pair(piecewise_construct_t, tuple<_Args1...>, tuple<_Args2...>);
+
+      pair&
+      operator=(typename conditional<
+  __and_<is_copy_assignable<_T1>,
+         is_copy_assignable<_T2>>::value,
+  const pair&, const __wrap_nonesuch&>::type __p)
+      {
+ first = __p.first;
+ second = __p.second;
+ return *this;
+      }
+
+      pair&
+      operator=(typename conditional<
+  __not_<__and_<is_copy_assignable<_T1>,
+                is_copy_assignable<_T2>>>::value,
+  const pair&, const __wrap_nonesuch&>::type __p) = delete;
+
+      pair&
+      operator=(typename conditional<
+  __and_<is_move_assignable<_T1>,
+         is_move_assignable<_T2>>::value,
+  pair&&, __wrap_nonesuch&&>::type __p)
+      noexcept(__and_<is_nothrow_move_assignable<_T1>,
+               is_nothrow_move_assignable<_T2>>::value)
+      {
+ first = std::forward<first_type>(__p.first);
+ second = std::forward<second_type>(__p.second);
+ return *this;
+      }
+
+      template<typename _U1, typename _U2>
+      typename enable_if<__and_<is_assignable<_T1&, const _U1&>,
+    is_assignable<_T2&, const _U2&>>::value,
+    pair&>::type
+ operator=(const pair<_U1, _U2>& __p)
+ {
+   first = __p.first;
+   second = __p.second;
+   return *this;
+ }
+
+      template<typename _U1, typename _U2>
+      typename enable_if<__and_<is_assignable<_T1&, _U1&&>,
+    is_assignable<_T2&, _U2&&>>::value,
+    pair&>::type
+ operator=(pair<_U1, _U2>&& __p)
+ {
+   first = std::forward<_U1>(__p.first);
+   second = std::forward<_U2>(__p.second);
+   return *this;
+ }
+
+      void
+      swap(pair& __p)
+      noexcept(__is_nothrow_swappable<_T1>::value
+               && __is_nothrow_swappable<_T2>::value)
+      {
+ using std::swap;
+ swap(first, __p.first);
+ swap(second, __p.second);
+      }
+
+    private:
+      template<typename... _Args1, std::size_t... _Indexes1,
+               typename... _Args2, std::size_t... _Indexes2>
+        pair(tuple<_Args1...>&, tuple<_Args2...>&,
+             _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>);
+
+    };
+
+
+  template<typename _T1, typename _T2>
+    inline constexpr bool
+    operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
+    { return __x.first == __y.first && __x.second == __y.second; }
+
+
+  template<typename _T1, typename _T2>
+    inline constexpr bool
+    operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
+    { return __x.first < __y.first
+      || (!(__y.first < __x.first) && __x.second < __y.second); }
+
+
+  template<typename _T1, typename _T2>
+    inline constexpr bool
+    operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
+    { return !(__x == __y); }
+
+
+  template<typename _T1, typename _T2>
+    inline constexpr bool
+    operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
+    { return __y < __x; }
+
+
+  template<typename _T1, typename _T2>
+    inline constexpr bool
+    operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
+    { return !(__y < __x); }
+
+
+  template<typename _T1, typename _T2>
+    inline constexpr bool
+    operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
+    { return !(__x < __y); }
+
+
+
+
+
+  template<typename _T1, typename _T2>
+    inline void
+    swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y)
+    noexcept(noexcept(__x.swap(__y)))
+    { __x.swap(__y); }
+# 494 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_pair.h" 3
+  template<typename _T1, typename _T2>
+    constexpr pair<typename __decay_and_strip<_T1>::__type,
+                   typename __decay_and_strip<_T2>::__type>
+    make_pair(_T1&& __x, _T2&& __y)
+    {
+      typedef typename __decay_and_strip<_T1>::__type __ds_type1;
+      typedef typename __decay_and_strip<_T2>::__type __ds_type2;
+      typedef pair<__ds_type1, __ds_type2> __pair_type;
+      return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y));
+    }
+# 514 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_pair.h" 3
+}
+# 65 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator_base_types.h" 1 3
+# 63 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator_base_types.h" 3
+
+
+
+
+
+
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 89 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator_base_types.h" 3
+  struct input_iterator_tag { };
+
+
+  struct output_iterator_tag { };
+
+
+  struct forward_iterator_tag : public input_iterator_tag { };
+
+
+
+  struct bidirectional_iterator_tag : public forward_iterator_tag { };
+
+
+
+  struct random_access_iterator_tag : public bidirectional_iterator_tag { };
+# 116 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator_base_types.h" 3
+  template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t,
+           typename _Pointer = _Tp*, typename _Reference = _Tp&>
+    struct iterator
+    {
+
+      typedef _Category iterator_category;
+
+      typedef _Tp value_type;
+
+      typedef _Distance difference_type;
+
+      typedef _Pointer pointer;
+
+      typedef _Reference reference;
+    };
+# 143 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator_base_types.h" 3
+  template<typename _Iterator, typename = __void_t<>>
+    struct __iterator_traits { };
+
+  template<typename _Iterator>
+    struct __iterator_traits<_Iterator,
+        __void_t<typename _Iterator::iterator_category,
+          typename _Iterator::value_type,
+          typename _Iterator::difference_type,
+          typename _Iterator::pointer,
+          typename _Iterator::reference>>
+    {
+      typedef typename _Iterator::iterator_category iterator_category;
+      typedef typename _Iterator::value_type value_type;
+      typedef typename _Iterator::difference_type difference_type;
+      typedef typename _Iterator::pointer pointer;
+      typedef typename _Iterator::reference reference;
+    };
+
+  template<typename _Iterator>
+    struct iterator_traits
+    : public __iterator_traits<_Iterator> { };
+# 177 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator_base_types.h" 3
+  template<typename _Tp>
+    struct iterator_traits<_Tp*>
+    {
+      typedef random_access_iterator_tag iterator_category;
+      typedef _Tp value_type;
+      typedef ptrdiff_t difference_type;
+      typedef _Tp* pointer;
+      typedef _Tp& reference;
+    };
+
+
+  template<typename _Tp>
+    struct iterator_traits<const _Tp*>
+    {
+      typedef random_access_iterator_tag iterator_category;
+      typedef _Tp value_type;
+      typedef ptrdiff_t difference_type;
+      typedef const _Tp* pointer;
+      typedef const _Tp& reference;
+    };
+
+
+
+
+
+  template<typename _Iter>
+    inline typename iterator_traits<_Iter>::iterator_category
+    __iterator_category(const _Iter&)
+    { return typename iterator_traits<_Iter>::iterator_category(); }
+# 230 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator_base_types.h" 3
+  template<typename _InIter>
+    using _RequireInputIter = typename
+      enable_if<is_convertible<typename
+  iterator_traits<_InIter>::iterator_category,
+          input_iterator_tag>::value>::type;
+
+
+
+}
+# 66 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator_base_funcs.h" 1 3
+# 63 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator_base_funcs.h" 3
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/debug/assertions.h" 1 3
+# 66 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator_base_funcs.h" 2 3
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+  template <typename> struct _List_iterator;
+  template <typename> struct _List_const_iterator;
+
+
+
+
+  template<typename _InputIterator>
+    inline typename iterator_traits<_InputIterator>::difference_type
+    __distance(_InputIterator __first, _InputIterator __last,
+               input_iterator_tag)
+    {
+
+
+
+      typename iterator_traits<_InputIterator>::difference_type __n = 0;
+      while (__first != __last)
+ {
+   ++__first;
+   ++__n;
+ }
+      return __n;
+    }
+
+  template<typename _RandomAccessIterator>
+    inline typename iterator_traits<_RandomAccessIterator>::difference_type
+    __distance(_RandomAccessIterator __first, _RandomAccessIterator __last,
+               random_access_iterator_tag)
+    {
+
+
+
+      return __last - __first;
+    }
+
+
+
+  template<typename _Tp>
+    ptrdiff_t
+    __distance(std::_List_iterator<_Tp>,
+        std::_List_iterator<_Tp>,
+        input_iterator_tag);
+
+  template<typename _Tp>
+    ptrdiff_t
+    __distance(std::_List_const_iterator<_Tp>,
+        std::_List_const_iterator<_Tp>,
+        input_iterator_tag);
+# 133 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator_base_funcs.h" 3
+  template<typename _InputIterator>
+    inline typename iterator_traits<_InputIterator>::difference_type
+    distance(_InputIterator __first, _InputIterator __last)
+    {
+
+      return std::__distance(__first, __last,
+        std::__iterator_category(__first));
+    }
+
+  template<typename _InputIterator, typename _Distance>
+    inline void
+    __advance(_InputIterator& __i, _Distance __n, input_iterator_tag)
+    {
+
+
+                                ;
+      while (__n--)
+ ++__i;
+    }
+
+  template<typename _BidirectionalIterator, typename _Distance>
+    inline void
+    __advance(_BidirectionalIterator& __i, _Distance __n,
+       bidirectional_iterator_tag)
+    {
+
+
+
+      if (__n > 0)
+        while (__n--)
+   ++__i;
+      else
+        while (__n++)
+   --__i;
+    }
+
+  template<typename _RandomAccessIterator, typename _Distance>
+    inline void
+    __advance(_RandomAccessIterator& __i, _Distance __n,
+              random_access_iterator_tag)
+    {
+
+
+
+      __i += __n;
+    }
+# 192 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator_base_funcs.h" 3
+  template<typename _InputIterator, typename _Distance>
+    inline void
+    advance(_InputIterator& __i, _Distance __n)
+    {
+
+      typename iterator_traits<_InputIterator>::difference_type __d = __n;
+      std::__advance(__i, __d, std::__iterator_category(__i));
+    }
+
+
+
+  template<typename _ForwardIterator>
+    inline _ForwardIterator
+    next(_ForwardIterator __x, typename
+  iterator_traits<_ForwardIterator>::difference_type __n = 1)
+    {
+
+
+
+      std::advance(__x, __n);
+      return __x;
+    }
+
+  template<typename _BidirectionalIterator>
+    inline _BidirectionalIterator
+    prev(_BidirectionalIterator __x, typename
+  iterator_traits<_BidirectionalIterator>::difference_type __n = 1)
+    {
+
+
+
+      std::advance(__x, -__n);
+      return __x;
+    }
+
+
+
+
+}
+# 67 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator.h" 1 3
+# 66 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator.h" 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/ptr_traits.h" 1 3
+# 37 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/ptr_traits.h" 3
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+  class __undefined;
+
+
+  template<typename _Tp>
+    struct __get_first_arg
+    { using type = __undefined; };
+
+  template<template<typename, typename...> class _Template, typename _Tp,
+           typename... _Types>
+    struct __get_first_arg<_Template<_Tp, _Types...>>
+    { using type = _Tp; };
+
+  template<typename _Tp>
+    using __get_first_arg_t = typename __get_first_arg<_Tp>::type;
+
+
+  template<typename _Tp, typename _Up>
+    struct __replace_first_arg
+    { };
+
+  template<template<typename, typename...> class _Template, typename _Up,
+           typename _Tp, typename... _Types>
+    struct __replace_first_arg<_Template<_Tp, _Types...>, _Up>
+    { using type = _Template<_Up, _Types...>; };
+
+  template<typename _Tp, typename _Up>
+    using __replace_first_arg_t = typename __replace_first_arg<_Tp, _Up>::type;
+
+  template<typename _Tp>
+    using __make_not_void
+      = typename conditional<is_void<_Tp>::value, __undefined, _Tp>::type;
+
+
+
+
+
+  template<typename _Ptr>
+    struct pointer_traits
+    {
+    private:
+      template<typename _Tp>
+ using __element_type = typename _Tp::element_type;
+
+      template<typename _Tp>
+ using __difference_type = typename _Tp::difference_type;
+
+      template<typename _Tp, typename _Up, typename = void>
+ struct __rebind : __replace_first_arg<_Tp, _Up> { };
+
+      template<typename _Tp, typename _Up>
+ struct __rebind<_Tp, _Up, __void_t<typename _Tp::template rebind<_Up>>>
+ { using type = typename _Tp::template rebind<_Up>; };
+
+    public:
+
+      using pointer = _Ptr;
+
+
+      using element_type
+ = __detected_or_t<__get_first_arg_t<_Ptr>, __element_type, _Ptr>;
+
+
+      using difference_type
+ = __detected_or_t<ptrdiff_t, __difference_type, _Ptr>;
+
+
+      template<typename _Up>
+        using rebind = typename __rebind<_Ptr, _Up>::type;
+
+      static _Ptr
+      pointer_to(__make_not_void<element_type>& __e)
+      { return _Ptr::pointer_to(__e); }
+
+      static_assert(!is_same<element_type, __undefined>::value,
+   "pointer type defines element_type or is like SomePointer<T, Args>");
+    };
+
+
+
+
+
+  template<typename _Tp>
+    struct pointer_traits<_Tp*>
+    {
+
+      typedef _Tp* pointer;
+
+      typedef _Tp element_type;
+
+      typedef ptrdiff_t difference_type;
+
+      template<typename _Up>
+        using rebind = _Up*;
+
+
+
+
+
+
+      static pointer
+      pointer_to(__make_not_void<element_type>& __r) noexcept
+      { return std::addressof(__r); }
+    };
+
+
+  template<typename _Ptr, typename _Tp>
+    using __ptr_rebind = typename pointer_traits<_Ptr>::template rebind<_Tp>;
+
+
+}
+# 67 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator.h" 2 3
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 96 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator.h" 3
+  template<typename _Iterator>
+    class reverse_iterator
+    : public iterator<typename iterator_traits<_Iterator>::iterator_category,
+        typename iterator_traits<_Iterator>::value_type,
+        typename iterator_traits<_Iterator>::difference_type,
+        typename iterator_traits<_Iterator>::pointer,
+                      typename iterator_traits<_Iterator>::reference>
+    {
+    protected:
+      _Iterator current;
+
+      typedef iterator_traits<_Iterator> __traits_type;
+
+    public:
+      typedef _Iterator iterator_type;
+      typedef typename __traits_type::difference_type difference_type;
+      typedef typename __traits_type::pointer pointer;
+      typedef typename __traits_type::reference reference;
+
+
+
+
+
+
+
+      reverse_iterator() : current() { }
+
+
+
+
+      explicit
+      reverse_iterator(iterator_type __x) : current(__x) { }
+
+
+
+
+      reverse_iterator(const reverse_iterator& __x)
+      : current(__x.current) { }
+
+
+
+
+
+      template<typename _Iter>
+        reverse_iterator(const reverse_iterator<_Iter>& __x)
+ : current(__x.base()) { }
+
+
+
+
+      iterator_type
+      base() const
+      { return current; }
+# 160 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator.h" 3
+      reference
+      operator*() const
+      {
+ _Iterator __tmp = current;
+ return *--__tmp;
+      }
+
+
+
+
+
+
+      pointer
+      operator->() const
+      { return &(operator*()); }
+
+
+
+
+
+
+      reverse_iterator&
+      operator++()
+      {
+ --current;
+ return *this;
+      }
+
+
+
+
+
+
+      reverse_iterator
+      operator++(int)
+      {
+ reverse_iterator __tmp = *this;
+ --current;
+ return __tmp;
+      }
+
+
+
+
+
+
+      reverse_iterator&
+      operator--()
+      {
+ ++current;
+ return *this;
+      }
+
+
+
+
+
+
+      reverse_iterator
+      operator--(int)
+      {
+ reverse_iterator __tmp = *this;
+ ++current;
+ return __tmp;
+      }
+
+
+
+
+
+
+      reverse_iterator
+      operator+(difference_type __n) const
+      { return reverse_iterator(current - __n); }
+
+
+
+
+
+
+
+      reverse_iterator&
+      operator+=(difference_type __n)
+      {
+ current -= __n;
+ return *this;
+      }
+
+
+
+
+
+
+      reverse_iterator
+      operator-(difference_type __n) const
+      { return reverse_iterator(current + __n); }
+
+
+
+
+
+
+
+      reverse_iterator&
+      operator-=(difference_type __n)
+      {
+ current += __n;
+ return *this;
+      }
+
+
+
+
+
+
+      reference
+      operator[](difference_type __n) const
+      { return *(*this + __n); }
+    };
+# 290 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator.h" 3
+  template<typename _Iterator>
+    inline bool
+    operator==(const reverse_iterator<_Iterator>& __x,
+        const reverse_iterator<_Iterator>& __y)
+    { return __x.base() == __y.base(); }
+
+  template<typename _Iterator>
+    inline bool
+    operator<(const reverse_iterator<_Iterator>& __x,
+       const reverse_iterator<_Iterator>& __y)
+    { return __y.base() < __x.base(); }
+
+  template<typename _Iterator>
+    inline bool
+    operator!=(const reverse_iterator<_Iterator>& __x,
+        const reverse_iterator<_Iterator>& __y)
+    { return !(__x == __y); }
+
+  template<typename _Iterator>
+    inline bool
+    operator>(const reverse_iterator<_Iterator>& __x,
+       const reverse_iterator<_Iterator>& __y)
+    { return __y < __x; }
+
+  template<typename _Iterator>
+    inline bool
+    operator<=(const reverse_iterator<_Iterator>& __x,
+        const reverse_iterator<_Iterator>& __y)
+    { return !(__y < __x); }
+
+  template<typename _Iterator>
+    inline bool
+    operator>=(const reverse_iterator<_Iterator>& __x,
+        const reverse_iterator<_Iterator>& __y)
+    { return !(__x < __y); }
+
+  template<typename _Iterator>
+
+
+
+
+
+    inline auto
+    operator-(const reverse_iterator<_Iterator>& __x,
+       const reverse_iterator<_Iterator>& __y)
+    -> decltype(__x.base() - __y.base())
+
+    { return __y.base() - __x.base(); }
+
+  template<typename _Iterator>
+    inline reverse_iterator<_Iterator>
+    operator+(typename reverse_iterator<_Iterator>::difference_type __n,
+       const reverse_iterator<_Iterator>& __x)
+    { return reverse_iterator<_Iterator>(__x.base() - __n); }
+
+
+
+  template<typename _IteratorL, typename _IteratorR>
+    inline bool
+    operator==(const reverse_iterator<_IteratorL>& __x,
+        const reverse_iterator<_IteratorR>& __y)
+    { return __x.base() == __y.base(); }
+
+  template<typename _IteratorL, typename _IteratorR>
+    inline bool
+    operator<(const reverse_iterator<_IteratorL>& __x,
+       const reverse_iterator<_IteratorR>& __y)
+    { return __y.base() < __x.base(); }
+
+  template<typename _IteratorL, typename _IteratorR>
+    inline bool
+    operator!=(const reverse_iterator<_IteratorL>& __x,
+        const reverse_iterator<_IteratorR>& __y)
+    { return !(__x == __y); }
+
+  template<typename _IteratorL, typename _IteratorR>
+    inline bool
+    operator>(const reverse_iterator<_IteratorL>& __x,
+       const reverse_iterator<_IteratorR>& __y)
+    { return __y < __x; }
+
+  template<typename _IteratorL, typename _IteratorR>
+    inline bool
+    operator<=(const reverse_iterator<_IteratorL>& __x,
+        const reverse_iterator<_IteratorR>& __y)
+    { return !(__y < __x); }
+
+  template<typename _IteratorL, typename _IteratorR>
+    inline bool
+    operator>=(const reverse_iterator<_IteratorL>& __x,
+        const reverse_iterator<_IteratorR>& __y)
+    { return !(__x < __y); }
+
+  template<typename _IteratorL, typename _IteratorR>
+
+
+    inline auto
+    operator-(const reverse_iterator<_IteratorL>& __x,
+       const reverse_iterator<_IteratorR>& __y)
+    -> decltype(__y.base() - __x.base())
+
+
+
+
+
+    { return __y.base() - __x.base(); }
+
+
+
+
+  template<typename _Iterator>
+    inline reverse_iterator<_Iterator>
+    __make_reverse_iterator(_Iterator __i)
+    { return reverse_iterator<_Iterator>(__i); }
+# 419 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator.h" 3
+  template<typename _Iterator>
+    auto
+    __niter_base(reverse_iterator<_Iterator> __it)
+    -> decltype(__make_reverse_iterator(__niter_base(__it.base())))
+    { return __make_reverse_iterator(__niter_base(__it.base())); }
+
+  template<typename _Iterator>
+    struct __is_move_iterator<reverse_iterator<_Iterator> >
+      : __is_move_iterator<_Iterator>
+    { };
+
+  template<typename _Iterator>
+    auto
+    __miter_base(reverse_iterator<_Iterator> __it)
+    -> decltype(__make_reverse_iterator(__miter_base(__it.base())))
+    { return __make_reverse_iterator(__miter_base(__it.base())); }
+# 448 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator.h" 3
+  template<typename _Container>
+    class back_insert_iterator
+    : public iterator<output_iterator_tag, void, void, void, void>
+    {
+    protected:
+      _Container* container;
+
+    public:
+
+      typedef _Container container_type;
+
+
+      explicit
+      back_insert_iterator(_Container& __x)
+      : container(std::__addressof(__x)) { }
+# 483 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator.h" 3
+      back_insert_iterator&
+      operator=(const typename _Container::value_type& __value)
+      {
+ container->push_back(__value);
+ return *this;
+      }
+
+      back_insert_iterator&
+      operator=(typename _Container::value_type&& __value)
+      {
+ container->push_back(std::move(__value));
+ return *this;
+      }
+
+
+
+      back_insert_iterator&
+      operator*()
+      { return *this; }
+
+
+      back_insert_iterator&
+      operator++()
+      { return *this; }
+
+
+      back_insert_iterator
+      operator++(int)
+      { return *this; }
+    };
+# 525 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator.h" 3
+  template<typename _Container>
+    inline back_insert_iterator<_Container>
+    back_inserter(_Container& __x)
+    { return back_insert_iterator<_Container>(__x); }
+# 540 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator.h" 3
+  template<typename _Container>
+    class front_insert_iterator
+    : public iterator<output_iterator_tag, void, void, void, void>
+    {
+    protected:
+      _Container* container;
+
+    public:
+
+      typedef _Container container_type;
+
+
+      explicit front_insert_iterator(_Container& __x)
+      : container(std::__addressof(__x)) { }
+# 574 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator.h" 3
+      front_insert_iterator&
+      operator=(const typename _Container::value_type& __value)
+      {
+ container->push_front(__value);
+ return *this;
+      }
+
+      front_insert_iterator&
+      operator=(typename _Container::value_type&& __value)
+      {
+ container->push_front(std::move(__value));
+ return *this;
+      }
+
+
+
+      front_insert_iterator&
+      operator*()
+      { return *this; }
+
+
+      front_insert_iterator&
+      operator++()
+      { return *this; }
+
+
+      front_insert_iterator
+      operator++(int)
+      { return *this; }
+    };
+# 616 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator.h" 3
+  template<typename _Container>
+    inline front_insert_iterator<_Container>
+    front_inserter(_Container& __x)
+    { return front_insert_iterator<_Container>(__x); }
+# 635 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator.h" 3
+  template<typename _Container>
+    class insert_iterator
+    : public iterator<output_iterator_tag, void, void, void, void>
+    {
+    protected:
+      _Container* container;
+      typename _Container::iterator iter;
+
+    public:
+
+      typedef _Container container_type;
+
+
+
+
+
+      insert_iterator(_Container& __x, typename _Container::iterator __i)
+      : container(std::__addressof(__x)), iter(__i) {}
+# 686 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator.h" 3
+      insert_iterator&
+      operator=(const typename _Container::value_type& __value)
+      {
+ iter = container->insert(iter, __value);
+ ++iter;
+ return *this;
+      }
+
+      insert_iterator&
+      operator=(typename _Container::value_type&& __value)
+      {
+ iter = container->insert(iter, std::move(__value));
+ ++iter;
+ return *this;
+      }
+
+
+
+      insert_iterator&
+      operator*()
+      { return *this; }
+
+
+      insert_iterator&
+      operator++()
+      { return *this; }
+
+
+      insert_iterator&
+      operator++(int)
+      { return *this; }
+    };
+# 730 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator.h" 3
+  template<typename _Container, typename _Iterator>
+    inline insert_iterator<_Container>
+    inserter(_Container& __x, _Iterator __i)
+    {
+      return insert_iterator<_Container>(__x,
+      typename _Container::iterator(__i));
+    }
+
+
+
+
+}
+
+namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
+{
+# 754 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator.h" 3
+  using std::iterator_traits;
+  using std::iterator;
+  template<typename _Iterator, typename _Container>
+    class __normal_iterator
+    {
+    protected:
+      _Iterator _M_current;
+
+      typedef iterator_traits<_Iterator> __traits_type;
+
+    public:
+      typedef _Iterator iterator_type;
+      typedef typename __traits_type::iterator_category iterator_category;
+      typedef typename __traits_type::value_type value_type;
+      typedef typename __traits_type::difference_type difference_type;
+      typedef typename __traits_type::reference reference;
+      typedef typename __traits_type::pointer pointer;
+
+      constexpr __normal_iterator() noexcept
+      : _M_current(_Iterator()) { }
+
+      explicit
+      __normal_iterator(const _Iterator& __i) noexcept
+      : _M_current(__i) { }
+
+
+      template<typename _Iter>
+        __normal_iterator(const __normal_iterator<_Iter,
+     typename __enable_if<
+              (std::__are_same<_Iter, typename _Container::pointer>::__value),
+        _Container>::__type>& __i) noexcept
+        : _M_current(__i.base()) { }
+
+
+      reference
+      operator*() const noexcept
+      { return *_M_current; }
+
+      pointer
+      operator->() const noexcept
+      { return _M_current; }
+
+      __normal_iterator&
+      operator++() noexcept
+      {
+ ++_M_current;
+ return *this;
+      }
+
+      __normal_iterator
+      operator++(int) noexcept
+      { return __normal_iterator(_M_current++); }
+
+
+      __normal_iterator&
+      operator--() noexcept
+      {
+ --_M_current;
+ return *this;
+      }
+
+      __normal_iterator
+      operator--(int) noexcept
+      { return __normal_iterator(_M_current--); }
+
+
+      reference
+      operator[](difference_type __n) const noexcept
+      { return _M_current[__n]; }
+
+      __normal_iterator&
+      operator+=(difference_type __n) noexcept
+      { _M_current += __n; return *this; }
+
+      __normal_iterator
+      operator+(difference_type __n) const noexcept
+      { return __normal_iterator(_M_current + __n); }
+
+      __normal_iterator&
+      operator-=(difference_type __n) noexcept
+      { _M_current -= __n; return *this; }
+
+      __normal_iterator
+      operator-(difference_type __n) const noexcept
+      { return __normal_iterator(_M_current - __n); }
+
+      const _Iterator&
+      base() const noexcept
+      { return _M_current; }
+    };
+# 854 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator.h" 3
+  template<typename _IteratorL, typename _IteratorR, typename _Container>
+    inline bool
+    operator==(const __normal_iterator<_IteratorL, _Container>& __lhs,
+        const __normal_iterator<_IteratorR, _Container>& __rhs)
+    noexcept
+    { return __lhs.base() == __rhs.base(); }
+
+  template<typename _Iterator, typename _Container>
+    inline bool
+    operator==(const __normal_iterator<_Iterator, _Container>& __lhs,
+        const __normal_iterator<_Iterator, _Container>& __rhs)
+    noexcept
+    { return __lhs.base() == __rhs.base(); }
+
+  template<typename _IteratorL, typename _IteratorR, typename _Container>
+    inline bool
+    operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs,
+        const __normal_iterator<_IteratorR, _Container>& __rhs)
+    noexcept
+    { return __lhs.base() != __rhs.base(); }
+
+  template<typename _Iterator, typename _Container>
+    inline bool
+    operator!=(const __normal_iterator<_Iterator, _Container>& __lhs,
+        const __normal_iterator<_Iterator, _Container>& __rhs)
+    noexcept
+    { return __lhs.base() != __rhs.base(); }
+
+
+  template<typename _IteratorL, typename _IteratorR, typename _Container>
+    inline bool
+    operator<(const __normal_iterator<_IteratorL, _Container>& __lhs,
+       const __normal_iterator<_IteratorR, _Container>& __rhs)
+    noexcept
+    { return __lhs.base() < __rhs.base(); }
+
+  template<typename _Iterator, typename _Container>
+    inline bool
+    operator<(const __normal_iterator<_Iterator, _Container>& __lhs,
+       const __normal_iterator<_Iterator, _Container>& __rhs)
+    noexcept
+    { return __lhs.base() < __rhs.base(); }
+
+  template<typename _IteratorL, typename _IteratorR, typename _Container>
+    inline bool
+    operator>(const __normal_iterator<_IteratorL, _Container>& __lhs,
+       const __normal_iterator<_IteratorR, _Container>& __rhs)
+    noexcept
+    { return __lhs.base() > __rhs.base(); }
+
+  template<typename _Iterator, typename _Container>
+    inline bool
+    operator>(const __normal_iterator<_Iterator, _Container>& __lhs,
+       const __normal_iterator<_Iterator, _Container>& __rhs)
+    noexcept
+    { return __lhs.base() > __rhs.base(); }
+
+  template<typename _IteratorL, typename _IteratorR, typename _Container>
+    inline bool
+    operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs,
+        const __normal_iterator<_IteratorR, _Container>& __rhs)
+    noexcept
+    { return __lhs.base() <= __rhs.base(); }
+
+  template<typename _Iterator, typename _Container>
+    inline bool
+    operator<=(const __normal_iterator<_Iterator, _Container>& __lhs,
+        const __normal_iterator<_Iterator, _Container>& __rhs)
+    noexcept
+    { return __lhs.base() <= __rhs.base(); }
+
+  template<typename _IteratorL, typename _IteratorR, typename _Container>
+    inline bool
+    operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs,
+        const __normal_iterator<_IteratorR, _Container>& __rhs)
+    noexcept
+    { return __lhs.base() >= __rhs.base(); }
+
+  template<typename _Iterator, typename _Container>
+    inline bool
+    operator>=(const __normal_iterator<_Iterator, _Container>& __lhs,
+        const __normal_iterator<_Iterator, _Container>& __rhs)
+    noexcept
+    { return __lhs.base() >= __rhs.base(); }
+
+
+
+
+
+  template<typename _IteratorL, typename _IteratorR, typename _Container>
+
+
+    inline auto
+    operator-(const __normal_iterator<_IteratorL, _Container>& __lhs,
+       const __normal_iterator<_IteratorR, _Container>& __rhs) noexcept
+    -> decltype(__lhs.base() - __rhs.base())
+
+
+
+
+
+    { return __lhs.base() - __rhs.base(); }
+
+  template<typename _Iterator, typename _Container>
+    inline typename __normal_iterator<_Iterator, _Container>::difference_type
+    operator-(const __normal_iterator<_Iterator, _Container>& __lhs,
+       const __normal_iterator<_Iterator, _Container>& __rhs)
+    noexcept
+    { return __lhs.base() - __rhs.base(); }
+
+  template<typename _Iterator, typename _Container>
+    inline __normal_iterator<_Iterator, _Container>
+    operator+(typename __normal_iterator<_Iterator, _Container>::difference_type
+       __n, const __normal_iterator<_Iterator, _Container>& __i)
+    noexcept
+    { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); }
+
+
+}
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+  template<typename _Iterator, typename _Container>
+    _Iterator
+    __niter_base(__gnu_cxx::__normal_iterator<_Iterator, _Container> __it)
+    { return __it.base(); }
+
+
+}
+
+
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 1006 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_iterator.h" 3
+  template<typename _Iterator>
+    class move_iterator
+    {
+    protected:
+      _Iterator _M_current;
+
+      typedef iterator_traits<_Iterator> __traits_type;
+      typedef typename __traits_type::reference __base_ref;
+
+    public:
+      typedef _Iterator iterator_type;
+      typedef typename __traits_type::iterator_category iterator_category;
+      typedef typename __traits_type::value_type value_type;
+      typedef typename __traits_type::difference_type difference_type;
+
+      typedef _Iterator pointer;
+
+
+      typedef typename conditional<is_reference<__base_ref>::value,
+    typename remove_reference<__base_ref>::type&&,
+    __base_ref>::type reference;
+
+      move_iterator()
+      : _M_current() { }
+
+      explicit
+      move_iterator(iterator_type __i)
+      : _M_current(__i) { }
+
+      template<typename _Iter>
+ move_iterator(const move_iterator<_Iter>& __i)
+ : _M_current(__i.base()) { }
+
+      iterator_type
+      base() const
+      { return _M_current; }
+
+      reference
+      operator*() const
+      { return static_cast<reference>(*_M_current); }
+
+      pointer
+      operator->() const
+      { return _M_current; }
+
+      move_iterator&
+      operator++()
+      {
+ ++_M_current;
+ return *this;
+      }
+
+      move_iterator
+      operator++(int)
+      {
+ move_iterator __tmp = *this;
+ ++_M_current;
+ return __tmp;
+      }
+
+      move_iterator&
+      operator--()
+      {
+ --_M_current;
+ return *this;
+      }
+
+      move_iterator
+      operator--(int)
+      {
+ move_iterator __tmp = *this;
+ --_M_current;
+ return __tmp;
+      }
+
+      move_iterator
+      operator+(difference_type __n) const
+      { return move_iterator(_M_current + __n); }
+
+      move_iterator&
+      operator+=(difference_type __n)
+      {
+ _M_current += __n;
+ return *this;
+      }
+
+      move_iterator
+      operator-(difference_type __n) const
+      { return move_iterator(_M_current - __n); }
+
+      move_iterator&
+      operator-=(difference_type __n)
+      {
+ _M_current -= __n;
+ return *this;
+      }
+
+      reference
+      operator[](difference_type __n) const
+      { return std::move(_M_current[__n]); }
+    };
+
+
+
+
+  template<typename _IteratorL, typename _IteratorR>
+    inline bool
+    operator==(const move_iterator<_IteratorL>& __x,
+        const move_iterator<_IteratorR>& __y)
+    { return __x.base() == __y.base(); }
+
+  template<typename _Iterator>
+    inline bool
+    operator==(const move_iterator<_Iterator>& __x,
+        const move_iterator<_Iterator>& __y)
+    { return __x.base() == __y.base(); }
+
+  template<typename _IteratorL, typename _IteratorR>
+    inline bool
+    operator!=(const move_iterator<_IteratorL>& __x,
+        const move_iterator<_IteratorR>& __y)
+    { return !(__x == __y); }
+
+  template<typename _Iterator>
+    inline bool
+    operator!=(const move_iterator<_Iterator>& __x,
+        const move_iterator<_Iterator>& __y)
+    { return !(__x == __y); }
+
+  template<typename _IteratorL, typename _IteratorR>
+    inline bool
+    operator<(const move_iterator<_IteratorL>& __x,
+       const move_iterator<_IteratorR>& __y)
+    { return __x.base() < __y.base(); }
+
+  template<typename _Iterator>
+    inline bool
+    operator<(const move_iterator<_Iterator>& __x,
+       const move_iterator<_Iterator>& __y)
+    { return __x.base() < __y.base(); }
+
+  template<typename _IteratorL, typename _IteratorR>
+    inline bool
+    operator<=(const move_iterator<_IteratorL>& __x,
+        const move_iterator<_IteratorR>& __y)
+    { return !(__y < __x); }
+
+  template<typename _Iterator>
+    inline bool
+    operator<=(const move_iterator<_Iterator>& __x,
+        const move_iterator<_Iterator>& __y)
+    { return !(__y < __x); }
+
+  template<typename _IteratorL, typename _IteratorR>
+    inline bool
+    operator>(const move_iterator<_IteratorL>& __x,
+       const move_iterator<_IteratorR>& __y)
+    { return __y < __x; }
+
+  template<typename _Iterator>
+    inline bool
+    operator>(const move_iterator<_Iterator>& __x,
+       const move_iterator<_Iterator>& __y)
+    { return __y < __x; }
+
+  template<typename _IteratorL, typename _IteratorR>
+    inline bool
+    operator>=(const move_iterator<_IteratorL>& __x,
+        const move_iterator<_IteratorR>& __y)
+    { return !(__x < __y); }
+
+  template<typename _Iterator>
+    inline bool
+    operator>=(const move_iterator<_Iterator>& __x,
+        const move_iterator<_Iterator>& __y)
+    { return !(__x < __y); }
+
+
+  template<typename _IteratorL, typename _IteratorR>
+    inline auto
+    operator-(const move_iterator<_IteratorL>& __x,
+       const move_iterator<_IteratorR>& __y)
+    -> decltype(__x.base() - __y.base())
+    { return __x.base() - __y.base(); }
+
+  template<typename _Iterator>
+    inline auto
+    operator-(const move_iterator<_Iterator>& __x,
+       const move_iterator<_Iterator>& __y)
+    -> decltype(__x.base() - __y.base())
+    { return __x.base() - __y.base(); }
+
+  template<typename _Iterator>
+    inline move_iterator<_Iterator>
+    operator+(typename move_iterator<_Iterator>::difference_type __n,
+       const move_iterator<_Iterator>& __x)
+    { return __x + __n; }
+
+  template<typename _Iterator>
+    inline move_iterator<_Iterator>
+    make_move_iterator(_Iterator __i)
+    { return move_iterator<_Iterator>(__i); }
+
+  template<typename _Iterator, typename _ReturnType
+    = typename conditional<__move_if_noexcept_cond
+      <typename iterator_traits<_Iterator>::value_type>::value,
+                _Iterator, move_iterator<_Iterator>>::type>
+    inline _ReturnType
+    __make_move_if_noexcept_iterator(_Iterator __i)
+    { return _ReturnType(__i); }
+
+
+
+  template<typename _Tp, typename _ReturnType
+    = typename conditional<__move_if_noexcept_cond<_Tp>::value,
+      const _Tp*, move_iterator<_Tp*>>::type>
+    inline _ReturnType
+    __make_move_if_noexcept_iterator(_Tp* __i)
+    { return _ReturnType(__i); }
+
+
+
+  template<typename _Iterator>
+    auto
+    __niter_base(move_iterator<_Iterator> __it)
+    -> decltype(make_move_iterator(__niter_base(__it.base())))
+    { return make_move_iterator(__niter_base(__it.base())); }
+
+  template<typename _Iterator>
+    struct __is_move_iterator<move_iterator<_Iterator> >
+    {
+      enum { __value = 1 };
+      typedef __true_type __type;
+    };
+
+  template<typename _Iterator>
+    auto
+    __miter_base(move_iterator<_Iterator> __it)
+    -> decltype(__miter_base(__it.base()))
+    { return __miter_base(__it.base()); }
+
+
+}
+# 68 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 2 3
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/debug/debug.h" 1 3
+# 48 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/debug/debug.h" 3
+namespace std
+{
+  namespace __debug { }
+}
+
+
+
+
+namespace __gnu_debug
+{
+  using namespace std::__debug;
+}
+# 70 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 2 3
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/predefined_ops.h" 1 3
+# 33 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/predefined_ops.h" 3
+namespace __gnu_cxx
+{
+namespace __ops
+{
+  struct _Iter_less_iter
+  {
+    template<typename _Iterator1, typename _Iterator2>
+
+      bool
+      operator()(_Iterator1 __it1, _Iterator2 __it2) const
+      { return *__it1 < *__it2; }
+  };
+
+
+  inline _Iter_less_iter
+  __iter_less_iter()
+  { return _Iter_less_iter(); }
+
+  struct _Iter_less_val
+  {
+    template<typename _Iterator, typename _Value>
+      bool
+      operator()(_Iterator __it, _Value& __val) const
+      { return *__it < __val; }
+  };
+
+  inline _Iter_less_val
+  __iter_less_val()
+  { return _Iter_less_val(); }
+
+  inline _Iter_less_val
+  __iter_comp_val(_Iter_less_iter)
+  { return _Iter_less_val(); }
+
+  struct _Val_less_iter
+  {
+    template<typename _Value, typename _Iterator>
+      bool
+      operator()(_Value& __val, _Iterator __it) const
+      { return __val < *__it; }
+  };
+
+  inline _Val_less_iter
+  __val_less_iter()
+  { return _Val_less_iter(); }
+
+  inline _Val_less_iter
+  __val_comp_iter(_Iter_less_iter)
+  { return _Val_less_iter(); }
+
+  struct _Iter_equal_to_iter
+  {
+    template<typename _Iterator1, typename _Iterator2>
+      bool
+      operator()(_Iterator1 __it1, _Iterator2 __it2) const
+      { return *__it1 == *__it2; }
+  };
+
+  inline _Iter_equal_to_iter
+  __iter_equal_to_iter()
+  { return _Iter_equal_to_iter(); }
+
+  struct _Iter_equal_to_val
+  {
+    template<typename _Iterator, typename _Value>
+      bool
+      operator()(_Iterator __it, _Value& __val) const
+      { return *__it == __val; }
+  };
+
+  inline _Iter_equal_to_val
+  __iter_equal_to_val()
+  { return _Iter_equal_to_val(); }
+
+  inline _Iter_equal_to_val
+  __iter_comp_val(_Iter_equal_to_iter)
+  { return _Iter_equal_to_val(); }
+
+  template<typename _Compare>
+    struct _Iter_comp_iter
+    {
+      _Compare _M_comp;
+
+      explicit
+      _Iter_comp_iter(_Compare __comp)
+ : _M_comp(__comp)
+      { }
+
+      template<typename _Iterator1, typename _Iterator2>
+
+        bool
+        operator()(_Iterator1 __it1, _Iterator2 __it2)
+        { return bool(_M_comp(*__it1, *__it2)); }
+    };
+
+  template<typename _Compare>
+
+    inline _Iter_comp_iter<_Compare>
+    __iter_comp_iter(_Compare __comp)
+    { return _Iter_comp_iter<_Compare>(__comp); }
+
+  template<typename _Compare>
+    struct _Iter_comp_val
+    {
+      _Compare _M_comp;
+
+      explicit
+      _Iter_comp_val(_Compare __comp)
+ : _M_comp(__comp)
+      { }
+
+      template<typename _Iterator, typename _Value>
+ bool
+ operator()(_Iterator __it, _Value& __val)
+ { return bool(_M_comp(*__it, __val)); }
+    };
+
+  template<typename _Compare>
+   inline _Iter_comp_val<_Compare>
+    __iter_comp_val(_Compare __comp)
+    { return _Iter_comp_val<_Compare>(__comp); }
+
+  template<typename _Compare>
+    inline _Iter_comp_val<_Compare>
+    __iter_comp_val(_Iter_comp_iter<_Compare> __comp)
+    { return _Iter_comp_val<_Compare>(__comp._M_comp); }
+
+  template<typename _Compare>
+    struct _Val_comp_iter
+    {
+      _Compare _M_comp;
+
+      explicit
+      _Val_comp_iter(_Compare __comp)
+ : _M_comp(__comp)
+      { }
+
+      template<typename _Value, typename _Iterator>
+ bool
+ operator()(_Value& __val, _Iterator __it)
+ { return bool(_M_comp(__val, *__it)); }
+    };
+
+  template<typename _Compare>
+    inline _Val_comp_iter<_Compare>
+    __val_comp_iter(_Compare __comp)
+    { return _Val_comp_iter<_Compare>(__comp); }
+
+  template<typename _Compare>
+    inline _Val_comp_iter<_Compare>
+    __val_comp_iter(_Iter_comp_iter<_Compare> __comp)
+    { return _Val_comp_iter<_Compare>(__comp._M_comp); }
+
+  template<typename _Value>
+    struct _Iter_equals_val
+    {
+      _Value& _M_value;
+
+      explicit
+      _Iter_equals_val(_Value& __value)
+ : _M_value(__value)
+      { }
+
+      template<typename _Iterator>
+ bool
+ operator()(_Iterator __it)
+ { return *__it == _M_value; }
+    };
+
+  template<typename _Value>
+    inline _Iter_equals_val<_Value>
+    __iter_equals_val(_Value& __val)
+    { return _Iter_equals_val<_Value>(__val); }
+
+  template<typename _Iterator1>
+    struct _Iter_equals_iter
+    {
+      _Iterator1 _M_it1;
+
+      explicit
+      _Iter_equals_iter(_Iterator1 __it1)
+ : _M_it1(__it1)
+      { }
+
+      template<typename _Iterator2>
+ bool
+ operator()(_Iterator2 __it2)
+ { return *__it2 == *_M_it1; }
+    };
+
+  template<typename _Iterator>
+    inline _Iter_equals_iter<_Iterator>
+    __iter_comp_iter(_Iter_equal_to_iter, _Iterator __it)
+    { return _Iter_equals_iter<_Iterator>(__it); }
+
+  template<typename _Predicate>
+    struct _Iter_pred
+    {
+      _Predicate _M_pred;
+
+      explicit
+      _Iter_pred(_Predicate __pred)
+ : _M_pred(__pred)
+      { }
+
+      template<typename _Iterator>
+ bool
+ operator()(_Iterator __it)
+ { return bool(_M_pred(*__it)); }
+    };
+
+  template<typename _Predicate>
+    inline _Iter_pred<_Predicate>
+    __pred_iter(_Predicate __pred)
+    { return _Iter_pred<_Predicate>(__pred); }
+
+  template<typename _Compare, typename _Value>
+    struct _Iter_comp_to_val
+    {
+      _Compare _M_comp;
+      _Value& _M_value;
+
+      _Iter_comp_to_val(_Compare __comp, _Value& __value)
+ : _M_comp(__comp), _M_value(__value)
+      { }
+
+      template<typename _Iterator>
+ bool
+ operator()(_Iterator __it)
+ { return bool(_M_comp(*__it, _M_value)); }
+    };
+
+  template<typename _Compare, typename _Value>
+    _Iter_comp_to_val<_Compare, _Value>
+    __iter_comp_val(_Compare __comp, _Value &__val)
+    { return _Iter_comp_to_val<_Compare, _Value>(__comp, __val); }
+
+  template<typename _Compare, typename _Iterator1>
+    struct _Iter_comp_to_iter
+    {
+      _Compare _M_comp;
+      _Iterator1 _M_it1;
+
+      _Iter_comp_to_iter(_Compare __comp, _Iterator1 __it1)
+ : _M_comp(__comp), _M_it1(__it1)
+      { }
+
+      template<typename _Iterator2>
+ bool
+ operator()(_Iterator2 __it2)
+ { return bool(_M_comp(*__it2, *_M_it1)); }
+    };
+
+  template<typename _Compare, typename _Iterator>
+    inline _Iter_comp_to_iter<_Compare, _Iterator>
+    __iter_comp_iter(_Iter_comp_iter<_Compare> __comp, _Iterator __it)
+    { return _Iter_comp_to_iter<_Compare, _Iterator>(__comp._M_comp, __it); }
+
+  template<typename _Predicate>
+    struct _Iter_negate
+    {
+      _Predicate _M_pred;
+
+      explicit
+      _Iter_negate(_Predicate __pred)
+ : _M_pred(__pred)
+      { }
+
+      template<typename _Iterator>
+ bool
+ operator()(_Iterator __it)
+ { return !bool(_M_pred(*__it)); }
+    };
+
+  template<typename _Predicate>
+    inline _Iter_negate<_Predicate>
+    __negate(_Iter_pred<_Predicate> __pred)
+    { return _Iter_negate<_Predicate>(__pred._M_pred); }
+
+}
+}
+# 72 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 2 3
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 118 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 3
+  template<typename _ForwardIterator1, typename _ForwardIterator2>
+    inline void
+    iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
+    {
+# 148 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 3
+      swap(*__a, *__b);
+
+    }
+# 164 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 3
+  template<typename _ForwardIterator1, typename _ForwardIterator2>
+    _ForwardIterator2
+    swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
+  _ForwardIterator2 __first2)
+    {
+
+
+
+
+
+                                                       ;
+
+      for (; __first1 != __last1; ++__first1, (void)++__first2)
+ std::iter_swap(__first1, __first2);
+      return __first2;
+    }
+# 192 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 3
+  template<typename _Tp>
+
+    inline const _Tp&
+    min(const _Tp& __a, const _Tp& __b)
+    {
+
+
+
+      if (__b < __a)
+ return __b;
+      return __a;
+    }
+# 216 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 3
+  template<typename _Tp>
+
+    inline const _Tp&
+    max(const _Tp& __a, const _Tp& __b)
+    {
+
+
+
+      if (__a < __b)
+ return __b;
+      return __a;
+    }
+# 240 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 3
+  template<typename _Tp, typename _Compare>
+
+    inline const _Tp&
+    min(const _Tp& __a, const _Tp& __b, _Compare __comp)
+    {
+
+      if (__comp(__b, __a))
+ return __b;
+      return __a;
+    }
+# 262 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 3
+  template<typename _Tp, typename _Compare>
+
+    inline const _Tp&
+    max(const _Tp& __a, const _Tp& __b, _Compare __comp)
+    {
+
+      if (__comp(__a, __b))
+ return __b;
+      return __a;
+    }
+
+
+
+  template<typename _Iterator>
+    inline _Iterator
+    __niter_base(_Iterator __it)
+    { return __it; }
+
+
+
+
+
+
+
+  template<bool, bool, typename>
+    struct __copy_move
+    {
+      template<typename _II, typename _OI>
+        static _OI
+        __copy_m(_II __first, _II __last, _OI __result)
+        {
+   for (; __first != __last; ++__result, (void)++__first)
+     *__result = *__first;
+   return __result;
+ }
+    };
+
+
+  template<typename _Category>
+    struct __copy_move<true, false, _Category>
+    {
+      template<typename _II, typename _OI>
+        static _OI
+        __copy_m(_II __first, _II __last, _OI __result)
+        {
+   for (; __first != __last; ++__result, (void)++__first)
+     *__result = std::move(*__first);
+   return __result;
+ }
+    };
+
+
+  template<>
+    struct __copy_move<false, false, random_access_iterator_tag>
+    {
+      template<typename _II, typename _OI>
+        static _OI
+        __copy_m(_II __first, _II __last, _OI __result)
+        {
+   typedef typename iterator_traits<_II>::difference_type _Distance;
+   for(_Distance __n = __last - __first; __n > 0; --__n)
+     {
+       *__result = *__first;
+       ++__first;
+       ++__result;
+     }
+   return __result;
+ }
+    };
+
+
+  template<>
+    struct __copy_move<true, false, random_access_iterator_tag>
+    {
+      template<typename _II, typename _OI>
+        static _OI
+        __copy_m(_II __first, _II __last, _OI __result)
+        {
+   typedef typename iterator_traits<_II>::difference_type _Distance;
+   for(_Distance __n = __last - __first; __n > 0; --__n)
+     {
+       *__result = std::move(*__first);
+       ++__first;
+       ++__result;
+     }
+   return __result;
+ }
+    };
+
+
+  template<bool _IsMove>
+    struct __copy_move<_IsMove, true, random_access_iterator_tag>
+    {
+      template<typename _Tp>
+        static _Tp*
+        __copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result)
+        {
+
+   using __assignable = conditional<_IsMove,
+        is_move_assignable<_Tp>,
+        is_copy_assignable<_Tp>>;
+
+   static_assert( __assignable::type::value, "type is not assignable" );
+
+   const ptrdiff_t _Num = __last - __first;
+   if (_Num)
+     __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
+   return __result + _Num;
+ }
+    };
+
+  template<bool _IsMove, typename _II, typename _OI>
+    inline _OI
+    __copy_move_a(_II __first, _II __last, _OI __result)
+    {
+      typedef typename iterator_traits<_II>::value_type _ValueTypeI;
+      typedef typename iterator_traits<_OI>::value_type _ValueTypeO;
+      typedef typename iterator_traits<_II>::iterator_category _Category;
+      const bool __simple = (__is_trivial(_ValueTypeI)
+                      && __is_pointer<_II>::__value
+                      && __is_pointer<_OI>::__value
+        && __are_same<_ValueTypeI, _ValueTypeO>::__value);
+
+      return std::__copy_move<_IsMove, __simple,
+                       _Category>::__copy_m(__first, __last, __result);
+    }
+
+
+
+  template<typename _CharT>
+    struct char_traits;
+
+  template<typename _CharT, typename _Traits>
+    class istreambuf_iterator;
+
+  template<typename _CharT, typename _Traits>
+    class ostreambuf_iterator;
+
+  template<bool _IsMove, typename _CharT>
+    typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
+      ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type
+    __copy_move_a2(_CharT*, _CharT*,
+     ostreambuf_iterator<_CharT, char_traits<_CharT> >);
+
+  template<bool _IsMove, typename _CharT>
+    typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
+      ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type
+    __copy_move_a2(const _CharT*, const _CharT*,
+     ostreambuf_iterator<_CharT, char_traits<_CharT> >);
+
+  template<bool _IsMove, typename _CharT>
+    typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
+        _CharT*>::__type
+    __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >,
+     istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*);
+
+  template<bool _IsMove, typename _II, typename _OI>
+    inline _OI
+    __copy_move_a2(_II __first, _II __last, _OI __result)
+    {
+      return _OI(std::__copy_move_a<_IsMove>(std::__niter_base(__first),
+          std::__niter_base(__last),
+          std::__niter_base(__result)));
+    }
+# 444 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 3
+  template<typename _II, typename _OI>
+    inline _OI
+    copy(_II __first, _II __last, _OI __result)
+    {
+
+
+
+
+                                                     ;
+
+      return (std::__copy_move_a2<__is_move_iterator<_II>::__value>
+       (std::__miter_base(__first), std::__miter_base(__last),
+        __result));
+    }
+# 477 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 3
+  template<typename _II, typename _OI>
+    inline _OI
+    move(_II __first, _II __last, _OI __result)
+    {
+
+
+
+
+                                                     ;
+
+      return std::__copy_move_a2<true>(std::__miter_base(__first),
+           std::__miter_base(__last), __result);
+    }
+
+
+
+
+
+
+  template<bool, bool, typename>
+    struct __copy_move_backward
+    {
+      template<typename _BI1, typename _BI2>
+        static _BI2
+        __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result)
+        {
+   while (__first != __last)
+     *--__result = *--__last;
+   return __result;
+ }
+    };
+
+
+  template<typename _Category>
+    struct __copy_move_backward<true, false, _Category>
+    {
+      template<typename _BI1, typename _BI2>
+        static _BI2
+        __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result)
+        {
+   while (__first != __last)
+     *--__result = std::move(*--__last);
+   return __result;
+ }
+    };
+
+
+  template<>
+    struct __copy_move_backward<false, false, random_access_iterator_tag>
+    {
+      template<typename _BI1, typename _BI2>
+        static _BI2
+        __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result)
+        {
+   typename iterator_traits<_BI1>::difference_type __n;
+   for (__n = __last - __first; __n > 0; --__n)
+     *--__result = *--__last;
+   return __result;
+ }
+    };
+
+
+  template<>
+    struct __copy_move_backward<true, false, random_access_iterator_tag>
+    {
+      template<typename _BI1, typename _BI2>
+        static _BI2
+        __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result)
+        {
+   typename iterator_traits<_BI1>::difference_type __n;
+   for (__n = __last - __first; __n > 0; --__n)
+     *--__result = std::move(*--__last);
+   return __result;
+ }
+    };
+
+
+  template<bool _IsMove>
+    struct __copy_move_backward<_IsMove, true, random_access_iterator_tag>
+    {
+      template<typename _Tp>
+        static _Tp*
+        __copy_move_b(const _Tp* __first, const _Tp* __last, _Tp* __result)
+        {
+
+   using __assignable = conditional<_IsMove,
+        is_move_assignable<_Tp>,
+        is_copy_assignable<_Tp>>;
+
+   static_assert( __assignable::type::value, "type is not assignable" );
+
+   const ptrdiff_t _Num = __last - __first;
+   if (_Num)
+     __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num);
+   return __result - _Num;
+ }
+    };
+
+  template<bool _IsMove, typename _BI1, typename _BI2>
+    inline _BI2
+    __copy_move_backward_a(_BI1 __first, _BI1 __last, _BI2 __result)
+    {
+      typedef typename iterator_traits<_BI1>::value_type _ValueType1;
+      typedef typename iterator_traits<_BI2>::value_type _ValueType2;
+      typedef typename iterator_traits<_BI1>::iterator_category _Category;
+      const bool __simple = (__is_trivial(_ValueType1)
+                      && __is_pointer<_BI1>::__value
+                      && __is_pointer<_BI2>::__value
+        && __are_same<_ValueType1, _ValueType2>::__value);
+
+      return std::__copy_move_backward<_IsMove, __simple,
+                                _Category>::__copy_move_b(__first,
+         __last,
+         __result);
+    }
+
+  template<bool _IsMove, typename _BI1, typename _BI2>
+    inline _BI2
+    __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result)
+    {
+      return _BI2(std::__copy_move_backward_a<_IsMove>
+    (std::__niter_base(__first), std::__niter_base(__last),
+     std::__niter_base(__result)));
+    }
+# 620 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 3
+  template<typename _BI1, typename _BI2>
+    inline _BI2
+    copy_backward(_BI1 __first, _BI1 __last, _BI2 __result)
+    {
+
+
+
+
+
+
+                                                     ;
+
+      return (std::__copy_move_backward_a2<__is_move_iterator<_BI1>::__value>
+       (std::__miter_base(__first), std::__miter_base(__last),
+        __result));
+    }
+# 656 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 3
+  template<typename _BI1, typename _BI2>
+    inline _BI2
+    move_backward(_BI1 __first, _BI1 __last, _BI2 __result)
+    {
+
+
+
+
+
+
+                                                     ;
+
+      return std::__copy_move_backward_a2<true>(std::__miter_base(__first),
+      std::__miter_base(__last),
+      __result);
+    }
+
+
+
+
+
+
+  template<typename _ForwardIterator, typename _Tp>
+    inline typename
+    __gnu_cxx::__enable_if<!__is_scalar<_Tp>::__value, void>::__type
+    __fill_a(_ForwardIterator __first, _ForwardIterator __last,
+       const _Tp& __value)
+    {
+      for (; __first != __last; ++__first)
+ *__first = __value;
+    }
+
+  template<typename _ForwardIterator, typename _Tp>
+    inline typename
+    __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type
+    __fill_a(_ForwardIterator __first, _ForwardIterator __last,
+      const _Tp& __value)
+    {
+      const _Tp __tmp = __value;
+      for (; __first != __last; ++__first)
+ *__first = __tmp;
+    }
+
+
+  template<typename _Tp>
+    inline typename
+    __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type
+    __fill_a(_Tp* __first, _Tp* __last, const _Tp& __c)
+    {
+      const _Tp __tmp = __c;
+      if (const size_t __len = __last - __first)
+ __builtin_memset(__first, static_cast<unsigned char>(__tmp), __len);
+    }
+# 722 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 3
+  template<typename _ForwardIterator, typename _Tp>
+    inline void
+    fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value)
+    {
+
+
+
+                                                     ;
+
+      std::__fill_a(std::__niter_base(__first), std::__niter_base(__last),
+      __value);
+    }
+
+  template<typename _OutputIterator, typename _Size, typename _Tp>
+    inline typename
+    __gnu_cxx::__enable_if<!__is_scalar<_Tp>::__value, _OutputIterator>::__type
+    __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value)
+    {
+      for (__decltype(__n + 0) __niter = __n;
+    __niter > 0; --__niter, ++__first)
+ *__first = __value;
+      return __first;
+    }
+
+  template<typename _OutputIterator, typename _Size, typename _Tp>
+    inline typename
+    __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type
+    __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value)
+    {
+      const _Tp __tmp = __value;
+      for (__decltype(__n + 0) __niter = __n;
+    __niter > 0; --__niter, ++__first)
+ *__first = __tmp;
+      return __first;
+    }
+
+  template<typename _Size, typename _Tp>
+    inline typename
+    __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, _Tp*>::__type
+    __fill_n_a(_Tp* __first, _Size __n, const _Tp& __c)
+    {
+      std::__fill_a(__first, __first + __n, __c);
+      return __first + __n;
+    }
+# 782 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 3
+  template<typename _OI, typename _Size, typename _Tp>
+    inline _OI
+    fill_n(_OI __first, _Size __n, const _Tp& __value)
+    {
+
+
+
+      return _OI(std::__fill_n_a(std::__niter_base(__first), __n, __value));
+    }
+
+  template<bool _BoolType>
+    struct __equal
+    {
+      template<typename _II1, typename _II2>
+        static bool
+        equal(_II1 __first1, _II1 __last1, _II2 __first2)
+        {
+   for (; __first1 != __last1; ++__first1, (void)++__first2)
+     if (!(*__first1 == *__first2))
+       return false;
+   return true;
+ }
+    };
+
+  template<>
+    struct __equal<true>
+    {
+      template<typename _Tp>
+        static bool
+        equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2)
+        {
+   if (const size_t __len = (__last1 - __first1))
+     return !__builtin_memcmp(__first1, __first2, sizeof(_Tp) * __len);
+   return true;
+ }
+    };
+
+  template<typename _II1, typename _II2>
+    inline bool
+    __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2)
+    {
+      typedef typename iterator_traits<_II1>::value_type _ValueType1;
+      typedef typename iterator_traits<_II2>::value_type _ValueType2;
+      const bool __simple = ((__is_integer<_ValueType1>::__value
+         || __is_pointer<_ValueType1>::__value)
+                      && __is_pointer<_II1>::__value
+                      && __is_pointer<_II2>::__value
+        && __are_same<_ValueType1, _ValueType2>::__value);
+
+      return std::__equal<__simple>::equal(__first1, __last1, __first2);
+    }
+
+  template<typename, typename>
+    struct __lc_rai
+    {
+      template<typename _II1, typename _II2>
+        static _II1
+        __newlast1(_II1, _II1 __last1, _II2, _II2)
+        { return __last1; }
+
+      template<typename _II>
+        static bool
+        __cnd2(_II __first, _II __last)
+        { return __first != __last; }
+    };
+
+  template<>
+    struct __lc_rai<random_access_iterator_tag, random_access_iterator_tag>
+    {
+      template<typename _RAI1, typename _RAI2>
+        static _RAI1
+        __newlast1(_RAI1 __first1, _RAI1 __last1,
+     _RAI2 __first2, _RAI2 __last2)
+        {
+   const typename iterator_traits<_RAI1>::difference_type
+     __diff1 = __last1 - __first1;
+   const typename iterator_traits<_RAI2>::difference_type
+     __diff2 = __last2 - __first2;
+   return __diff2 < __diff1 ? __first1 + __diff2 : __last1;
+ }
+
+      template<typename _RAI>
+        static bool
+        __cnd2(_RAI, _RAI)
+        { return true; }
+    };
+
+  template<typename _II1, typename _II2, typename _Compare>
+    bool
+    __lexicographical_compare_impl(_II1 __first1, _II1 __last1,
+       _II2 __first2, _II2 __last2,
+       _Compare __comp)
+    {
+      typedef typename iterator_traits<_II1>::iterator_category _Category1;
+      typedef typename iterator_traits<_II2>::iterator_category _Category2;
+      typedef std::__lc_rai<_Category1, _Category2> __rai_type;
+
+      __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2);
+      for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2);
+    ++__first1, (void)++__first2)
+ {
+   if (__comp(__first1, __first2))
+     return true;
+   if (__comp(__first2, __first1))
+     return false;
+ }
+      return __first1 == __last1 && __first2 != __last2;
+    }
+
+  template<bool _BoolType>
+    struct __lexicographical_compare
+    {
+      template<typename _II1, typename _II2>
+        static bool __lc(_II1, _II1, _II2, _II2);
+    };
+
+  template<bool _BoolType>
+    template<typename _II1, typename _II2>
+      bool
+      __lexicographical_compare<_BoolType>::
+      __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2)
+      {
+ return std::__lexicographical_compare_impl(__first1, __last1,
+         __first2, __last2,
+     __gnu_cxx::__ops::__iter_less_iter());
+      }
+
+  template<>
+    struct __lexicographical_compare<true>
+    {
+      template<typename _Tp, typename _Up>
+        static bool
+        __lc(const _Tp* __first1, const _Tp* __last1,
+      const _Up* __first2, const _Up* __last2)
+ {
+   const size_t __len1 = __last1 - __first1;
+   const size_t __len2 = __last2 - __first2;
+   if (const size_t __len = std::min(__len1, __len2))
+     if (int __result = __builtin_memcmp(__first1, __first2, __len))
+       return __result < 0;
+   return __len1 < __len2;
+ }
+    };
+
+  template<typename _II1, typename _II2>
+    inline bool
+    __lexicographical_compare_aux(_II1 __first1, _II1 __last1,
+      _II2 __first2, _II2 __last2)
+    {
+      typedef typename iterator_traits<_II1>::value_type _ValueType1;
+      typedef typename iterator_traits<_II2>::value_type _ValueType2;
+      const bool __simple =
+ (__is_byte<_ValueType1>::__value && __is_byte<_ValueType2>::__value
+  && !__gnu_cxx::__numeric_traits<_ValueType1>::__is_signed
+  && !__gnu_cxx::__numeric_traits<_ValueType2>::__is_signed
+  && __is_pointer<_II1>::__value
+  && __is_pointer<_II2>::__value);
+
+      return std::__lexicographical_compare<__simple>::__lc(__first1, __last1,
+           __first2, __last2);
+    }
+
+  template<typename _ForwardIterator, typename _Tp, typename _Compare>
+    _ForwardIterator
+    __lower_bound(_ForwardIterator __first, _ForwardIterator __last,
+    const _Tp& __val, _Compare __comp)
+    {
+      typedef typename iterator_traits<_ForwardIterator>::difference_type
+ _DistanceType;
+
+      _DistanceType __len = std::distance(__first, __last);
+
+      while (__len > 0)
+ {
+   _DistanceType __half = __len >> 1;
+   _ForwardIterator __middle = __first;
+   std::advance(__middle, __half);
+   if (__comp(__middle, __val))
+     {
+       __first = __middle;
+       ++__first;
+       __len = __len - __half - 1;
+     }
+   else
+     __len = __half;
+ }
+      return __first;
+    }
+# 982 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 3
+  template<typename _ForwardIterator, typename _Tp>
+    inline _ForwardIterator
+    lower_bound(_ForwardIterator __first, _ForwardIterator __last,
+  const _Tp& __val)
+    {
+
+
+
+
+                                                                  ;
+
+      return std::__lower_bound(__first, __last, __val,
+    __gnu_cxx::__ops::__iter_less_val());
+    }
+
+
+
+  inline constexpr int
+  __lg(int __n)
+  { return sizeof(int) * 8 - 1 - __builtin_clz(__n); }
+
+  inline constexpr unsigned
+  __lg(unsigned __n)
+  { return sizeof(int) * 8 - 1 - __builtin_clz(__n); }
+
+  inline constexpr long
+  __lg(long __n)
+  { return sizeof(long) * 8 - 1 - __builtin_clzl(__n); }
+
+  inline constexpr unsigned long
+  __lg(unsigned long __n)
+  { return sizeof(long) * 8 - 1 - __builtin_clzl(__n); }
+
+  inline constexpr long long
+  __lg(long long __n)
+  { return sizeof(long long) * 8 - 1 - __builtin_clzll(__n); }
+
+  inline constexpr unsigned long long
+  __lg(unsigned long long __n)
+  { return sizeof(long long) * 8 - 1 - __builtin_clzll(__n); }
+# 1039 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 3
+  template<typename _II1, typename _II2>
+    inline bool
+    equal(_II1 __first1, _II1 __last1, _II2 __first2)
+    {
+
+
+
+
+
+
+                                                       ;
+
+      return std::__equal_aux(std::__niter_base(__first1),
+         std::__niter_base(__last1),
+         std::__niter_base(__first2));
+    }
+# 1071 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 3
+  template<typename _IIter1, typename _IIter2, typename _BinaryPredicate>
+    inline bool
+    equal(_IIter1 __first1, _IIter1 __last1,
+   _IIter2 __first2, _BinaryPredicate __binary_pred)
+    {
+
+
+
+                                                       ;
+
+      for (; __first1 != __last1; ++__first1, (void)++__first2)
+ if (!bool(__binary_pred(*__first1, *__first2)))
+   return false;
+      return true;
+    }
+# 1201 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 3
+  template<typename _II1, typename _II2>
+    inline bool
+    lexicographical_compare(_II1 __first1, _II1 __last1,
+       _II2 __first2, _II2 __last2)
+    {
+# 1215 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 3
+                                                       ;
+                                                       ;
+
+      return std::__lexicographical_compare_aux(std::__niter_base(__first1),
+      std::__niter_base(__last1),
+      std::__niter_base(__first2),
+      std::__niter_base(__last2));
+    }
+# 1237 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 3
+  template<typename _II1, typename _II2, typename _Compare>
+    inline bool
+    lexicographical_compare(_II1 __first1, _II1 __last1,
+       _II2 __first2, _II2 __last2, _Compare __comp)
+    {
+
+
+
+                                                       ;
+                                                       ;
+
+      return std::__lexicographical_compare_impl
+ (__first1, __last1, __first2, __last2,
+  __gnu_cxx::__ops::__iter_comp_iter(__comp));
+    }
+
+  template<typename _InputIterator1, typename _InputIterator2,
+    typename _BinaryPredicate>
+    pair<_InputIterator1, _InputIterator2>
+    __mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
+        _InputIterator2 __first2, _BinaryPredicate __binary_pred)
+    {
+      while (__first1 != __last1 && __binary_pred(__first1, __first2))
+        {
+   ++__first1;
+   ++__first2;
+        }
+      return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
+    }
+# 1280 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 3
+  template<typename _InputIterator1, typename _InputIterator2>
+    inline pair<_InputIterator1, _InputIterator2>
+    mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
+      _InputIterator2 __first2)
+    {
+
+
+
+
+
+
+                                                       ;
+
+      return std::__mismatch(__first1, __last1, __first2,
+        __gnu_cxx::__ops::__iter_equal_to_iter());
+    }
+# 1313 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 3
+  template<typename _InputIterator1, typename _InputIterator2,
+    typename _BinaryPredicate>
+    inline pair<_InputIterator1, _InputIterator2>
+    mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
+      _InputIterator2 __first2, _BinaryPredicate __binary_pred)
+    {
+
+
+
+                                                       ;
+
+      return std::__mismatch(__first1, __last1, __first2,
+ __gnu_cxx::__ops::__iter_comp_iter(__binary_pred));
+    }
+# 1414 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_algobase.h" 3
+}
+# 61 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/vector" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/allocator.h" 1 3
+# 46 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/allocator.h" 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/c++allocator.h" 1 3
+# 33 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/c++allocator.h" 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/new_allocator.h" 1 3
+# 33 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/new_allocator.h" 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/new" 1 3
+# 38 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/new" 3
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/exception" 1 3
+# 34 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/exception" 3
+
+#pragma GCC visibility push(default)
+
+
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/atomic_lockfree_defines.h" 1 3
+# 34 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/atomic_lockfree_defines.h" 3
+# 40 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/exception" 2 3
+
+
+extern "C++" {
+
+namespace std
+{
+# 62 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/exception" 3
+  class exception
+  {
+  public:
+    exception() noexcept { }
+    virtual ~exception() noexcept;
+
+
+
+    virtual const char*
+    what() const noexcept;
+  };
+
+
+
+  class bad_exception : public exception
+  {
+  public:
+    bad_exception() noexcept { }
+
+
+
+    virtual ~bad_exception() noexcept;
+
+
+    virtual const char*
+    what() const noexcept;
+  };
+
+
+  typedef void (*terminate_handler) ();
+
+
+  typedef void (*unexpected_handler) ();
+
+
+  terminate_handler set_terminate(terminate_handler) noexcept;
+
+
+
+  terminate_handler get_terminate() noexcept;
+
+
+
+
+  void terminate() noexcept __attribute__ ((__noreturn__));
+
+
+  unexpected_handler set_unexpected(unexpected_handler) noexcept;
+
+
+
+  unexpected_handler get_unexpected() noexcept;
+
+
+
+
+  void unexpected() __attribute__ ((__noreturn__));
+# 131 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/exception" 3
+  bool uncaught_exception() noexcept __attribute__ ((__pure__));
+# 140 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/exception" 3
+}
+
+namespace __gnu_cxx
+{
+# 162 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/exception" 3
+  void __verbose_terminate_handler();
+
+
+}
+
+}
+
+#pragma GCC visibility pop
+
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/exception_ptr.h" 1 3
+# 34 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/exception_ptr.h" 3
+#pragma GCC visibility push(default)
+# 45 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/exception_ptr.h" 3
+extern "C++" {
+
+namespace std
+{
+  class type_info;
+
+
+
+
+
+  namespace __exception_ptr
+  {
+    class exception_ptr;
+  }
+
+  using __exception_ptr::exception_ptr;
+
+
+
+
+
+  exception_ptr current_exception() noexcept;
+
+
+  void rethrow_exception(exception_ptr) __attribute__ ((__noreturn__));
+
+  namespace __exception_ptr
+  {
+    using std::rethrow_exception;
+
+
+
+
+
+    class exception_ptr
+    {
+      void* _M_exception_object;
+
+      explicit exception_ptr(void* __e) noexcept;
+
+      void _M_addref() noexcept;
+      void _M_release() noexcept;
+
+      void *_M_get() const noexcept __attribute__ ((__pure__));
+
+      friend exception_ptr std::current_exception() noexcept;
+      friend void std::rethrow_exception(exception_ptr);
+
+    public:
+      exception_ptr() noexcept;
+
+      exception_ptr(const exception_ptr&) noexcept;
+
+
+      exception_ptr(nullptr_t) noexcept
+      : _M_exception_object(0)
+      { }
+
+      exception_ptr(exception_ptr&& __o) noexcept
+      : _M_exception_object(__o._M_exception_object)
+      { __o._M_exception_object = 0; }
+# 115 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/exception_ptr.h" 3
+      exception_ptr&
+      operator=(const exception_ptr&) noexcept;
+
+
+      exception_ptr&
+      operator=(exception_ptr&& __o) noexcept
+      {
+        exception_ptr(static_cast<exception_ptr&&>(__o)).swap(*this);
+        return *this;
+      }
+
+
+      ~exception_ptr() noexcept;
+
+      void
+      swap(exception_ptr&) noexcept;
+# 142 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/exception_ptr.h" 3
+      explicit operator bool() const
+      { return _M_exception_object; }
+
+
+      friend bool
+      operator==(const exception_ptr&, const exception_ptr&)
+ noexcept __attribute__ ((__pure__));
+
+      const class std::type_info*
+      __cxa_exception_type() const noexcept
+ __attribute__ ((__pure__));
+    };
+
+    bool
+    operator==(const exception_ptr&, const exception_ptr&)
+      noexcept __attribute__ ((__pure__));
+
+    bool
+    operator!=(const exception_ptr&, const exception_ptr&)
+      noexcept __attribute__ ((__pure__));
+
+    inline void
+    swap(exception_ptr& __lhs, exception_ptr& __rhs)
+    { __lhs.swap(__rhs); }
+
+  }
+
+
+
+  template<typename _Ex>
+    exception_ptr
+    make_exception_ptr(_Ex __ex) noexcept
+    {
+
+      try
+ {
+   throw __ex;
+ }
+      catch(...)
+ {
+   return current_exception();
+ }
+
+
+
+    }
+
+
+
+
+
+  template<typename _Ex>
+    exception_ptr
+    copy_exception(_Ex __ex) noexcept __attribute__ ((__deprecated__));
+
+  template<typename _Ex>
+    exception_ptr
+    copy_exception(_Ex __ex) noexcept
+    { return std::make_exception_ptr<_Ex>(__ex); }
+
+
+}
+
+}
+
+#pragma GCC visibility pop
+# 173 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/exception" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/nested_exception.h" 1 3
+# 33 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/nested_exception.h" 3
+#pragma GCC visibility push(default)
+# 48 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/nested_exception.h" 3
+extern "C++" {
+
+namespace std
+{
+
+
+
+
+
+
+  class nested_exception
+  {
+    exception_ptr _M_ptr;
+
+  public:
+    nested_exception() noexcept : _M_ptr(current_exception()) { }
+
+    nested_exception(const nested_exception&) noexcept = default;
+
+    nested_exception& operator=(const nested_exception&) noexcept = default;
+
+    virtual ~nested_exception() noexcept;
+
+    [[noreturn]]
+    void
+    rethrow_nested() const
+    {
+      if (_M_ptr)
+ rethrow_exception(_M_ptr);
+      std::terminate();
+    }
+
+    exception_ptr
+    nested_ptr() const noexcept
+    { return _M_ptr; }
+  };
+
+  template<typename _Except>
+    struct _Nested_exception : public _Except, public nested_exception
+    {
+      explicit _Nested_exception(const _Except& __ex)
+      : _Except(__ex)
+      { }
+
+      explicit _Nested_exception(_Except&& __ex)
+      : _Except(static_cast<_Except&&>(__ex))
+      { }
+    };
+
+
+
+
+  template<typename _Tp>
+    inline void
+    __throw_with_nested_impl(_Tp&& __t, true_type)
+    {
+      using _Up = typename remove_reference<_Tp>::type;
+      throw _Nested_exception<_Up>{std::forward<_Tp>(__t)};
+    }
+
+  template<typename _Tp>
+    inline void
+    __throw_with_nested_impl(_Tp&& __t, false_type)
+    { throw std::forward<_Tp>(__t); }
+
+
+
+  template<typename _Tp>
+    [[noreturn]]
+    inline void
+    throw_with_nested(_Tp&& __t)
+    {
+      using _Up = typename decay<_Tp>::type;
+      using _CopyConstructible
+ = __and_<is_copy_constructible<_Up>, is_move_constructible<_Up>>;
+      static_assert(_CopyConstructible::value,
+   "throw_with_nested argument must be CopyConstructible");
+      using __nest = __and_<is_class<_Up>, __bool_constant<!__is_final(_Up)>,
+       __not_<is_base_of<nested_exception, _Up>>>;
+      std::__throw_with_nested_impl(std::forward<_Tp>(__t), __nest{});
+    }
+
+
+  template<typename _Tp>
+    using __rethrow_if_nested_cond = typename enable_if<
+      __and_<is_polymorphic<_Tp>,
+      __or_<__not_<is_base_of<nested_exception, _Tp>>,
+     is_convertible<_Tp*, nested_exception*>>>::value
+    >::type;
+
+
+  template<typename _Ex>
+    inline __rethrow_if_nested_cond<_Ex>
+    __rethrow_if_nested_impl(const _Ex* __ptr)
+    {
+      if (auto __ne_ptr = dynamic_cast<const nested_exception*>(__ptr))
+ __ne_ptr->rethrow_nested();
+    }
+
+
+  inline void
+  __rethrow_if_nested_impl(const void*)
+  { }
+
+
+  template<typename _Ex>
+    inline void
+    rethrow_if_nested(const _Ex& __ex)
+    { std::__rethrow_if_nested_impl(std::__addressof(__ex)); }
+
+
+}
+
+}
+
+
+
+#pragma GCC visibility pop
+# 174 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/exception" 2 3
+# 41 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/new" 2 3
+
+#pragma GCC visibility push(default)
+
+extern "C++" {
+
+namespace std
+{
+
+
+
+
+
+
+  class bad_alloc : public exception
+  {
+  public:
+    bad_alloc() throw() { }
+
+
+
+    virtual ~bad_alloc() throw();
+
+
+    virtual const char* what() const throw();
+  };
+
+
+  class bad_array_new_length : public bad_alloc
+  {
+  public:
+    bad_array_new_length() throw() { };
+
+
+
+    virtual ~bad_array_new_length() throw();
+
+
+    virtual const char* what() const throw();
+  };
+
+
+  struct nothrow_t
+  {
+
+    explicit nothrow_t() = default;
+
+  };
+
+  extern const nothrow_t nothrow;
+
+
+
+  typedef void (*new_handler)();
+
+
+
+  new_handler set_new_handler(new_handler) throw();
+
+
+
+  new_handler get_new_handler() noexcept;
+
+}
+# 116 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/new" 3
+void* operator new(std::size_t)
+  __attribute__((__externally_visible__));
+void* operator new[](std::size_t)
+  __attribute__((__externally_visible__));
+void operator delete(void*) noexcept
+  __attribute__((__externally_visible__));
+void operator delete[](void*) noexcept
+  __attribute__((__externally_visible__));
+
+
+
+
+
+
+void* operator new(std::size_t, const std::nothrow_t&) noexcept
+  __attribute__((__externally_visible__));
+void* operator new[](std::size_t, const std::nothrow_t&) noexcept
+  __attribute__((__externally_visible__));
+void operator delete(void*, const std::nothrow_t&) noexcept
+  __attribute__((__externally_visible__));
+void operator delete[](void*, const std::nothrow_t&) noexcept
+  __attribute__((__externally_visible__));
+# 146 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/new" 3
+inline void* operator new(std::size_t, void* __p) noexcept
+{ return __p; }
+inline void* operator new[](std::size_t, void* __p) noexcept
+{ return __p; }
+
+
+inline void operator delete (void*, void*) noexcept { }
+inline void operator delete[](void*, void*) noexcept { }
+
+}
+
+#pragma GCC visibility pop
+# 34 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/new_allocator.h" 2 3
+
+
+
+
+
+
+namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
+{
+
+
+  using std::size_t;
+  using std::ptrdiff_t;
+# 57 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/new_allocator.h" 3
+  template<typename _Tp>
+    class new_allocator
+    {
+    public:
+      typedef size_t size_type;
+      typedef ptrdiff_t difference_type;
+      typedef _Tp* pointer;
+      typedef const _Tp* const_pointer;
+      typedef _Tp& reference;
+      typedef const _Tp& const_reference;
+      typedef _Tp value_type;
+
+      template<typename _Tp1>
+        struct rebind
+        { typedef new_allocator<_Tp1> other; };
+
+
+
+
+      typedef std::true_type propagate_on_container_move_assignment;
+
+
+      new_allocator() noexcept { }
+
+      new_allocator(const new_allocator&) noexcept { }
+
+      template<typename _Tp1>
+        new_allocator(const new_allocator<_Tp1>&) noexcept { }
+
+      ~new_allocator() noexcept { }
+
+      pointer
+      address(reference __x) const noexcept
+      { return std::__addressof(__x); }
+
+      const_pointer
+      address(const_reference __x) const noexcept
+      { return std::__addressof(__x); }
+
+
+
+      pointer
+      allocate(size_type __n, const void* = 0)
+      {
+ if (__n > this->max_size())
+   std::__throw_bad_alloc();
+
+ return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
+      }
+
+
+      void
+      deallocate(pointer __p, size_type)
+      { ::operator delete(__p); }
+
+      size_type
+      max_size() const noexcept
+      { return size_t(-1) / sizeof(_Tp); }
+
+
+      template<typename _Up, typename... _Args>
+        void
+        construct(_Up* __p, _Args&&... __args)
+ { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
+
+      template<typename _Up>
+        void
+        destroy(_Up* __p) { __p->~_Up(); }
+# 135 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/new_allocator.h" 3
+    };
+
+  template<typename _Tp>
+    inline bool
+    operator==(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
+    { return true; }
+
+  template<typename _Tp>
+    inline bool
+    operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
+    { return false; }
+
+
+}
+# 34 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/c++allocator.h" 2 3
+
+
+namespace std
+{
+# 47 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/c++allocator.h" 3
+  template<typename _Tp>
+    using __allocator_base = __gnu_cxx::new_allocator<_Tp>;
+}
+# 47 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/allocator.h" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/memoryfwd.h" 1 3
+# 47 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/memoryfwd.h" 3
+
+
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 63 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/memoryfwd.h" 3
+  template<typename>
+    class allocator;
+
+  template<>
+    class allocator<void>;
+
+
+  template<typename, typename>
+    struct uses_allocator;
+
+
+
+
+}
+# 48 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/allocator.h" 2 3
+# 57 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/allocator.h" 3
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 67 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/allocator.h" 3
+  template<>
+    class allocator<void>
+    {
+    public:
+      typedef size_t size_type;
+      typedef ptrdiff_t difference_type;
+      typedef void* pointer;
+      typedef const void* const_pointer;
+      typedef void value_type;
+
+      template<typename _Tp1>
+        struct rebind
+        { typedef allocator<_Tp1> other; };
+
+
+
+
+      typedef true_type propagate_on_container_move_assignment;
+
+      typedef true_type is_always_equal;
+
+      template<typename _Up, typename... _Args>
+ void
+ construct(_Up* __p, _Args&&... __args)
+ { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
+
+      template<typename _Up>
+ void
+ destroy(_Up* __p) { __p->~_Up(); }
+
+    };
+# 107 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/allocator.h" 3
+  template<typename _Tp>
+    class allocator: public __allocator_base<_Tp>
+    {
+   public:
+      typedef size_t size_type;
+      typedef ptrdiff_t difference_type;
+      typedef _Tp* pointer;
+      typedef const _Tp* const_pointer;
+      typedef _Tp& reference;
+      typedef const _Tp& const_reference;
+      typedef _Tp value_type;
+
+      template<typename _Tp1>
+        struct rebind
+        { typedef allocator<_Tp1> other; };
+
+
+
+
+      typedef true_type propagate_on_container_move_assignment;
+
+      typedef true_type is_always_equal;
+
+
+      allocator() throw() { }
+
+      allocator(const allocator& __a) throw()
+      : __allocator_base<_Tp>(__a) { }
+
+      template<typename _Tp1>
+        allocator(const allocator<_Tp1>&) throw() { }
+
+      ~allocator() throw() { }
+
+
+    };
+
+  template<typename _T1, typename _T2>
+    inline bool
+    operator==(const allocator<_T1>&, const allocator<_T2>&)
+    noexcept
+    { return true; }
+
+  template<typename _Tp>
+    inline bool
+    operator==(const allocator<_Tp>&, const allocator<_Tp>&)
+    noexcept
+    { return true; }
+
+  template<typename _T1, typename _T2>
+    inline bool
+    operator!=(const allocator<_T1>&, const allocator<_T2>&)
+    noexcept
+    { return false; }
+
+  template<typename _Tp>
+    inline bool
+    operator!=(const allocator<_Tp>&, const allocator<_Tp>&)
+    noexcept
+    { return false; }
+
+
+
+
+
+
+  extern template class allocator<char>;
+  extern template class allocator<wchar_t>;
+
+
+
+
+
+
+  template<typename _Alloc, bool = __is_empty(_Alloc)>
+    struct __alloc_swap
+    { static void _S_do_it(_Alloc&, _Alloc&) noexcept { } };
+
+  template<typename _Alloc>
+    struct __alloc_swap<_Alloc, false>
+    {
+      static void
+      _S_do_it(_Alloc& __one, _Alloc& __two) noexcept
+      {
+
+ if (__one != __two)
+   swap(__one, __two);
+      }
+    };
+
+
+  template<typename _Alloc, bool = __is_empty(_Alloc)>
+    struct __alloc_neq
+    {
+      static bool
+      _S_do_it(const _Alloc&, const _Alloc&)
+      { return false; }
+    };
+
+  template<typename _Alloc>
+    struct __alloc_neq<_Alloc, false>
+    {
+      static bool
+      _S_do_it(const _Alloc& __one, const _Alloc& __two)
+      { return __one != __two; }
+    };
+
+
+  template<typename _Tp, bool
+    = __or_<is_copy_constructible<typename _Tp::value_type>,
+            is_nothrow_move_constructible<typename _Tp::value_type>>::value>
+    struct __shrink_to_fit_aux
+    { static bool _S_do_it(_Tp&) noexcept { return false; } };
+
+  template<typename _Tp>
+    struct __shrink_to_fit_aux<_Tp, true>
+    {
+      static bool
+      _S_do_it(_Tp& __c) noexcept
+      {
+
+ try
+   {
+     _Tp(__make_move_if_noexcept_iterator(__c.begin()),
+  __make_move_if_noexcept_iterator(__c.end()),
+  __c.get_allocator()).swap(__c);
+     return true;
+   }
+ catch(...)
+   { return false; }
+
+
+
+      }
+    };
+
+
+
+}
+# 62 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/vector" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_construct.h" 1 3
+# 61 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_construct.h" 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/alloc_traits.h" 1 3
+# 33 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/alloc_traits.h" 3
+
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/alloc_traits.h" 1 3
+# 41 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/alloc_traits.h" 3
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+  struct __allocator_traits_base
+  {
+    template<typename _Tp, typename _Up, typename = void>
+      struct __rebind : __replace_first_arg<_Tp, _Up> { };
+
+    template<typename _Tp, typename _Up>
+      struct __rebind<_Tp, _Up,
+        __void_t<typename _Tp::template rebind<_Up>::other>>
+      { using type = typename _Tp::template rebind<_Up>::other; };
+
+  protected:
+    template<typename _Tp>
+      using __pointer = typename _Tp::pointer;
+    template<typename _Tp>
+      using __c_pointer = typename _Tp::const_pointer;
+    template<typename _Tp>
+      using __v_pointer = typename _Tp::void_pointer;
+    template<typename _Tp>
+      using __cv_pointer = typename _Tp::const_void_pointer;
+    template<typename _Tp>
+      using __pocca = typename _Tp::propagate_on_container_copy_assignment;
+    template<typename _Tp>
+      using __pocma = typename _Tp::propagate_on_container_move_assignment;
+    template<typename _Tp>
+      using __pocs = typename _Tp::propagate_on_container_swap;
+    template<typename _Tp>
+      using __equal = typename _Tp::is_always_equal;
+  };
+
+  template<typename _Alloc, typename _Up>
+    using __alloc_rebind
+      = typename __allocator_traits_base::template __rebind<_Alloc, _Up>::type;
+
+
+
+
+
+  template<typename _Alloc>
+    struct allocator_traits : __allocator_traits_base
+    {
+
+      typedef _Alloc allocator_type;
+
+      typedef typename _Alloc::value_type value_type;
+
+
+
+
+
+
+      using pointer = __detected_or_t<value_type*, __pointer, _Alloc>;
+
+    private:
+
+      template<template<typename> class _Func, typename _Tp, typename = void>
+ struct _Ptr
+ {
+   using type = typename pointer_traits<pointer>::template rebind<_Tp>;
+ };
+
+      template<template<typename> class _Func, typename _Tp>
+ struct _Ptr<_Func, _Tp, __void_t<_Func<_Alloc>>>
+ {
+   using type = _Func<_Alloc>;
+ };
+
+
+      template<typename _A2, typename _PtrT, typename = void>
+ struct _Diff
+ { using type = typename pointer_traits<_PtrT>::difference_type; };
+
+      template<typename _A2, typename _PtrT>
+ struct _Diff<_A2, _PtrT, __void_t<typename _A2::difference_type>>
+ { using type = typename _A2::difference_type; };
+
+
+      template<typename _A2, typename _DiffT, typename = void>
+ struct _Size : make_unsigned<_DiffT> { };
+
+      template<typename _A2, typename _DiffT>
+ struct _Size<_A2, _DiffT, __void_t<typename _A2::size_type>>
+ { using type = typename _A2::size_type; };
+
+    public:
+
+
+
+
+
+
+      using const_pointer = typename _Ptr<__c_pointer, const value_type>::type;
+
+
+
+
+
+
+
+      using void_pointer = typename _Ptr<__v_pointer, void>::type;
+
+
+
+
+
+
+
+      using const_void_pointer = typename _Ptr<__cv_pointer, const void>::type;
+
+
+
+
+
+
+
+      using difference_type = typename _Diff<_Alloc, pointer>::type;
+
+
+
+
+
+
+
+      using size_type = typename _Size<_Alloc, difference_type>::type;
+
+
+
+
+
+
+
+      using propagate_on_container_copy_assignment
+ = __detected_or_t<false_type, __pocca, _Alloc>;
+
+
+
+
+
+
+
+      using propagate_on_container_move_assignment
+ = __detected_or_t<false_type, __pocma, _Alloc>;
+
+
+
+
+
+
+
+      using propagate_on_container_swap
+ = __detected_or_t<false_type, __pocs, _Alloc>;
+
+
+
+
+
+
+
+      using is_always_equal
+ = __detected_or_t<typename is_empty<_Alloc>::type, __equal, _Alloc>;
+
+      template<typename _Tp>
+ using rebind_alloc = __alloc_rebind<_Alloc, _Tp>;
+      template<typename _Tp>
+ using rebind_traits = allocator_traits<rebind_alloc<_Tp>>;
+
+    private:
+      template<typename _Alloc2>
+ static auto
+ _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer __hint, int)
+ -> decltype(__a.allocate(__n, __hint))
+ { return __a.allocate(__n, __hint); }
+
+      template<typename _Alloc2>
+ static pointer
+ _S_allocate(_Alloc2& __a, size_type __n, const_void_pointer, ...)
+ { return __a.allocate(__n); }
+
+      template<typename _Tp, typename... _Args>
+ struct __construct_helper
+ {
+   template<typename _Alloc2,
+     typename = decltype(std::declval<_Alloc2*>()->construct(
+    std::declval<_Tp*>(), std::declval<_Args>()...))>
+     static true_type __test(int);
+
+   template<typename>
+     static false_type __test(...);
+
+   using type = decltype(__test<_Alloc>(0));
+ };
+
+      template<typename _Tp, typename... _Args>
+ using __has_construct
+   = typename __construct_helper<_Tp, _Args...>::type;
+
+      template<typename _Tp, typename... _Args>
+ static _Require<__has_construct<_Tp, _Args...>>
+ _S_construct(_Alloc& __a, _Tp* __p, _Args&&... __args)
+ { __a.construct(__p, std::forward<_Args>(__args)...); }
+
+      template<typename _Tp, typename... _Args>
+ static
+ _Require<__and_<__not_<__has_construct<_Tp, _Args...>>,
+          is_constructible<_Tp, _Args...>>>
+ _S_construct(_Alloc&, _Tp* __p, _Args&&... __args)
+ { ::new((void*)__p) _Tp(std::forward<_Args>(__args)...); }
+
+      template<typename _Alloc2, typename _Tp>
+ static auto
+ _S_destroy(_Alloc2& __a, _Tp* __p, int)
+ -> decltype(__a.destroy(__p))
+ { __a.destroy(__p); }
+
+      template<typename _Alloc2, typename _Tp>
+ static void
+ _S_destroy(_Alloc2&, _Tp* __p, ...)
+ { __p->~_Tp(); }
+
+      template<typename _Alloc2>
+ static auto
+ _S_max_size(_Alloc2& __a, int)
+ -> decltype(__a.max_size())
+ { return __a.max_size(); }
+
+      template<typename _Alloc2>
+ static size_type
+ _S_max_size(_Alloc2&, ...)
+ {
+
+
+   return __gnu_cxx::__numeric_traits<size_type>::__max
+     / sizeof(value_type);
+ }
+
+      template<typename _Alloc2>
+ static auto
+ _S_select(_Alloc2& __a, int)
+ -> decltype(__a.select_on_container_copy_construction())
+ { return __a.select_on_container_copy_construction(); }
+
+      template<typename _Alloc2>
+ static _Alloc2
+ _S_select(_Alloc2& __a, ...)
+ { return __a; }
+
+    public:
+# 299 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/alloc_traits.h" 3
+      static pointer
+      allocate(_Alloc& __a, size_type __n)
+      { return __a.allocate(__n); }
+# 314 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/alloc_traits.h" 3
+      static pointer
+      allocate(_Alloc& __a, size_type __n, const_void_pointer __hint)
+      { return _S_allocate(__a, __n, __hint, 0); }
+# 326 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/alloc_traits.h" 3
+      static void
+      deallocate(_Alloc& __a, pointer __p, size_type __n)
+      { __a.deallocate(__p, __n); }
+# 341 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/alloc_traits.h" 3
+      template<typename _Tp, typename... _Args>
+ static auto construct(_Alloc& __a, _Tp* __p, _Args&&... __args)
+ -> decltype(_S_construct(__a, __p, std::forward<_Args>(__args)...))
+ { _S_construct(__a, __p, std::forward<_Args>(__args)...); }
+# 354 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/alloc_traits.h" 3
+      template<typename _Tp>
+ static void destroy(_Alloc& __a, _Tp* __p)
+ { _S_destroy(__a, __p, 0); }
+# 366 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/alloc_traits.h" 3
+      static size_type max_size(const _Alloc& __a) noexcept
+      { return _S_max_size(__a, 0); }
+# 377 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/alloc_traits.h" 3
+      static _Alloc
+      select_on_container_copy_construction(const _Alloc& __rhs)
+      { return _S_select(__rhs, 0); }
+    };
+
+
+  template<typename _Tp>
+    struct allocator_traits<allocator<_Tp>>
+    {
+
+      using allocator_type = allocator<_Tp>;
+
+      using value_type = _Tp;
+
+
+      using pointer = _Tp*;
+
+
+      using const_pointer = const _Tp*;
+
+
+      using void_pointer = void*;
+
+
+      using const_void_pointer = const void*;
+
+
+      using difference_type = std::ptrdiff_t;
+
+
+      using size_type = std::size_t;
+
+
+      using propagate_on_container_copy_assignment = false_type;
+
+
+      using propagate_on_container_move_assignment = true_type;
+
+
+      using propagate_on_container_swap = false_type;
+
+
+      using is_always_equal = true_type;
+
+      template<typename _Up>
+ using rebind_alloc = allocator<_Up>;
+
+      template<typename _Up>
+ using rebind_traits = allocator_traits<allocator<_Up>>;
+# 434 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/alloc_traits.h" 3
+      static pointer
+      allocate(allocator_type& __a, size_type __n)
+      { return __a.allocate(__n); }
+# 448 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/alloc_traits.h" 3
+      static pointer
+      allocate(allocator_type& __a, size_type __n, const_void_pointer __hint)
+      { return __a.allocate(__n, __hint); }
+# 460 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/alloc_traits.h" 3
+      static void
+      deallocate(allocator_type& __a, pointer __p, size_type __n)
+      { __a.deallocate(__p, __n); }
+# 472 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/alloc_traits.h" 3
+      template<typename _Up, typename... _Args>
+ static void
+ construct(allocator_type& __a, _Up* __p, _Args&&... __args)
+ { __a.construct(__p, std::forward<_Args>(__args)...); }
+# 484 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/alloc_traits.h" 3
+      template<typename _Up>
+ static void
+ destroy(allocator_type& __a, _Up* __p)
+ { __a.destroy(__p); }
+
+
+
+
+
+
+      static size_type
+      max_size(const allocator_type& __a) noexcept
+      { return __a.max_size(); }
+
+
+
+
+
+
+      static allocator_type
+      select_on_container_copy_construction(const allocator_type& __rhs)
+      { return __rhs; }
+    };
+
+
+  template<typename _Alloc>
+    inline void
+    __do_alloc_on_copy(_Alloc& __one, const _Alloc& __two, true_type)
+    { __one = __two; }
+
+  template<typename _Alloc>
+    inline void
+    __do_alloc_on_copy(_Alloc&, const _Alloc&, false_type)
+    { }
+
+  template<typename _Alloc>
+    inline void __alloc_on_copy(_Alloc& __one, const _Alloc& __two)
+    {
+      typedef allocator_traits<_Alloc> __traits;
+      typedef typename __traits::propagate_on_container_copy_assignment __pocca;
+      __do_alloc_on_copy(__one, __two, __pocca());
+    }
+
+  template<typename _Alloc>
+    inline _Alloc __alloc_on_copy(const _Alloc& __a)
+    {
+      typedef allocator_traits<_Alloc> __traits;
+      return __traits::select_on_container_copy_construction(__a);
+    }
+
+  template<typename _Alloc>
+    inline void __do_alloc_on_move(_Alloc& __one, _Alloc& __two, true_type)
+    { __one = std::move(__two); }
+
+  template<typename _Alloc>
+    inline void __do_alloc_on_move(_Alloc&, _Alloc&, false_type)
+    { }
+
+  template<typename _Alloc>
+    inline void __alloc_on_move(_Alloc& __one, _Alloc& __two)
+    {
+      typedef allocator_traits<_Alloc> __traits;
+      typedef typename __traits::propagate_on_container_move_assignment __pocma;
+      __do_alloc_on_move(__one, __two, __pocma());
+    }
+
+  template<typename _Alloc>
+    inline void __do_alloc_on_swap(_Alloc& __one, _Alloc& __two, true_type)
+    {
+      using std::swap;
+      swap(__one, __two);
+    }
+
+  template<typename _Alloc>
+    inline void __do_alloc_on_swap(_Alloc&, _Alloc&, false_type)
+    { }
+
+  template<typename _Alloc>
+    inline void __alloc_on_swap(_Alloc& __one, _Alloc& __two)
+    {
+      typedef allocator_traits<_Alloc> __traits;
+      typedef typename __traits::propagate_on_container_swap __pocs;
+      __do_alloc_on_swap(__one, __two, __pocs());
+    }
+
+  template<typename _Alloc>
+    class __is_copy_insertable_impl
+    {
+      typedef allocator_traits<_Alloc> _Traits;
+
+      template<typename _Up, typename
+        = decltype(_Traits::construct(std::declval<_Alloc&>(),
+          std::declval<_Up*>(),
+          std::declval<const _Up&>()))>
+ static true_type
+ _M_select(int);
+
+      template<typename _Up>
+ static false_type
+ _M_select(...);
+
+    public:
+      typedef decltype(_M_select<typename _Alloc::value_type>(0)) type;
+    };
+
+
+  template<typename _Alloc>
+    struct __is_copy_insertable
+    : __is_copy_insertable_impl<_Alloc>::type
+    { };
+
+
+  template<typename _Tp>
+    struct __is_copy_insertable<allocator<_Tp>>
+    : is_copy_constructible<_Tp>
+    { };
+
+
+}
+# 37 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/alloc_traits.h" 2 3
+
+
+
+
+namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
+{
+
+
+
+
+
+
+template<typename _Alloc>
+  struct __alloc_traits
+
+  : std::allocator_traits<_Alloc>
+
+  {
+    typedef _Alloc allocator_type;
+
+    typedef std::allocator_traits<_Alloc> _Base_type;
+    typedef typename _Base_type::value_type value_type;
+    typedef typename _Base_type::pointer pointer;
+    typedef typename _Base_type::const_pointer const_pointer;
+    typedef typename _Base_type::size_type size_type;
+    typedef typename _Base_type::difference_type difference_type;
+
+    typedef value_type& reference;
+    typedef const value_type& const_reference;
+    using _Base_type::allocate;
+    using _Base_type::deallocate;
+    using _Base_type::construct;
+    using _Base_type::destroy;
+    using _Base_type::max_size;
+
+  private:
+    template<typename _Ptr>
+      using __is_custom_pointer
+ = std::__and_<std::is_same<pointer, _Ptr>,
+        std::__not_<std::is_pointer<_Ptr>>>;
+
+  public:
+
+    template<typename _Ptr, typename... _Args>
+      static typename std::enable_if<__is_custom_pointer<_Ptr>::value>::type
+      construct(_Alloc& __a, _Ptr __p, _Args&&... __args)
+      {
+ _Base_type::construct(__a, std::addressof(*__p),
+         std::forward<_Args>(__args)...);
+      }
+
+
+    template<typename _Ptr>
+      static typename std::enable_if<__is_custom_pointer<_Ptr>::value>::type
+      destroy(_Alloc& __a, _Ptr __p)
+      { _Base_type::destroy(__a, std::addressof(*__p)); }
+
+    static _Alloc _S_select_on_copy(const _Alloc& __a)
+    { return _Base_type::select_on_container_copy_construction(__a); }
+
+    static void _S_on_swap(_Alloc& __a, _Alloc& __b)
+    { std::__alloc_on_swap(__a, __b); }
+
+    static constexpr bool _S_propagate_on_copy_assign()
+    { return _Base_type::propagate_on_container_copy_assignment::value; }
+
+    static constexpr bool _S_propagate_on_move_assign()
+    { return _Base_type::propagate_on_container_move_assignment::value; }
+
+    static constexpr bool _S_propagate_on_swap()
+    { return _Base_type::propagate_on_container_swap::value; }
+
+    static constexpr bool _S_always_equal()
+    { return _Base_type::is_always_equal::value; }
+
+    static constexpr bool _S_nothrow_move()
+    { return _S_propagate_on_move_assign() || _S_always_equal(); }
+
+    template<typename _Tp>
+      struct rebind
+      { typedef typename _Base_type::template rebind_alloc<_Tp> other; };
+# 158 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/alloc_traits.h" 3
+  };
+
+
+}
+# 62 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_construct.h" 2 3
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+
+
+
+
+
+  template<typename _T1, typename... _Args>
+    inline void
+    _Construct(_T1* __p, _Args&&... __args)
+    { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
+# 90 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_construct.h" 3
+  template<typename _Tp>
+    inline void
+    _Destroy(_Tp* __pointer)
+    { __pointer->~_Tp(); }
+
+  template<bool>
+    struct _Destroy_aux
+    {
+      template<typename _ForwardIterator>
+        static void
+        __destroy(_ForwardIterator __first, _ForwardIterator __last)
+ {
+   for (; __first != __last; ++__first)
+     std::_Destroy(std::__addressof(*__first));
+ }
+    };
+
+  template<>
+    struct _Destroy_aux<true>
+    {
+      template<typename _ForwardIterator>
+        static void
+        __destroy(_ForwardIterator, _ForwardIterator) { }
+    };
+
+
+
+
+
+
+  template<typename _ForwardIterator>
+    inline void
+    _Destroy(_ForwardIterator __first, _ForwardIterator __last)
+    {
+      typedef typename iterator_traits<_ForwardIterator>::value_type
+                       _Value_type;
+      std::_Destroy_aux<__has_trivial_destructor(_Value_type)>::
+ __destroy(__first, __last);
+    }
+
+
+
+
+
+
+
+  template<typename _ForwardIterator, typename _Allocator>
+    void
+    _Destroy(_ForwardIterator __first, _ForwardIterator __last,
+      _Allocator& __alloc)
+    {
+      typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
+      for (; __first != __last; ++__first)
+ __traits::destroy(__alloc, std::__addressof(*__first));
+    }
+
+  template<typename _ForwardIterator, typename _Tp>
+    inline void
+    _Destroy(_ForwardIterator __first, _ForwardIterator __last,
+      allocator<_Tp>&)
+    {
+      _Destroy(__first, __last);
+    }
+
+
+}
+# 63 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/vector" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_uninitialized.h" 1 3
+# 59 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_uninitialized.h" 3
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+  template<bool _TrivialValueTypes>
+    struct __uninitialized_copy
+    {
+      template<typename _InputIterator, typename _ForwardIterator>
+        static _ForwardIterator
+        __uninit_copy(_InputIterator __first, _InputIterator __last,
+        _ForwardIterator __result)
+        {
+   _ForwardIterator __cur = __result;
+   try
+     {
+       for (; __first != __last; ++__first, (void)++__cur)
+  std::_Construct(std::__addressof(*__cur), *__first);
+       return __cur;
+     }
+   catch(...)
+     {
+       std::_Destroy(__result, __cur);
+       throw;
+     }
+ }
+    };
+
+  template<>
+    struct __uninitialized_copy<true>
+    {
+      template<typename _InputIterator, typename _ForwardIterator>
+        static _ForwardIterator
+        __uninit_copy(_InputIterator __first, _InputIterator __last,
+        _ForwardIterator __result)
+        { return std::copy(__first, __last, __result); }
+    };
+# 105 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_uninitialized.h" 3
+  template<typename _InputIterator, typename _ForwardIterator>
+    inline _ForwardIterator
+    uninitialized_copy(_InputIterator __first, _InputIterator __last,
+         _ForwardIterator __result)
+    {
+      typedef typename iterator_traits<_InputIterator>::value_type
+ _ValueType1;
+      typedef typename iterator_traits<_ForwardIterator>::value_type
+ _ValueType2;
+
+
+
+
+      typedef typename iterator_traits<_InputIterator>::reference _RefType1;
+      typedef typename iterator_traits<_ForwardIterator>::reference _RefType2;
+      const bool __assignable = is_assignable<_RefType2, _RefType1>::value;
+
+
+      return std::__uninitialized_copy<__is_trivial(_ValueType1)
+           && __is_trivial(_ValueType2)
+           && __assignable>::
+ __uninit_copy(__first, __last, __result);
+    }
+
+
+  template<bool _TrivialValueType>
+    struct __uninitialized_fill
+    {
+      template<typename _ForwardIterator, typename _Tp>
+        static void
+        __uninit_fill(_ForwardIterator __first, _ForwardIterator __last,
+        const _Tp& __x)
+        {
+   _ForwardIterator __cur = __first;
+   try
+     {
+       for (; __cur != __last; ++__cur)
+  std::_Construct(std::__addressof(*__cur), __x);
+     }
+   catch(...)
+     {
+       std::_Destroy(__first, __cur);
+       throw;
+     }
+ }
+    };
+
+  template<>
+    struct __uninitialized_fill<true>
+    {
+      template<typename _ForwardIterator, typename _Tp>
+        static void
+        __uninit_fill(_ForwardIterator __first, _ForwardIterator __last,
+        const _Tp& __x)
+        { std::fill(__first, __last, __x); }
+    };
+# 171 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_uninitialized.h" 3
+  template<typename _ForwardIterator, typename _Tp>
+    inline void
+    uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last,
+         const _Tp& __x)
+    {
+      typedef typename iterator_traits<_ForwardIterator>::value_type
+ _ValueType;
+
+
+
+
+      const bool __assignable = is_copy_assignable<_ValueType>::value;
+
+
+      std::__uninitialized_fill<__is_trivial(_ValueType) && __assignable>::
+ __uninit_fill(__first, __last, __x);
+    }
+
+
+  template<bool _TrivialValueType>
+    struct __uninitialized_fill_n
+    {
+      template<typename _ForwardIterator, typename _Size, typename _Tp>
+        static _ForwardIterator
+        __uninit_fill_n(_ForwardIterator __first, _Size __n,
+   const _Tp& __x)
+        {
+   _ForwardIterator __cur = __first;
+   try
+     {
+       for (; __n > 0; --__n, ++__cur)
+  std::_Construct(std::__addressof(*__cur), __x);
+       return __cur;
+     }
+   catch(...)
+     {
+       std::_Destroy(__first, __cur);
+       throw;
+     }
+ }
+    };
+
+  template<>
+    struct __uninitialized_fill_n<true>
+    {
+      template<typename _ForwardIterator, typename _Size, typename _Tp>
+        static _ForwardIterator
+        __uninit_fill_n(_ForwardIterator __first, _Size __n,
+   const _Tp& __x)
+        { return std::fill_n(__first, __n, __x); }
+    };
+# 234 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_uninitialized.h" 3
+  template<typename _ForwardIterator, typename _Size, typename _Tp>
+    inline _ForwardIterator
+    uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x)
+    {
+      typedef typename iterator_traits<_ForwardIterator>::value_type
+ _ValueType;
+
+
+
+
+      const bool __assignable = is_copy_assignable<_ValueType>::value;
+
+      return __uninitialized_fill_n<__is_trivial(_ValueType) && __assignable>::
+ __uninit_fill_n(__first, __n, __x);
+    }
+
+
+
+
+
+
+
+  template<typename _InputIterator, typename _ForwardIterator,
+    typename _Allocator>
+    _ForwardIterator
+    __uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
+      _ForwardIterator __result, _Allocator& __alloc)
+    {
+      _ForwardIterator __cur = __result;
+      try
+ {
+   typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
+   for (; __first != __last; ++__first, (void)++__cur)
+     __traits::construct(__alloc, std::__addressof(*__cur), *__first);
+   return __cur;
+ }
+      catch(...)
+ {
+   std::_Destroy(__result, __cur, __alloc);
+   throw;
+ }
+    }
+
+  template<typename _InputIterator, typename _ForwardIterator, typename _Tp>
+    inline _ForwardIterator
+    __uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
+      _ForwardIterator __result, allocator<_Tp>&)
+    { return std::uninitialized_copy(__first, __last, __result); }
+
+  template<typename _InputIterator, typename _ForwardIterator,
+    typename _Allocator>
+    inline _ForwardIterator
+    __uninitialized_move_a(_InputIterator __first, _InputIterator __last,
+      _ForwardIterator __result, _Allocator& __alloc)
+    {
+      return std::__uninitialized_copy_a(std::make_move_iterator(__first),
+      std::make_move_iterator(__last),
+      __result, __alloc);
+    }
+
+  template<typename _InputIterator, typename _ForwardIterator,
+    typename _Allocator>
+    inline _ForwardIterator
+    __uninitialized_move_if_noexcept_a(_InputIterator __first,
+           _InputIterator __last,
+           _ForwardIterator __result,
+           _Allocator& __alloc)
+    {
+      return std::__uninitialized_copy_a
+ (std::__make_move_if_noexcept_iterator(__first),
+  std::__make_move_if_noexcept_iterator(__last), __result, __alloc);
+    }
+
+  template<typename _ForwardIterator, typename _Tp, typename _Allocator>
+    void
+    __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last,
+      const _Tp& __x, _Allocator& __alloc)
+    {
+      _ForwardIterator __cur = __first;
+      try
+ {
+   typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
+   for (; __cur != __last; ++__cur)
+     __traits::construct(__alloc, std::__addressof(*__cur), __x);
+ }
+      catch(...)
+ {
+   std::_Destroy(__first, __cur, __alloc);
+   throw;
+ }
+    }
+
+  template<typename _ForwardIterator, typename _Tp, typename _Tp2>
+    inline void
+    __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last,
+      const _Tp& __x, allocator<_Tp2>&)
+    { std::uninitialized_fill(__first, __last, __x); }
+
+  template<typename _ForwardIterator, typename _Size, typename _Tp,
+    typename _Allocator>
+    _ForwardIterator
+    __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n,
+        const _Tp& __x, _Allocator& __alloc)
+    {
+      _ForwardIterator __cur = __first;
+      try
+ {
+   typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
+   for (; __n > 0; --__n, ++__cur)
+     __traits::construct(__alloc, std::__addressof(*__cur), __x);
+   return __cur;
+ }
+      catch(...)
+ {
+   std::_Destroy(__first, __cur, __alloc);
+   throw;
+ }
+    }
+
+  template<typename _ForwardIterator, typename _Size, typename _Tp,
+    typename _Tp2>
+    inline _ForwardIterator
+    __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n,
+        const _Tp& __x, allocator<_Tp2>&)
+    { return std::uninitialized_fill_n(__first, __n, __x); }
+# 370 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_uninitialized.h" 3
+  template<typename _InputIterator1, typename _InputIterator2,
+    typename _ForwardIterator, typename _Allocator>
+    inline _ForwardIterator
+    __uninitialized_copy_move(_InputIterator1 __first1,
+         _InputIterator1 __last1,
+         _InputIterator2 __first2,
+         _InputIterator2 __last2,
+         _ForwardIterator __result,
+         _Allocator& __alloc)
+    {
+      _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1,
+          __result,
+          __alloc);
+      try
+ {
+   return std::__uninitialized_move_a(__first2, __last2, __mid, __alloc);
+ }
+      catch(...)
+ {
+   std::_Destroy(__result, __mid, __alloc);
+   throw;
+ }
+    }
+
+
+
+
+
+  template<typename _InputIterator1, typename _InputIterator2,
+    typename _ForwardIterator, typename _Allocator>
+    inline _ForwardIterator
+    __uninitialized_move_copy(_InputIterator1 __first1,
+         _InputIterator1 __last1,
+         _InputIterator2 __first2,
+         _InputIterator2 __last2,
+         _ForwardIterator __result,
+         _Allocator& __alloc)
+    {
+      _ForwardIterator __mid = std::__uninitialized_move_a(__first1, __last1,
+          __result,
+          __alloc);
+      try
+ {
+   return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc);
+ }
+      catch(...)
+ {
+   std::_Destroy(__result, __mid, __alloc);
+   throw;
+ }
+    }
+
+
+
+
+  template<typename _ForwardIterator, typename _Tp, typename _InputIterator,
+    typename _Allocator>
+    inline _ForwardIterator
+    __uninitialized_fill_move(_ForwardIterator __result, _ForwardIterator __mid,
+         const _Tp& __x, _InputIterator __first,
+         _InputIterator __last, _Allocator& __alloc)
+    {
+      std::__uninitialized_fill_a(__result, __mid, __x, __alloc);
+      try
+ {
+   return std::__uninitialized_move_a(__first, __last, __mid, __alloc);
+ }
+      catch(...)
+ {
+   std::_Destroy(__result, __mid, __alloc);
+   throw;
+ }
+    }
+
+
+
+
+  template<typename _InputIterator, typename _ForwardIterator, typename _Tp,
+    typename _Allocator>
+    inline void
+    __uninitialized_move_fill(_InputIterator __first1, _InputIterator __last1,
+         _ForwardIterator __first2,
+         _ForwardIterator __last2, const _Tp& __x,
+         _Allocator& __alloc)
+    {
+      _ForwardIterator __mid2 = std::__uninitialized_move_a(__first1, __last1,
+           __first2,
+           __alloc);
+      try
+ {
+   std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc);
+ }
+      catch(...)
+ {
+   std::_Destroy(__first2, __mid2, __alloc);
+   throw;
+ }
+    }
+
+
+
+
+
+  template<bool _TrivialValueType>
+    struct __uninitialized_default_1
+    {
+      template<typename _ForwardIterator>
+        static void
+        __uninit_default(_ForwardIterator __first, _ForwardIterator __last)
+        {
+   _ForwardIterator __cur = __first;
+   try
+     {
+       for (; __cur != __last; ++__cur)
+  std::_Construct(std::__addressof(*__cur));
+     }
+   catch(...)
+     {
+       std::_Destroy(__first, __cur);
+       throw;
+     }
+ }
+    };
+
+  template<>
+    struct __uninitialized_default_1<true>
+    {
+      template<typename _ForwardIterator>
+        static void
+        __uninit_default(_ForwardIterator __first, _ForwardIterator __last)
+        {
+   typedef typename iterator_traits<_ForwardIterator>::value_type
+     _ValueType;
+
+   std::fill(__first, __last, _ValueType());
+ }
+    };
+
+  template<bool _TrivialValueType>
+    struct __uninitialized_default_n_1
+    {
+      template<typename _ForwardIterator, typename _Size>
+        static _ForwardIterator
+        __uninit_default_n(_ForwardIterator __first, _Size __n)
+        {
+   _ForwardIterator __cur = __first;
+   try
+     {
+       for (; __n > 0; --__n, ++__cur)
+  std::_Construct(std::__addressof(*__cur));
+       return __cur;
+     }
+   catch(...)
+     {
+       std::_Destroy(__first, __cur);
+       throw;
+     }
+ }
+    };
+
+  template<>
+    struct __uninitialized_default_n_1<true>
+    {
+      template<typename _ForwardIterator, typename _Size>
+        static _ForwardIterator
+        __uninit_default_n(_ForwardIterator __first, _Size __n)
+        {
+   typedef typename iterator_traits<_ForwardIterator>::value_type
+     _ValueType;
+
+   return std::fill_n(__first, __n, _ValueType());
+ }
+    };
+
+
+
+
+  template<typename _ForwardIterator>
+    inline void
+    __uninitialized_default(_ForwardIterator __first,
+       _ForwardIterator __last)
+    {
+      typedef typename iterator_traits<_ForwardIterator>::value_type
+ _ValueType;
+
+      const bool __assignable = is_copy_assignable<_ValueType>::value;
+
+      std::__uninitialized_default_1<__is_trivial(_ValueType)
+         && __assignable>::
+ __uninit_default(__first, __last);
+    }
+
+
+
+  template<typename _ForwardIterator, typename _Size>
+    inline _ForwardIterator
+    __uninitialized_default_n(_ForwardIterator __first, _Size __n)
+    {
+      typedef typename iterator_traits<_ForwardIterator>::value_type
+ _ValueType;
+
+      const bool __assignable = is_copy_assignable<_ValueType>::value;
+
+      return __uninitialized_default_n_1<__is_trivial(_ValueType)
+           && __assignable>::
+ __uninit_default_n(__first, __n);
+    }
+
+
+
+
+
+  template<typename _ForwardIterator, typename _Allocator>
+    void
+    __uninitialized_default_a(_ForwardIterator __first,
+         _ForwardIterator __last,
+         _Allocator& __alloc)
+    {
+      _ForwardIterator __cur = __first;
+      try
+ {
+   typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
+   for (; __cur != __last; ++__cur)
+     __traits::construct(__alloc, std::__addressof(*__cur));
+ }
+      catch(...)
+ {
+   std::_Destroy(__first, __cur, __alloc);
+   throw;
+ }
+    }
+
+  template<typename _ForwardIterator, typename _Tp>
+    inline void
+    __uninitialized_default_a(_ForwardIterator __first,
+         _ForwardIterator __last,
+         allocator<_Tp>&)
+    { std::__uninitialized_default(__first, __last); }
+
+
+
+
+
+  template<typename _ForwardIterator, typename _Size, typename _Allocator>
+    _ForwardIterator
+    __uninitialized_default_n_a(_ForwardIterator __first, _Size __n,
+    _Allocator& __alloc)
+    {
+      _ForwardIterator __cur = __first;
+      try
+ {
+   typedef __gnu_cxx::__alloc_traits<_Allocator> __traits;
+   for (; __n > 0; --__n, ++__cur)
+     __traits::construct(__alloc, std::__addressof(*__cur));
+   return __cur;
+ }
+      catch(...)
+ {
+   std::_Destroy(__first, __cur, __alloc);
+   throw;
+ }
+    }
+
+  template<typename _ForwardIterator, typename _Size, typename _Tp>
+    inline _ForwardIterator
+    __uninitialized_default_n_a(_ForwardIterator __first, _Size __n,
+    allocator<_Tp>&)
+    { return std::__uninitialized_default_n(__first, __n); }
+
+
+  template<typename _InputIterator, typename _Size,
+    typename _ForwardIterator>
+    _ForwardIterator
+    __uninitialized_copy_n(_InputIterator __first, _Size __n,
+      _ForwardIterator __result, input_iterator_tag)
+    {
+      _ForwardIterator __cur = __result;
+      try
+ {
+   for (; __n > 0; --__n, ++__first, ++__cur)
+     std::_Construct(std::__addressof(*__cur), *__first);
+   return __cur;
+ }
+      catch(...)
+ {
+   std::_Destroy(__result, __cur);
+   throw;
+ }
+    }
+
+  template<typename _RandomAccessIterator, typename _Size,
+    typename _ForwardIterator>
+    inline _ForwardIterator
+    __uninitialized_copy_n(_RandomAccessIterator __first, _Size __n,
+      _ForwardIterator __result,
+      random_access_iterator_tag)
+    { return std::uninitialized_copy(__first, __first + __n, __result); }
+# 677 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_uninitialized.h" 3
+  template<typename _InputIterator, typename _Size, typename _ForwardIterator>
+    inline _ForwardIterator
+    uninitialized_copy_n(_InputIterator __first, _Size __n,
+    _ForwardIterator __result)
+    { return std::__uninitialized_copy_n(__first, __n, __result,
+      std::__iterator_category(__first)); }
+
+
+
+}
+# 64 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/vector" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 1 3
+# 63 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/initializer_list" 1 3
+# 34 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/initializer_list" 3
+
+
+
+
+
+#pragma GCC visibility push(default)
+
+
+
+namespace std
+{
+
+  template<class _E>
+    class initializer_list
+    {
+    public:
+      typedef _E value_type;
+      typedef const _E& reference;
+      typedef const _E& const_reference;
+      typedef size_t size_type;
+      typedef const _E* iterator;
+      typedef const _E* const_iterator;
+
+    private:
+      iterator _M_array;
+      size_type _M_len;
+
+
+      constexpr initializer_list(const_iterator __a, size_type __l)
+      : _M_array(__a), _M_len(__l) { }
+
+    public:
+      constexpr initializer_list() noexcept
+      : _M_array(0), _M_len(0) { }
+
+
+      constexpr size_type
+      size() const noexcept { return _M_len; }
+
+
+      constexpr const_iterator
+      begin() const noexcept { return _M_array; }
+
+
+      constexpr const_iterator
+      end() const noexcept { return begin() + size(); }
+    };
+
+
+
+
+
+
+  template<class _Tp>
+    constexpr const _Tp*
+    begin(initializer_list<_Tp> __ils) noexcept
+    { return __ils.begin(); }
+
+
+
+
+
+
+  template<class _Tp>
+    constexpr const _Tp*
+    end(initializer_list<_Tp> __ils) noexcept
+    { return __ils.end(); }
+}
+
+#pragma GCC visibility pop
+# 64 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 2 3
+
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+
+  template<typename _Tp, typename _Alloc>
+    struct _Vector_base
+    {
+      typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template
+        rebind<_Tp>::other _Tp_alloc_type;
+      typedef typename __gnu_cxx::__alloc_traits<_Tp_alloc_type>::pointer
+        pointer;
+
+      struct _Vector_impl
+      : public _Tp_alloc_type
+      {
+ pointer _M_start;
+ pointer _M_finish;
+ pointer _M_end_of_storage;
+
+ _Vector_impl()
+ : _Tp_alloc_type(), _M_start(), _M_finish(), _M_end_of_storage()
+ { }
+
+ _Vector_impl(_Tp_alloc_type const& __a) noexcept
+ : _Tp_alloc_type(__a), _M_start(), _M_finish(), _M_end_of_storage()
+ { }
+
+
+ _Vector_impl(_Tp_alloc_type&& __a) noexcept
+ : _Tp_alloc_type(std::move(__a)),
+   _M_start(), _M_finish(), _M_end_of_storage()
+ { }
+
+
+ void _M_swap_data(_Vector_impl& __x) noexcept
+ {
+   std::swap(_M_start, __x._M_start);
+   std::swap(_M_finish, __x._M_finish);
+   std::swap(_M_end_of_storage, __x._M_end_of_storage);
+ }
+      };
+
+    public:
+      typedef _Alloc allocator_type;
+
+      _Tp_alloc_type&
+      _M_get_Tp_allocator() noexcept
+      { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); }
+
+      const _Tp_alloc_type&
+      _M_get_Tp_allocator() const noexcept
+      { return *static_cast<const _Tp_alloc_type*>(&this->_M_impl); }
+
+      allocator_type
+      get_allocator() const noexcept
+      { return allocator_type(_M_get_Tp_allocator()); }
+
+      _Vector_base()
+      : _M_impl() { }
+
+      _Vector_base(const allocator_type& __a) noexcept
+      : _M_impl(__a) { }
+
+      _Vector_base(size_t __n)
+      : _M_impl()
+      { _M_create_storage(__n); }
+
+      _Vector_base(size_t __n, const allocator_type& __a)
+      : _M_impl(__a)
+      { _M_create_storage(__n); }
+
+
+      _Vector_base(_Tp_alloc_type&& __a) noexcept
+      : _M_impl(std::move(__a)) { }
+
+      _Vector_base(_Vector_base&& __x) noexcept
+      : _M_impl(std::move(__x._M_get_Tp_allocator()))
+      { this->_M_impl._M_swap_data(__x._M_impl); }
+
+      _Vector_base(_Vector_base&& __x, const allocator_type& __a)
+      : _M_impl(__a)
+      {
+ if (__x.get_allocator() == __a)
+   this->_M_impl._M_swap_data(__x._M_impl);
+ else
+   {
+     size_t __n = __x._M_impl._M_finish - __x._M_impl._M_start;
+     _M_create_storage(__n);
+   }
+      }
+
+
+      ~_Vector_base() noexcept
+      { _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage
+        - this->_M_impl._M_start); }
+
+    public:
+      _Vector_impl _M_impl;
+
+      pointer
+      _M_allocate(size_t __n)
+      {
+ typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr;
+ return __n != 0 ? _Tr::allocate(_M_impl, __n) : pointer();
+      }
+
+      void
+      _M_deallocate(pointer __p, size_t __n)
+      {
+ typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr;
+ if (__p)
+   _Tr::deallocate(_M_impl, __p, __n);
+      }
+
+    private:
+      void
+      _M_create_storage(size_t __n)
+      {
+ this->_M_impl._M_start = this->_M_allocate(__n);
+ this->_M_impl._M_finish = this->_M_impl._M_start;
+ this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n;
+      }
+    };
+# 213 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+  template<typename _Tp, typename _Alloc = std::allocator<_Tp> >
+    class vector : protected _Vector_base<_Tp, _Alloc>
+    {
+
+      typedef typename _Alloc::value_type _Alloc_value_type;
+
+
+
+
+
+      typedef _Vector_base<_Tp, _Alloc> _Base;
+      typedef typename _Base::_Tp_alloc_type _Tp_alloc_type;
+      typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Alloc_traits;
+
+    public:
+      typedef _Tp value_type;
+      typedef typename _Base::pointer pointer;
+      typedef typename _Alloc_traits::const_pointer const_pointer;
+      typedef typename _Alloc_traits::reference reference;
+      typedef typename _Alloc_traits::const_reference const_reference;
+      typedef __gnu_cxx::__normal_iterator<pointer, vector> iterator;
+      typedef __gnu_cxx::__normal_iterator<const_pointer, vector>
+      const_iterator;
+      typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
+      typedef std::reverse_iterator<iterator> reverse_iterator;
+      typedef size_t size_type;
+      typedef ptrdiff_t difference_type;
+      typedef _Alloc allocator_type;
+
+    protected:
+      using _Base::_M_allocate;
+      using _Base::_M_deallocate;
+      using _Base::_M_impl;
+      using _Base::_M_get_Tp_allocator;
+
+    public:
+
+
+
+
+
+
+      vector()
+
+      noexcept(is_nothrow_default_constructible<_Alloc>::value)
+
+      : _Base() { }
+
+
+
+
+
+      explicit
+      vector(const allocator_type& __a) noexcept
+      : _Base(__a) { }
+# 278 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      explicit
+      vector(size_type __n, const allocator_type& __a = allocator_type())
+      : _Base(__n, __a)
+      { _M_default_initialize(__n); }
+# 291 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      vector(size_type __n, const value_type& __value,
+      const allocator_type& __a = allocator_type())
+      : _Base(__n, __a)
+      { _M_fill_initialize(__n, __value); }
+# 320 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      vector(const vector& __x)
+      : _Base(__x.size(),
+        _Alloc_traits::_S_select_on_copy(__x._M_get_Tp_allocator()))
+      { this->_M_impl._M_finish =
+   std::__uninitialized_copy_a(__x.begin(), __x.end(),
+          this->_M_impl._M_start,
+          _M_get_Tp_allocator());
+      }
+# 337 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      vector(vector&& __x) noexcept
+      : _Base(std::move(__x)) { }
+
+
+      vector(const vector& __x, const allocator_type& __a)
+      : _Base(__x.size(), __a)
+      { this->_M_impl._M_finish =
+   std::__uninitialized_copy_a(__x.begin(), __x.end(),
+          this->_M_impl._M_start,
+          _M_get_Tp_allocator());
+      }
+
+
+      vector(vector&& __rv, const allocator_type& __m)
+      noexcept(_Alloc_traits::_S_always_equal())
+      : _Base(std::move(__rv), __m)
+      {
+ if (__rv.get_allocator() != __m)
+   {
+     this->_M_impl._M_finish =
+       std::__uninitialized_move_a(__rv.begin(), __rv.end(),
+       this->_M_impl._M_start,
+       _M_get_Tp_allocator());
+     __rv.clear();
+   }
+      }
+# 375 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      vector(initializer_list<value_type> __l,
+      const allocator_type& __a = allocator_type())
+      : _Base(__a)
+      {
+ _M_range_initialize(__l.begin(), __l.end(),
+       random_access_iterator_tag());
+      }
+# 401 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      template<typename _InputIterator,
+        typename = std::_RequireInputIter<_InputIterator>>
+        vector(_InputIterator __first, _InputIterator __last,
+        const allocator_type& __a = allocator_type())
+ : _Base(__a)
+        { _M_initialize_dispatch(__first, __last, __false_type()); }
+# 425 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      ~vector() noexcept
+      { std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
+        _M_get_Tp_allocator()); }
+# 437 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      vector&
+      operator=(const vector& __x);
+# 449 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      vector&
+      operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move())
+      {
+        constexpr bool __move_storage =
+          _Alloc_traits::_S_propagate_on_move_assign()
+          || _Alloc_traits::_S_always_equal();
+        _M_move_assign(std::move(__x), __bool_constant<__move_storage>());
+ return *this;
+      }
+# 470 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      vector&
+      operator=(initializer_list<value_type> __l)
+      {
+ this->assign(__l.begin(), __l.end());
+ return *this;
+      }
+# 488 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      void
+      assign(size_type __n, const value_type& __val)
+      { _M_fill_assign(__n, __val); }
+# 505 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      template<typename _InputIterator,
+        typename = std::_RequireInputIter<_InputIterator>>
+        void
+        assign(_InputIterator __first, _InputIterator __last)
+        { _M_assign_dispatch(__first, __last, __false_type()); }
+# 533 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      void
+      assign(initializer_list<value_type> __l)
+      { this->assign(__l.begin(), __l.end()); }
+
+
+
+      using _Base::get_allocator;
+
+
+
+
+
+
+
+      iterator
+      begin() noexcept
+      { return iterator(this->_M_impl._M_start); }
+
+
+
+
+
+
+      const_iterator
+      begin() const noexcept
+      { return const_iterator(this->_M_impl._M_start); }
+
+
+
+
+
+
+      iterator
+      end() noexcept
+      { return iterator(this->_M_impl._M_finish); }
+
+
+
+
+
+
+      const_iterator
+      end() const noexcept
+      { return const_iterator(this->_M_impl._M_finish); }
+
+
+
+
+
+
+      reverse_iterator
+      rbegin() noexcept
+      { return reverse_iterator(end()); }
+
+
+
+
+
+
+      const_reverse_iterator
+      rbegin() const noexcept
+      { return const_reverse_iterator(end()); }
+
+
+
+
+
+
+      reverse_iterator
+      rend() noexcept
+      { return reverse_iterator(begin()); }
+
+
+
+
+
+
+      const_reverse_iterator
+      rend() const noexcept
+      { return const_reverse_iterator(begin()); }
+
+
+
+
+
+
+
+      const_iterator
+      cbegin() const noexcept
+      { return const_iterator(this->_M_impl._M_start); }
+
+
+
+
+
+
+      const_iterator
+      cend() const noexcept
+      { return const_iterator(this->_M_impl._M_finish); }
+
+
+
+
+
+
+      const_reverse_iterator
+      crbegin() const noexcept
+      { return const_reverse_iterator(end()); }
+
+
+
+
+
+
+      const_reverse_iterator
+      crend() const noexcept
+      { return const_reverse_iterator(begin()); }
+
+
+
+
+      size_type
+      size() const noexcept
+      { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); }
+
+
+      size_type
+      max_size() const noexcept
+      { return _Alloc_traits::max_size(_M_get_Tp_allocator()); }
+# 673 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      void
+      resize(size_type __new_size)
+      {
+ if (__new_size > size())
+   _M_default_append(__new_size - size());
+ else if (__new_size < size())
+   _M_erase_at_end(this->_M_impl._M_start + __new_size);
+      }
+# 693 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      void
+      resize(size_type __new_size, const value_type& __x)
+      {
+ if (__new_size > size())
+   insert(end(), __new_size - size(), __x);
+ else if (__new_size < size())
+   _M_erase_at_end(this->_M_impl._M_start + __new_size);
+      }
+# 725 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      void
+      shrink_to_fit()
+      { _M_shrink_to_fit(); }
+
+
+
+
+
+
+      size_type
+      capacity() const noexcept
+      { return size_type(this->_M_impl._M_end_of_storage
+    - this->_M_impl._M_start); }
+
+
+
+
+
+      bool
+      empty() const noexcept
+      { return begin() == end(); }
+# 764 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      void
+      reserve(size_type __n);
+# 779 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      reference
+      operator[](size_type __n) noexcept
+      { return *(this->_M_impl._M_start + __n); }
+# 794 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      const_reference
+      operator[](size_type __n) const noexcept
+      { return *(this->_M_impl._M_start + __n); }
+
+    protected:
+
+      void
+      _M_range_check(size_type __n) const
+      {
+ if (__n >= this->size())
+   __throw_out_of_range_fmt(("vector::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)"),
+
+
+       __n, this->size());
+      }
+
+    public:
+# 822 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      reference
+      at(size_type __n)
+      {
+ _M_range_check(__n);
+ return (*this)[__n];
+      }
+# 840 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      const_reference
+      at(size_type __n) const
+      {
+ _M_range_check(__n);
+ return (*this)[__n];
+      }
+
+
+
+
+
+      reference
+      front() noexcept
+      { return *begin(); }
+
+
+
+
+
+      const_reference
+      front() const noexcept
+      { return *begin(); }
+
+
+
+
+
+      reference
+      back() noexcept
+      { return *(end() - 1); }
+
+
+
+
+
+      const_reference
+      back() const noexcept
+      { return *(end() - 1); }
+# 887 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      _Tp*
+
+
+
+      data() noexcept
+      { return _M_data_ptr(this->_M_impl._M_start); }
+
+
+      const _Tp*
+
+
+
+      data() const noexcept
+      { return _M_data_ptr(this->_M_impl._M_start); }
+# 913 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      void
+      push_back(const value_type& __x)
+      {
+ if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage)
+   {
+     _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish,
+                              __x);
+     ++this->_M_impl._M_finish;
+   }
+ else
+
+   _M_emplace_back_aux(__x);
+
+
+
+      }
+
+
+      void
+      push_back(value_type&& __x)
+      { emplace_back(std::move(__x)); }
+
+      template<typename... _Args>
+        void
+        emplace_back(_Args&&... __args);
+# 949 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      void
+      pop_back() noexcept
+      {
+ --this->_M_impl._M_finish;
+ _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish);
+      }
+# 969 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      template<typename... _Args>
+        iterator
+        emplace(const_iterator __position, _Args&&... __args);
+# 984 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      iterator
+      insert(const_iterator __position, const value_type& __x);
+# 1014 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      iterator
+      insert(const_iterator __position, value_type&& __x)
+      { return emplace(__position, std::move(__x)); }
+# 1031 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      iterator
+      insert(const_iterator __position, initializer_list<value_type> __l)
+      { return this->insert(__position, __l.begin(), __l.end()); }
+# 1051 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      iterator
+      insert(const_iterator __position, size_type __n, const value_type& __x)
+      {
+ difference_type __offset = __position - cbegin();
+ _M_fill_insert(begin() + __offset, __n, __x);
+ return begin() + __offset;
+      }
+# 1093 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      template<typename _InputIterator,
+        typename = std::_RequireInputIter<_InputIterator>>
+        iterator
+        insert(const_iterator __position, _InputIterator __first,
+        _InputIterator __last)
+        {
+   difference_type __offset = __position - cbegin();
+   _M_insert_dispatch(begin() + __offset,
+        __first, __last, __false_type());
+   return begin() + __offset;
+ }
+# 1145 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      iterator
+
+      erase(const_iterator __position)
+      { return _M_erase(begin() + (__position - cbegin())); }
+# 1172 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      iterator
+
+      erase(const_iterator __first, const_iterator __last)
+      {
+ const auto __beg = begin();
+ const auto __cbeg = cbegin();
+ return _M_erase(__beg + (__first - __cbeg), __beg + (__last - __cbeg));
+      }
+# 1194 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      void
+      swap(vector& __x) noexcept
+      {
+ this->_M_impl._M_swap_data(__x._M_impl);
+ _Alloc_traits::_S_on_swap(_M_get_Tp_allocator(),
+                           __x._M_get_Tp_allocator());
+      }
+
+
+
+
+
+
+
+      void
+      clear() noexcept
+      { _M_erase_at_end(this->_M_impl._M_start); }
+
+    protected:
+
+
+
+
+      template<typename _ForwardIterator>
+        pointer
+        _M_allocate_and_copy(size_type __n,
+        _ForwardIterator __first, _ForwardIterator __last)
+        {
+   pointer __result = this->_M_allocate(__n);
+   try
+     {
+       std::__uninitialized_copy_a(__first, __last, __result,
+       _M_get_Tp_allocator());
+       return __result;
+     }
+   catch(...)
+     {
+       _M_deallocate(__result, __n);
+       throw;
+     }
+ }
+# 1243 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      template<typename _Integer>
+        void
+        _M_initialize_dispatch(_Integer __n, _Integer __value, __true_type)
+        {
+   this->_M_impl._M_start = _M_allocate(static_cast<size_type>(__n));
+   this->_M_impl._M_end_of_storage =
+     this->_M_impl._M_start + static_cast<size_type>(__n);
+   _M_fill_initialize(static_cast<size_type>(__n), __value);
+ }
+
+
+      template<typename _InputIterator>
+        void
+        _M_initialize_dispatch(_InputIterator __first, _InputIterator __last,
+          __false_type)
+        {
+   typedef typename std::iterator_traits<_InputIterator>::
+     iterator_category _IterCategory;
+   _M_range_initialize(__first, __last, _IterCategory());
+ }
+
+
+      template<typename _InputIterator>
+        void
+        _M_range_initialize(_InputIterator __first,
+       _InputIterator __last, std::input_iterator_tag)
+        {
+   for (; __first != __last; ++__first)
+
+     emplace_back(*__first);
+
+
+
+ }
+
+
+      template<typename _ForwardIterator>
+        void
+        _M_range_initialize(_ForwardIterator __first,
+       _ForwardIterator __last, std::forward_iterator_tag)
+        {
+   const size_type __n = std::distance(__first, __last);
+   this->_M_impl._M_start = this->_M_allocate(__n);
+   this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n;
+   this->_M_impl._M_finish =
+     std::__uninitialized_copy_a(__first, __last,
+     this->_M_impl._M_start,
+     _M_get_Tp_allocator());
+ }
+
+
+
+      void
+      _M_fill_initialize(size_type __n, const value_type& __value)
+      {
+ this->_M_impl._M_finish =
+   std::__uninitialized_fill_n_a(this->_M_impl._M_start, __n, __value,
+     _M_get_Tp_allocator());
+      }
+
+
+
+      void
+      _M_default_initialize(size_type __n)
+      {
+ this->_M_impl._M_finish =
+   std::__uninitialized_default_n_a(this->_M_impl._M_start, __n,
+        _M_get_Tp_allocator());
+      }
+# 1321 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      template<typename _Integer>
+        void
+        _M_assign_dispatch(_Integer __n, _Integer __val, __true_type)
+        { _M_fill_assign(__n, __val); }
+
+
+      template<typename _InputIterator>
+        void
+        _M_assign_dispatch(_InputIterator __first, _InputIterator __last,
+      __false_type)
+        {
+   typedef typename std::iterator_traits<_InputIterator>::
+     iterator_category _IterCategory;
+   _M_assign_aux(__first, __last, _IterCategory());
+ }
+
+
+      template<typename _InputIterator>
+        void
+        _M_assign_aux(_InputIterator __first, _InputIterator __last,
+        std::input_iterator_tag);
+
+
+      template<typename _ForwardIterator>
+        void
+        _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last,
+        std::forward_iterator_tag);
+
+
+
+      void
+      _M_fill_assign(size_type __n, const value_type& __val);
+# 1361 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+      template<typename _Integer>
+        void
+        _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val,
+      __true_type)
+        { _M_fill_insert(__pos, __n, __val); }
+
+
+      template<typename _InputIterator>
+        void
+        _M_insert_dispatch(iterator __pos, _InputIterator __first,
+      _InputIterator __last, __false_type)
+        {
+   typedef typename std::iterator_traits<_InputIterator>::
+     iterator_category _IterCategory;
+   _M_range_insert(__pos, __first, __last, _IterCategory());
+ }
+
+
+      template<typename _InputIterator>
+        void
+        _M_range_insert(iterator __pos, _InputIterator __first,
+   _InputIterator __last, std::input_iterator_tag);
+
+
+      template<typename _ForwardIterator>
+        void
+        _M_range_insert(iterator __pos, _ForwardIterator __first,
+   _ForwardIterator __last, std::forward_iterator_tag);
+
+
+
+      void
+      _M_fill_insert(iterator __pos, size_type __n, const value_type& __x);
+
+
+
+      void
+      _M_default_append(size_type __n);
+
+      bool
+      _M_shrink_to_fit();
+
+
+
+
+
+
+
+      template<typename... _Args>
+        void
+        _M_insert_aux(iterator __position, _Args&&... __args);
+
+      template<typename... _Args>
+        void
+        _M_emplace_back_aux(_Args&&... __args);
+
+
+
+      size_type
+      _M_check_len(size_type __n, const char* __s) const
+      {
+ if (max_size() - size() < __n)
+   __throw_length_error((__s));
+
+ const size_type __len = size() + std::max(size(), __n);
+ return (__len < size() || __len > max_size()) ? max_size() : __len;
+      }
+
+
+
+
+
+      void
+      _M_erase_at_end(pointer __pos) noexcept
+      {
+ std::_Destroy(__pos, this->_M_impl._M_finish, _M_get_Tp_allocator());
+ this->_M_impl._M_finish = __pos;
+      }
+
+      iterator
+      _M_erase(iterator __position);
+
+      iterator
+      _M_erase(iterator __first, iterator __last);
+
+
+    private:
+
+
+
+      void
+      _M_move_assign(vector&& __x, std::true_type) noexcept
+      {
+ vector __tmp(get_allocator());
+ this->_M_impl._M_swap_data(__tmp._M_impl);
+ this->_M_impl._M_swap_data(__x._M_impl);
+ std::__alloc_on_move(_M_get_Tp_allocator(), __x._M_get_Tp_allocator());
+      }
+
+
+
+      void
+      _M_move_assign(vector&& __x, std::false_type)
+      {
+ if (__x._M_get_Tp_allocator() == this->_M_get_Tp_allocator())
+   _M_move_assign(std::move(__x), std::true_type());
+ else
+   {
+
+
+     this->assign(std::__make_move_if_noexcept_iterator(__x.begin()),
+    std::__make_move_if_noexcept_iterator(__x.end()));
+     __x.clear();
+   }
+      }
+
+
+
+      template<typename _Up>
+ _Up*
+ _M_data_ptr(_Up* __ptr) const
+ { return __ptr; }
+
+      template<typename _Ptr>
+ typename std::pointer_traits<_Ptr>::element_type*
+ _M_data_ptr(_Ptr __ptr) const
+ { return empty() ? nullptr : std::__addressof(*__ptr); }
+
+
+
+
+
+
+    };
+# 1507 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+  template<typename _Tp, typename _Alloc>
+    inline bool
+    operator==(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
+    { return (__x.size() == __y.size()
+       && std::equal(__x.begin(), __x.end(), __y.begin())); }
+# 1524 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h" 3
+  template<typename _Tp, typename _Alloc>
+    inline bool
+    operator<(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
+    { return std::lexicographical_compare(__x.begin(), __x.end(),
+       __y.begin(), __y.end()); }
+
+
+  template<typename _Tp, typename _Alloc>
+    inline bool
+    operator!=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
+    { return !(__x == __y); }
+
+
+  template<typename _Tp, typename _Alloc>
+    inline bool
+    operator>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
+    { return __y < __x; }
+
+
+  template<typename _Tp, typename _Alloc>
+    inline bool
+    operator<=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
+    { return !(__y < __x); }
+
+
+  template<typename _Tp, typename _Alloc>
+    inline bool
+    operator>=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
+    { return !(__x < __y); }
+
+
+  template<typename _Tp, typename _Alloc>
+    inline void
+    swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y)
+    noexcept(noexcept(__x.swap(__y)))
+    { __x.swap(__y); }
+
+
+}
+# 65 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/vector" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_bvector.h" 1 3
+# 63 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_bvector.h" 3
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+  typedef unsigned long _Bit_type;
+  enum { _S_word_bit = int(8 * sizeof(_Bit_type)) };
+
+  struct _Bit_reference
+  {
+    _Bit_type * _M_p;
+    _Bit_type _M_mask;
+
+    _Bit_reference(_Bit_type * __x, _Bit_type __y)
+    : _M_p(__x), _M_mask(__y) { }
+
+    _Bit_reference() noexcept : _M_p(0), _M_mask(0) { }
+
+    operator bool() const noexcept
+    { return !!(*_M_p & _M_mask); }
+
+    _Bit_reference&
+    operator=(bool __x) noexcept
+    {
+      if (__x)
+ *_M_p |= _M_mask;
+      else
+ *_M_p &= ~_M_mask;
+      return *this;
+    }
+
+    _Bit_reference&
+    operator=(const _Bit_reference& __x) noexcept
+    { return *this = bool(__x); }
+
+    bool
+    operator==(const _Bit_reference& __x) const
+    { return bool(*this) == bool(__x); }
+
+    bool
+    operator<(const _Bit_reference& __x) const
+    { return !bool(*this) && bool(__x); }
+
+    void
+    flip() noexcept
+    { *_M_p ^= _M_mask; }
+  };
+
+
+  inline void
+  swap(_Bit_reference __x, _Bit_reference __y) noexcept
+  {
+    bool __tmp = __x;
+    __x = __y;
+    __y = __tmp;
+  }
+
+  inline void
+  swap(_Bit_reference __x, bool& __y) noexcept
+  {
+    bool __tmp = __x;
+    __x = __y;
+    __y = __tmp;
+  }
+
+  inline void
+  swap(bool& __x, _Bit_reference __y) noexcept
+  {
+    bool __tmp = __x;
+    __x = __y;
+    __y = __tmp;
+  }
+
+
+  struct _Bit_iterator_base
+  : public std::iterator<std::random_access_iterator_tag, bool>
+  {
+    _Bit_type * _M_p;
+    unsigned int _M_offset;
+
+    _Bit_iterator_base(_Bit_type * __x, unsigned int __y)
+    : _M_p(__x), _M_offset(__y) { }
+
+    void
+    _M_bump_up()
+    {
+      if (_M_offset++ == int(_S_word_bit) - 1)
+ {
+   _M_offset = 0;
+   ++_M_p;
+ }
+    }
+
+    void
+    _M_bump_down()
+    {
+      if (_M_offset-- == 0)
+ {
+   _M_offset = int(_S_word_bit) - 1;
+   --_M_p;
+ }
+    }
+
+    void
+    _M_incr(ptrdiff_t __i)
+    {
+      difference_type __n = __i + _M_offset;
+      _M_p += __n / int(_S_word_bit);
+      __n = __n % int(_S_word_bit);
+      if (__n < 0)
+ {
+   __n += int(_S_word_bit);
+   --_M_p;
+ }
+      _M_offset = static_cast<unsigned int>(__n);
+    }
+
+    bool
+    operator==(const _Bit_iterator_base& __i) const
+    { return _M_p == __i._M_p && _M_offset == __i._M_offset; }
+
+    bool
+    operator<(const _Bit_iterator_base& __i) const
+    {
+      return _M_p < __i._M_p
+      || (_M_p == __i._M_p && _M_offset < __i._M_offset);
+    }
+
+    bool
+    operator!=(const _Bit_iterator_base& __i) const
+    { return !(*this == __i); }
+
+    bool
+    operator>(const _Bit_iterator_base& __i) const
+    { return __i < *this; }
+
+    bool
+    operator<=(const _Bit_iterator_base& __i) const
+    { return !(__i < *this); }
+
+    bool
+    operator>=(const _Bit_iterator_base& __i) const
+    { return !(*this < __i); }
+  };
+
+  inline ptrdiff_t
+  operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y)
+  {
+    return (int(_S_word_bit) * (__x._M_p - __y._M_p)
+     + __x._M_offset - __y._M_offset);
+  }
+
+  struct _Bit_iterator : public _Bit_iterator_base
+  {
+    typedef _Bit_reference reference;
+    typedef _Bit_reference* pointer;
+    typedef _Bit_iterator iterator;
+
+    _Bit_iterator() : _Bit_iterator_base(0, 0) { }
+
+    _Bit_iterator(_Bit_type * __x, unsigned int __y)
+    : _Bit_iterator_base(__x, __y) { }
+
+    iterator
+    _M_const_cast() const
+    { return *this; }
+
+    reference
+    operator*() const
+    { return reference(_M_p, 1UL << _M_offset); }
+
+    iterator&
+    operator++()
+    {
+      _M_bump_up();
+      return *this;
+    }
+
+    iterator
+    operator++(int)
+    {
+      iterator __tmp = *this;
+      _M_bump_up();
+      return __tmp;
+    }
+
+    iterator&
+    operator--()
+    {
+      _M_bump_down();
+      return *this;
+    }
+
+    iterator
+    operator--(int)
+    {
+      iterator __tmp = *this;
+      _M_bump_down();
+      return __tmp;
+    }
+
+    iterator&
+    operator+=(difference_type __i)
+    {
+      _M_incr(__i);
+      return *this;
+    }
+
+    iterator&
+    operator-=(difference_type __i)
+    {
+      *this += -__i;
+      return *this;
+    }
+
+    iterator
+    operator+(difference_type __i) const
+    {
+      iterator __tmp = *this;
+      return __tmp += __i;
+    }
+
+    iterator
+    operator-(difference_type __i) const
+    {
+      iterator __tmp = *this;
+      return __tmp -= __i;
+    }
+
+    reference
+    operator[](difference_type __i) const
+    { return *(*this + __i); }
+  };
+
+  inline _Bit_iterator
+  operator+(ptrdiff_t __n, const _Bit_iterator& __x)
+  { return __x + __n; }
+
+  struct _Bit_const_iterator : public _Bit_iterator_base
+  {
+    typedef bool reference;
+    typedef bool const_reference;
+    typedef const bool* pointer;
+    typedef _Bit_const_iterator const_iterator;
+
+    _Bit_const_iterator() : _Bit_iterator_base(0, 0) { }
+
+    _Bit_const_iterator(_Bit_type * __x, unsigned int __y)
+    : _Bit_iterator_base(__x, __y) { }
+
+    _Bit_const_iterator(const _Bit_iterator& __x)
+    : _Bit_iterator_base(__x._M_p, __x._M_offset) { }
+
+    _Bit_iterator
+    _M_const_cast() const
+    { return _Bit_iterator(_M_p, _M_offset); }
+
+    const_reference
+    operator*() const
+    { return _Bit_reference(_M_p, 1UL << _M_offset); }
+
+    const_iterator&
+    operator++()
+    {
+      _M_bump_up();
+      return *this;
+    }
+
+    const_iterator
+    operator++(int)
+    {
+      const_iterator __tmp = *this;
+      _M_bump_up();
+      return __tmp;
+    }
+
+    const_iterator&
+    operator--()
+    {
+      _M_bump_down();
+      return *this;
+    }
+
+    const_iterator
+    operator--(int)
+    {
+      const_iterator __tmp = *this;
+      _M_bump_down();
+      return __tmp;
+    }
+
+    const_iterator&
+    operator+=(difference_type __i)
+    {
+      _M_incr(__i);
+      return *this;
+    }
+
+    const_iterator&
+    operator-=(difference_type __i)
+    {
+      *this += -__i;
+      return *this;
+    }
+
+    const_iterator
+    operator+(difference_type __i) const
+    {
+      const_iterator __tmp = *this;
+      return __tmp += __i;
+    }
+
+    const_iterator
+    operator-(difference_type __i) const
+    {
+      const_iterator __tmp = *this;
+      return __tmp -= __i;
+    }
+
+    const_reference
+    operator[](difference_type __i) const
+    { return *(*this + __i); }
+  };
+
+  inline _Bit_const_iterator
+  operator+(ptrdiff_t __n, const _Bit_const_iterator& __x)
+  { return __x + __n; }
+
+  inline void
+  __fill_bvector(_Bit_iterator __first, _Bit_iterator __last, bool __x)
+  {
+    for (; __first != __last; ++__first)
+      *__first = __x;
+  }
+
+  inline void
+  fill(_Bit_iterator __first, _Bit_iterator __last, const bool& __x)
+  {
+    if (__first._M_p != __last._M_p)
+      {
+ std::fill(__first._M_p + 1, __last._M_p, __x ? ~0 : 0);
+ __fill_bvector(__first, _Bit_iterator(__first._M_p + 1, 0), __x);
+ __fill_bvector(_Bit_iterator(__last._M_p, 0), __last, __x);
+      }
+    else
+      __fill_bvector(__first, __last, __x);
+  }
+
+  template<typename _Alloc>
+    struct _Bvector_base
+    {
+      typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template
+        rebind<_Bit_type>::other _Bit_alloc_type;
+      typedef typename __gnu_cxx::__alloc_traits<_Bit_alloc_type>
+ _Bit_alloc_traits;
+      typedef typename _Bit_alloc_traits::pointer _Bit_pointer;
+
+      struct _Bvector_impl
+      : public _Bit_alloc_type
+      {
+ _Bit_iterator _M_start;
+ _Bit_iterator _M_finish;
+ _Bit_pointer _M_end_of_storage;
+
+ _Bvector_impl()
+ : _Bit_alloc_type(), _M_start(), _M_finish(), _M_end_of_storage()
+ { }
+
+ _Bvector_impl(const _Bit_alloc_type& __a)
+ : _Bit_alloc_type(__a), _M_start(), _M_finish(), _M_end_of_storage()
+ { }
+
+
+ _Bvector_impl(_Bit_alloc_type&& __a)
+ : _Bit_alloc_type(std::move(__a)), _M_start(), _M_finish(),
+   _M_end_of_storage()
+ { }
+
+
+ _Bit_type*
+ _M_end_addr() const noexcept
+ {
+   if (_M_end_of_storage)
+     return std::__addressof(_M_end_of_storage[-1]) + 1;
+   return 0;
+ }
+      };
+
+    public:
+      typedef _Alloc allocator_type;
+
+      _Bit_alloc_type&
+      _M_get_Bit_allocator() noexcept
+      { return *static_cast<_Bit_alloc_type*>(&this->_M_impl); }
+
+      const _Bit_alloc_type&
+      _M_get_Bit_allocator() const noexcept
+      { return *static_cast<const _Bit_alloc_type*>(&this->_M_impl); }
+
+      allocator_type
+      get_allocator() const noexcept
+      { return allocator_type(_M_get_Bit_allocator()); }
+
+      _Bvector_base()
+      : _M_impl() { }
+
+      _Bvector_base(const allocator_type& __a)
+      : _M_impl(__a) { }
+
+
+      _Bvector_base(_Bvector_base&& __x) noexcept
+      : _M_impl(std::move(__x._M_get_Bit_allocator()))
+      {
+ this->_M_impl._M_start = __x._M_impl._M_start;
+ this->_M_impl._M_finish = __x._M_impl._M_finish;
+ this->_M_impl._M_end_of_storage = __x._M_impl._M_end_of_storage;
+ __x._M_impl._M_start = _Bit_iterator();
+ __x._M_impl._M_finish = _Bit_iterator();
+ __x._M_impl._M_end_of_storage = nullptr;
+      }
+
+
+      ~_Bvector_base()
+      { this->_M_deallocate(); }
+
+    protected:
+      _Bvector_impl _M_impl;
+
+      _Bit_pointer
+      _M_allocate(size_t __n)
+      { return _Bit_alloc_traits::allocate(_M_impl, _S_nword(__n)); }
+
+      void
+      _M_deallocate()
+      {
+ if (_M_impl._M_start._M_p)
+   {
+     const size_t __n = _M_impl._M_end_addr() - _M_impl._M_start._M_p;
+     _Bit_alloc_traits::deallocate(_M_impl,
+       _M_impl._M_end_of_storage - __n,
+       __n);
+   }
+      }
+
+      static size_t
+      _S_nword(size_t __n)
+      { return (__n + int(_S_word_bit) - 1) / int(_S_word_bit); }
+    };
+
+
+}
+
+
+
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 540 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_bvector.h" 3
+template<typename _Alloc>
+  class vector<bool, _Alloc> : protected _Bvector_base<_Alloc>
+  {
+    typedef _Bvector_base<_Alloc> _Base;
+    typedef typename _Base::_Bit_pointer _Bit_pointer;
+    typedef typename _Base::_Bit_alloc_traits _Bit_alloc_traits;
+
+
+    template<typename> friend struct hash;
+
+
+  public:
+    typedef bool value_type;
+    typedef size_t size_type;
+    typedef ptrdiff_t difference_type;
+    typedef _Bit_reference reference;
+    typedef bool const_reference;
+    typedef _Bit_reference* pointer;
+    typedef const bool* const_pointer;
+    typedef _Bit_iterator iterator;
+    typedef _Bit_const_iterator const_iterator;
+    typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
+    typedef std::reverse_iterator<iterator> reverse_iterator;
+    typedef _Alloc allocator_type;
+
+    allocator_type get_allocator() const
+    { return _Base::get_allocator(); }
+
+  protected:
+    using _Base::_M_allocate;
+    using _Base::_M_deallocate;
+    using _Base::_S_nword;
+    using _Base::_M_get_Bit_allocator;
+
+  public:
+    vector()
+
+      noexcept(is_nothrow_default_constructible<allocator_type>::value)
+
+    : _Base() { }
+
+    explicit
+    vector(const allocator_type& __a)
+    : _Base(__a) { }
+
+
+    explicit
+    vector(size_type __n, const allocator_type& __a = allocator_type())
+    : vector(__n, false, __a)
+    { }
+
+    vector(size_type __n, const bool& __value,
+    const allocator_type& __a = allocator_type())
+    : _Base(__a)
+    {
+      _M_initialize(__n);
+      std::fill(this->_M_impl._M_start._M_p, this->_M_impl._M_end_addr(),
+  __value ? ~0 : 0);
+    }
+# 611 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_bvector.h" 3
+    vector(const vector& __x)
+    : _Base(_Bit_alloc_traits::_S_select_on_copy(__x._M_get_Bit_allocator()))
+    {
+      _M_initialize(__x.size());
+      _M_copy_aligned(__x.begin(), __x.end(), this->_M_impl._M_start);
+    }
+
+
+    vector(vector&& __x) noexcept
+    : _Base(std::move(__x)) { }
+
+    vector(vector&& __x, const allocator_type& __a)
+    noexcept(_Bit_alloc_traits::_S_always_equal())
+    : _Base(__a)
+    {
+      if (__x.get_allocator() == __a)
+ {
+   this->_M_impl._M_start = __x._M_impl._M_start;
+   this->_M_impl._M_finish = __x._M_impl._M_finish;
+   this->_M_impl._M_end_of_storage = __x._M_impl._M_end_of_storage;
+   __x._M_impl._M_start = _Bit_iterator();
+   __x._M_impl._M_finish = _Bit_iterator();
+   __x._M_impl._M_end_of_storage = nullptr;
+ }
+      else
+ {
+   _M_initialize(__x.size());
+   _M_copy_aligned(__x.begin(), __x.end(), begin());
+   __x.clear();
+ }
+    }
+
+    vector(const vector& __x, const allocator_type& __a)
+    : _Base(__a)
+    {
+      _M_initialize(__x.size());
+      _M_copy_aligned(__x.begin(), __x.end(), this->_M_impl._M_start);
+    }
+
+    vector(initializer_list<bool> __l,
+    const allocator_type& __a = allocator_type())
+    : _Base(__a)
+    {
+      _M_initialize_range(__l.begin(), __l.end(),
+     random_access_iterator_tag());
+    }
+
+
+
+    template<typename _InputIterator,
+      typename = std::_RequireInputIter<_InputIterator>>
+      vector(_InputIterator __first, _InputIterator __last,
+      const allocator_type& __a = allocator_type())
+      : _Base(__a)
+      { _M_initialize_dispatch(__first, __last, __false_type()); }
+# 677 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_bvector.h" 3
+    ~vector() noexcept { }
+
+    vector&
+    operator=(const vector& __x)
+    {
+      if (&__x == this)
+ return *this;
+
+      if (_Bit_alloc_traits::_S_propagate_on_copy_assign())
+ {
+   if (this->_M_get_Bit_allocator() != __x._M_get_Bit_allocator())
+     {
+       this->_M_deallocate();
+       std::__alloc_on_copy(_M_get_Bit_allocator(),
+       __x._M_get_Bit_allocator());
+       _M_initialize(__x.size());
+     }
+   else
+     std::__alloc_on_copy(_M_get_Bit_allocator(),
+     __x._M_get_Bit_allocator());
+ }
+
+      if (__x.size() > capacity())
+ {
+   this->_M_deallocate();
+   _M_initialize(__x.size());
+ }
+      this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(),
+      begin());
+      return *this;
+    }
+
+
+    vector&
+    operator=(vector&& __x) noexcept(_Bit_alloc_traits::_S_nothrow_move())
+    {
+      if (_Bit_alloc_traits::_S_propagate_on_move_assign()
+   || this->_M_get_Bit_allocator() == __x._M_get_Bit_allocator())
+ {
+   this->_M_deallocate();
+   this->_M_impl._M_start = __x._M_impl._M_start;
+   this->_M_impl._M_finish = __x._M_impl._M_finish;
+   this->_M_impl._M_end_of_storage = __x._M_impl._M_end_of_storage;
+   __x._M_impl._M_start = _Bit_iterator();
+   __x._M_impl._M_finish = _Bit_iterator();
+   __x._M_impl._M_end_of_storage = nullptr;
+   std::__alloc_on_move(_M_get_Bit_allocator(),
+          __x._M_get_Bit_allocator());
+ }
+      else
+ {
+   if (__x.size() > capacity())
+     {
+       this->_M_deallocate();
+       _M_initialize(__x.size());
+     }
+   this->_M_impl._M_finish = _M_copy_aligned(__x.begin(), __x.end(),
+          begin());
+   __x.clear();
+ }
+      return *this;
+    }
+
+    vector&
+    operator=(initializer_list<bool> __l)
+    {
+      this->assign (__l.begin(), __l.end());
+      return *this;
+    }
+
+
+
+
+
+
+    void
+    assign(size_type __n, const bool& __x)
+    { _M_fill_assign(__n, __x); }
+
+
+    template<typename _InputIterator,
+      typename = std::_RequireInputIter<_InputIterator>>
+      void
+      assign(_InputIterator __first, _InputIterator __last)
+      { _M_assign_dispatch(__first, __last, __false_type()); }
+# 773 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_bvector.h" 3
+    void
+    assign(initializer_list<bool> __l)
+    { this->assign(__l.begin(), __l.end()); }
+
+
+    iterator
+    begin() noexcept
+    { return this->_M_impl._M_start; }
+
+    const_iterator
+    begin() const noexcept
+    { return this->_M_impl._M_start; }
+
+    iterator
+    end() noexcept
+    { return this->_M_impl._M_finish; }
+
+    const_iterator
+    end() const noexcept
+    { return this->_M_impl._M_finish; }
+
+    reverse_iterator
+    rbegin() noexcept
+    { return reverse_iterator(end()); }
+
+    const_reverse_iterator
+    rbegin() const noexcept
+    { return const_reverse_iterator(end()); }
+
+    reverse_iterator
+    rend() noexcept
+    { return reverse_iterator(begin()); }
+
+    const_reverse_iterator
+    rend() const noexcept
+    { return const_reverse_iterator(begin()); }
+
+
+    const_iterator
+    cbegin() const noexcept
+    { return this->_M_impl._M_start; }
+
+    const_iterator
+    cend() const noexcept
+    { return this->_M_impl._M_finish; }
+
+    const_reverse_iterator
+    crbegin() const noexcept
+    { return const_reverse_iterator(end()); }
+
+    const_reverse_iterator
+    crend() const noexcept
+    { return const_reverse_iterator(begin()); }
+
+
+    size_type
+    size() const noexcept
+    { return size_type(end() - begin()); }
+
+    size_type
+    max_size() const noexcept
+    {
+      const size_type __isize =
+ __gnu_cxx::__numeric_traits<difference_type>::__max
+ - int(_S_word_bit) + 1;
+      const size_type __asize
+ = _Bit_alloc_traits::max_size(_M_get_Bit_allocator());
+      return (__asize <= __isize / int(_S_word_bit)
+       ? __asize * int(_S_word_bit) : __isize);
+    }
+
+    size_type
+    capacity() const noexcept
+    { return size_type(const_iterator(this->_M_impl._M_end_addr(), 0)
+         - begin()); }
+
+    bool
+    empty() const noexcept
+    { return begin() == end(); }
+
+    reference
+    operator[](size_type __n)
+    {
+      return *iterator(this->_M_impl._M_start._M_p
+         + __n / int(_S_word_bit), __n % int(_S_word_bit));
+    }
+
+    const_reference
+    operator[](size_type __n) const
+    {
+      return *const_iterator(this->_M_impl._M_start._M_p
+        + __n / int(_S_word_bit), __n % int(_S_word_bit));
+    }
+
+  protected:
+    void
+    _M_range_check(size_type __n) const
+    {
+      if (__n >= this->size())
+ __throw_out_of_range_fmt(("vector<bool>::_M_range_check: __n " "(which is %zu) >= this->size() " "(which is %zu)"),
+
+
+     __n, this->size());
+    }
+
+  public:
+    reference
+    at(size_type __n)
+    { _M_range_check(__n); return (*this)[__n]; }
+
+    const_reference
+    at(size_type __n) const
+    { _M_range_check(__n); return (*this)[__n]; }
+
+    void
+    reserve(size_type __n)
+    {
+      if (__n > max_size())
+ __throw_length_error(("vector::reserve"));
+      if (capacity() < __n)
+ _M_reallocate(__n);
+    }
+
+    reference
+    front()
+    { return *begin(); }
+
+    const_reference
+    front() const
+    { return *begin(); }
+
+    reference
+    back()
+    { return *(end() - 1); }
+
+    const_reference
+    back() const
+    { return *(end() - 1); }
+
+
+
+
+
+
+    void
+    data() noexcept { }
+
+    void
+    push_back(bool __x)
+    {
+      if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr())
+        *this->_M_impl._M_finish++ = __x;
+      else
+        _M_insert_aux(end(), __x);
+    }
+
+    void
+    swap(vector& __x) noexcept
+    {
+      std::swap(this->_M_impl._M_start, __x._M_impl._M_start);
+      std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish);
+      std::swap(this->_M_impl._M_end_of_storage,
+  __x._M_impl._M_end_of_storage);
+      _Bit_alloc_traits::_S_on_swap(_M_get_Bit_allocator(),
+        __x._M_get_Bit_allocator());
+    }
+
+
+    static void
+    swap(reference __x, reference __y) noexcept
+    {
+      bool __tmp = __x;
+      __x = __y;
+      __y = __tmp;
+    }
+
+    iterator
+
+    insert(const_iterator __position, const bool& __x = bool())
+
+
+
+    {
+      const difference_type __n = __position - begin();
+      if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr()
+   && __position == end())
+        *this->_M_impl._M_finish++ = __x;
+      else
+        _M_insert_aux(__position._M_const_cast(), __x);
+      return begin() + __n;
+    }
+
+
+    template<typename _InputIterator,
+      typename = std::_RequireInputIter<_InputIterator>>
+      iterator
+      insert(const_iterator __position,
+      _InputIterator __first, _InputIterator __last)
+      {
+ difference_type __offset = __position - cbegin();
+ _M_insert_dispatch(__position._M_const_cast(),
+      __first, __last, __false_type());
+ return begin() + __offset;
+      }
+# 989 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_bvector.h" 3
+    iterator
+    insert(const_iterator __position, size_type __n, const bool& __x)
+    {
+      difference_type __offset = __position - cbegin();
+      _M_fill_insert(__position._M_const_cast(), __n, __x);
+      return begin() + __offset;
+    }
+
+
+
+
+
+
+
+    iterator
+    insert(const_iterator __p, initializer_list<bool> __l)
+    { return this->insert(__p, __l.begin(), __l.end()); }
+
+
+    void
+    pop_back()
+    { --this->_M_impl._M_finish; }
+
+    iterator
+
+    erase(const_iterator __position)
+
+
+
+    { return _M_erase(__position._M_const_cast()); }
+
+    iterator
+
+    erase(const_iterator __first, const_iterator __last)
+
+
+
+    { return _M_erase(__first._M_const_cast(), __last._M_const_cast()); }
+
+    void
+    resize(size_type __new_size, bool __x = bool())
+    {
+      if (__new_size < size())
+        _M_erase_at_end(begin() + difference_type(__new_size));
+      else
+        insert(end(), __new_size - size(), __x);
+    }
+
+
+    void
+    shrink_to_fit()
+    { _M_shrink_to_fit(); }
+
+
+    void
+    flip() noexcept
+    {
+      _Bit_type * const __end = this->_M_impl._M_end_addr();
+      for (_Bit_type * __p = this->_M_impl._M_start._M_p; __p != __end; ++__p)
+        *__p = ~*__p;
+    }
+
+    void
+    clear() noexcept
+    { _M_erase_at_end(begin()); }
+
+
+    template<typename... _Args>
+      void
+      emplace_back(_Args&&... __args)
+      { push_back(bool(__args...)); }
+
+    template<typename... _Args>
+      iterator
+      emplace(const_iterator __pos, _Args&&... __args)
+      { return insert(__pos, bool(__args...)); }
+
+
+  protected:
+
+    iterator
+    _M_copy_aligned(const_iterator __first, const_iterator __last,
+      iterator __result)
+    {
+      _Bit_type* __q = std::copy(__first._M_p, __last._M_p, __result._M_p);
+      return std::copy(const_iterator(__last._M_p, 0), __last,
+         iterator(__q, 0));
+    }
+
+    void
+    _M_initialize(size_type __n)
+    {
+      _Bit_pointer __q = this->_M_allocate(__n);
+      this->_M_impl._M_end_of_storage = __q + _S_nword(__n);
+      this->_M_impl._M_start = iterator(std::__addressof(*__q), 0);
+      this->_M_impl._M_finish = this->_M_impl._M_start + difference_type(__n);
+    }
+
+    void
+    _M_reallocate(size_type __n);
+
+
+    bool
+    _M_shrink_to_fit();
+
+
+
+
+
+
+    template<typename _Integer>
+      void
+      _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type)
+      {
+ _M_initialize(static_cast<size_type>(__n));
+ std::fill(this->_M_impl._M_start._M_p,
+    this->_M_impl._M_end_addr(), __x ? ~0 : 0);
+      }
+
+    template<typename _InputIterator>
+      void
+      _M_initialize_dispatch(_InputIterator __first, _InputIterator __last,
+        __false_type)
+      { _M_initialize_range(__first, __last,
+       std::__iterator_category(__first)); }
+
+    template<typename _InputIterator>
+      void
+      _M_initialize_range(_InputIterator __first, _InputIterator __last,
+     std::input_iterator_tag)
+      {
+ for (; __first != __last; ++__first)
+   push_back(*__first);
+      }
+
+    template<typename _ForwardIterator>
+      void
+      _M_initialize_range(_ForwardIterator __first, _ForwardIterator __last,
+     std::forward_iterator_tag)
+      {
+ const size_type __n = std::distance(__first, __last);
+ _M_initialize(__n);
+ std::copy(__first, __last, this->_M_impl._M_start);
+      }
+
+
+
+    template<typename _Integer>
+      void
+      _M_assign_dispatch(_Integer __n, _Integer __val, __true_type)
+      { _M_fill_assign(__n, __val); }
+
+    template<class _InputIterator>
+      void
+      _M_assign_dispatch(_InputIterator __first, _InputIterator __last,
+    __false_type)
+      { _M_assign_aux(__first, __last, std::__iterator_category(__first)); }
+
+    void
+    _M_fill_assign(size_t __n, bool __x)
+    {
+      if (__n > size())
+ {
+   std::fill(this->_M_impl._M_start._M_p,
+      this->_M_impl._M_end_addr(), __x ? ~0 : 0);
+   insert(end(), __n - size(), __x);
+ }
+      else
+ {
+   _M_erase_at_end(begin() + __n);
+   std::fill(this->_M_impl._M_start._M_p,
+      this->_M_impl._M_end_addr(), __x ? ~0 : 0);
+ }
+    }
+
+    template<typename _InputIterator>
+      void
+      _M_assign_aux(_InputIterator __first, _InputIterator __last,
+      std::input_iterator_tag)
+      {
+ iterator __cur = begin();
+ for (; __first != __last && __cur != end(); ++__cur, ++__first)
+   *__cur = *__first;
+ if (__first == __last)
+   _M_erase_at_end(__cur);
+ else
+   insert(end(), __first, __last);
+      }
+
+    template<typename _ForwardIterator>
+      void
+      _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last,
+      std::forward_iterator_tag)
+      {
+ const size_type __len = std::distance(__first, __last);
+ if (__len < size())
+   _M_erase_at_end(std::copy(__first, __last, begin()));
+ else
+   {
+     _ForwardIterator __mid = __first;
+     std::advance(__mid, size());
+     std::copy(__first, __mid, begin());
+     insert(end(), __mid, __last);
+   }
+      }
+
+
+
+
+
+    template<typename _Integer>
+      void
+      _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x,
+    __true_type)
+      { _M_fill_insert(__pos, __n, __x); }
+
+    template<typename _InputIterator>
+      void
+      _M_insert_dispatch(iterator __pos,
+    _InputIterator __first, _InputIterator __last,
+    __false_type)
+      { _M_insert_range(__pos, __first, __last,
+   std::__iterator_category(__first)); }
+
+    void
+    _M_fill_insert(iterator __position, size_type __n, bool __x);
+
+    template<typename _InputIterator>
+      void
+      _M_insert_range(iterator __pos, _InputIterator __first,
+        _InputIterator __last, std::input_iterator_tag)
+      {
+ for (; __first != __last; ++__first)
+   {
+     __pos = insert(__pos, *__first);
+     ++__pos;
+   }
+      }
+
+    template<typename _ForwardIterator>
+      void
+      _M_insert_range(iterator __position, _ForwardIterator __first,
+        _ForwardIterator __last, std::forward_iterator_tag);
+
+    void
+    _M_insert_aux(iterator __position, bool __x);
+
+    size_type
+    _M_check_len(size_type __n, const char* __s) const
+    {
+      if (max_size() - size() < __n)
+ __throw_length_error((__s));
+
+      const size_type __len = size() + std::max(size(), __n);
+      return (__len < size() || __len > max_size()) ? max_size() : __len;
+    }
+
+    void
+    _M_erase_at_end(iterator __pos)
+    { this->_M_impl._M_finish = __pos; }
+
+    iterator
+    _M_erase(iterator __pos);
+
+    iterator
+    _M_erase(iterator __first, iterator __last);
+  };
+
+
+}
+
+
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/functional_hash.h" 1 3
+# 34 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/functional_hash.h" 3
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/hash_bytes.h" 1 3
+# 34 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/hash_bytes.h" 3
+
+
+
+namespace std
+{
+
+
+
+
+
+
+
+  size_t
+  _Hash_bytes(const void* __ptr, size_t __len, size_t __seed);
+
+
+
+
+
+  size_t
+  _Fnv_hash_bytes(const void* __ptr, size_t __len, size_t __seed);
+
+
+}
+# 36 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/functional_hash.h" 2 3
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 49 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/functional_hash.h" 3
+  template<typename _Result, typename _Arg>
+    struct __hash_base
+    {
+      typedef _Result result_type;
+      typedef _Arg argument_type;
+    };
+
+
+  template<typename _Tp>
+    struct hash;
+
+
+  template<typename _Tp, bool = is_enum<_Tp>::value>
+    struct __hash_enum
+    {
+    private:
+
+      __hash_enum(__hash_enum&&);
+      ~__hash_enum();
+    };
+
+
+  template<typename _Tp>
+    struct __hash_enum<_Tp, true> : public __hash_base<size_t, _Tp>
+    {
+      size_t
+      operator()(_Tp __val) const noexcept
+      {
+       using __type = typename underlying_type<_Tp>::type;
+       return hash<__type>{}(static_cast<__type>(__val));
+      }
+    };
+
+
+
+  template<typename _Tp>
+    struct hash : __hash_enum<_Tp>
+    { };
+
+
+  template<typename _Tp>
+    struct hash<_Tp*> : public __hash_base<size_t, _Tp*>
+    {
+      size_t
+      operator()(_Tp* __p) const noexcept
+      { return reinterpret_cast<size_t>(__p); }
+    };
+# 108 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/functional_hash.h" 3
+  template<> struct hash<bool> : public __hash_base<size_t, bool> { size_t operator()(bool __val) const noexcept { return static_cast<size_t>(__val); } };
+
+
+  template<> struct hash<char> : public __hash_base<size_t, char> { size_t operator()(char __val) const noexcept { return static_cast<size_t>(__val); } };
+
+
+  template<> struct hash<signed char> : public __hash_base<size_t, signed char> { size_t operator()(signed char __val) const noexcept { return static_cast<size_t>(__val); } };
+
+
+  template<> struct hash<unsigned char> : public __hash_base<size_t, unsigned char> { size_t operator()(unsigned char __val) const noexcept { return static_cast<size_t>(__val); } };
+
+
+  template<> struct hash<wchar_t> : public __hash_base<size_t, wchar_t> { size_t operator()(wchar_t __val) const noexcept { return static_cast<size_t>(__val); } };
+
+
+  template<> struct hash<char16_t> : public __hash_base<size_t, char16_t> { size_t operator()(char16_t __val) const noexcept { return static_cast<size_t>(__val); } };
+
+
+  template<> struct hash<char32_t> : public __hash_base<size_t, char32_t> { size_t operator()(char32_t __val) const noexcept { return static_cast<size_t>(__val); } };
+
+
+  template<> struct hash<short> : public __hash_base<size_t, short> { size_t operator()(short __val) const noexcept { return static_cast<size_t>(__val); } };
+
+
+  template<> struct hash<int> : public __hash_base<size_t, int> { size_t operator()(int __val) const noexcept { return static_cast<size_t>(__val); } };
+
+
+  template<> struct hash<long> : public __hash_base<size_t, long> { size_t operator()(long __val) const noexcept { return static_cast<size_t>(__val); } };
+
+
+  template<> struct hash<long long> : public __hash_base<size_t, long long> { size_t operator()(long long __val) const noexcept { return static_cast<size_t>(__val); } };
+
+
+  template<> struct hash<unsigned short> : public __hash_base<size_t, unsigned short> { size_t operator()(unsigned short __val) const noexcept { return static_cast<size_t>(__val); } };
+
+
+  template<> struct hash<unsigned int> : public __hash_base<size_t, unsigned int> { size_t operator()(unsigned int __val) const noexcept { return static_cast<size_t>(__val); } };
+
+
+  template<> struct hash<unsigned long> : public __hash_base<size_t, unsigned long> { size_t operator()(unsigned long __val) const noexcept { return static_cast<size_t>(__val); } };
+
+
+  template<> struct hash<unsigned long long> : public __hash_base<size_t, unsigned long long> { size_t operator()(unsigned long long __val) const noexcept { return static_cast<size_t>(__val); } };
+# 171 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/functional_hash.h" 3
+  struct _Hash_impl
+  {
+    static size_t
+    hash(const void* __ptr, size_t __clength,
+  size_t __seed = static_cast<size_t>(0xc70f6907UL))
+    { return _Hash_bytes(__ptr, __clength, __seed); }
+
+    template<typename _Tp>
+      static size_t
+      hash(const _Tp& __val)
+      { return hash(&__val, sizeof(__val)); }
+
+    template<typename _Tp>
+      static size_t
+      __hash_combine(const _Tp& __val, size_t __hash)
+      { return hash(&__val, sizeof(__val), __hash); }
+  };
+
+  struct _Fnv_hash_impl
+  {
+    static size_t
+    hash(const void* __ptr, size_t __clength,
+  size_t __seed = static_cast<size_t>(2166136261UL))
+    { return _Fnv_hash_bytes(__ptr, __clength, __seed); }
+
+    template<typename _Tp>
+      static size_t
+      hash(const _Tp& __val)
+      { return hash(&__val, sizeof(__val)); }
+
+    template<typename _Tp>
+      static size_t
+      __hash_combine(const _Tp& __val, size_t __hash)
+      { return hash(&__val, sizeof(__val), __hash); }
+  };
+
+
+  template<>
+    struct hash<float> : public __hash_base<size_t, float>
+    {
+      size_t
+      operator()(float __val) const noexcept
+      {
+
+ return __val != 0.0f ? std::_Hash_impl::hash(__val) : 0;
+      }
+    };
+
+
+  template<>
+    struct hash<double> : public __hash_base<size_t, double>
+    {
+      size_t
+      operator()(double __val) const noexcept
+      {
+
+ return __val != 0.0 ? std::_Hash_impl::hash(__val) : 0;
+      }
+    };
+
+
+  template<>
+    struct hash<long double>
+    : public __hash_base<size_t, long double>
+    {
+      __attribute__ ((__pure__)) size_t
+      operator()(long double __val) const noexcept;
+    };
+
+
+
+
+
+
+
+  template<typename _Hash>
+    struct __is_fast_hash : public std::true_type
+    { };
+
+  template<>
+    struct __is_fast_hash<hash<long double>> : public std::false_type
+    { };
+
+
+}
+# 1263 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_bvector.h" 2 3
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+
+
+  template<typename _Alloc>
+    struct hash<std::vector<bool, _Alloc>>
+    : public __hash_base<size_t, std::vector<bool, _Alloc>>
+    {
+      size_t
+      operator()(const std::vector<bool, _Alloc>&) const noexcept;
+    };
+
+
+}
+# 66 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/vector" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/range_access.h" 1 3
+# 34 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/range_access.h" 3
+
+
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+
+
+
+
+
+  template<typename _Container>
+    inline auto
+    begin(_Container& __cont) -> decltype(__cont.begin())
+    { return __cont.begin(); }
+
+
+
+
+
+
+  template<typename _Container>
+    inline auto
+    begin(const _Container& __cont) -> decltype(__cont.begin())
+    { return __cont.begin(); }
+
+
+
+
+
+
+  template<typename _Container>
+    inline auto
+    end(_Container& __cont) -> decltype(__cont.end())
+    { return __cont.end(); }
+
+
+
+
+
+
+  template<typename _Container>
+    inline auto
+    end(const _Container& __cont) -> decltype(__cont.end())
+    { return __cont.end(); }
+
+
+
+
+
+  template<typename _Tp, size_t _Nm>
+    inline _Tp*
+    begin(_Tp (&__arr)[_Nm])
+    { return __arr; }
+
+
+
+
+
+
+  template<typename _Tp, size_t _Nm>
+    inline _Tp*
+    end(_Tp (&__arr)[_Nm])
+    { return __arr + _Nm; }
+# 320 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/range_access.h" 3
+}
+# 67 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/vector" 2 3
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/vector.tcc" 1 3
+# 59 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/vector.tcc" 3
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+  template<typename _Tp, typename _Alloc>
+    void
+    vector<_Tp, _Alloc>::
+    reserve(size_type __n)
+    {
+      if (__n > this->max_size())
+ __throw_length_error(("vector::reserve"));
+      if (this->capacity() < __n)
+ {
+   const size_type __old_size = size();
+   pointer __tmp = _M_allocate_and_copy(__n,
+     std::__make_move_if_noexcept_iterator(this->_M_impl._M_start),
+     std::__make_move_if_noexcept_iterator(this->_M_impl._M_finish));
+   std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
+   _M_get_Tp_allocator());
+   _M_deallocate(this->_M_impl._M_start,
+   this->_M_impl._M_end_of_storage
+   - this->_M_impl._M_start);
+   this->_M_impl._M_start = __tmp;
+   this->_M_impl._M_finish = __tmp + __old_size;
+   this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n;
+ }
+    }
+
+
+  template<typename _Tp, typename _Alloc>
+    template<typename... _Args>
+      void
+      vector<_Tp, _Alloc>::
+      emplace_back(_Args&&... __args)
+      {
+ if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage)
+   {
+     _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish,
+         std::forward<_Args>(__args)...);
+     ++this->_M_impl._M_finish;
+   }
+ else
+   _M_emplace_back_aux(std::forward<_Args>(__args)...);
+      }
+
+
+  template<typename _Tp, typename _Alloc>
+    typename vector<_Tp, _Alloc>::iterator
+    vector<_Tp, _Alloc>::
+
+    insert(const_iterator __position, const value_type& __x)
+
+
+
+    {
+      const size_type __n = __position - begin();
+      if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage
+   && __position == end())
+ {
+   _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish, __x);
+   ++this->_M_impl._M_finish;
+ }
+      else
+ {
+
+   const auto __pos = begin() + (__position - cbegin());
+   if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage)
+     {
+       _Tp __x_copy = __x;
+       _M_insert_aux(__pos, std::move(__x_copy));
+     }
+   else
+     _M_insert_aux(__pos, __x);
+
+
+
+ }
+      return iterator(this->_M_impl._M_start + __n);
+    }
+
+  template<typename _Tp, typename _Alloc>
+    typename vector<_Tp, _Alloc>::iterator
+    vector<_Tp, _Alloc>::
+    _M_erase(iterator __position)
+    {
+      if (__position + 1 != end())
+ std::move(__position + 1, end(), __position);
+      --this->_M_impl._M_finish;
+      _Alloc_traits::destroy(this->_M_impl, this->_M_impl._M_finish);
+      return __position;
+    }
+
+  template<typename _Tp, typename _Alloc>
+    typename vector<_Tp, _Alloc>::iterator
+    vector<_Tp, _Alloc>::
+    _M_erase(iterator __first, iterator __last)
+    {
+      if (__first != __last)
+ {
+   if (__last != end())
+     std::move(__last, end(), __first);
+   _M_erase_at_end(__first.base() + (end() - __last));
+ }
+      return __first;
+    }
+
+  template<typename _Tp, typename _Alloc>
+    vector<_Tp, _Alloc>&
+    vector<_Tp, _Alloc>::
+    operator=(const vector<_Tp, _Alloc>& __x)
+    {
+      if (&__x != this)
+ {
+
+   if (_Alloc_traits::_S_propagate_on_copy_assign())
+     {
+       if (!_Alloc_traits::_S_always_equal()
+           && _M_get_Tp_allocator() != __x._M_get_Tp_allocator())
+         {
+
+    this->clear();
+    _M_deallocate(this->_M_impl._M_start,
+    this->_M_impl._M_end_of_storage
+    - this->_M_impl._M_start);
+    this->_M_impl._M_start = nullptr;
+    this->_M_impl._M_finish = nullptr;
+    this->_M_impl._M_end_of_storage = nullptr;
+  }
+       std::__alloc_on_copy(_M_get_Tp_allocator(),
+       __x._M_get_Tp_allocator());
+     }
+
+   const size_type __xlen = __x.size();
+   if (__xlen > capacity())
+     {
+       pointer __tmp = _M_allocate_and_copy(__xlen, __x.begin(),
+         __x.end());
+       std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
+       _M_get_Tp_allocator());
+       _M_deallocate(this->_M_impl._M_start,
+       this->_M_impl._M_end_of_storage
+       - this->_M_impl._M_start);
+       this->_M_impl._M_start = __tmp;
+       this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __xlen;
+     }
+   else if (size() >= __xlen)
+     {
+       std::_Destroy(std::copy(__x.begin(), __x.end(), begin()),
+       end(), _M_get_Tp_allocator());
+     }
+   else
+     {
+       std::copy(__x._M_impl._M_start, __x._M_impl._M_start + size(),
+   this->_M_impl._M_start);
+       std::__uninitialized_copy_a(__x._M_impl._M_start + size(),
+       __x._M_impl._M_finish,
+       this->_M_impl._M_finish,
+       _M_get_Tp_allocator());
+     }
+   this->_M_impl._M_finish = this->_M_impl._M_start + __xlen;
+ }
+      return *this;
+    }
+
+  template<typename _Tp, typename _Alloc>
+    void
+    vector<_Tp, _Alloc>::
+    _M_fill_assign(size_t __n, const value_type& __val)
+    {
+      if (__n > capacity())
+ {
+   vector __tmp(__n, __val, _M_get_Tp_allocator());
+   __tmp._M_impl._M_swap_data(this->_M_impl);
+ }
+      else if (__n > size())
+ {
+   std::fill(begin(), end(), __val);
+   this->_M_impl._M_finish =
+     std::__uninitialized_fill_n_a(this->_M_impl._M_finish,
+       __n - size(), __val,
+       _M_get_Tp_allocator());
+ }
+      else
+        _M_erase_at_end(std::fill_n(this->_M_impl._M_start, __n, __val));
+    }
+
+  template<typename _Tp, typename _Alloc>
+    template<typename _InputIterator>
+      void
+      vector<_Tp, _Alloc>::
+      _M_assign_aux(_InputIterator __first, _InputIterator __last,
+      std::input_iterator_tag)
+      {
+ pointer __cur(this->_M_impl._M_start);
+ for (; __first != __last && __cur != this->_M_impl._M_finish;
+      ++__cur, ++__first)
+   *__cur = *__first;
+ if (__first == __last)
+   _M_erase_at_end(__cur);
+ else
+   insert(end(), __first, __last);
+      }
+
+  template<typename _Tp, typename _Alloc>
+    template<typename _ForwardIterator>
+      void
+      vector<_Tp, _Alloc>::
+      _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last,
+      std::forward_iterator_tag)
+      {
+ const size_type __len = std::distance(__first, __last);
+
+ if (__len > capacity())
+   {
+     pointer __tmp(_M_allocate_and_copy(__len, __first, __last));
+     std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
+     _M_get_Tp_allocator());
+     _M_deallocate(this->_M_impl._M_start,
+     this->_M_impl._M_end_of_storage
+     - this->_M_impl._M_start);
+     this->_M_impl._M_start = __tmp;
+     this->_M_impl._M_finish = this->_M_impl._M_start + __len;
+     this->_M_impl._M_end_of_storage = this->_M_impl._M_finish;
+   }
+ else if (size() >= __len)
+   _M_erase_at_end(std::copy(__first, __last, this->_M_impl._M_start));
+ else
+   {
+     _ForwardIterator __mid = __first;
+     std::advance(__mid, size());
+     std::copy(__first, __mid, this->_M_impl._M_start);
+     this->_M_impl._M_finish =
+       std::__uninitialized_copy_a(__mid, __last,
+       this->_M_impl._M_finish,
+       _M_get_Tp_allocator());
+   }
+      }
+
+
+  template<typename _Tp, typename _Alloc>
+    template<typename... _Args>
+      typename vector<_Tp, _Alloc>::iterator
+      vector<_Tp, _Alloc>::
+      emplace(const_iterator __position, _Args&&... __args)
+      {
+ const size_type __n = __position - begin();
+ if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage
+     && __position == end())
+   {
+     _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish,
+         std::forward<_Args>(__args)...);
+     ++this->_M_impl._M_finish;
+   }
+ else
+   _M_insert_aux(begin() + (__position - cbegin()),
+   std::forward<_Args>(__args)...);
+ return iterator(this->_M_impl._M_start + __n);
+      }
+
+  template<typename _Tp, typename _Alloc>
+    template<typename... _Args>
+      void
+      vector<_Tp, _Alloc>::
+      _M_insert_aux(iterator __position, _Args&&... __args)
+
+
+
+
+
+
+    {
+      if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage)
+ {
+   _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish,
+              std::move(*(this->_M_impl._M_finish - 1)));
+
+   ++this->_M_impl._M_finish;
+
+
+
+   std::move_backward(__position.base(), this->_M_impl._M_finish - 2, this->_M_impl._M_finish - 1);
+
+
+
+
+
+   *__position = _Tp(std::forward<_Args>(__args)...);
+
+ }
+      else
+ {
+   const size_type __len =
+     _M_check_len(size_type(1), "vector::_M_insert_aux");
+   const size_type __elems_before = __position - begin();
+   pointer __new_start(this->_M_allocate(__len));
+   pointer __new_finish(__new_start);
+   try
+     {
+
+
+
+
+       _Alloc_traits::construct(this->_M_impl,
+                         __new_start + __elems_before,
+
+           std::forward<_Args>(__args)...);
+
+
+
+       __new_finish = pointer();
+
+       __new_finish
+  = std::__uninitialized_move_if_noexcept_a
+  (this->_M_impl._M_start, __position.base(),
+   __new_start, _M_get_Tp_allocator());
+
+       ++__new_finish;
+
+       __new_finish
+  = std::__uninitialized_move_if_noexcept_a
+  (__position.base(), this->_M_impl._M_finish,
+   __new_finish, _M_get_Tp_allocator());
+     }
+          catch(...)
+     {
+       if (!__new_finish)
+  _Alloc_traits::destroy(this->_M_impl,
+                         __new_start + __elems_before);
+       else
+  std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator());
+       _M_deallocate(__new_start, __len);
+       throw;
+     }
+   std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
+   _M_get_Tp_allocator());
+   _M_deallocate(this->_M_impl._M_start,
+   this->_M_impl._M_end_of_storage
+   - this->_M_impl._M_start);
+   this->_M_impl._M_start = __new_start;
+   this->_M_impl._M_finish = __new_finish;
+   this->_M_impl._M_end_of_storage = __new_start + __len;
+ }
+    }
+
+
+  template<typename _Tp, typename _Alloc>
+    template<typename... _Args>
+      void
+      vector<_Tp, _Alloc>::
+      _M_emplace_back_aux(_Args&&... __args)
+      {
+ const size_type __len =
+   _M_check_len(size_type(1), "vector::_M_emplace_back_aux");
+ pointer __new_start(this->_M_allocate(__len));
+ pointer __new_finish(__new_start);
+ try
+   {
+     _Alloc_traits::construct(this->_M_impl, __new_start + size(),
+         std::forward<_Args>(__args)...);
+     __new_finish = pointer();
+
+     __new_finish
+       = std::__uninitialized_move_if_noexcept_a
+       (this->_M_impl._M_start, this->_M_impl._M_finish,
+        __new_start, _M_get_Tp_allocator());
+
+     ++__new_finish;
+   }
+ catch(...)
+   {
+     if (!__new_finish)
+       _Alloc_traits::destroy(this->_M_impl, __new_start + size());
+     else
+       std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator());
+     _M_deallocate(__new_start, __len);
+     throw;
+   }
+ std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
+        _M_get_Tp_allocator());
+ _M_deallocate(this->_M_impl._M_start,
+        this->_M_impl._M_end_of_storage
+        - this->_M_impl._M_start);
+ this->_M_impl._M_start = __new_start;
+ this->_M_impl._M_finish = __new_finish;
+ this->_M_impl._M_end_of_storage = __new_start + __len;
+      }
+
+
+  template<typename _Tp, typename _Alloc>
+    void
+    vector<_Tp, _Alloc>::
+    _M_fill_insert(iterator __position, size_type __n, const value_type& __x)
+    {
+      if (__n != 0)
+ {
+   if (size_type(this->_M_impl._M_end_of_storage
+   - this->_M_impl._M_finish) >= __n)
+     {
+       value_type __x_copy = __x;
+       const size_type __elems_after = end() - __position;
+       pointer __old_finish(this->_M_impl._M_finish);
+       if (__elems_after > __n)
+  {
+    std::__uninitialized_move_a(this->_M_impl._M_finish - __n,
+           this->_M_impl._M_finish,
+           this->_M_impl._M_finish,
+           _M_get_Tp_allocator());
+    this->_M_impl._M_finish += __n;
+    std::move_backward(__position.base(), __old_finish - __n, __old_finish);
+
+    std::fill(__position.base(), __position.base() + __n,
+       __x_copy);
+  }
+       else
+  {
+    this->_M_impl._M_finish =
+      std::__uninitialized_fill_n_a(this->_M_impl._M_finish,
+        __n - __elems_after,
+        __x_copy,
+        _M_get_Tp_allocator());
+    std::__uninitialized_move_a(__position.base(), __old_finish,
+           this->_M_impl._M_finish,
+           _M_get_Tp_allocator());
+    this->_M_impl._M_finish += __elems_after;
+    std::fill(__position.base(), __old_finish, __x_copy);
+  }
+     }
+   else
+     {
+       const size_type __len =
+  _M_check_len(__n, "vector::_M_fill_insert");
+       const size_type __elems_before = __position - begin();
+       pointer __new_start(this->_M_allocate(__len));
+       pointer __new_finish(__new_start);
+       try
+  {
+
+    std::__uninitialized_fill_n_a(__new_start + __elems_before,
+      __n, __x,
+      _M_get_Tp_allocator());
+    __new_finish = pointer();
+
+    __new_finish
+      = std::__uninitialized_move_if_noexcept_a
+      (this->_M_impl._M_start, __position.base(),
+       __new_start, _M_get_Tp_allocator());
+
+    __new_finish += __n;
+
+    __new_finish
+      = std::__uninitialized_move_if_noexcept_a
+      (__position.base(), this->_M_impl._M_finish,
+       __new_finish, _M_get_Tp_allocator());
+  }
+       catch(...)
+  {
+    if (!__new_finish)
+      std::_Destroy(__new_start + __elems_before,
+      __new_start + __elems_before + __n,
+      _M_get_Tp_allocator());
+    else
+      std::_Destroy(__new_start, __new_finish,
+      _M_get_Tp_allocator());
+    _M_deallocate(__new_start, __len);
+    throw;
+  }
+       std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
+       _M_get_Tp_allocator());
+       _M_deallocate(this->_M_impl._M_start,
+       this->_M_impl._M_end_of_storage
+       - this->_M_impl._M_start);
+       this->_M_impl._M_start = __new_start;
+       this->_M_impl._M_finish = __new_finish;
+       this->_M_impl._M_end_of_storage = __new_start + __len;
+     }
+ }
+    }
+
+
+  template<typename _Tp, typename _Alloc>
+    void
+    vector<_Tp, _Alloc>::
+    _M_default_append(size_type __n)
+    {
+      if (__n != 0)
+ {
+   if (size_type(this->_M_impl._M_end_of_storage
+   - this->_M_impl._M_finish) >= __n)
+     {
+       this->_M_impl._M_finish =
+  std::__uninitialized_default_n_a(this->_M_impl._M_finish,
+       __n, _M_get_Tp_allocator());
+     }
+   else
+     {
+       const size_type __len =
+  _M_check_len(__n, "vector::_M_default_append");
+       const size_type __old_size = this->size();
+       pointer __new_start(this->_M_allocate(__len));
+       pointer __new_finish(__new_start);
+       try
+  {
+    __new_finish
+      = std::__uninitialized_move_if_noexcept_a
+      (this->_M_impl._M_start, this->_M_impl._M_finish,
+       __new_start, _M_get_Tp_allocator());
+    __new_finish =
+      std::__uninitialized_default_n_a(__new_finish, __n,
+           _M_get_Tp_allocator());
+  }
+       catch(...)
+  {
+    std::_Destroy(__new_start, __new_finish,
+    _M_get_Tp_allocator());
+    _M_deallocate(__new_start, __len);
+    throw;
+  }
+       std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
+       _M_get_Tp_allocator());
+       _M_deallocate(this->_M_impl._M_start,
+       this->_M_impl._M_end_of_storage
+       - this->_M_impl._M_start);
+       this->_M_impl._M_start = __new_start;
+       this->_M_impl._M_finish = __new_finish;
+       this->_M_impl._M_end_of_storage = __new_start + __len;
+     }
+ }
+    }
+
+  template<typename _Tp, typename _Alloc>
+    bool
+    vector<_Tp, _Alloc>::
+    _M_shrink_to_fit()
+    {
+      if (capacity() == size())
+ return false;
+      return std::__shrink_to_fit_aux<vector>::_S_do_it(*this);
+    }
+
+
+  template<typename _Tp, typename _Alloc>
+    template<typename _InputIterator>
+      void
+      vector<_Tp, _Alloc>::
+      _M_range_insert(iterator __pos, _InputIterator __first,
+        _InputIterator __last, std::input_iterator_tag)
+      {
+ for (; __first != __last; ++__first)
+   {
+     __pos = insert(__pos, *__first);
+     ++__pos;
+   }
+      }
+
+  template<typename _Tp, typename _Alloc>
+    template<typename _ForwardIterator>
+      void
+      vector<_Tp, _Alloc>::
+      _M_range_insert(iterator __position, _ForwardIterator __first,
+        _ForwardIterator __last, std::forward_iterator_tag)
+      {
+ if (__first != __last)
+   {
+     const size_type __n = std::distance(__first, __last);
+     if (size_type(this->_M_impl._M_end_of_storage
+     - this->_M_impl._M_finish) >= __n)
+       {
+  const size_type __elems_after = end() - __position;
+  pointer __old_finish(this->_M_impl._M_finish);
+  if (__elems_after > __n)
+    {
+      std::__uninitialized_move_a(this->_M_impl._M_finish - __n,
+      this->_M_impl._M_finish,
+      this->_M_impl._M_finish,
+      _M_get_Tp_allocator());
+      this->_M_impl._M_finish += __n;
+      std::move_backward(__position.base(), __old_finish - __n, __old_finish);
+
+      std::copy(__first, __last, __position);
+    }
+  else
+    {
+      _ForwardIterator __mid = __first;
+      std::advance(__mid, __elems_after);
+      std::__uninitialized_copy_a(__mid, __last,
+      this->_M_impl._M_finish,
+      _M_get_Tp_allocator());
+      this->_M_impl._M_finish += __n - __elems_after;
+      std::__uninitialized_move_a(__position.base(),
+      __old_finish,
+      this->_M_impl._M_finish,
+      _M_get_Tp_allocator());
+      this->_M_impl._M_finish += __elems_after;
+      std::copy(__first, __mid, __position);
+    }
+       }
+     else
+       {
+  const size_type __len =
+    _M_check_len(__n, "vector::_M_range_insert");
+  pointer __new_start(this->_M_allocate(__len));
+  pointer __new_finish(__new_start);
+  try
+    {
+      __new_finish
+        = std::__uninitialized_move_if_noexcept_a
+        (this->_M_impl._M_start, __position.base(),
+         __new_start, _M_get_Tp_allocator());
+      __new_finish
+        = std::__uninitialized_copy_a(__first, __last,
+          __new_finish,
+          _M_get_Tp_allocator());
+      __new_finish
+        = std::__uninitialized_move_if_noexcept_a
+        (__position.base(), this->_M_impl._M_finish,
+         __new_finish, _M_get_Tp_allocator());
+    }
+  catch(...)
+    {
+      std::_Destroy(__new_start, __new_finish,
+      _M_get_Tp_allocator());
+      _M_deallocate(__new_start, __len);
+      throw;
+    }
+  std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish,
+         _M_get_Tp_allocator());
+  _M_deallocate(this->_M_impl._M_start,
+         this->_M_impl._M_end_of_storage
+         - this->_M_impl._M_start);
+  this->_M_impl._M_start = __new_start;
+  this->_M_impl._M_finish = __new_finish;
+  this->_M_impl._M_end_of_storage = __new_start + __len;
+       }
+   }
+      }
+
+
+
+  template<typename _Alloc>
+    void
+    vector<bool, _Alloc>::
+    _M_reallocate(size_type __n)
+    {
+      _Bit_pointer __q = this->_M_allocate(__n);
+      iterator __start(std::__addressof(*__q), 0);
+      this->_M_impl._M_finish = _M_copy_aligned(begin(), end(), __start);
+      this->_M_deallocate();
+      this->_M_impl._M_start = __start;
+      this->_M_impl._M_end_of_storage = __q + _S_nword(__n);
+    }
+
+  template<typename _Alloc>
+    void
+    vector<bool, _Alloc>::
+    _M_fill_insert(iterator __position, size_type __n, bool __x)
+    {
+      if (__n == 0)
+ return;
+      if (capacity() - size() >= __n)
+ {
+   std::copy_backward(__position, end(),
+        this->_M_impl._M_finish + difference_type(__n));
+   std::fill(__position, __position + difference_type(__n), __x);
+   this->_M_impl._M_finish += difference_type(__n);
+ }
+      else
+ {
+   const size_type __len =
+     _M_check_len(__n, "vector<bool>::_M_fill_insert");
+   _Bit_pointer __q = this->_M_allocate(__len);
+   iterator __start(std::__addressof(*__q), 0);
+   iterator __i = _M_copy_aligned(begin(), __position, __start);
+   std::fill(__i, __i + difference_type(__n), __x);
+   this->_M_impl._M_finish = std::copy(__position, end(),
+           __i + difference_type(__n));
+   this->_M_deallocate();
+   this->_M_impl._M_end_of_storage = __q + _S_nword(__len);
+   this->_M_impl._M_start = __start;
+ }
+    }
+
+  template<typename _Alloc>
+    template<typename _ForwardIterator>
+      void
+      vector<bool, _Alloc>::
+      _M_insert_range(iterator __position, _ForwardIterator __first,
+        _ForwardIterator __last, std::forward_iterator_tag)
+      {
+ if (__first != __last)
+   {
+     size_type __n = std::distance(__first, __last);
+     if (capacity() - size() >= __n)
+       {
+  std::copy_backward(__position, end(),
+       this->_M_impl._M_finish
+       + difference_type(__n));
+  std::copy(__first, __last, __position);
+  this->_M_impl._M_finish += difference_type(__n);
+       }
+     else
+       {
+  const size_type __len =
+    _M_check_len(__n, "vector<bool>::_M_insert_range");
+  _Bit_pointer __q = this->_M_allocate(__len);
+  iterator __start(std::__addressof(*__q), 0);
+  iterator __i = _M_copy_aligned(begin(), __position, __start);
+  __i = std::copy(__first, __last, __i);
+  this->_M_impl._M_finish = std::copy(__position, end(), __i);
+  this->_M_deallocate();
+  this->_M_impl._M_end_of_storage = __q + _S_nword(__len);
+  this->_M_impl._M_start = __start;
+       }
+   }
+      }
+
+  template<typename _Alloc>
+    void
+    vector<bool, _Alloc>::
+    _M_insert_aux(iterator __position, bool __x)
+    {
+      if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_addr())
+ {
+   std::copy_backward(__position, this->_M_impl._M_finish,
+        this->_M_impl._M_finish + 1);
+   *__position = __x;
+   ++this->_M_impl._M_finish;
+ }
+      else
+ {
+   const size_type __len =
+     _M_check_len(size_type(1), "vector<bool>::_M_insert_aux");
+   _Bit_pointer __q = this->_M_allocate(__len);
+   iterator __start(std::__addressof(*__q), 0);
+   iterator __i = _M_copy_aligned(begin(), __position, __start);
+   *__i++ = __x;
+   this->_M_impl._M_finish = std::copy(__position, end(), __i);
+   this->_M_deallocate();
+   this->_M_impl._M_end_of_storage = __q + _S_nword(__len);
+   this->_M_impl._M_start = __start;
+ }
+    }
+
+  template<typename _Alloc>
+    typename vector<bool, _Alloc>::iterator
+    vector<bool, _Alloc>::
+    _M_erase(iterator __position)
+    {
+      if (__position + 1 != end())
+        std::copy(__position + 1, end(), __position);
+      --this->_M_impl._M_finish;
+      return __position;
+    }
+
+  template<typename _Alloc>
+    typename vector<bool, _Alloc>::iterator
+    vector<bool, _Alloc>::
+    _M_erase(iterator __first, iterator __last)
+    {
+      if (__first != __last)
+ _M_erase_at_end(std::copy(__last, end(), __first));
+      return __first;
+    }
+
+
+  template<typename _Alloc>
+    bool
+    vector<bool, _Alloc>::
+    _M_shrink_to_fit()
+    {
+      if (capacity() - size() < int(_S_word_bit))
+ return false;
+      try
+ {
+   _M_reallocate(size());
+   return true;
+ }
+      catch(...)
+ { return false; }
+    }
+
+
+
+}
+
+
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+  template<typename _Alloc>
+    size_t
+    hash<std::vector<bool, _Alloc>>::
+    operator()(const std::vector<bool, _Alloc>& __b) const noexcept
+    {
+      size_t __hash = 0;
+      using std::_S_word_bit;
+      using std::_Bit_type;
+
+      const size_t __words = __b.size() / _S_word_bit;
+      if (__words)
+ {
+   const size_t __clength = __words * sizeof(_Bit_type);
+   __hash = std::_Hash_impl::hash(__b._M_impl._M_start._M_p, __clength);
+ }
+
+      const size_t __extrabits = __b.size() % _S_word_bit;
+      if (__extrabits)
+ {
+   _Bit_type __hiword = *__b._M_impl._M_finish._M_p;
+   __hiword &= ~((~static_cast<_Bit_type>(0)) << __extrabits);
+
+   const size_t __clength
+     = (__extrabits + 8 - 1) / 8;
+   if (__words)
+     __hash = std::_Hash_impl::hash(&__hiword, __clength, __hash);
+   else
+     __hash = std::_Hash_impl::hash(&__hiword, __clength);
+ }
+
+      return __hash;
+    }
+
+
+}
+# 70 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/vector" 2 3
+# 4 "./libraries/Scope/Scope.h" 2
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/map" 1 3
+# 59 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/map" 3
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_tree.h" 1 3
+# 62 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_tree.h" 3
+
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_function.h" 1 3
+# 63 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_function.h" 3
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 104 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_function.h" 3
+  template<typename _Arg, typename _Result>
+    struct unary_function
+    {
+
+      typedef _Arg argument_type;
+
+
+      typedef _Result result_type;
+    };
+
+
+
+
+  template<typename _Arg1, typename _Arg2, typename _Result>
+    struct binary_function
+    {
+
+      typedef _Arg1 first_argument_type;
+
+
+      typedef _Arg2 second_argument_type;
+
+
+      typedef _Result result_type;
+    };
+# 166 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_function.h" 3
+  template<typename _Tp>
+    struct plus : public binary_function<_Tp, _Tp, _Tp>
+    {
+
+      _Tp
+      operator()(const _Tp& __x, const _Tp& __y) const
+      { return __x + __y; }
+    };
+
+
+  template<typename _Tp>
+    struct minus : public binary_function<_Tp, _Tp, _Tp>
+    {
+
+      _Tp
+      operator()(const _Tp& __x, const _Tp& __y) const
+      { return __x - __y; }
+    };
+
+
+  template<typename _Tp>
+    struct multiplies : public binary_function<_Tp, _Tp, _Tp>
+    {
+
+      _Tp
+      operator()(const _Tp& __x, const _Tp& __y) const
+      { return __x * __y; }
+    };
+
+
+  template<typename _Tp>
+    struct divides : public binary_function<_Tp, _Tp, _Tp>
+    {
+
+      _Tp
+      operator()(const _Tp& __x, const _Tp& __y) const
+      { return __x / __y; }
+    };
+
+
+  template<typename _Tp>
+    struct modulus : public binary_function<_Tp, _Tp, _Tp>
+    {
+
+      _Tp
+      operator()(const _Tp& __x, const _Tp& __y) const
+      { return __x % __y; }
+    };
+
+
+  template<typename _Tp>
+    struct negate : public unary_function<_Tp, _Tp>
+    {
+
+      _Tp
+      operator()(const _Tp& __x) const
+      { return -__x; }
+    };
+# 350 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_function.h" 3
+  template<typename _Tp>
+    struct equal_to : public binary_function<_Tp, _Tp, bool>
+    {
+
+      bool
+      operator()(const _Tp& __x, const _Tp& __y) const
+      { return __x == __y; }
+    };
+
+
+  template<typename _Tp>
+    struct not_equal_to : public binary_function<_Tp, _Tp, bool>
+    {
+
+      bool
+      operator()(const _Tp& __x, const _Tp& __y) const
+      { return __x != __y; }
+    };
+
+
+  template<typename _Tp>
+    struct greater : public binary_function<_Tp, _Tp, bool>
+    {
+
+      bool
+      operator()(const _Tp& __x, const _Tp& __y) const
+      { return __x > __y; }
+    };
+
+
+  template<typename _Tp>
+    struct less : public binary_function<_Tp, _Tp, bool>
+    {
+
+      bool
+      operator()(const _Tp& __x, const _Tp& __y) const
+      { return __x < __y; }
+    };
+
+
+  template<typename _Tp>
+    struct greater_equal : public binary_function<_Tp, _Tp, bool>
+    {
+
+      bool
+      operator()(const _Tp& __x, const _Tp& __y) const
+      { return __x >= __y; }
+    };
+
+
+  template<typename _Tp>
+    struct less_equal : public binary_function<_Tp, _Tp, bool>
+    {
+
+      bool
+      operator()(const _Tp& __x, const _Tp& __y) const
+      { return __x <= __y; }
+    };
+# 523 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_function.h" 3
+  template<typename _Tp>
+    struct logical_and : public binary_function<_Tp, _Tp, bool>
+    {
+
+      bool
+      operator()(const _Tp& __x, const _Tp& __y) const
+      { return __x && __y; }
+    };
+
+
+  template<typename _Tp>
+    struct logical_or : public binary_function<_Tp, _Tp, bool>
+    {
+
+      bool
+      operator()(const _Tp& __x, const _Tp& __y) const
+      { return __x || __y; }
+    };
+
+
+  template<typename _Tp>
+    struct logical_not : public unary_function<_Tp, bool>
+    {
+
+      bool
+      operator()(const _Tp& __x) const
+      { return !__x; }
+    };
+# 616 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_function.h" 3
+  template<typename _Tp>
+    struct bit_and : public binary_function<_Tp, _Tp, _Tp>
+    {
+
+      _Tp
+      operator()(const _Tp& __x, const _Tp& __y) const
+      { return __x & __y; }
+    };
+
+  template<typename _Tp>
+    struct bit_or : public binary_function<_Tp, _Tp, _Tp>
+    {
+
+      _Tp
+      operator()(const _Tp& __x, const _Tp& __y) const
+      { return __x | __y; }
+    };
+
+  template<typename _Tp>
+    struct bit_xor : public binary_function<_Tp, _Tp, _Tp>
+    {
+
+      _Tp
+      operator()(const _Tp& __x, const _Tp& __y) const
+      { return __x ^ __y; }
+    };
+
+  template<typename _Tp>
+    struct bit_not : public unary_function<_Tp, _Tp>
+    {
+
+      _Tp
+      operator()(const _Tp& __x) const
+      { return ~__x; }
+    };
+# 740 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_function.h" 3
+  template<typename _Predicate>
+    class unary_negate
+    : public unary_function<typename _Predicate::argument_type, bool>
+    {
+    protected:
+      _Predicate _M_pred;
+
+    public:
+
+      explicit
+      unary_negate(const _Predicate& __x) : _M_pred(__x) { }
+
+
+      bool
+      operator()(const typename _Predicate::argument_type& __x) const
+      { return !_M_pred(__x); }
+    };
+
+
+  template<typename _Predicate>
+
+    inline unary_negate<_Predicate>
+    not1(const _Predicate& __pred)
+    { return unary_negate<_Predicate>(__pred); }
+
+
+  template<typename _Predicate>
+    class binary_negate
+    : public binary_function<typename _Predicate::first_argument_type,
+        typename _Predicate::second_argument_type, bool>
+    {
+    protected:
+      _Predicate _M_pred;
+
+    public:
+
+      explicit
+      binary_negate(const _Predicate& __x) : _M_pred(__x) { }
+
+
+      bool
+      operator()(const typename _Predicate::first_argument_type& __x,
+   const typename _Predicate::second_argument_type& __y) const
+      { return !_M_pred(__x, __y); }
+    };
+
+
+  template<typename _Predicate>
+
+    inline binary_negate<_Predicate>
+    not2(const _Predicate& __pred)
+    { return binary_negate<_Predicate>(__pred); }
+# 817 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_function.h" 3
+  template<typename _Arg, typename _Result>
+    class pointer_to_unary_function : public unary_function<_Arg, _Result>
+    {
+    protected:
+      _Result (*_M_ptr)(_Arg);
+
+    public:
+      pointer_to_unary_function() { }
+
+      explicit
+      pointer_to_unary_function(_Result (*__x)(_Arg))
+      : _M_ptr(__x) { }
+
+      _Result
+      operator()(_Arg __x) const
+      { return _M_ptr(__x); }
+    };
+
+
+  template<typename _Arg, typename _Result>
+    inline pointer_to_unary_function<_Arg, _Result>
+    ptr_fun(_Result (*__x)(_Arg))
+    { return pointer_to_unary_function<_Arg, _Result>(__x); }
+
+
+  template<typename _Arg1, typename _Arg2, typename _Result>
+    class pointer_to_binary_function
+    : public binary_function<_Arg1, _Arg2, _Result>
+    {
+    protected:
+      _Result (*_M_ptr)(_Arg1, _Arg2);
+
+    public:
+      pointer_to_binary_function() { }
+
+      explicit
+      pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2))
+      : _M_ptr(__x) { }
+
+      _Result
+      operator()(_Arg1 __x, _Arg2 __y) const
+      { return _M_ptr(__x, __y); }
+    };
+
+
+  template<typename _Arg1, typename _Arg2, typename _Result>
+    inline pointer_to_binary_function<_Arg1, _Arg2, _Result>
+    ptr_fun(_Result (*__x)(_Arg1, _Arg2))
+    { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); }
+
+
+  template<typename _Tp>
+    struct _Identity
+    : public unary_function<_Tp,_Tp>
+    {
+      _Tp&
+      operator()(_Tp& __x) const
+      { return __x; }
+
+      const _Tp&
+      operator()(const _Tp& __x) const
+      { return __x; }
+    };
+
+  template<typename _Pair>
+    struct _Select1st
+    : public unary_function<_Pair, typename _Pair::first_type>
+    {
+      typename _Pair::first_type&
+      operator()(_Pair& __x) const
+      { return __x.first; }
+
+      const typename _Pair::first_type&
+      operator()(const _Pair& __x) const
+      { return __x.first; }
+
+
+      template<typename _Pair2>
+        typename _Pair2::first_type&
+        operator()(_Pair2& __x) const
+        { return __x.first; }
+
+      template<typename _Pair2>
+        const typename _Pair2::first_type&
+        operator()(const _Pair2& __x) const
+        { return __x.first; }
+
+    };
+
+  template<typename _Pair>
+    struct _Select2nd
+    : public unary_function<_Pair, typename _Pair::second_type>
+    {
+      typename _Pair::second_type&
+      operator()(_Pair& __x) const
+      { return __x.second; }
+
+      const typename _Pair::second_type&
+      operator()(const _Pair& __x) const
+      { return __x.second; }
+    };
+# 937 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_function.h" 3
+  template<typename _Ret, typename _Tp>
+    class mem_fun_t : public unary_function<_Tp*, _Ret>
+    {
+    public:
+      explicit
+      mem_fun_t(_Ret (_Tp::*__pf)())
+      : _M_f(__pf) { }
+
+      _Ret
+      operator()(_Tp* __p) const
+      { return (__p->*_M_f)(); }
+
+    private:
+      _Ret (_Tp::*_M_f)();
+    };
+
+
+
+  template<typename _Ret, typename _Tp>
+    class const_mem_fun_t : public unary_function<const _Tp*, _Ret>
+    {
+    public:
+      explicit
+      const_mem_fun_t(_Ret (_Tp::*__pf)() const)
+      : _M_f(__pf) { }
+
+      _Ret
+      operator()(const _Tp* __p) const
+      { return (__p->*_M_f)(); }
+
+    private:
+      _Ret (_Tp::*_M_f)() const;
+    };
+
+
+
+  template<typename _Ret, typename _Tp>
+    class mem_fun_ref_t : public unary_function<_Tp, _Ret>
+    {
+    public:
+      explicit
+      mem_fun_ref_t(_Ret (_Tp::*__pf)())
+      : _M_f(__pf) { }
+
+      _Ret
+      operator()(_Tp& __r) const
+      { return (__r.*_M_f)(); }
+
+    private:
+      _Ret (_Tp::*_M_f)();
+  };
+
+
+
+  template<typename _Ret, typename _Tp>
+    class const_mem_fun_ref_t : public unary_function<_Tp, _Ret>
+    {
+    public:
+      explicit
+      const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const)
+      : _M_f(__pf) { }
+
+      _Ret
+      operator()(const _Tp& __r) const
+      { return (__r.*_M_f)(); }
+
+    private:
+      _Ret (_Tp::*_M_f)() const;
+    };
+
+
+
+  template<typename _Ret, typename _Tp, typename _Arg>
+    class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret>
+    {
+    public:
+      explicit
+      mem_fun1_t(_Ret (_Tp::*__pf)(_Arg))
+      : _M_f(__pf) { }
+
+      _Ret
+      operator()(_Tp* __p, _Arg __x) const
+      { return (__p->*_M_f)(__x); }
+
+    private:
+      _Ret (_Tp::*_M_f)(_Arg);
+    };
+
+
+
+  template<typename _Ret, typename _Tp, typename _Arg>
+    class const_mem_fun1_t : public binary_function<const _Tp*, _Arg, _Ret>
+    {
+    public:
+      explicit
+      const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const)
+      : _M_f(__pf) { }
+
+      _Ret
+      operator()(const _Tp* __p, _Arg __x) const
+      { return (__p->*_M_f)(__x); }
+
+    private:
+      _Ret (_Tp::*_M_f)(_Arg) const;
+    };
+
+
+
+  template<typename _Ret, typename _Tp, typename _Arg>
+    class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret>
+    {
+    public:
+      explicit
+      mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg))
+      : _M_f(__pf) { }
+
+      _Ret
+      operator()(_Tp& __r, _Arg __x) const
+      { return (__r.*_M_f)(__x); }
+
+    private:
+      _Ret (_Tp::*_M_f)(_Arg);
+    };
+
+
+
+  template<typename _Ret, typename _Tp, typename _Arg>
+    class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret>
+    {
+    public:
+      explicit
+      const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const)
+      : _M_f(__pf) { }
+
+      _Ret
+      operator()(const _Tp& __r, _Arg __x) const
+      { return (__r.*_M_f)(__x); }
+
+    private:
+      _Ret (_Tp::*_M_f)(_Arg) const;
+    };
+
+
+
+  template<typename _Ret, typename _Tp>
+    inline mem_fun_t<_Ret, _Tp>
+    mem_fun(_Ret (_Tp::*__f)())
+    { return mem_fun_t<_Ret, _Tp>(__f); }
+
+  template<typename _Ret, typename _Tp>
+    inline const_mem_fun_t<_Ret, _Tp>
+    mem_fun(_Ret (_Tp::*__f)() const)
+    { return const_mem_fun_t<_Ret, _Tp>(__f); }
+
+  template<typename _Ret, typename _Tp>
+    inline mem_fun_ref_t<_Ret, _Tp>
+    mem_fun_ref(_Ret (_Tp::*__f)())
+    { return mem_fun_ref_t<_Ret, _Tp>(__f); }
+
+  template<typename _Ret, typename _Tp>
+    inline const_mem_fun_ref_t<_Ret, _Tp>
+    mem_fun_ref(_Ret (_Tp::*__f)() const)
+    { return const_mem_fun_ref_t<_Ret, _Tp>(__f); }
+
+  template<typename _Ret, typename _Tp, typename _Arg>
+    inline mem_fun1_t<_Ret, _Tp, _Arg>
+    mem_fun(_Ret (_Tp::*__f)(_Arg))
+    { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); }
+
+  template<typename _Ret, typename _Tp, typename _Arg>
+    inline const_mem_fun1_t<_Ret, _Tp, _Arg>
+    mem_fun(_Ret (_Tp::*__f)(_Arg) const)
+    { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); }
+
+  template<typename _Ret, typename _Tp, typename _Arg>
+    inline mem_fun1_ref_t<_Ret, _Tp, _Arg>
+    mem_fun_ref(_Ret (_Tp::*__f)(_Arg))
+    { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
+
+  template<typename _Ret, typename _Tp, typename _Arg>
+    inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg>
+    mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const)
+    { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
+
+
+
+
+}
+
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/backward/binders.h" 1 3
+# 60 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/backward/binders.h" 3
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 107 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/backward/binders.h" 3
+  template<typename _Operation>
+    class binder1st
+    : public unary_function<typename _Operation::second_argument_type,
+       typename _Operation::result_type>
+    {
+    protected:
+      _Operation op;
+      typename _Operation::first_argument_type value;
+
+    public:
+      binder1st(const _Operation& __x,
+  const typename _Operation::first_argument_type& __y)
+      : op(__x), value(__y) { }
+
+      typename _Operation::result_type
+      operator()(const typename _Operation::second_argument_type& __x) const
+      { return op(value, __x); }
+
+
+
+      typename _Operation::result_type
+      operator()(typename _Operation::second_argument_type& __x) const
+      { return op(value, __x); }
+    } __attribute__ ((__deprecated__));
+
+
+  template<typename _Operation, typename _Tp>
+    inline binder1st<_Operation>
+    bind1st(const _Operation& __fn, const _Tp& __x)
+    {
+      typedef typename _Operation::first_argument_type _Arg1_type;
+      return binder1st<_Operation>(__fn, _Arg1_type(__x));
+    }
+
+
+  template<typename _Operation>
+    class binder2nd
+    : public unary_function<typename _Operation::first_argument_type,
+       typename _Operation::result_type>
+    {
+    protected:
+      _Operation op;
+      typename _Operation::second_argument_type value;
+
+    public:
+      binder2nd(const _Operation& __x,
+  const typename _Operation::second_argument_type& __y)
+      : op(__x), value(__y) { }
+
+      typename _Operation::result_type
+      operator()(const typename _Operation::first_argument_type& __x) const
+      { return op(__x, value); }
+
+
+
+      typename _Operation::result_type
+      operator()(typename _Operation::first_argument_type& __x) const
+      { return op(__x, value); }
+    } __attribute__ ((__deprecated__));
+
+
+  template<typename _Operation, typename _Tp>
+    inline binder2nd<_Operation>
+    bind2nd(const _Operation& __fn, const _Tp& __x)
+    {
+      typedef typename _Operation::second_argument_type _Arg2_type;
+      return binder2nd<_Operation>(__fn, _Arg2_type(__x));
+    }
+
+
+
+}
+
+#pragma GCC diagnostic pop
+# 1128 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_function.h" 2 3
+# 66 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_tree.h" 2 3
+
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/aligned_buffer.h" 1 3
+# 33 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/aligned_buffer.h" 3
+
+
+
+
+
+
+
+namespace __gnu_cxx
+{
+
+
+
+
+  template<typename _Tp>
+    struct __aligned_membuf
+    {
+
+
+
+      struct _Tp2 { _Tp _M_t; };
+
+      alignas(__alignof__(_Tp2::_M_t)) unsigned char _M_storage[sizeof(_Tp)];
+
+      __aligned_membuf() = default;
+
+
+      __aligned_membuf(std::nullptr_t) { }
+
+      void*
+      _M_addr() noexcept
+      { return static_cast<void*>(&_M_storage); }
+
+      const void*
+      _M_addr() const noexcept
+      { return static_cast<const void*>(&_M_storage); }
+
+      _Tp*
+      _M_ptr() noexcept
+      { return static_cast<_Tp*>(_M_addr()); }
+
+      const _Tp*
+      _M_ptr() const noexcept
+      { return static_cast<const _Tp*>(_M_addr()); }
+    };
+
+
+
+
+
+
+  template<typename _Tp>
+    struct __aligned_buffer
+    : std::aligned_storage<sizeof(_Tp), std::alignment_of<_Tp>::value>
+    {
+      typename
+ std::aligned_storage<sizeof(_Tp), std::alignment_of<_Tp>::value>::type
+ _M_storage;
+
+      __aligned_buffer() = default;
+
+
+      __aligned_buffer(std::nullptr_t) { }
+
+      void*
+      _M_addr() noexcept
+      {
+        return static_cast<void*>(&_M_storage);
+      }
+
+      const void*
+      _M_addr() const noexcept
+      {
+        return static_cast<const void*>(&_M_storage);
+      }
+
+      _Tp*
+      _M_ptr() noexcept
+      { return static_cast<_Tp*>(_M_addr()); }
+
+      const _Tp*
+      _M_ptr() const noexcept
+      { return static_cast<const _Tp*>(_M_addr()); }
+    };
+
+}
+# 70 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_tree.h" 2 3
+
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 96 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_tree.h" 3
+  enum _Rb_tree_color { _S_red = false, _S_black = true };
+
+  struct _Rb_tree_node_base
+  {
+    typedef _Rb_tree_node_base* _Base_ptr;
+    typedef const _Rb_tree_node_base* _Const_Base_ptr;
+
+    _Rb_tree_color _M_color;
+    _Base_ptr _M_parent;
+    _Base_ptr _M_left;
+    _Base_ptr _M_right;
+
+    static _Base_ptr
+    _S_minimum(_Base_ptr __x) noexcept
+    {
+      while (__x->_M_left != 0) __x = __x->_M_left;
+      return __x;
+    }
+
+    static _Const_Base_ptr
+    _S_minimum(_Const_Base_ptr __x) noexcept
+    {
+      while (__x->_M_left != 0) __x = __x->_M_left;
+      return __x;
+    }
+
+    static _Base_ptr
+    _S_maximum(_Base_ptr __x) noexcept
+    {
+      while (__x->_M_right != 0) __x = __x->_M_right;
+      return __x;
+    }
+
+    static _Const_Base_ptr
+    _S_maximum(_Const_Base_ptr __x) noexcept
+    {
+      while (__x->_M_right != 0) __x = __x->_M_right;
+      return __x;
+    }
+  };
+
+  template<typename _Val>
+    struct _Rb_tree_node : public _Rb_tree_node_base
+    {
+      typedef _Rb_tree_node<_Val>* _Link_type;
+# 153 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_tree.h" 3
+      __gnu_cxx::__aligned_membuf<_Val> _M_storage;
+
+      _Val*
+      _M_valptr()
+      { return _M_storage._M_ptr(); }
+
+      const _Val*
+      _M_valptr() const
+      { return _M_storage._M_ptr(); }
+
+    };
+
+  __attribute__ ((__pure__)) _Rb_tree_node_base*
+  _Rb_tree_increment(_Rb_tree_node_base* __x) throw ();
+
+  __attribute__ ((__pure__)) const _Rb_tree_node_base*
+  _Rb_tree_increment(const _Rb_tree_node_base* __x) throw ();
+
+  __attribute__ ((__pure__)) _Rb_tree_node_base*
+  _Rb_tree_decrement(_Rb_tree_node_base* __x) throw ();
+
+  __attribute__ ((__pure__)) const _Rb_tree_node_base*
+  _Rb_tree_decrement(const _Rb_tree_node_base* __x) throw ();
+
+  template<typename _Tp>
+    struct _Rb_tree_iterator
+    {
+      typedef _Tp value_type;
+      typedef _Tp& reference;
+      typedef _Tp* pointer;
+
+      typedef bidirectional_iterator_tag iterator_category;
+      typedef ptrdiff_t difference_type;
+
+      typedef _Rb_tree_iterator<_Tp> _Self;
+      typedef _Rb_tree_node_base::_Base_ptr _Base_ptr;
+      typedef _Rb_tree_node<_Tp>* _Link_type;
+
+      _Rb_tree_iterator() noexcept
+      : _M_node() { }
+
+      explicit
+      _Rb_tree_iterator(_Base_ptr __x) noexcept
+      : _M_node(__x) { }
+
+      reference
+      operator*() const noexcept
+      { return *static_cast<_Link_type>(_M_node)->_M_valptr(); }
+
+      pointer
+      operator->() const noexcept
+      { return static_cast<_Link_type> (_M_node)->_M_valptr(); }
+
+      _Self&
+      operator++() noexcept
+      {
+ _M_node = _Rb_tree_increment(_M_node);
+ return *this;
+      }
+
+      _Self
+      operator++(int) noexcept
+      {
+ _Self __tmp = *this;
+ _M_node = _Rb_tree_increment(_M_node);
+ return __tmp;
+      }
+
+      _Self&
+      operator--() noexcept
+      {
+ _M_node = _Rb_tree_decrement(_M_node);
+ return *this;
+      }
+
+      _Self
+      operator--(int) noexcept
+      {
+ _Self __tmp = *this;
+ _M_node = _Rb_tree_decrement(_M_node);
+ return __tmp;
+      }
+
+      bool
+      operator==(const _Self& __x) const noexcept
+      { return _M_node == __x._M_node; }
+
+      bool
+      operator!=(const _Self& __x) const noexcept
+      { return _M_node != __x._M_node; }
+
+      _Base_ptr _M_node;
+  };
+
+  template<typename _Tp>
+    struct _Rb_tree_const_iterator
+    {
+      typedef _Tp value_type;
+      typedef const _Tp& reference;
+      typedef const _Tp* pointer;
+
+      typedef _Rb_tree_iterator<_Tp> iterator;
+
+      typedef bidirectional_iterator_tag iterator_category;
+      typedef ptrdiff_t difference_type;
+
+      typedef _Rb_tree_const_iterator<_Tp> _Self;
+      typedef _Rb_tree_node_base::_Const_Base_ptr _Base_ptr;
+      typedef const _Rb_tree_node<_Tp>* _Link_type;
+
+      _Rb_tree_const_iterator() noexcept
+      : _M_node() { }
+
+      explicit
+      _Rb_tree_const_iterator(_Base_ptr __x) noexcept
+      : _M_node(__x) { }
+
+      _Rb_tree_const_iterator(const iterator& __it) noexcept
+      : _M_node(__it._M_node) { }
+
+      iterator
+      _M_const_cast() const noexcept
+      { return iterator(const_cast<typename iterator::_Base_ptr>(_M_node)); }
+
+      reference
+      operator*() const noexcept
+      { return *static_cast<_Link_type>(_M_node)->_M_valptr(); }
+
+      pointer
+      operator->() const noexcept
+      { return static_cast<_Link_type>(_M_node)->_M_valptr(); }
+
+      _Self&
+      operator++() noexcept
+      {
+ _M_node = _Rb_tree_increment(_M_node);
+ return *this;
+      }
+
+      _Self
+      operator++(int) noexcept
+      {
+ _Self __tmp = *this;
+ _M_node = _Rb_tree_increment(_M_node);
+ return __tmp;
+      }
+
+      _Self&
+      operator--() noexcept
+      {
+ _M_node = _Rb_tree_decrement(_M_node);
+ return *this;
+      }
+
+      _Self
+      operator--(int) noexcept
+      {
+ _Self __tmp = *this;
+ _M_node = _Rb_tree_decrement(_M_node);
+ return __tmp;
+      }
+
+      bool
+      operator==(const _Self& __x) const noexcept
+      { return _M_node == __x._M_node; }
+
+      bool
+      operator!=(const _Self& __x) const noexcept
+      { return _M_node != __x._M_node; }
+
+      _Base_ptr _M_node;
+    };
+
+  template<typename _Val>
+    inline bool
+    operator==(const _Rb_tree_iterator<_Val>& __x,
+               const _Rb_tree_const_iterator<_Val>& __y) noexcept
+    { return __x._M_node == __y._M_node; }
+
+  template<typename _Val>
+    inline bool
+    operator!=(const _Rb_tree_iterator<_Val>& __x,
+               const _Rb_tree_const_iterator<_Val>& __y) noexcept
+    { return __x._M_node != __y._M_node; }
+
+  void
+  _Rb_tree_insert_and_rebalance(const bool __insert_left,
+                                _Rb_tree_node_base* __x,
+                                _Rb_tree_node_base* __p,
+                                _Rb_tree_node_base& __header) throw ();
+
+  _Rb_tree_node_base*
+  _Rb_tree_rebalance_for_erase(_Rb_tree_node_base* const __z,
+          _Rb_tree_node_base& __header) throw ();
+# 359 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_tree.h" 3
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc = allocator<_Val> >
+    class _Rb_tree
+    {
+      typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template
+        rebind<_Rb_tree_node<_Val> >::other _Node_allocator;
+
+      typedef __gnu_cxx::__alloc_traits<_Node_allocator> _Alloc_traits;
+
+    protected:
+      typedef _Rb_tree_node_base* _Base_ptr;
+      typedef const _Rb_tree_node_base* _Const_Base_ptr;
+      typedef _Rb_tree_node<_Val>* _Link_type;
+      typedef const _Rb_tree_node<_Val>* _Const_Link_type;
+
+    private:
+
+
+      struct _Reuse_or_alloc_node
+      {
+ _Reuse_or_alloc_node(_Rb_tree& __t)
+   : _M_root(__t._M_root()), _M_nodes(__t._M_rightmost()), _M_t(__t)
+ {
+   if (_M_root)
+     {
+       _M_root->_M_parent = 0;
+
+       if (_M_nodes->_M_left)
+  _M_nodes = _M_nodes->_M_left;
+     }
+   else
+     _M_nodes = 0;
+ }
+
+
+ _Reuse_or_alloc_node(const _Reuse_or_alloc_node&) = delete;
+
+
+ ~_Reuse_or_alloc_node()
+ { _M_t._M_erase(static_cast<_Link_type>(_M_root)); }
+
+ template<typename _Arg>
+   _Link_type
+
+
+
+   operator()(_Arg&& __arg)
+
+   {
+     _Link_type __node = static_cast<_Link_type>(_M_extract());
+     if (__node)
+       {
+  _M_t._M_destroy_node(__node);
+  _M_t._M_construct_node(__node, std::forward<_Arg>(__arg));
+  return __node;
+       }
+
+     return _M_t._M_create_node(std::forward<_Arg>(__arg));
+   }
+
+      private:
+ _Base_ptr
+ _M_extract()
+ {
+   if (!_M_nodes)
+     return _M_nodes;
+
+   _Base_ptr __node = _M_nodes;
+   _M_nodes = _M_nodes->_M_parent;
+   if (_M_nodes)
+     {
+       if (_M_nodes->_M_right == __node)
+  {
+    _M_nodes->_M_right = 0;
+
+    if (_M_nodes->_M_left)
+      {
+        _M_nodes = _M_nodes->_M_left;
+
+        while (_M_nodes->_M_right)
+   _M_nodes = _M_nodes->_M_right;
+
+        if (_M_nodes->_M_left)
+   _M_nodes = _M_nodes->_M_left;
+      }
+  }
+       else
+  _M_nodes->_M_left = 0;
+     }
+   else
+     _M_root = 0;
+
+   return __node;
+ }
+
+ _Base_ptr _M_root;
+ _Base_ptr _M_nodes;
+ _Rb_tree& _M_t;
+      };
+
+
+
+      struct _Alloc_node
+      {
+ _Alloc_node(_Rb_tree& __t)
+   : _M_t(__t) { }
+
+ template<typename _Arg>
+   _Link_type
+
+
+
+   operator()(_Arg&& __arg) const
+
+   { return _M_t._M_create_node(std::forward<_Arg>(__arg)); }
+
+      private:
+ _Rb_tree& _M_t;
+      };
+
+    public:
+      typedef _Key key_type;
+      typedef _Val value_type;
+      typedef value_type* pointer;
+      typedef const value_type* const_pointer;
+      typedef value_type& reference;
+      typedef const value_type& const_reference;
+      typedef size_t size_type;
+      typedef ptrdiff_t difference_type;
+      typedef _Alloc allocator_type;
+
+      _Node_allocator&
+      _M_get_Node_allocator() noexcept
+      { return *static_cast<_Node_allocator*>(&this->_M_impl); }
+
+      const _Node_allocator&
+      _M_get_Node_allocator() const noexcept
+      { return *static_cast<const _Node_allocator*>(&this->_M_impl); }
+
+      allocator_type
+      get_allocator() const noexcept
+      { return allocator_type(_M_get_Node_allocator()); }
+
+    protected:
+      _Link_type
+      _M_get_node()
+      { return _Alloc_traits::allocate(_M_get_Node_allocator(), 1); }
+
+      void
+      _M_put_node(_Link_type __p) noexcept
+      { _Alloc_traits::deallocate(_M_get_Node_allocator(), __p, 1); }
+# 536 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_tree.h" 3
+      template<typename... _Args>
+ void
+ _M_construct_node(_Link_type __node, _Args&&... __args)
+ {
+   try
+     {
+       ::new(__node) _Rb_tree_node<_Val>;
+       _Alloc_traits::construct(_M_get_Node_allocator(),
+           __node->_M_valptr(),
+           std::forward<_Args>(__args)...);
+     }
+   catch(...)
+     {
+       __node->~_Rb_tree_node<_Val>();
+       _M_put_node(__node);
+       throw;
+     }
+ }
+
+      template<typename... _Args>
+        _Link_type
+        _M_create_node(_Args&&... __args)
+ {
+   _Link_type __tmp = _M_get_node();
+   _M_construct_node(__tmp, std::forward<_Args>(__args)...);
+   return __tmp;
+ }
+
+      void
+      _M_destroy_node(_Link_type __p) noexcept
+      {
+ _Alloc_traits::destroy(_M_get_Node_allocator(), __p->_M_valptr());
+ __p->~_Rb_tree_node<_Val>();
+      }
+
+
+      void
+      _M_drop_node(_Link_type __p) noexcept
+      {
+ _M_destroy_node(__p);
+ _M_put_node(__p);
+      }
+
+      template<typename _NodeGen>
+ _Link_type
+ _M_clone_node(_Const_Link_type __x, _NodeGen& __node_gen)
+ {
+   _Link_type __tmp = __node_gen(*__x->_M_valptr());
+   __tmp->_M_color = __x->_M_color;
+   __tmp->_M_left = 0;
+   __tmp->_M_right = 0;
+   return __tmp;
+ }
+
+    protected:
+
+      template<typename _Key_compare,
+        bool = __is_pod(_Key_compare)>
+        struct _Rb_tree_impl : public _Node_allocator
+        {
+   _Key_compare _M_key_compare;
+   _Rb_tree_node_base _M_header;
+   size_type _M_node_count;
+
+   _Rb_tree_impl()
+   : _Node_allocator(), _M_key_compare(), _M_header(),
+     _M_node_count(0)
+   { _M_initialize(); }
+
+   _Rb_tree_impl(const _Key_compare& __comp, const _Node_allocator& __a)
+   : _Node_allocator(__a), _M_key_compare(__comp), _M_header(),
+     _M_node_count(0)
+   { _M_initialize(); }
+
+
+   _Rb_tree_impl(const _Key_compare& __comp, _Node_allocator&& __a)
+   : _Node_allocator(std::move(__a)), _M_key_compare(__comp),
+     _M_header(), _M_node_count(0)
+   { _M_initialize(); }
+
+
+   void
+   _M_reset()
+   {
+     this->_M_header._M_parent = 0;
+     this->_M_header._M_left = &this->_M_header;
+     this->_M_header._M_right = &this->_M_header;
+     this->_M_node_count = 0;
+   }
+
+ private:
+   void
+   _M_initialize()
+   {
+     this->_M_header._M_color = _S_red;
+     this->_M_header._M_parent = 0;
+     this->_M_header._M_left = &this->_M_header;
+     this->_M_header._M_right = &this->_M_header;
+   }
+ };
+
+      _Rb_tree_impl<_Compare> _M_impl;
+
+    protected:
+      _Base_ptr&
+      _M_root() noexcept
+      { return this->_M_impl._M_header._M_parent; }
+
+      _Const_Base_ptr
+      _M_root() const noexcept
+      { return this->_M_impl._M_header._M_parent; }
+
+      _Base_ptr&
+      _M_leftmost() noexcept
+      { return this->_M_impl._M_header._M_left; }
+
+      _Const_Base_ptr
+      _M_leftmost() const noexcept
+      { return this->_M_impl._M_header._M_left; }
+
+      _Base_ptr&
+      _M_rightmost() noexcept
+      { return this->_M_impl._M_header._M_right; }
+
+      _Const_Base_ptr
+      _M_rightmost() const noexcept
+      { return this->_M_impl._M_header._M_right; }
+
+      _Link_type
+      _M_begin() noexcept
+      { return static_cast<_Link_type>(this->_M_impl._M_header._M_parent); }
+
+      _Const_Link_type
+      _M_begin() const noexcept
+      {
+ return static_cast<_Const_Link_type>
+   (this->_M_impl._M_header._M_parent);
+      }
+
+      _Base_ptr
+      _M_end() noexcept
+      { return &this->_M_impl._M_header; }
+
+      _Const_Base_ptr
+      _M_end() const noexcept
+      { return &this->_M_impl._M_header; }
+
+      static const_reference
+      _S_value(_Const_Link_type __x)
+      { return *__x->_M_valptr(); }
+
+      static const _Key&
+      _S_key(_Const_Link_type __x)
+      { return _KeyOfValue()(_S_value(__x)); }
+
+      static _Link_type
+      _S_left(_Base_ptr __x) noexcept
+      { return static_cast<_Link_type>(__x->_M_left); }
+
+      static _Const_Link_type
+      _S_left(_Const_Base_ptr __x) noexcept
+      { return static_cast<_Const_Link_type>(__x->_M_left); }
+
+      static _Link_type
+      _S_right(_Base_ptr __x) noexcept
+      { return static_cast<_Link_type>(__x->_M_right); }
+
+      static _Const_Link_type
+      _S_right(_Const_Base_ptr __x) noexcept
+      { return static_cast<_Const_Link_type>(__x->_M_right); }
+
+      static const_reference
+      _S_value(_Const_Base_ptr __x)
+      { return *static_cast<_Const_Link_type>(__x)->_M_valptr(); }
+
+      static const _Key&
+      _S_key(_Const_Base_ptr __x)
+      { return _KeyOfValue()(_S_value(__x)); }
+
+      static _Base_ptr
+      _S_minimum(_Base_ptr __x) noexcept
+      { return _Rb_tree_node_base::_S_minimum(__x); }
+
+      static _Const_Base_ptr
+      _S_minimum(_Const_Base_ptr __x) noexcept
+      { return _Rb_tree_node_base::_S_minimum(__x); }
+
+      static _Base_ptr
+      _S_maximum(_Base_ptr __x) noexcept
+      { return _Rb_tree_node_base::_S_maximum(__x); }
+
+      static _Const_Base_ptr
+      _S_maximum(_Const_Base_ptr __x) noexcept
+      { return _Rb_tree_node_base::_S_maximum(__x); }
+
+    public:
+      typedef _Rb_tree_iterator<value_type> iterator;
+      typedef _Rb_tree_const_iterator<value_type> const_iterator;
+
+      typedef std::reverse_iterator<iterator> reverse_iterator;
+      typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
+
+      pair<_Base_ptr, _Base_ptr>
+      _M_get_insert_unique_pos(const key_type& __k);
+
+      pair<_Base_ptr, _Base_ptr>
+      _M_get_insert_equal_pos(const key_type& __k);
+
+      pair<_Base_ptr, _Base_ptr>
+      _M_get_insert_hint_unique_pos(const_iterator __pos,
+        const key_type& __k);
+
+      pair<_Base_ptr, _Base_ptr>
+      _M_get_insert_hint_equal_pos(const_iterator __pos,
+       const key_type& __k);
+
+    private:
+
+      template<typename _Arg, typename _NodeGen>
+        iterator
+ _M_insert_(_Base_ptr __x, _Base_ptr __y, _Arg&& __v, _NodeGen&);
+
+      iterator
+      _M_insert_node(_Base_ptr __x, _Base_ptr __y, _Link_type __z);
+
+      template<typename _Arg>
+        iterator
+        _M_insert_lower(_Base_ptr __y, _Arg&& __v);
+
+      template<typename _Arg>
+        iterator
+        _M_insert_equal_lower(_Arg&& __x);
+
+      iterator
+      _M_insert_lower_node(_Base_ptr __p, _Link_type __z);
+
+      iterator
+      _M_insert_equal_lower_node(_Link_type __z);
+# 789 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_tree.h" 3
+      template<typename _NodeGen>
+ _Link_type
+ _M_copy(_Const_Link_type __x, _Base_ptr __p, _NodeGen&);
+
+      _Link_type
+      _M_copy(_Const_Link_type __x, _Base_ptr __p)
+      {
+ _Alloc_node __an(*this);
+ return _M_copy(__x, __p, __an);
+      }
+
+      void
+      _M_erase(_Link_type __x);
+
+      iterator
+      _M_lower_bound(_Link_type __x, _Base_ptr __y,
+       const _Key& __k);
+
+      const_iterator
+      _M_lower_bound(_Const_Link_type __x, _Const_Base_ptr __y,
+       const _Key& __k) const;
+
+      iterator
+      _M_upper_bound(_Link_type __x, _Base_ptr __y,
+       const _Key& __k);
+
+      const_iterator
+      _M_upper_bound(_Const_Link_type __x, _Const_Base_ptr __y,
+       const _Key& __k) const;
+
+    public:
+
+      _Rb_tree() { }
+
+      _Rb_tree(const _Compare& __comp,
+        const allocator_type& __a = allocator_type())
+      : _M_impl(__comp, _Node_allocator(__a)) { }
+
+      _Rb_tree(const _Rb_tree& __x)
+      : _M_impl(__x._M_impl._M_key_compare,
+         _Alloc_traits::_S_select_on_copy(__x._M_get_Node_allocator()))
+      {
+ if (__x._M_root() != 0)
+   {
+     _M_root() = _M_copy(__x._M_begin(), _M_end());
+     _M_leftmost() = _S_minimum(_M_root());
+     _M_rightmost() = _S_maximum(_M_root());
+     _M_impl._M_node_count = __x._M_impl._M_node_count;
+   }
+      }
+
+
+      _Rb_tree(const allocator_type& __a)
+      : _M_impl(_Compare(), _Node_allocator(__a))
+      { }
+
+      _Rb_tree(const _Rb_tree& __x, const allocator_type& __a)
+      : _M_impl(__x._M_impl._M_key_compare, _Node_allocator(__a))
+      {
+ if (__x._M_root() != nullptr)
+   {
+     _M_root() = _M_copy(__x._M_begin(), _M_end());
+     _M_leftmost() = _S_minimum(_M_root());
+     _M_rightmost() = _S_maximum(_M_root());
+     _M_impl._M_node_count = __x._M_impl._M_node_count;
+   }
+      }
+
+      _Rb_tree(_Rb_tree&& __x)
+      : _M_impl(__x._M_impl._M_key_compare,
+  std::move(__x._M_get_Node_allocator()))
+      {
+ if (__x._M_root() != 0)
+   _M_move_data(__x, std::true_type());
+      }
+
+      _Rb_tree(_Rb_tree&& __x, const allocator_type& __a)
+      : _Rb_tree(std::move(__x), _Node_allocator(__a))
+      { }
+
+      _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a);
+
+
+      ~_Rb_tree() noexcept
+      { _M_erase(_M_begin()); }
+
+      _Rb_tree&
+      operator=(const _Rb_tree& __x);
+
+
+      _Compare
+      key_comp() const
+      { return _M_impl._M_key_compare; }
+
+      iterator
+      begin() noexcept
+      { return iterator(this->_M_impl._M_header._M_left); }
+
+      const_iterator
+      begin() const noexcept
+      { return const_iterator(this->_M_impl._M_header._M_left); }
+
+      iterator
+      end() noexcept
+      { return iterator(&this->_M_impl._M_header); }
+
+      const_iterator
+      end() const noexcept
+      { return const_iterator(&this->_M_impl._M_header); }
+
+      reverse_iterator
+      rbegin() noexcept
+      { return reverse_iterator(end()); }
+
+      const_reverse_iterator
+      rbegin() const noexcept
+      { return const_reverse_iterator(end()); }
+
+      reverse_iterator
+      rend() noexcept
+      { return reverse_iterator(begin()); }
+
+      const_reverse_iterator
+      rend() const noexcept
+      { return const_reverse_iterator(begin()); }
+
+      bool
+      empty() const noexcept
+      { return _M_impl._M_node_count == 0; }
+
+      size_type
+      size() const noexcept
+      { return _M_impl._M_node_count; }
+
+      size_type
+      max_size() const noexcept
+      { return _Alloc_traits::max_size(_M_get_Node_allocator()); }
+
+      void
+      swap(_Rb_tree& __t)
+      noexcept(__is_nothrow_swappable<_Compare>::value);
+
+
+
+      template<typename _Arg>
+        pair<iterator, bool>
+        _M_insert_unique(_Arg&& __x);
+
+      template<typename _Arg>
+        iterator
+        _M_insert_equal(_Arg&& __x);
+
+      template<typename _Arg, typename _NodeGen>
+        iterator
+ _M_insert_unique_(const_iterator __pos, _Arg&& __x, _NodeGen&);
+
+      template<typename _Arg>
+ iterator
+ _M_insert_unique_(const_iterator __pos, _Arg&& __x)
+ {
+   _Alloc_node __an(*this);
+   return _M_insert_unique_(__pos, std::forward<_Arg>(__x), __an);
+ }
+
+      template<typename _Arg, typename _NodeGen>
+ iterator
+ _M_insert_equal_(const_iterator __pos, _Arg&& __x, _NodeGen&);
+
+      template<typename _Arg>
+ iterator
+ _M_insert_equal_(const_iterator __pos, _Arg&& __x)
+ {
+   _Alloc_node __an(*this);
+   return _M_insert_equal_(__pos, std::forward<_Arg>(__x), __an);
+ }
+
+      template<typename... _Args>
+ pair<iterator, bool>
+ _M_emplace_unique(_Args&&... __args);
+
+      template<typename... _Args>
+ iterator
+ _M_emplace_equal(_Args&&... __args);
+
+      template<typename... _Args>
+ iterator
+ _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args);
+
+      template<typename... _Args>
+ iterator
+ _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args);
+# 1011 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_tree.h" 3
+      template<typename _InputIterator>
+        void
+        _M_insert_unique(_InputIterator __first, _InputIterator __last);
+
+      template<typename _InputIterator>
+        void
+        _M_insert_equal(_InputIterator __first, _InputIterator __last);
+
+    private:
+      void
+      _M_erase_aux(const_iterator __position);
+
+      void
+      _M_erase_aux(const_iterator __first, const_iterator __last);
+
+    public:
+
+
+
+      __attribute ((__abi_tag__ ("cxx11")))
+      iterator
+      erase(const_iterator __position)
+      {
+ const_iterator __result = __position;
+ ++__result;
+ _M_erase_aux(__position);
+ return __result._M_const_cast();
+      }
+
+
+      __attribute ((__abi_tag__ ("cxx11")))
+      iterator
+      erase(iterator __position)
+      {
+ iterator __result = __position;
+ ++__result;
+ _M_erase_aux(__position);
+ return __result;
+      }
+# 1059 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_tree.h" 3
+      size_type
+      erase(const key_type& __x);
+
+
+
+
+      __attribute ((__abi_tag__ ("cxx11")))
+      iterator
+      erase(const_iterator __first, const_iterator __last)
+      {
+ _M_erase_aux(__first, __last);
+ return __last._M_const_cast();
+      }
+# 1081 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_tree.h" 3
+      void
+      erase(const key_type* __first, const key_type* __last);
+
+      void
+      clear() noexcept
+      {
+        _M_erase(_M_begin());
+ _M_impl._M_reset();
+      }
+
+
+      iterator
+      find(const key_type& __k);
+
+      const_iterator
+      find(const key_type& __k) const;
+
+      size_type
+      count(const key_type& __k) const;
+
+      iterator
+      lower_bound(const key_type& __k)
+      { return _M_lower_bound(_M_begin(), _M_end(), __k); }
+
+      const_iterator
+      lower_bound(const key_type& __k) const
+      { return _M_lower_bound(_M_begin(), _M_end(), __k); }
+
+      iterator
+      upper_bound(const key_type& __k)
+      { return _M_upper_bound(_M_begin(), _M_end(), __k); }
+
+      const_iterator
+      upper_bound(const key_type& __k) const
+      { return _M_upper_bound(_M_begin(), _M_end(), __k); }
+
+      pair<iterator, iterator>
+      equal_range(const key_type& __k);
+
+      pair<const_iterator, const_iterator>
+      equal_range(const key_type& __k) const;
+# 1241 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_tree.h" 3
+      bool
+      __rb_verify() const;
+
+
+      _Rb_tree&
+      operator=(_Rb_tree&&)
+      noexcept(_Alloc_traits::_S_nothrow_move()
+        && is_nothrow_move_assignable<_Compare>::value);
+
+      template<typename _Iterator>
+ void
+ _M_assign_unique(_Iterator, _Iterator);
+
+      template<typename _Iterator>
+ void
+ _M_assign_equal(_Iterator, _Iterator);
+
+    private:
+
+      void
+      _M_move_data(_Rb_tree&, std::true_type);
+
+
+
+      void
+      _M_move_data(_Rb_tree&, std::false_type);
+
+
+      void
+      _M_move_assign(_Rb_tree&, std::true_type);
+
+
+
+      void
+      _M_move_assign(_Rb_tree&, std::false_type);
+
+    };
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    inline bool
+    operator==(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x,
+        const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y)
+    {
+      return __x.size() == __y.size()
+      && std::equal(__x.begin(), __x.end(), __y.begin());
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    inline bool
+    operator<(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x,
+       const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y)
+    {
+      return std::lexicographical_compare(__x.begin(), __x.end(),
+       __y.begin(), __y.end());
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    inline bool
+    operator!=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x,
+        const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y)
+    { return !(__x == __y); }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    inline bool
+    operator>(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x,
+       const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y)
+    { return __y < __x; }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    inline bool
+    operator<=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x,
+        const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y)
+    { return !(__y < __x); }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    inline bool
+    operator>=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x,
+        const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y)
+    { return !(__x < __y); }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    inline void
+    swap(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x,
+  _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y)
+    { __x.swap(__y); }
+
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    _Rb_tree(_Rb_tree&& __x, _Node_allocator&& __a)
+    : _M_impl(__x._M_impl._M_key_compare, std::move(__a))
+    {
+      using __eq = typename _Alloc_traits::is_always_equal;
+      if (__x._M_root() != nullptr)
+ _M_move_data(__x, __eq());
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    void
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    _M_move_data(_Rb_tree& __x, std::true_type)
+    {
+      _M_root() = __x._M_root();
+      _M_leftmost() = __x._M_leftmost();
+      _M_rightmost() = __x._M_rightmost();
+      _M_root()->_M_parent = _M_end();
+
+      __x._M_root() = 0;
+      __x._M_leftmost() = __x._M_end();
+      __x._M_rightmost() = __x._M_end();
+
+      this->_M_impl._M_node_count = __x._M_impl._M_node_count;
+      __x._M_impl._M_node_count = 0;
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    void
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    _M_move_data(_Rb_tree& __x, std::false_type)
+    {
+      if (_M_get_Node_allocator() == __x._M_get_Node_allocator())
+   _M_move_data(__x, std::true_type());
+      else
+ {
+   _Alloc_node __an(*this);
+   auto __lbd =
+     [&__an](const value_type& __cval)
+     {
+       auto& __val = const_cast<value_type&>(__cval);
+       return __an(std::move_if_noexcept(__val));
+     };
+   _M_root() = _M_copy(__x._M_begin(), _M_end(), __lbd);
+   _M_leftmost() = _S_minimum(_M_root());
+   _M_rightmost() = _S_maximum(_M_root());
+   _M_impl._M_node_count = __x._M_impl._M_node_count;
+ }
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    inline void
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    _M_move_assign(_Rb_tree& __x, true_type)
+    {
+      clear();
+      if (__x._M_root() != nullptr)
+ _M_move_data(__x, std::true_type());
+      std::__alloc_on_move(_M_get_Node_allocator(),
+      __x._M_get_Node_allocator());
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    void
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    _M_move_assign(_Rb_tree& __x, false_type)
+    {
+      if (_M_get_Node_allocator() == __x._M_get_Node_allocator())
+ return _M_move_assign(__x, true_type{});
+
+
+
+      _Reuse_or_alloc_node __roan(*this);
+      _M_impl._M_reset();
+      if (__x._M_root() != nullptr)
+ {
+   auto __lbd =
+     [&__roan](const value_type& __cval)
+     {
+       auto& __val = const_cast<value_type&>(__cval);
+       return __roan(std::move_if_noexcept(__val));
+     };
+   _M_root() = _M_copy(__x._M_begin(), _M_end(), __lbd);
+   _M_leftmost() = _S_minimum(_M_root());
+   _M_rightmost() = _S_maximum(_M_root());
+   _M_impl._M_node_count = __x._M_impl._M_node_count;
+   __x.clear();
+ }
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    inline _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>&
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    operator=(_Rb_tree&& __x)
+    noexcept(_Alloc_traits::_S_nothrow_move()
+      && is_nothrow_move_assignable<_Compare>::value)
+    {
+      _M_impl._M_key_compare = __x._M_impl._M_key_compare;
+      constexpr bool __move_storage =
+   _Alloc_traits::_S_propagate_on_move_assign()
+   || _Alloc_traits::_S_always_equal();
+      _M_move_assign(__x, __bool_constant<__move_storage>());
+      return *this;
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    template<typename _Iterator>
+      void
+      _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+      _M_assign_unique(_Iterator __first, _Iterator __last)
+      {
+ _Reuse_or_alloc_node __roan(*this);
+ _M_impl._M_reset();
+ for (; __first != __last; ++__first)
+   _M_insert_unique_(end(), *__first, __roan);
+      }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    template<typename _Iterator>
+      void
+      _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+      _M_assign_equal(_Iterator __first, _Iterator __last)
+      {
+ _Reuse_or_alloc_node __roan(*this);
+ _M_impl._M_reset();
+ for (; __first != __last; ++__first)
+   _M_insert_equal_(end(), *__first, __roan);
+      }
+
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>&
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    operator=(const _Rb_tree& __x)
+    {
+      if (this != &__x)
+ {
+
+
+   if (_Alloc_traits::_S_propagate_on_copy_assign())
+     {
+       auto& __this_alloc = this->_M_get_Node_allocator();
+       auto& __that_alloc = __x._M_get_Node_allocator();
+       if (!_Alloc_traits::_S_always_equal()
+    && __this_alloc != __that_alloc)
+  {
+
+
+    clear();
+    std::__alloc_on_copy(__this_alloc, __that_alloc);
+  }
+     }
+
+
+   _Reuse_or_alloc_node __roan(*this);
+   _M_impl._M_reset();
+   _M_impl._M_key_compare = __x._M_impl._M_key_compare;
+   if (__x._M_root() != 0)
+     {
+       _M_root() = _M_copy(__x._M_begin(), _M_end(), __roan);
+       _M_leftmost() = _S_minimum(_M_root());
+       _M_rightmost() = _S_maximum(_M_root());
+       _M_impl._M_node_count = __x._M_impl._M_node_count;
+     }
+ }
+
+      return *this;
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+
+    template<typename _Arg, typename _NodeGen>
+
+
+
+      typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator
+      _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+      _M_insert_(_Base_ptr __x, _Base_ptr __p,
+
+   _Arg&& __v,
+
+
+
+   _NodeGen& __node_gen)
+      {
+ bool __insert_left = (__x != 0 || __p == _M_end()
+         || _M_impl._M_key_compare(_KeyOfValue()(__v),
+       _S_key(__p)));
+
+ _Link_type __z = __node_gen(std::forward<_Arg>(__v));
+
+ _Rb_tree_insert_and_rebalance(__insert_left, __z, __p,
+          this->_M_impl._M_header);
+ ++_M_impl._M_node_count;
+ return iterator(__z);
+      }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+
+    template<typename _Arg>
+
+    typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+
+    _M_insert_lower(_Base_ptr __p, _Arg&& __v)
+
+
+
+    {
+      bool __insert_left = (__p == _M_end()
+       || !_M_impl._M_key_compare(_S_key(__p),
+             _KeyOfValue()(__v)));
+
+      _Link_type __z = _M_create_node(std::forward<_Arg>(__v));
+
+      _Rb_tree_insert_and_rebalance(__insert_left, __z, __p,
+        this->_M_impl._M_header);
+      ++_M_impl._M_node_count;
+      return iterator(__z);
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+
+    template<typename _Arg>
+
+    typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+
+    _M_insert_equal_lower(_Arg&& __v)
+
+
+
+    {
+      _Link_type __x = _M_begin();
+      _Base_ptr __y = _M_end();
+      while (__x != 0)
+ {
+   __y = __x;
+   __x = !_M_impl._M_key_compare(_S_key(__x), _KeyOfValue()(__v)) ?
+         _S_left(__x) : _S_right(__x);
+ }
+      return _M_insert_lower(__y, std::forward<_Arg>(__v));
+    }
+
+  template<typename _Key, typename _Val, typename _KoV,
+    typename _Compare, typename _Alloc>
+    template<typename _NodeGen>
+      typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::_Link_type
+      _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::
+      _M_copy(_Const_Link_type __x, _Base_ptr __p, _NodeGen& __node_gen)
+      {
+
+ _Link_type __top = _M_clone_node(__x, __node_gen);
+ __top->_M_parent = __p;
+
+ try
+   {
+     if (__x->_M_right)
+       __top->_M_right = _M_copy(_S_right(__x), __top, __node_gen);
+     __p = __top;
+     __x = _S_left(__x);
+
+     while (__x != 0)
+       {
+  _Link_type __y = _M_clone_node(__x, __node_gen);
+  __p->_M_left = __y;
+  __y->_M_parent = __p;
+  if (__x->_M_right)
+    __y->_M_right = _M_copy(_S_right(__x), __y, __node_gen);
+  __p = __y;
+  __x = _S_left(__x);
+       }
+   }
+ catch(...)
+   {
+     _M_erase(__top);
+     throw;
+   }
+ return __top;
+      }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    void
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    _M_erase(_Link_type __x)
+    {
+
+      while (__x != 0)
+ {
+   _M_erase(_S_right(__x));
+   _Link_type __y = _S_left(__x);
+   _M_drop_node(__x);
+   __x = __y;
+ }
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    typename _Rb_tree<_Key, _Val, _KeyOfValue,
+        _Compare, _Alloc>::iterator
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    _M_lower_bound(_Link_type __x, _Base_ptr __y,
+     const _Key& __k)
+    {
+      while (__x != 0)
+ if (!_M_impl._M_key_compare(_S_key(__x), __k))
+   __y = __x, __x = _S_left(__x);
+ else
+   __x = _S_right(__x);
+      return iterator(__y);
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    typename _Rb_tree<_Key, _Val, _KeyOfValue,
+        _Compare, _Alloc>::const_iterator
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    _M_lower_bound(_Const_Link_type __x, _Const_Base_ptr __y,
+     const _Key& __k) const
+    {
+      while (__x != 0)
+ if (!_M_impl._M_key_compare(_S_key(__x), __k))
+   __y = __x, __x = _S_left(__x);
+ else
+   __x = _S_right(__x);
+      return const_iterator(__y);
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    typename _Rb_tree<_Key, _Val, _KeyOfValue,
+        _Compare, _Alloc>::iterator
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    _M_upper_bound(_Link_type __x, _Base_ptr __y,
+     const _Key& __k)
+    {
+      while (__x != 0)
+ if (_M_impl._M_key_compare(__k, _S_key(__x)))
+   __y = __x, __x = _S_left(__x);
+ else
+   __x = _S_right(__x);
+      return iterator(__y);
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    typename _Rb_tree<_Key, _Val, _KeyOfValue,
+        _Compare, _Alloc>::const_iterator
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    _M_upper_bound(_Const_Link_type __x, _Const_Base_ptr __y,
+     const _Key& __k) const
+    {
+      while (__x != 0)
+ if (_M_impl._M_key_compare(__k, _S_key(__x)))
+   __y = __x, __x = _S_left(__x);
+ else
+   __x = _S_right(__x);
+      return const_iterator(__y);
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    pair<typename _Rb_tree<_Key, _Val, _KeyOfValue,
+      _Compare, _Alloc>::iterator,
+  typename _Rb_tree<_Key, _Val, _KeyOfValue,
+      _Compare, _Alloc>::iterator>
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    equal_range(const _Key& __k)
+    {
+      _Link_type __x = _M_begin();
+      _Base_ptr __y = _M_end();
+      while (__x != 0)
+ {
+   if (_M_impl._M_key_compare(_S_key(__x), __k))
+     __x = _S_right(__x);
+   else if (_M_impl._M_key_compare(__k, _S_key(__x)))
+     __y = __x, __x = _S_left(__x);
+   else
+     {
+       _Link_type __xu(__x);
+       _Base_ptr __yu(__y);
+       __y = __x, __x = _S_left(__x);
+       __xu = _S_right(__xu);
+       return pair<iterator,
+            iterator>(_M_lower_bound(__x, __y, __k),
+        _M_upper_bound(__xu, __yu, __k));
+     }
+ }
+      return pair<iterator, iterator>(iterator(__y),
+          iterator(__y));
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    pair<typename _Rb_tree<_Key, _Val, _KeyOfValue,
+      _Compare, _Alloc>::const_iterator,
+  typename _Rb_tree<_Key, _Val, _KeyOfValue,
+      _Compare, _Alloc>::const_iterator>
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    equal_range(const _Key& __k) const
+    {
+      _Const_Link_type __x = _M_begin();
+      _Const_Base_ptr __y = _M_end();
+      while (__x != 0)
+ {
+   if (_M_impl._M_key_compare(_S_key(__x), __k))
+     __x = _S_right(__x);
+   else if (_M_impl._M_key_compare(__k, _S_key(__x)))
+     __y = __x, __x = _S_left(__x);
+   else
+     {
+       _Const_Link_type __xu(__x);
+       _Const_Base_ptr __yu(__y);
+       __y = __x, __x = _S_left(__x);
+       __xu = _S_right(__xu);
+       return pair<const_iterator,
+            const_iterator>(_M_lower_bound(__x, __y, __k),
+       _M_upper_bound(__xu, __yu, __k));
+     }
+ }
+      return pair<const_iterator, const_iterator>(const_iterator(__y),
+        const_iterator(__y));
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    void
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    swap(_Rb_tree& __t)
+    noexcept(__is_nothrow_swappable<_Compare>::value)
+    {
+      if (_M_root() == 0)
+ {
+   if (__t._M_root() != 0)
+     {
+       _M_root() = __t._M_root();
+       _M_leftmost() = __t._M_leftmost();
+       _M_rightmost() = __t._M_rightmost();
+       _M_root()->_M_parent = _M_end();
+       _M_impl._M_node_count = __t._M_impl._M_node_count;
+
+       __t._M_impl._M_reset();
+     }
+ }
+      else if (__t._M_root() == 0)
+ {
+   __t._M_root() = _M_root();
+   __t._M_leftmost() = _M_leftmost();
+   __t._M_rightmost() = _M_rightmost();
+   __t._M_root()->_M_parent = __t._M_end();
+   __t._M_impl._M_node_count = _M_impl._M_node_count;
+
+   _M_impl._M_reset();
+ }
+      else
+ {
+   std::swap(_M_root(),__t._M_root());
+   std::swap(_M_leftmost(),__t._M_leftmost());
+   std::swap(_M_rightmost(),__t._M_rightmost());
+
+   _M_root()->_M_parent = _M_end();
+   __t._M_root()->_M_parent = __t._M_end();
+   std::swap(this->_M_impl._M_node_count, __t._M_impl._M_node_count);
+ }
+
+      std::swap(this->_M_impl._M_key_compare, __t._M_impl._M_key_compare);
+
+      _Alloc_traits::_S_on_swap(_M_get_Node_allocator(),
+    __t._M_get_Node_allocator());
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    pair<typename _Rb_tree<_Key, _Val, _KeyOfValue,
+      _Compare, _Alloc>::_Base_ptr,
+  typename _Rb_tree<_Key, _Val, _KeyOfValue,
+      _Compare, _Alloc>::_Base_ptr>
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    _M_get_insert_unique_pos(const key_type& __k)
+    {
+      typedef pair<_Base_ptr, _Base_ptr> _Res;
+      _Link_type __x = _M_begin();
+      _Base_ptr __y = _M_end();
+      bool __comp = true;
+      while (__x != 0)
+ {
+   __y = __x;
+   __comp = _M_impl._M_key_compare(__k, _S_key(__x));
+   __x = __comp ? _S_left(__x) : _S_right(__x);
+ }
+      iterator __j = iterator(__y);
+      if (__comp)
+ {
+   if (__j == begin())
+     return _Res(__x, __y);
+   else
+     --__j;
+ }
+      if (_M_impl._M_key_compare(_S_key(__j._M_node), __k))
+ return _Res(__x, __y);
+      return _Res(__j._M_node, 0);
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    pair<typename _Rb_tree<_Key, _Val, _KeyOfValue,
+      _Compare, _Alloc>::_Base_ptr,
+  typename _Rb_tree<_Key, _Val, _KeyOfValue,
+      _Compare, _Alloc>::_Base_ptr>
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    _M_get_insert_equal_pos(const key_type& __k)
+    {
+      typedef pair<_Base_ptr, _Base_ptr> _Res;
+      _Link_type __x = _M_begin();
+      _Base_ptr __y = _M_end();
+      while (__x != 0)
+ {
+   __y = __x;
+   __x = _M_impl._M_key_compare(__k, _S_key(__x)) ?
+         _S_left(__x) : _S_right(__x);
+ }
+      return _Res(__x, __y);
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+
+    template<typename _Arg>
+
+    pair<typename _Rb_tree<_Key, _Val, _KeyOfValue,
+      _Compare, _Alloc>::iterator, bool>
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+
+    _M_insert_unique(_Arg&& __v)
+
+
+
+    {
+      typedef pair<iterator, bool> _Res;
+      pair<_Base_ptr, _Base_ptr> __res
+ = _M_get_insert_unique_pos(_KeyOfValue()(__v));
+
+      if (__res.second)
+ {
+   _Alloc_node __an(*this);
+   return _Res(_M_insert_(__res.first, __res.second,
+     std::forward<_Arg>(__v), __an),
+        true);
+ }
+
+      return _Res(iterator(__res.first), false);
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+
+    template<typename _Arg>
+
+    typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+
+    _M_insert_equal(_Arg&& __v)
+
+
+
+    {
+      pair<_Base_ptr, _Base_ptr> __res
+ = _M_get_insert_equal_pos(_KeyOfValue()(__v));
+      _Alloc_node __an(*this);
+      return _M_insert_(__res.first, __res.second,
+   std::forward<_Arg>(__v), __an);
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    pair<typename _Rb_tree<_Key, _Val, _KeyOfValue,
+      _Compare, _Alloc>::_Base_ptr,
+         typename _Rb_tree<_Key, _Val, _KeyOfValue,
+      _Compare, _Alloc>::_Base_ptr>
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    _M_get_insert_hint_unique_pos(const_iterator __position,
+      const key_type& __k)
+    {
+      iterator __pos = __position._M_const_cast();
+      typedef pair<_Base_ptr, _Base_ptr> _Res;
+
+
+      if (__pos._M_node == _M_end())
+ {
+   if (size() > 0
+       && _M_impl._M_key_compare(_S_key(_M_rightmost()), __k))
+     return _Res(0, _M_rightmost());
+   else
+     return _M_get_insert_unique_pos(__k);
+ }
+      else if (_M_impl._M_key_compare(__k, _S_key(__pos._M_node)))
+ {
+
+   iterator __before = __pos;
+   if (__pos._M_node == _M_leftmost())
+     return _Res(_M_leftmost(), _M_leftmost());
+   else if (_M_impl._M_key_compare(_S_key((--__before)._M_node), __k))
+     {
+       if (_S_right(__before._M_node) == 0)
+  return _Res(0, __before._M_node);
+       else
+  return _Res(__pos._M_node, __pos._M_node);
+     }
+   else
+     return _M_get_insert_unique_pos(__k);
+ }
+      else if (_M_impl._M_key_compare(_S_key(__pos._M_node), __k))
+ {
+
+   iterator __after = __pos;
+   if (__pos._M_node == _M_rightmost())
+     return _Res(0, _M_rightmost());
+   else if (_M_impl._M_key_compare(__k, _S_key((++__after)._M_node)))
+     {
+       if (_S_right(__pos._M_node) == 0)
+  return _Res(0, __pos._M_node);
+       else
+  return _Res(__after._M_node, __after._M_node);
+     }
+   else
+     return _M_get_insert_unique_pos(__k);
+ }
+      else
+
+ return _Res(__pos._M_node, 0);
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+
+    template<typename _Arg, typename _NodeGen>
+
+
+
+      typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator
+      _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+      _M_insert_unique_(const_iterator __position,
+
+   _Arg&& __v,
+
+
+
+   _NodeGen& __node_gen)
+    {
+      pair<_Base_ptr, _Base_ptr> __res
+ = _M_get_insert_hint_unique_pos(__position, _KeyOfValue()(__v));
+
+      if (__res.second)
+ return _M_insert_(__res.first, __res.second,
+     std::forward<_Arg>(__v),
+     __node_gen);
+      return iterator(__res.first);
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    pair<typename _Rb_tree<_Key, _Val, _KeyOfValue,
+      _Compare, _Alloc>::_Base_ptr,
+         typename _Rb_tree<_Key, _Val, _KeyOfValue,
+      _Compare, _Alloc>::_Base_ptr>
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    _M_get_insert_hint_equal_pos(const_iterator __position, const key_type& __k)
+    {
+      iterator __pos = __position._M_const_cast();
+      typedef pair<_Base_ptr, _Base_ptr> _Res;
+
+
+      if (__pos._M_node == _M_end())
+ {
+   if (size() > 0
+       && !_M_impl._M_key_compare(__k, _S_key(_M_rightmost())))
+     return _Res(0, _M_rightmost());
+   else
+     return _M_get_insert_equal_pos(__k);
+ }
+      else if (!_M_impl._M_key_compare(_S_key(__pos._M_node), __k))
+ {
+
+   iterator __before = __pos;
+   if (__pos._M_node == _M_leftmost())
+     return _Res(_M_leftmost(), _M_leftmost());
+   else if (!_M_impl._M_key_compare(__k, _S_key((--__before)._M_node)))
+     {
+       if (_S_right(__before._M_node) == 0)
+  return _Res(0, __before._M_node);
+       else
+  return _Res(__pos._M_node, __pos._M_node);
+     }
+   else
+     return _M_get_insert_equal_pos(__k);
+ }
+      else
+ {
+
+   iterator __after = __pos;
+   if (__pos._M_node == _M_rightmost())
+     return _Res(0, _M_rightmost());
+   else if (!_M_impl._M_key_compare(_S_key((++__after)._M_node), __k))
+     {
+       if (_S_right(__pos._M_node) == 0)
+  return _Res(0, __pos._M_node);
+       else
+  return _Res(__after._M_node, __after._M_node);
+     }
+   else
+     return _Res(0, 0);
+ }
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+
+    template<typename _Arg, typename _NodeGen>
+
+
+
+      typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator
+      _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+      _M_insert_equal_(const_iterator __position,
+
+         _Arg&& __v,
+
+
+
+         _NodeGen& __node_gen)
+      {
+ pair<_Base_ptr, _Base_ptr> __res
+   = _M_get_insert_hint_equal_pos(__position, _KeyOfValue()(__v));
+
+ if (__res.second)
+   return _M_insert_(__res.first, __res.second,
+       std::forward<_Arg>(__v),
+       __node_gen);
+
+ return _M_insert_equal_lower(std::forward<_Arg>(__v));
+      }
+
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    _M_insert_node(_Base_ptr __x, _Base_ptr __p, _Link_type __z)
+    {
+      bool __insert_left = (__x != 0 || __p == _M_end()
+       || _M_impl._M_key_compare(_S_key(__z),
+            _S_key(__p)));
+
+      _Rb_tree_insert_and_rebalance(__insert_left, __z, __p,
+        this->_M_impl._M_header);
+      ++_M_impl._M_node_count;
+      return iterator(__z);
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    _M_insert_lower_node(_Base_ptr __p, _Link_type __z)
+    {
+      bool __insert_left = (__p == _M_end()
+       || !_M_impl._M_key_compare(_S_key(__p),
+             _S_key(__z)));
+
+      _Rb_tree_insert_and_rebalance(__insert_left, __z, __p,
+        this->_M_impl._M_header);
+      ++_M_impl._M_node_count;
+      return iterator(__z);
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    _M_insert_equal_lower_node(_Link_type __z)
+    {
+      _Link_type __x = _M_begin();
+      _Base_ptr __y = _M_end();
+      while (__x != 0)
+ {
+   __y = __x;
+   __x = !_M_impl._M_key_compare(_S_key(__x), _S_key(__z)) ?
+         _S_left(__x) : _S_right(__x);
+ }
+      return _M_insert_lower_node(__y, __z);
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    template<typename... _Args>
+      pair<typename _Rb_tree<_Key, _Val, _KeyOfValue,
+        _Compare, _Alloc>::iterator, bool>
+      _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+      _M_emplace_unique(_Args&&... __args)
+      {
+ _Link_type __z = _M_create_node(std::forward<_Args>(__args)...);
+
+ try
+   {
+     typedef pair<iterator, bool> _Res;
+     auto __res = _M_get_insert_unique_pos(_S_key(__z));
+     if (__res.second)
+       return _Res(_M_insert_node(__res.first, __res.second, __z), true);
+
+     _M_drop_node(__z);
+     return _Res(iterator(__res.first), false);
+   }
+ catch(...)
+   {
+     _M_drop_node(__z);
+     throw;
+   }
+      }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    template<typename... _Args>
+      typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator
+      _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+      _M_emplace_equal(_Args&&... __args)
+      {
+ _Link_type __z = _M_create_node(std::forward<_Args>(__args)...);
+
+ try
+   {
+     auto __res = _M_get_insert_equal_pos(_S_key(__z));
+     return _M_insert_node(__res.first, __res.second, __z);
+   }
+ catch(...)
+   {
+     _M_drop_node(__z);
+     throw;
+   }
+      }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    template<typename... _Args>
+      typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator
+      _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+      _M_emplace_hint_unique(const_iterator __pos, _Args&&... __args)
+      {
+ _Link_type __z = _M_create_node(std::forward<_Args>(__args)...);
+
+ try
+   {
+     auto __res = _M_get_insert_hint_unique_pos(__pos, _S_key(__z));
+
+     if (__res.second)
+       return _M_insert_node(__res.first, __res.second, __z);
+
+     _M_drop_node(__z);
+     return iterator(__res.first);
+   }
+ catch(...)
+   {
+     _M_drop_node(__z);
+     throw;
+   }
+      }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    template<typename... _Args>
+      typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator
+      _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+      _M_emplace_hint_equal(const_iterator __pos, _Args&&... __args)
+      {
+ _Link_type __z = _M_create_node(std::forward<_Args>(__args)...);
+
+ try
+   {
+     auto __res = _M_get_insert_hint_equal_pos(__pos, _S_key(__z));
+
+     if (__res.second)
+       return _M_insert_node(__res.first, __res.second, __z);
+
+     return _M_insert_equal_lower_node(__z);
+   }
+ catch(...)
+   {
+     _M_drop_node(__z);
+     throw;
+   }
+      }
+
+
+  template<typename _Key, typename _Val, typename _KoV,
+           typename _Cmp, typename _Alloc>
+    template<class _II>
+      void
+      _Rb_tree<_Key, _Val, _KoV, _Cmp, _Alloc>::
+      _M_insert_unique(_II __first, _II __last)
+      {
+ _Alloc_node __an(*this);
+ for (; __first != __last; ++__first)
+   _M_insert_unique_(end(), *__first, __an);
+      }
+
+  template<typename _Key, typename _Val, typename _KoV,
+           typename _Cmp, typename _Alloc>
+    template<class _II>
+      void
+      _Rb_tree<_Key, _Val, _KoV, _Cmp, _Alloc>::
+      _M_insert_equal(_II __first, _II __last)
+      {
+ _Alloc_node __an(*this);
+ for (; __first != __last; ++__first)
+   _M_insert_equal_(end(), *__first, __an);
+      }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    void
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    _M_erase_aux(const_iterator __position)
+    {
+      _Link_type __y =
+ static_cast<_Link_type>(_Rb_tree_rebalance_for_erase
+    (const_cast<_Base_ptr>(__position._M_node),
+     this->_M_impl._M_header));
+      _M_drop_node(__y);
+      --_M_impl._M_node_count;
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    void
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    _M_erase_aux(const_iterator __first, const_iterator __last)
+    {
+      if (__first == begin() && __last == end())
+ clear();
+      else
+ while (__first != __last)
+   erase(__first++);
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    erase(const _Key& __x)
+    {
+      pair<iterator, iterator> __p = equal_range(__x);
+      const size_type __old_size = size();
+      erase(__p.first, __p.second);
+      return __old_size - size();
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    void
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    erase(const _Key* __first, const _Key* __last)
+    {
+      while (__first != __last)
+ erase(*__first++);
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    typename _Rb_tree<_Key, _Val, _KeyOfValue,
+        _Compare, _Alloc>::iterator
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    find(const _Key& __k)
+    {
+      iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k);
+      return (__j == end()
+       || _M_impl._M_key_compare(__k,
+     _S_key(__j._M_node))) ? end() : __j;
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    typename _Rb_tree<_Key, _Val, _KeyOfValue,
+        _Compare, _Alloc>::const_iterator
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    find(const _Key& __k) const
+    {
+      const_iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k);
+      return (__j == end()
+       || _M_impl._M_key_compare(__k,
+     _S_key(__j._M_node))) ? end() : __j;
+    }
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type
+    _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
+    count(const _Key& __k) const
+    {
+      pair<const_iterator, const_iterator> __p = equal_range(__k);
+      const size_type __n = std::distance(__p.first, __p.second);
+      return __n;
+    }
+
+  __attribute__ ((__pure__)) unsigned int
+  _Rb_tree_black_count(const _Rb_tree_node_base* __node,
+                       const _Rb_tree_node_base* __root) throw ();
+
+  template<typename _Key, typename _Val, typename _KeyOfValue,
+           typename _Compare, typename _Alloc>
+    bool
+    _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::__rb_verify() const
+    {
+      if (_M_impl._M_node_count == 0 || begin() == end())
+ return _M_impl._M_node_count == 0 && begin() == end()
+        && this->_M_impl._M_header._M_left == _M_end()
+        && this->_M_impl._M_header._M_right == _M_end();
+
+      unsigned int __len = _Rb_tree_black_count(_M_leftmost(), _M_root());
+      for (const_iterator __it = begin(); __it != end(); ++__it)
+ {
+   _Const_Link_type __x = static_cast<_Const_Link_type>(__it._M_node);
+   _Const_Link_type __L = _S_left(__x);
+   _Const_Link_type __R = _S_right(__x);
+
+   if (__x->_M_color == _S_red)
+     if ((__L && __L->_M_color == _S_red)
+  || (__R && __R->_M_color == _S_red))
+       return false;
+
+   if (__L && _M_impl._M_key_compare(_S_key(__x), _S_key(__L)))
+     return false;
+   if (__R && _M_impl._M_key_compare(_S_key(__R), _S_key(__x)))
+     return false;
+
+   if (!__L && !__R && _Rb_tree_black_count(__x, _M_root()) != __len)
+     return false;
+ }
+
+      if (_M_leftmost() != _Rb_tree_node_base::_S_minimum(_M_root()))
+ return false;
+      if (_M_rightmost() != _Rb_tree_node_base::_S_maximum(_M_root()))
+ return false;
+      return true;
+    }
+
+
+}
+# 61 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/map" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 1 3
+# 63 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/tuple" 1 3
+# 33 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/tuple" 3
+
+
+
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/utility" 1 3
+# 59 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/utility" 3
+# 69 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/utility" 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_relops.h" 1 3
+# 67 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_relops.h" 3
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+  namespace rel_ops
+  {
+# 85 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_relops.h" 3
+    template <class _Tp>
+      inline bool
+      operator!=(const _Tp& __x, const _Tp& __y)
+      { return !(__x == __y); }
+# 98 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_relops.h" 3
+    template <class _Tp>
+      inline bool
+      operator>(const _Tp& __x, const _Tp& __y)
+      { return __y < __x; }
+# 111 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_relops.h" 3
+    template <class _Tp>
+      inline bool
+      operator<=(const _Tp& __x, const _Tp& __y)
+      { return !(__y < __x); }
+# 124 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_relops.h" 3
+    template <class _Tp>
+      inline bool
+      operator>=(const _Tp& __x, const _Tp& __y)
+      { return !(__x < __y); }
+
+
+  }
+
+}
+# 70 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/utility" 2 3
+
+
+
+
+
+
+
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+
+  template<typename _Tp>
+    struct tuple_size;
+
+
+
+  template<typename _Tp>
+    struct tuple_size<const _Tp>
+    : integral_constant<size_t, tuple_size<_Tp>::value> { };
+
+  template<typename _Tp>
+    struct tuple_size<volatile _Tp>
+    : integral_constant<size_t, tuple_size<_Tp>::value> { };
+
+  template<typename _Tp>
+    struct tuple_size<const volatile _Tp>
+    : integral_constant<size_t, tuple_size<_Tp>::value> { };
+
+
+  template<std::size_t __i, typename _Tp>
+    struct tuple_element;
+
+
+  template<std::size_t __i, typename _Tp>
+    using __tuple_element_t = typename tuple_element<__i, _Tp>::type;
+
+  template<std::size_t __i, typename _Tp>
+    struct tuple_element<__i, const _Tp>
+    {
+      typedef typename add_const<__tuple_element_t<__i, _Tp>>::type type;
+    };
+
+  template<std::size_t __i, typename _Tp>
+    struct tuple_element<__i, volatile _Tp>
+    {
+      typedef typename add_volatile<__tuple_element_t<__i, _Tp>>::type type;
+    };
+
+  template<std::size_t __i, typename _Tp>
+    struct tuple_element<__i, const volatile _Tp>
+    {
+      typedef typename add_cv<__tuple_element_t<__i, _Tp>>::type type;
+    };
+# 133 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/utility" 3
+  template<typename>
+    struct __is_tuple_like_impl : false_type
+    { };
+
+
+
+
+  template<typename _T1, typename _T2>
+    struct __is_tuple_like_impl<std::pair<_T1, _T2>> : true_type
+    { };
+
+
+  template<class _Tp1, class _Tp2>
+    struct tuple_size<std::pair<_Tp1, _Tp2>>
+    : public integral_constant<std::size_t, 2> { };
+
+
+  template<class _Tp1, class _Tp2>
+    struct tuple_element<0, std::pair<_Tp1, _Tp2>>
+    { typedef _Tp1 type; };
+
+
+  template<class _Tp1, class _Tp2>
+    struct tuple_element<1, std::pair<_Tp1, _Tp2>>
+    { typedef _Tp2 type; };
+
+  template<std::size_t _Int>
+    struct __pair_get;
+
+  template<>
+    struct __pair_get<0>
+    {
+      template<typename _Tp1, typename _Tp2>
+        static constexpr _Tp1&
+        __get(std::pair<_Tp1, _Tp2>& __pair) noexcept
+        { return __pair.first; }
+
+      template<typename _Tp1, typename _Tp2>
+        static constexpr _Tp1&&
+        __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept
+        { return std::forward<_Tp1>(__pair.first); }
+
+      template<typename _Tp1, typename _Tp2>
+        static constexpr const _Tp1&
+        __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept
+        { return __pair.first; }
+    };
+
+  template<>
+    struct __pair_get<1>
+    {
+      template<typename _Tp1, typename _Tp2>
+        static constexpr _Tp2&
+        __get(std::pair<_Tp1, _Tp2>& __pair) noexcept
+        { return __pair.second; }
+
+      template<typename _Tp1, typename _Tp2>
+        static constexpr _Tp2&&
+        __move_get(std::pair<_Tp1, _Tp2>&& __pair) noexcept
+        { return std::forward<_Tp2>(__pair.second); }
+
+      template<typename _Tp1, typename _Tp2>
+        static constexpr const _Tp2&
+        __const_get(const std::pair<_Tp1, _Tp2>& __pair) noexcept
+        { return __pair.second; }
+    };
+
+  template<std::size_t _Int, class _Tp1, class _Tp2>
+    constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&
+    get(std::pair<_Tp1, _Tp2>& __in) noexcept
+    { return __pair_get<_Int>::__get(__in); }
+
+  template<std::size_t _Int, class _Tp1, class _Tp2>
+    constexpr typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&&
+    get(std::pair<_Tp1, _Tp2>&& __in) noexcept
+    { return __pair_get<_Int>::__move_get(std::move(__in)); }
+
+  template<std::size_t _Int, class _Tp1, class _Tp2>
+    constexpr const typename tuple_element<_Int, std::pair<_Tp1, _Tp2>>::type&
+    get(const std::pair<_Tp1, _Tp2>& __in) noexcept
+    { return __pair_get<_Int>::__const_get(__in); }
+# 260 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/utility" 3
+  template<size_t... _Indexes> struct _Index_tuple { };
+
+
+  template<typename _Itup1, typename _Itup2> struct _Itup_cat;
+
+  template<size_t... _Ind1, size_t... _Ind2>
+    struct _Itup_cat<_Index_tuple<_Ind1...>, _Index_tuple<_Ind2...>>
+    {
+      using __type = _Index_tuple<_Ind1..., (_Ind2 + sizeof...(_Ind1))...>;
+    };
+
+
+  template<size_t _Num>
+    struct _Build_index_tuple
+    : _Itup_cat<typename _Build_index_tuple<_Num / 2>::__type,
+  typename _Build_index_tuple<_Num - _Num / 2>::__type>
+    { };
+
+  template<>
+    struct _Build_index_tuple<1>
+    {
+      typedef _Index_tuple<0> __type;
+    };
+
+  template<>
+    struct _Build_index_tuple<0>
+    {
+      typedef _Index_tuple<> __type;
+    };
+# 334 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/utility" 3
+}
+# 39 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/tuple" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/array" 1 3
+# 33 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/array" 3
+
+
+
+
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/stdexcept" 1 3
+# 37 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/stdexcept" 3
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/string" 1 3
+# 37 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/string" 3
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stringfwd.h" 1 3
+# 38 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stringfwd.h" 3
+
+
+
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 52 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stringfwd.h" 3
+  template<class _CharT>
+    struct char_traits;
+
+  template<> struct char_traits<char>;
+
+
+  template<> struct char_traits<wchar_t>;
+
+
+
+
+  template<> struct char_traits<char16_t>;
+  template<> struct char_traits<char32_t>;
+
+
+namespace __cxx11 {
+
+  template<typename _CharT, typename _Traits = char_traits<_CharT>,
+           typename _Alloc = allocator<_CharT> >
+    class basic_string;
+
+
+  typedef basic_string<char> string;
+
+
+
+  typedef basic_string<wchar_t> wstring;
+
+
+
+
+
+  typedef basic_string<char16_t> u16string;
+
+
+  typedef basic_string<char32_t> u32string;
+
+
+}
+
+
+
+
+}
+# 40 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/string" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/char_traits.h" 1 3
+# 38 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/char_traits.h" 3
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/postypes.h" 1 3
+# 39 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/postypes.h" 3
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cwchar" 1 3
+# 40 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cwchar" 3
+
+
+
+
+# 1 "/usr/include/wchar.h" 1 3 4
+# 36 "/usr/include/wchar.h" 3 4
+# 1 "/usr/xenomai/include/cobalt/stdio.h" 1 3 4
+# 20 "/usr/xenomai/include/cobalt/stdio.h" 3
+# 37 "/usr/include/wchar.h" 2 3 4
+# 51 "/usr/include/wchar.h" 3 4
+# 1 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stddef.h" 1 3 4
+# 132 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stddef.h" 3 4
+typedef unsigned int wint_t;
+# 52 "/usr/include/wchar.h" 2 3 4
+# 106 "/usr/include/wchar.h" 3 4
+typedef __mbstate_t mbstate_t;
+# 132 "/usr/include/wchar.h" 3 4
+extern "C" {
+
+
+
+
+struct tm;
+# 147 "/usr/include/wchar.h" 3 4
+extern wchar_t *wcscpy (wchar_t *__restrict __dest,
+   const wchar_t *__restrict __src)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+extern wchar_t *wcsncpy (wchar_t *__restrict __dest,
+    const wchar_t *__restrict __src, size_t __n)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+extern wchar_t *wcscat (wchar_t *__restrict __dest,
+   const wchar_t *__restrict __src)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+extern wchar_t *wcsncat (wchar_t *__restrict __dest,
+    const wchar_t *__restrict __src, size_t __n)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+extern int wcscmp (const wchar_t *__s1, const wchar_t *__s2)
+     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
+     throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+extern int wcscasecmp (const wchar_t *__s1, const wchar_t *__s2) throw ();
+
+
+extern int wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2,
+   size_t __n) throw ();
+
+
+
+
+
+extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2,
+    __locale_t __loc) throw ();
+
+extern int wcsncasecmp_l (const wchar_t *__s1, const wchar_t *__s2,
+     size_t __n, __locale_t __loc) throw ();
+
+
+
+
+
+extern int wcscoll (const wchar_t *__s1, const wchar_t *__s2) throw ();
+
+
+
+extern size_t wcsxfrm (wchar_t *__restrict __s1,
+         const wchar_t *__restrict __s2, size_t __n) throw ();
+# 209 "/usr/include/wchar.h" 3 4
+extern int wcscoll_l (const wchar_t *__s1, const wchar_t *__s2,
+        __locale_t __loc) throw ();
+
+
+
+
+extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2,
+    size_t __n, __locale_t __loc) throw ();
+
+
+extern wchar_t *wcsdup (const wchar_t *__s) throw () __attribute__ ((__malloc__));
+# 230 "/usr/include/wchar.h" 3 4
+extern wchar_t *wcschr (const wchar_t *__wcs, wchar_t __wc)
+     throw () __attribute__ ((__pure__));
+# 240 "/usr/include/wchar.h" 3 4
+extern wchar_t *wcsrchr (const wchar_t *__wcs, wchar_t __wc)
+     throw () __attribute__ ((__pure__));
+
+
+
+
+
+
+extern wchar_t *wcschrnul (const wchar_t *__s, wchar_t __wc)
+     throw () __attribute__ ((__pure__));
+
+
+
+
+
+extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject)
+     throw () __attribute__ ((__pure__));
+
+
+extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept)
+     throw () __attribute__ ((__pure__));
+# 269 "/usr/include/wchar.h" 3 4
+extern wchar_t *wcspbrk (const wchar_t *__wcs, const wchar_t *__accept)
+     throw () __attribute__ ((__pure__));
+# 280 "/usr/include/wchar.h" 3 4
+extern wchar_t *wcsstr (const wchar_t *__haystack, const wchar_t *__needle)
+     throw () __attribute__ ((__pure__));
+
+
+
+extern wchar_t *wcstok (wchar_t *__restrict __s,
+   const wchar_t *__restrict __delim,
+   wchar_t **__restrict __ptr) throw ();
+
+
+extern size_t wcslen (const wchar_t *__s) throw () __attribute__ ((__pure__));
+# 302 "/usr/include/wchar.h" 3 4
+extern wchar_t *wcswcs (const wchar_t *__haystack, const wchar_t *__needle)
+     throw () __attribute__ ((__pure__));
+
+
+
+
+
+extern size_t wcsnlen (const wchar_t *__s, size_t __maxlen)
+     throw () __attribute__ ((__pure__));
+# 323 "/usr/include/wchar.h" 3 4
+extern wchar_t *wmemchr (const wchar_t *__s, wchar_t __c, size_t __n)
+     throw () __attribute__ ((__pure__));
+
+
+
+extern int wmemcmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
+     throw () __attribute__ ((__pure__));
+
+
+extern wchar_t *wmemcpy (wchar_t *__restrict __s1,
+    const wchar_t *__restrict __s2, size_t __n) throw ();
+
+
+
+extern wchar_t *wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n)
+     throw ();
+
+
+extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw ();
+
+
+
+
+
+extern wchar_t *wmempcpy (wchar_t *__restrict __s1,
+     const wchar_t *__restrict __s2, size_t __n)
+     throw ();
+
+
+
+
+
+
+extern wint_t btowc (int __c) throw ();
+
+
+
+extern int wctob (wint_t __c) throw ();
+
+
+
+extern int mbsinit (const mbstate_t *__ps) throw () __attribute__ ((__pure__));
+
+
+
+extern size_t mbrtowc (wchar_t *__restrict __pwc,
+         const char *__restrict __s, size_t __n,
+         mbstate_t *__restrict __p) throw ();
+
+
+extern size_t wcrtomb (char *__restrict __s, wchar_t __wc,
+         mbstate_t *__restrict __ps) throw ();
+
+
+extern size_t __mbrlen (const char *__restrict __s, size_t __n,
+   mbstate_t *__restrict __ps) throw ();
+extern size_t mbrlen (const char *__restrict __s, size_t __n,
+        mbstate_t *__restrict __ps) throw ();
+# 389 "/usr/include/wchar.h" 3 4
+extern wint_t __btowc_alias (int __c) __asm ("btowc");
+extern __inline __attribute__ ((__gnu_inline__)) wint_t
+ btowc (int __c) throw ()
+{ return (__builtin_constant_p (__c) && __c >= '\0' && __c <= '\x7f'
+   ? (wint_t) __c : __btowc_alias (__c)); }
+
+extern int __wctob_alias (wint_t __c) __asm ("wctob");
+extern __inline __attribute__ ((__gnu_inline__)) int
+ wctob (wint_t __wc) throw ()
+{ return (__builtin_constant_p (__wc) && __wc >= L'\0' && __wc <= L'\x7f'
+   ? (int) __wc : __wctob_alias (__wc)); }
+
+extern __inline __attribute__ ((__gnu_inline__)) size_t
+ mbrlen (const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw ()
+
+{ return (__ps != __null
+   ? mbrtowc (__null, __s, __n, __ps) : __mbrlen (__s, __n, __null)); }
+
+
+
+
+
+extern size_t mbsrtowcs (wchar_t *__restrict __dst,
+    const char **__restrict __src, size_t __len,
+    mbstate_t *__restrict __ps) throw ();
+
+
+
+extern size_t wcsrtombs (char *__restrict __dst,
+    const wchar_t **__restrict __src, size_t __len,
+    mbstate_t *__restrict __ps) throw ();
+
+
+
+
+
+
+extern size_t mbsnrtowcs (wchar_t *__restrict __dst,
+     const char **__restrict __src, size_t __nmc,
+     size_t __len, mbstate_t *__restrict __ps) throw ();
+
+
+
+extern size_t wcsnrtombs (char *__restrict __dst,
+     const wchar_t **__restrict __src,
+     size_t __nwc, size_t __len,
+     mbstate_t *__restrict __ps) throw ();
+
+
+
+
+
+
+extern int wcwidth (wchar_t __c) throw ();
+
+
+
+extern int wcswidth (const wchar_t *__s, size_t __n) throw ();
+
+
+
+
+
+
+extern double wcstod (const wchar_t *__restrict __nptr,
+        wchar_t **__restrict __endptr) throw ();
+
+
+
+
+
+extern float wcstof (const wchar_t *__restrict __nptr,
+       wchar_t **__restrict __endptr) throw ();
+extern long double wcstold (const wchar_t *__restrict __nptr,
+       wchar_t **__restrict __endptr) throw ();
+
+
+
+
+
+
+
+extern long int wcstol (const wchar_t *__restrict __nptr,
+   wchar_t **__restrict __endptr, int __base) throw ();
+
+
+
+extern unsigned long int wcstoul (const wchar_t *__restrict __nptr,
+      wchar_t **__restrict __endptr, int __base)
+     throw ();
+
+
+
+
+
+
+__extension__
+extern long long int wcstoll (const wchar_t *__restrict __nptr,
+         wchar_t **__restrict __endptr, int __base)
+     throw ();
+
+
+
+__extension__
+extern unsigned long long int wcstoull (const wchar_t *__restrict __nptr,
+     wchar_t **__restrict __endptr,
+     int __base) throw ();
+
+
+
+
+
+
+__extension__
+extern long long int wcstoq (const wchar_t *__restrict __nptr,
+        wchar_t **__restrict __endptr, int __base)
+     throw ();
+
+
+
+__extension__
+extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr,
+           wchar_t **__restrict __endptr,
+           int __base) throw ();
+# 533 "/usr/include/wchar.h" 3 4
+extern long int wcstol_l (const wchar_t *__restrict __nptr,
+     wchar_t **__restrict __endptr, int __base,
+     __locale_t __loc) throw ();
+
+extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr,
+        wchar_t **__restrict __endptr,
+        int __base, __locale_t __loc) throw ();
+
+__extension__
+extern long long int wcstoll_l (const wchar_t *__restrict __nptr,
+    wchar_t **__restrict __endptr,
+    int __base, __locale_t __loc) throw ();
+
+__extension__
+extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr,
+       wchar_t **__restrict __endptr,
+       int __base, __locale_t __loc)
+     throw ();
+
+extern double wcstod_l (const wchar_t *__restrict __nptr,
+   wchar_t **__restrict __endptr, __locale_t __loc)
+     throw ();
+
+extern float wcstof_l (const wchar_t *__restrict __nptr,
+         wchar_t **__restrict __endptr, __locale_t __loc)
+     throw ();
+
+extern long double wcstold_l (const wchar_t *__restrict __nptr,
+         wchar_t **__restrict __endptr,
+         __locale_t __loc) throw ();
+
+
+
+
+
+
+extern wchar_t *wcpcpy (wchar_t *__restrict __dest,
+   const wchar_t *__restrict __src) throw ();
+
+
+
+extern wchar_t *wcpncpy (wchar_t *__restrict __dest,
+    const wchar_t *__restrict __src, size_t __n)
+     throw ();
+
+
+
+
+
+
+extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) throw ();
+
+
+
+
+
+
+extern int fwide (__FILE *__fp, int __mode) throw ();
+
+
+
+
+
+
+extern int fwprintf (__FILE *__restrict __stream,
+       const wchar_t *__restrict __format, ...)
+                                                           ;
+
+
+
+
+extern int wprintf (const wchar_t *__restrict __format, ...)
+                                                           ;
+
+extern int swprintf (wchar_t *__restrict __s, size_t __n,
+       const wchar_t *__restrict __format, ...)
+     throw () ;
+
+
+
+
+
+extern int vfwprintf (__FILE *__restrict __s,
+        const wchar_t *__restrict __format,
+        __gnuc_va_list __arg)
+                                                           ;
+
+
+
+
+extern int vwprintf (const wchar_t *__restrict __format,
+       __gnuc_va_list __arg)
+                                                           ;
+
+
+extern int vswprintf (wchar_t *__restrict __s, size_t __n,
+        const wchar_t *__restrict __format,
+        __gnuc_va_list __arg)
+     throw () ;
+
+
+
+
+
+
+extern int fwscanf (__FILE *__restrict __stream,
+      const wchar_t *__restrict __format, ...)
+                                                          ;
+
+
+
+
+extern int wscanf (const wchar_t *__restrict __format, ...)
+                                                          ;
+
+extern int swscanf (const wchar_t *__restrict __s,
+      const wchar_t *__restrict __format, ...)
+     throw () ;
+# 692 "/usr/include/wchar.h" 3 4
+extern int vfwscanf (__FILE *__restrict __s,
+       const wchar_t *__restrict __format,
+       __gnuc_va_list __arg)
+                                                          ;
+
+
+
+
+extern int vwscanf (const wchar_t *__restrict __format,
+      __gnuc_va_list __arg)
+                                                          ;
+
+extern int vswscanf (const wchar_t *__restrict __s,
+       const wchar_t *__restrict __format,
+       __gnuc_va_list __arg)
+     throw () ;
+# 748 "/usr/include/wchar.h" 3 4
+extern wint_t fgetwc (__FILE *__stream);
+extern wint_t getwc (__FILE *__stream);
+
+
+
+
+
+extern wint_t getwchar (void);
+
+
+
+
+
+
+extern wint_t fputwc (wchar_t __wc, __FILE *__stream);
+extern wint_t putwc (wchar_t __wc, __FILE *__stream);
+
+
+
+
+
+extern wint_t putwchar (wchar_t __wc);
+
+
+
+
+
+
+
+extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n,
+   __FILE *__restrict __stream);
+
+
+
+
+
+extern int fputws (const wchar_t *__restrict __ws,
+     __FILE *__restrict __stream);
+
+
+
+
+
+
+extern wint_t ungetwc (wint_t __wc, __FILE *__stream);
+# 804 "/usr/include/wchar.h" 3 4
+extern wint_t getwc_unlocked (__FILE *__stream);
+extern wint_t getwchar_unlocked (void);
+
+
+
+
+
+
+
+extern wint_t fgetwc_unlocked (__FILE *__stream);
+
+
+
+
+
+
+
+extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream);
+# 830 "/usr/include/wchar.h" 3 4
+extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream);
+extern wint_t putwchar_unlocked (wchar_t __wc);
+# 840 "/usr/include/wchar.h" 3 4
+extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n,
+     __FILE *__restrict __stream);
+
+
+
+
+
+
+
+extern int fputws_unlocked (const wchar_t *__restrict __ws,
+       __FILE *__restrict __stream);
+
+
+
+
+
+
+
+extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize,
+   const wchar_t *__restrict __format,
+   const struct tm *__restrict __tp) throw ();
+
+
+
+
+
+
+
+extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize,
+     const wchar_t *__restrict __format,
+     const struct tm *__restrict __tp,
+     __locale_t __loc) throw ();
+# 894 "/usr/include/wchar.h" 3 4
+}
+# 45 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cwchar" 2 3
+# 62 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cwchar" 3
+namespace std
+{
+  using ::mbstate_t;
+}
+# 135 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cwchar" 3
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+  using ::wint_t;
+
+  using ::btowc;
+  using ::fgetwc;
+  using ::fgetws;
+  using ::fputwc;
+  using ::fputws;
+  using ::fwide;
+  using ::fwprintf;
+  using ::fwscanf;
+  using ::getwc;
+  using ::getwchar;
+  using ::mbrlen;
+  using ::mbrtowc;
+  using ::mbsinit;
+  using ::mbsrtowcs;
+  using ::putwc;
+  using ::putwchar;
+
+  using ::swprintf;
+
+  using ::swscanf;
+  using ::ungetwc;
+  using ::vfwprintf;
+
+  using ::vfwscanf;
+
+
+  using ::vswprintf;
+
+
+  using ::vswscanf;
+
+  using ::vwprintf;
+
+  using ::vwscanf;
+
+  using ::wcrtomb;
+  using ::wcscat;
+  using ::wcscmp;
+  using ::wcscoll;
+  using ::wcscpy;
+  using ::wcscspn;
+  using ::wcsftime;
+  using ::wcslen;
+  using ::wcsncat;
+  using ::wcsncmp;
+  using ::wcsncpy;
+  using ::wcsrtombs;
+  using ::wcsspn;
+  using ::wcstod;
+
+  using ::wcstof;
+
+  using ::wcstok;
+  using ::wcstol;
+  using ::wcstoul;
+  using ::wcsxfrm;
+  using ::wctob;
+  using ::wmemcmp;
+  using ::wmemcpy;
+  using ::wmemmove;
+  using ::wmemset;
+  using ::wprintf;
+  using ::wscanf;
+  using ::wcschr;
+  using ::wcspbrk;
+  using ::wcsrchr;
+  using ::wcsstr;
+  using ::wmemchr;
+
+
+  inline wchar_t*
+  wcschr(wchar_t* __p, wchar_t __c)
+  { return wcschr(const_cast<const wchar_t*>(__p), __c); }
+
+  inline wchar_t*
+  wcspbrk(wchar_t* __s1, const wchar_t* __s2)
+  { return wcspbrk(const_cast<const wchar_t*>(__s1), __s2); }
+
+  inline wchar_t*
+  wcsrchr(wchar_t* __p, wchar_t __c)
+  { return wcsrchr(const_cast<const wchar_t*>(__p), __c); }
+
+  inline wchar_t*
+  wcsstr(wchar_t* __s1, const wchar_t* __s2)
+  { return wcsstr(const_cast<const wchar_t*>(__s1), __s2); }
+
+  inline wchar_t*
+  wmemchr(wchar_t* __p, wchar_t __c, size_t __n)
+  { return wmemchr(const_cast<const wchar_t*>(__p), __c, __n); }
+
+
+
+}
+
+
+
+
+
+
+
+namespace __gnu_cxx
+{
+
+
+
+
+
+  using ::wcstold;
+# 257 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cwchar" 3
+  using ::wcstoll;
+  using ::wcstoull;
+
+}
+
+namespace std
+{
+  using ::__gnu_cxx::wcstold;
+  using ::__gnu_cxx::wcstoll;
+  using ::__gnu_cxx::wcstoull;
+}
+# 277 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cwchar" 3
+namespace std
+{
+
+  using std::wcstof;
+
+
+  using std::vfwscanf;
+
+
+  using std::vswscanf;
+
+
+  using std::vwscanf;
+
+
+
+  using std::wcstold;
+  using std::wcstoll;
+  using std::wcstoull;
+
+}
+# 41 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/postypes.h" 2 3
+# 68 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/postypes.h" 3
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 90 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/postypes.h" 3
+  typedef long long streamoff;
+
+
+
+
+
+
+
+  typedef ptrdiff_t streamsize;
+# 111 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/postypes.h" 3
+  template<typename _StateT>
+    class fpos
+    {
+    private:
+      streamoff _M_off;
+      _StateT _M_state;
+
+    public:
+
+
+
+
+      fpos()
+      : _M_off(0), _M_state() { }
+# 133 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/postypes.h" 3
+      fpos(streamoff __off)
+      : _M_off(__off), _M_state() { }
+
+
+      operator streamoff() const { return _M_off; }
+
+
+      void
+      state(_StateT __st)
+      { _M_state = __st; }
+
+
+      _StateT
+      state() const
+      { return _M_state; }
+
+
+
+
+
+      fpos&
+      operator+=(streamoff __off)
+      {
+ _M_off += __off;
+ return *this;
+      }
+
+
+
+
+
+      fpos&
+      operator-=(streamoff __off)
+      {
+ _M_off -= __off;
+ return *this;
+      }
+
+
+
+
+
+
+
+      fpos
+      operator+(streamoff __off) const
+      {
+ fpos __pos(*this);
+ __pos += __off;
+ return __pos;
+      }
+
+
+
+
+
+
+
+      fpos
+      operator-(streamoff __off) const
+      {
+ fpos __pos(*this);
+ __pos -= __off;
+ return __pos;
+      }
+
+
+
+
+
+
+      streamoff
+      operator-(const fpos& __other) const
+      { return _M_off - __other._M_off; }
+    };
+
+
+
+
+
+
+  template<typename _StateT>
+    inline bool
+    operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
+    { return streamoff(__lhs) == streamoff(__rhs); }
+
+  template<typename _StateT>
+    inline bool
+    operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
+    { return streamoff(__lhs) != streamoff(__rhs); }
+
+
+
+
+
+  typedef fpos<mbstate_t> streampos;
+
+  typedef fpos<mbstate_t> wstreampos;
+
+
+
+  typedef fpos<mbstate_t> u16streampos;
+
+  typedef fpos<mbstate_t> u32streampos;
+
+
+
+}
+# 41 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/char_traits.h" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cwchar" 1 3
+# 40 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cwchar" 3
+
+
+
+
+# 1 "/usr/include/wchar.h" 1 3 4
+# 45 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cwchar" 2 3
+# 42 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/char_traits.h" 2 3
+
+namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
+{
+# 57 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/char_traits.h" 3
+  template<typename _CharT>
+    struct _Char_types
+    {
+      typedef unsigned long int_type;
+      typedef std::streampos pos_type;
+      typedef std::streamoff off_type;
+      typedef std::mbstate_t state_type;
+    };
+# 82 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/char_traits.h" 3
+  template<typename _CharT>
+    struct char_traits
+    {
+      typedef _CharT char_type;
+      typedef typename _Char_types<_CharT>::int_type int_type;
+      typedef typename _Char_types<_CharT>::pos_type pos_type;
+      typedef typename _Char_types<_CharT>::off_type off_type;
+      typedef typename _Char_types<_CharT>::state_type state_type;
+
+      static void
+      assign(char_type& __c1, const char_type& __c2)
+      { __c1 = __c2; }
+
+      static constexpr bool
+      eq(const char_type& __c1, const char_type& __c2)
+      { return __c1 == __c2; }
+
+      static constexpr bool
+      lt(const char_type& __c1, const char_type& __c2)
+      { return __c1 < __c2; }
+
+      static int
+      compare(const char_type* __s1, const char_type* __s2, std::size_t __n);
+
+      static std::size_t
+      length(const char_type* __s);
+
+      static const char_type*
+      find(const char_type* __s, std::size_t __n, const char_type& __a);
+
+      static char_type*
+      move(char_type* __s1, const char_type* __s2, std::size_t __n);
+
+      static char_type*
+      copy(char_type* __s1, const char_type* __s2, std::size_t __n);
+
+      static char_type*
+      assign(char_type* __s, std::size_t __n, char_type __a);
+
+      static constexpr char_type
+      to_char_type(const int_type& __c)
+      { return static_cast<char_type>(__c); }
+
+      static constexpr int_type
+      to_int_type(const char_type& __c)
+      { return static_cast<int_type>(__c); }
+
+      static constexpr bool
+      eq_int_type(const int_type& __c1, const int_type& __c2)
+      { return __c1 == __c2; }
+
+      static constexpr int_type
+      eof()
+      { return static_cast<int_type>(-1); }
+
+      static constexpr int_type
+      not_eof(const int_type& __c)
+      { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); }
+    };
+
+  template<typename _CharT>
+    int
+    char_traits<_CharT>::
+    compare(const char_type* __s1, const char_type* __s2, std::size_t __n)
+    {
+      for (std::size_t __i = 0; __i < __n; ++__i)
+ if (lt(__s1[__i], __s2[__i]))
+   return -1;
+ else if (lt(__s2[__i], __s1[__i]))
+   return 1;
+      return 0;
+    }
+
+  template<typename _CharT>
+    std::size_t
+    char_traits<_CharT>::
+    length(const char_type* __p)
+    {
+      std::size_t __i = 0;
+      while (!eq(__p[__i], char_type()))
+        ++__i;
+      return __i;
+    }
+
+  template<typename _CharT>
+    const typename char_traits<_CharT>::char_type*
+    char_traits<_CharT>::
+    find(const char_type* __s, std::size_t __n, const char_type& __a)
+    {
+      for (std::size_t __i = 0; __i < __n; ++__i)
+        if (eq(__s[__i], __a))
+          return __s + __i;
+      return 0;
+    }
+
+  template<typename _CharT>
+    typename char_traits<_CharT>::char_type*
+    char_traits<_CharT>::
+    move(char_type* __s1, const char_type* __s2, std::size_t __n)
+    {
+      return static_cast<_CharT*>(__builtin_memmove(__s1, __s2,
+          __n * sizeof(char_type)));
+    }
+
+  template<typename _CharT>
+    typename char_traits<_CharT>::char_type*
+    char_traits<_CharT>::
+    copy(char_type* __s1, const char_type* __s2, std::size_t __n)
+    {
+
+      std::copy(__s2, __s2 + __n, __s1);
+      return __s1;
+    }
+
+  template<typename _CharT>
+    typename char_traits<_CharT>::char_type*
+    char_traits<_CharT>::
+    assign(char_type* __s, std::size_t __n, char_type __a)
+    {
+
+      std::fill_n(__s, __n, __a);
+      return __s;
+    }
+
+
+}
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 226 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/char_traits.h" 3
+  template<class _CharT>
+    struct char_traits : public __gnu_cxx::char_traits<_CharT>
+    { };
+
+
+
+  template<>
+    struct char_traits<char>
+    {
+      typedef char char_type;
+      typedef int int_type;
+      typedef streampos pos_type;
+      typedef streamoff off_type;
+      typedef mbstate_t state_type;
+
+      static void
+      assign(char_type& __c1, const char_type& __c2) noexcept
+      { __c1 = __c2; }
+
+      static constexpr bool
+      eq(const char_type& __c1, const char_type& __c2) noexcept
+      { return __c1 == __c2; }
+
+      static constexpr bool
+      lt(const char_type& __c1, const char_type& __c2) noexcept
+      {
+
+ return (static_cast<unsigned char>(__c1)
+  < static_cast<unsigned char>(__c2));
+      }
+
+      static int
+      compare(const char_type* __s1, const char_type* __s2, size_t __n)
+      {
+ if (__n == 0)
+   return 0;
+ return __builtin_memcmp(__s1, __s2, __n);
+      }
+
+      static size_t
+      length(const char_type* __s)
+      { return __builtin_strlen(__s); }
+
+      static const char_type*
+      find(const char_type* __s, size_t __n, const char_type& __a)
+      {
+ if (__n == 0)
+   return 0;
+ return static_cast<const char_type*>(__builtin_memchr(__s, __a, __n));
+      }
+
+      static char_type*
+      move(char_type* __s1, const char_type* __s2, size_t __n)
+      {
+ if (__n == 0)
+   return __s1;
+ return static_cast<char_type*>(__builtin_memmove(__s1, __s2, __n));
+      }
+
+      static char_type*
+      copy(char_type* __s1, const char_type* __s2, size_t __n)
+      {
+ if (__n == 0)
+   return __s1;
+ return static_cast<char_type*>(__builtin_memcpy(__s1, __s2, __n));
+      }
+
+      static char_type*
+      assign(char_type* __s, size_t __n, char_type __a)
+      {
+ if (__n == 0)
+   return __s;
+ return static_cast<char_type*>(__builtin_memset(__s, __a, __n));
+      }
+
+      static constexpr char_type
+      to_char_type(const int_type& __c) noexcept
+      { return static_cast<char_type>(__c); }
+
+
+
+      static constexpr int_type
+      to_int_type(const char_type& __c) noexcept
+      { return static_cast<int_type>(static_cast<unsigned char>(__c)); }
+
+      static constexpr bool
+      eq_int_type(const int_type& __c1, const int_type& __c2) noexcept
+      { return __c1 == __c2; }
+
+      static constexpr int_type
+      eof() noexcept
+      { return static_cast<int_type>(-1); }
+
+      static constexpr int_type
+      not_eof(const int_type& __c) noexcept
+      { return (__c == eof()) ? 0 : __c; }
+  };
+
+
+
+
+  template<>
+    struct char_traits<wchar_t>
+    {
+      typedef wchar_t char_type;
+      typedef wint_t int_type;
+      typedef streamoff off_type;
+      typedef wstreampos pos_type;
+      typedef mbstate_t state_type;
+
+      static void
+      assign(char_type& __c1, const char_type& __c2) noexcept
+      { __c1 = __c2; }
+
+      static constexpr bool
+      eq(const char_type& __c1, const char_type& __c2) noexcept
+      { return __c1 == __c2; }
+
+      static constexpr bool
+      lt(const char_type& __c1, const char_type& __c2) noexcept
+      { return __c1 < __c2; }
+
+      static int
+      compare(const char_type* __s1, const char_type* __s2, size_t __n)
+      {
+ if (__n == 0)
+   return 0;
+ return wmemcmp(__s1, __s2, __n);
+      }
+
+      static size_t
+      length(const char_type* __s)
+      { return wcslen(__s); }
+
+      static const char_type*
+      find(const char_type* __s, size_t __n, const char_type& __a)
+      {
+ if (__n == 0)
+   return 0;
+ return wmemchr(__s, __a, __n);
+      }
+
+      static char_type*
+      move(char_type* __s1, const char_type* __s2, size_t __n)
+      {
+ if (__n == 0)
+   return __s1;
+ return wmemmove(__s1, __s2, __n);
+      }
+
+      static char_type*
+      copy(char_type* __s1, const char_type* __s2, size_t __n)
+      {
+ if (__n == 0)
+   return __s1;
+ return wmemcpy(__s1, __s2, __n);
+      }
+
+      static char_type*
+      assign(char_type* __s, size_t __n, char_type __a)
+      {
+ if (__n == 0)
+   return __s;
+ return wmemset(__s, __a, __n);
+      }
+
+      static constexpr char_type
+      to_char_type(const int_type& __c) noexcept
+      { return char_type(__c); }
+
+      static constexpr int_type
+      to_int_type(const char_type& __c) noexcept
+      { return int_type(__c); }
+
+      static constexpr bool
+      eq_int_type(const int_type& __c1, const int_type& __c2) noexcept
+      { return __c1 == __c2; }
+
+      static constexpr int_type
+      eof() noexcept
+      { return static_cast<int_type>((0xffffffffu)); }
+
+      static constexpr int_type
+      not_eof(const int_type& __c) noexcept
+      { return eq_int_type(__c, eof()) ? 0 : __c; }
+  };
+
+
+
+}
+
+
+
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cstdint" 1 3
+# 33 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cstdint" 3
+
+
+
+
+
+
+
+
+# 1 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stdint.h" 1 3
+# 42 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cstdint" 2 3
+
+
+
+
+namespace std
+{
+  using ::int8_t;
+  using ::int16_t;
+  using ::int32_t;
+  using ::int64_t;
+
+  using ::int_fast8_t;
+  using ::int_fast16_t;
+  using ::int_fast32_t;
+  using ::int_fast64_t;
+
+  using ::int_least8_t;
+  using ::int_least16_t;
+  using ::int_least32_t;
+  using ::int_least64_t;
+
+  using ::intmax_t;
+  using ::intptr_t;
+
+  using ::uint8_t;
+  using ::uint16_t;
+  using ::uint32_t;
+  using ::uint64_t;
+
+  using ::uint_fast8_t;
+  using ::uint_fast16_t;
+  using ::uint_fast32_t;
+  using ::uint_fast64_t;
+
+  using ::uint_least8_t;
+  using ::uint_least16_t;
+  using ::uint_least32_t;
+  using ::uint_least64_t;
+
+  using ::uintmax_t;
+  using ::uintptr_t;
+}
+# 421 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/char_traits.h" 2 3
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+  template<>
+    struct char_traits<char16_t>
+    {
+      typedef char16_t char_type;
+      typedef uint_least16_t int_type;
+      typedef streamoff off_type;
+      typedef u16streampos pos_type;
+      typedef mbstate_t state_type;
+
+      static void
+      assign(char_type& __c1, const char_type& __c2) noexcept
+      { __c1 = __c2; }
+
+      static constexpr bool
+      eq(const char_type& __c1, const char_type& __c2) noexcept
+      { return __c1 == __c2; }
+
+      static constexpr bool
+      lt(const char_type& __c1, const char_type& __c2) noexcept
+      { return __c1 < __c2; }
+
+      static int
+      compare(const char_type* __s1, const char_type* __s2, size_t __n)
+      {
+ for (size_t __i = 0; __i < __n; ++__i)
+   if (lt(__s1[__i], __s2[__i]))
+     return -1;
+   else if (lt(__s2[__i], __s1[__i]))
+     return 1;
+ return 0;
+      }
+
+      static size_t
+      length(const char_type* __s)
+      {
+ size_t __i = 0;
+ while (!eq(__s[__i], char_type()))
+   ++__i;
+ return __i;
+      }
+
+      static const char_type*
+      find(const char_type* __s, size_t __n, const char_type& __a)
+      {
+ for (size_t __i = 0; __i < __n; ++__i)
+   if (eq(__s[__i], __a))
+     return __s + __i;
+ return 0;
+      }
+
+      static char_type*
+      move(char_type* __s1, const char_type* __s2, size_t __n)
+      {
+ if (__n == 0)
+   return __s1;
+ return (static_cast<char_type*>
+  (__builtin_memmove(__s1, __s2, __n * sizeof(char_type))));
+      }
+
+      static char_type*
+      copy(char_type* __s1, const char_type* __s2, size_t __n)
+      {
+ if (__n == 0)
+   return __s1;
+ return (static_cast<char_type*>
+  (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type))));
+      }
+
+      static char_type*
+      assign(char_type* __s, size_t __n, char_type __a)
+      {
+ for (size_t __i = 0; __i < __n; ++__i)
+   assign(__s[__i], __a);
+ return __s;
+      }
+
+      static constexpr char_type
+      to_char_type(const int_type& __c) noexcept
+      { return char_type(__c); }
+
+      static constexpr int_type
+      to_int_type(const char_type& __c) noexcept
+      { return int_type(__c); }
+
+      static constexpr bool
+      eq_int_type(const int_type& __c1, const int_type& __c2) noexcept
+      { return __c1 == __c2; }
+
+      static constexpr int_type
+      eof() noexcept
+      { return static_cast<int_type>(-1); }
+
+      static constexpr int_type
+      not_eof(const int_type& __c) noexcept
+      { return eq_int_type(__c, eof()) ? 0 : __c; }
+    };
+
+  template<>
+    struct char_traits<char32_t>
+    {
+      typedef char32_t char_type;
+      typedef uint_least32_t int_type;
+      typedef streamoff off_type;
+      typedef u32streampos pos_type;
+      typedef mbstate_t state_type;
+
+      static void
+      assign(char_type& __c1, const char_type& __c2) noexcept
+      { __c1 = __c2; }
+
+      static constexpr bool
+      eq(const char_type& __c1, const char_type& __c2) noexcept
+      { return __c1 == __c2; }
+
+      static constexpr bool
+      lt(const char_type& __c1, const char_type& __c2) noexcept
+      { return __c1 < __c2; }
+
+      static int
+      compare(const char_type* __s1, const char_type* __s2, size_t __n)
+      {
+ for (size_t __i = 0; __i < __n; ++__i)
+   if (lt(__s1[__i], __s2[__i]))
+     return -1;
+   else if (lt(__s2[__i], __s1[__i]))
+     return 1;
+ return 0;
+      }
+
+      static size_t
+      length(const char_type* __s)
+      {
+ size_t __i = 0;
+ while (!eq(__s[__i], char_type()))
+   ++__i;
+ return __i;
+      }
+
+      static const char_type*
+      find(const char_type* __s, size_t __n, const char_type& __a)
+      {
+ for (size_t __i = 0; __i < __n; ++__i)
+   if (eq(__s[__i], __a))
+     return __s + __i;
+ return 0;
+      }
+
+      static char_type*
+      move(char_type* __s1, const char_type* __s2, size_t __n)
+      {
+ if (__n == 0)
+   return __s1;
+ return (static_cast<char_type*>
+  (__builtin_memmove(__s1, __s2, __n * sizeof(char_type))));
+      }
+
+      static char_type*
+      copy(char_type* __s1, const char_type* __s2, size_t __n)
+      {
+ if (__n == 0)
+   return __s1;
+ return (static_cast<char_type*>
+  (__builtin_memcpy(__s1, __s2, __n * sizeof(char_type))));
+      }
+
+      static char_type*
+      assign(char_type* __s, size_t __n, char_type __a)
+      {
+ for (size_t __i = 0; __i < __n; ++__i)
+   assign(__s[__i], __a);
+ return __s;
+      }
+
+      static constexpr char_type
+      to_char_type(const int_type& __c) noexcept
+      { return char_type(__c); }
+
+      static constexpr int_type
+      to_int_type(const char_type& __c) noexcept
+      { return int_type(__c); }
+
+      static constexpr bool
+      eq_int_type(const int_type& __c1, const int_type& __c2) noexcept
+      { return __c1 == __c2; }
+
+      static constexpr int_type
+      eof() noexcept
+      { return static_cast<int_type>(-1); }
+
+      static constexpr int_type
+      not_eof(const int_type& __c) noexcept
+      { return eq_int_type(__c, eof()) ? 0 : __c; }
+    };
+
+
+}
+# 41 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/string" 2 3
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/localefwd.h" 1 3
+# 38 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/localefwd.h" 3
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/c++locale.h" 1 3
+# 40 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/c++locale.h" 3
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/clocale" 1 3
+# 40 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/clocale" 3
+
+
+# 1 "/usr/include/locale.h" 1 3 4
+# 28 "/usr/include/locale.h" 3 4
+# 1 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stddef.h" 1 3 4
+# 29 "/usr/include/locale.h" 2 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/bits/locale.h" 1 3 4
+# 30 "/usr/include/locale.h" 2 3 4
+
+extern "C" {
+# 53 "/usr/include/locale.h" 3 4
+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;
+# 120 "/usr/include/locale.h" 3 4
+};
+
+
+
+extern char *setlocale (int __category, const char *__locale) throw ();
+
+
+extern struct lconv *localeconv (void) throw ();
+# 151 "/usr/include/locale.h" 3 4
+extern __locale_t newlocale (int __category_mask, const char *__locale,
+        __locale_t __base) throw ();
+# 186 "/usr/include/locale.h" 3 4
+extern __locale_t duplocale (__locale_t __dataset) throw ();
+
+
+
+extern void freelocale (__locale_t __dataset) throw ();
+
+
+
+
+
+
+extern __locale_t uselocale (__locale_t __dataset) throw ();
+
+
+
+
+
+
+
+}
+# 43 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/clocale" 2 3
+
+
+
+
+
+
+
+
+namespace std
+{
+  using ::lconv;
+  using ::setlocale;
+  using ::localeconv;
+}
+# 42 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/c++locale.h" 2 3
+
+
+
+
+
+
+namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
+{
+
+
+  extern "C" __typeof(uselocale) __uselocale;
+
+
+}
+
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+  typedef __locale_t __c_locale;
+
+
+
+
+
+  inline int
+  __convert_from_v(const __c_locale& __cloc __attribute__ ((__unused__)),
+     char* __out,
+     const int __size __attribute__ ((__unused__)),
+     const char* __fmt, ...)
+  {
+
+    __c_locale __old = __gnu_cxx::__uselocale(__cloc);
+# 88 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/c++locale.h" 3
+    __builtin_va_list __args;
+    __builtin_va_start(__args, __fmt);
+
+
+    const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args);
+
+
+
+
+    __builtin_va_end(__args);
+
+
+    __gnu_cxx::__uselocale(__old);
+
+
+
+
+
+
+
+    return __ret;
+  }
+
+
+}
+# 41 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/localefwd.h" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/iosfwd" 1 3
+# 37 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/iosfwd" 3
+
+
+
+
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 74 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/iosfwd" 3
+  class ios_base;
+
+  template<typename _CharT, typename _Traits = char_traits<_CharT> >
+    class basic_ios;
+
+  template<typename _CharT, typename _Traits = char_traits<_CharT> >
+    class basic_streambuf;
+
+  template<typename _CharT, typename _Traits = char_traits<_CharT> >
+    class basic_istream;
+
+  template<typename _CharT, typename _Traits = char_traits<_CharT> >
+    class basic_ostream;
+
+  template<typename _CharT, typename _Traits = char_traits<_CharT> >
+    class basic_iostream;
+
+
+namespace __cxx11 {
+
+  template<typename _CharT, typename _Traits = char_traits<_CharT>,
+     typename _Alloc = allocator<_CharT> >
+    class basic_stringbuf;
+
+  template<typename _CharT, typename _Traits = char_traits<_CharT>,
+    typename _Alloc = allocator<_CharT> >
+    class basic_istringstream;
+
+  template<typename _CharT, typename _Traits = char_traits<_CharT>,
+    typename _Alloc = allocator<_CharT> >
+    class basic_ostringstream;
+
+  template<typename _CharT, typename _Traits = char_traits<_CharT>,
+    typename _Alloc = allocator<_CharT> >
+    class basic_stringstream;
+
+}
+
+  template<typename _CharT, typename _Traits = char_traits<_CharT> >
+    class basic_filebuf;
+
+  template<typename _CharT, typename _Traits = char_traits<_CharT> >
+    class basic_ifstream;
+
+  template<typename _CharT, typename _Traits = char_traits<_CharT> >
+    class basic_ofstream;
+
+  template<typename _CharT, typename _Traits = char_traits<_CharT> >
+    class basic_fstream;
+
+  template<typename _CharT, typename _Traits = char_traits<_CharT> >
+    class istreambuf_iterator;
+
+  template<typename _CharT, typename _Traits = char_traits<_CharT> >
+    class ostreambuf_iterator;
+
+
+
+  typedef basic_ios<char> ios;
+
+
+  typedef basic_streambuf<char> streambuf;
+
+
+  typedef basic_istream<char> istream;
+
+
+  typedef basic_ostream<char> ostream;
+
+
+  typedef basic_iostream<char> iostream;
+
+
+  typedef basic_stringbuf<char> stringbuf;
+
+
+  typedef basic_istringstream<char> istringstream;
+
+
+  typedef basic_ostringstream<char> ostringstream;
+
+
+  typedef basic_stringstream<char> stringstream;
+
+
+  typedef basic_filebuf<char> filebuf;
+
+
+  typedef basic_ifstream<char> ifstream;
+
+
+  typedef basic_ofstream<char> ofstream;
+
+
+  typedef basic_fstream<char> fstream;
+
+
+
+  typedef basic_ios<wchar_t> wios;
+
+
+  typedef basic_streambuf<wchar_t> wstreambuf;
+
+
+  typedef basic_istream<wchar_t> wistream;
+
+
+  typedef basic_ostream<wchar_t> wostream;
+
+
+  typedef basic_iostream<wchar_t> wiostream;
+
+
+  typedef basic_stringbuf<wchar_t> wstringbuf;
+
+
+  typedef basic_istringstream<wchar_t> wistringstream;
+
+
+  typedef basic_ostringstream<wchar_t> wostringstream;
+
+
+  typedef basic_stringstream<wchar_t> wstringstream;
+
+
+  typedef basic_filebuf<wchar_t> wfilebuf;
+
+
+  typedef basic_ifstream<wchar_t> wifstream;
+
+
+  typedef basic_ofstream<wchar_t> wofstream;
+
+
+  typedef basic_fstream<wchar_t> wfstream;
+
+
+
+
+}
+# 42 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/localefwd.h" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cctype" 1 3
+# 40 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cctype" 3
+
+
+# 1 "/usr/include/ctype.h" 1 3 4
+# 28 "/usr/include/ctype.h" 3 4
+extern "C" {
+# 46 "/usr/include/ctype.h" 3 4
+enum
+{
+  _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
+  _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
+  _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
+  _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
+  _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
+  _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
+  _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
+  _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
+  _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
+  _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
+  _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
+  _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
+};
+# 79 "/usr/include/ctype.h" 3 4
+extern const unsigned short int **__ctype_b_loc (void)
+     throw () __attribute__ ((__const__));
+extern const __int32_t **__ctype_tolower_loc (void)
+     throw () __attribute__ ((__const__));
+extern const __int32_t **__ctype_toupper_loc (void)
+     throw () __attribute__ ((__const__));
+# 110 "/usr/include/ctype.h" 3 4
+extern int isalnum (int) throw ();
+extern int isalpha (int) throw ();
+extern int iscntrl (int) throw ();
+extern int isdigit (int) throw ();
+extern int islower (int) throw ();
+extern int isgraph (int) throw ();
+extern int isprint (int) throw ();
+extern int ispunct (int) throw ();
+extern int isspace (int) throw ();
+extern int isupper (int) throw ();
+extern int isxdigit (int) throw ();
+
+
+
+extern int tolower (int __c) throw ();
+
+
+extern int toupper (int __c) throw ();
+# 136 "/usr/include/ctype.h" 3 4
+extern int isblank (int) throw ();
+
+
+
+
+
+
+extern int isctype (int __c, int __mask) throw ();
+
+
+
+
+
+
+extern int isascii (int __c) throw ();
+
+
+
+extern int toascii (int __c) throw ();
+
+
+
+extern int _toupper (int) throw ();
+extern int _tolower (int) throw ();
+# 271 "/usr/include/ctype.h" 3 4
+extern int isalnum_l (int, __locale_t) throw ();
+extern int isalpha_l (int, __locale_t) throw ();
+extern int iscntrl_l (int, __locale_t) throw ();
+extern int isdigit_l (int, __locale_t) throw ();
+extern int islower_l (int, __locale_t) throw ();
+extern int isgraph_l (int, __locale_t) throw ();
+extern int isprint_l (int, __locale_t) throw ();
+extern int ispunct_l (int, __locale_t) throw ();
+extern int isspace_l (int, __locale_t) throw ();
+extern int isupper_l (int, __locale_t) throw ();
+extern int isxdigit_l (int, __locale_t) throw ();
+
+extern int isblank_l (int, __locale_t) throw ();
+
+
+
+extern int __tolower_l (int __c, __locale_t __l) throw ();
+extern int tolower_l (int __c, __locale_t __l) throw ();
+
+
+extern int __toupper_l (int __c, __locale_t __l) throw ();
+extern int toupper_l (int __c, __locale_t __l) throw ();
+# 347 "/usr/include/ctype.h" 3 4
+}
+# 43 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cctype" 2 3
+# 62 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cctype" 3
+namespace std
+{
+  using ::isalnum;
+  using ::isalpha;
+  using ::iscntrl;
+  using ::isdigit;
+  using ::isgraph;
+  using ::islower;
+  using ::isprint;
+  using ::ispunct;
+  using ::isspace;
+  using ::isupper;
+  using ::isxdigit;
+  using ::tolower;
+  using ::toupper;
+}
+
+
+
+
+
+
+
+namespace std
+{
+  using ::isblank;
+}
+# 43 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/localefwd.h" 2 3
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 55 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/localefwd.h" 3
+  class locale;
+
+  template<typename _Facet>
+    bool
+    has_facet(const locale&) throw();
+
+  template<typename _Facet>
+    const _Facet&
+    use_facet(const locale&);
+
+
+  template<typename _CharT>
+    bool
+    isspace(_CharT, const locale&);
+
+  template<typename _CharT>
+    bool
+    isprint(_CharT, const locale&);
+
+  template<typename _CharT>
+    bool
+    iscntrl(_CharT, const locale&);
+
+  template<typename _CharT>
+    bool
+    isupper(_CharT, const locale&);
+
+  template<typename _CharT>
+    bool
+    islower(_CharT, const locale&);
+
+  template<typename _CharT>
+    bool
+    isalpha(_CharT, const locale&);
+
+  template<typename _CharT>
+    bool
+    isdigit(_CharT, const locale&);
+
+  template<typename _CharT>
+    bool
+    ispunct(_CharT, const locale&);
+
+  template<typename _CharT>
+    bool
+    isxdigit(_CharT, const locale&);
+
+  template<typename _CharT>
+    bool
+    isalnum(_CharT, const locale&);
+
+  template<typename _CharT>
+    bool
+    isgraph(_CharT, const locale&);
+
+
+  template<typename _CharT>
+    bool
+    isblank(_CharT, const locale&);
+
+
+  template<typename _CharT>
+    _CharT
+    toupper(_CharT, const locale&);
+
+  template<typename _CharT>
+    _CharT
+    tolower(_CharT, const locale&);
+
+
+  class ctype_base;
+  template<typename _CharT>
+    class ctype;
+  template<> class ctype<char>;
+
+  template<> class ctype<wchar_t>;
+
+  template<typename _CharT>
+    class ctype_byname;
+
+
+  class codecvt_base;
+  template<typename _InternT, typename _ExternT, typename _StateT>
+    class codecvt;
+  template<> class codecvt<char, char, mbstate_t>;
+
+  template<> class codecvt<wchar_t, char, mbstate_t>;
+
+  template<typename _InternT, typename _ExternT, typename _StateT>
+    class codecvt_byname;
+
+
+
+  template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
+    class num_get;
+  template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
+    class num_put;
+
+namespace __cxx11 {
+  template<typename _CharT> class numpunct;
+  template<typename _CharT> class numpunct_byname;
+}
+
+namespace __cxx11 {
+
+  template<typename _CharT>
+    class collate;
+  template<typename _CharT>
+    class collate_byname;
+}
+
+
+  class time_base;
+namespace __cxx11 {
+  template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
+    class time_get;
+  template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
+    class time_get_byname;
+}
+  template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
+    class time_put;
+  template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
+    class time_put_byname;
+
+
+  class money_base;
+namespace __cxx11 {
+  template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
+    class money_get;
+  template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
+    class money_put;
+}
+namespace __cxx11 {
+  template<typename _CharT, bool _Intl = false>
+    class moneypunct;
+  template<typename _CharT, bool _Intl = false>
+    class moneypunct_byname;
+}
+
+
+  class messages_base;
+namespace __cxx11 {
+  template<typename _CharT>
+    class messages;
+  template<typename _CharT>
+    class messages_byname;
+}
+
+
+}
+# 44 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/string" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/ostream_insert.h" 1 3
+# 34 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/ostream_insert.h" 3
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/cxxabi_forced.h" 1 3
+# 35 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/cxxabi_forced.h" 3
+
+#pragma GCC visibility push(default)
+
+
+namespace __cxxabiv1
+{
+
+
+
+
+
+
+
+  class __forced_unwind
+  {
+    virtual ~__forced_unwind() throw();
+
+
+    virtual void __pure_dummy() = 0;
+  };
+}
+
+
+#pragma GCC visibility pop
+# 37 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/ostream_insert.h" 2 3
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+  template<typename _CharT, typename _Traits>
+    inline void
+    __ostream_write(basic_ostream<_CharT, _Traits>& __out,
+      const _CharT* __s, streamsize __n)
+    {
+      typedef basic_ostream<_CharT, _Traits> __ostream_type;
+      typedef typename __ostream_type::ios_base __ios_base;
+
+      const streamsize __put = __out.rdbuf()->sputn(__s, __n);
+      if (__put != __n)
+ __out.setstate(__ios_base::badbit);
+    }
+
+  template<typename _CharT, typename _Traits>
+    inline void
+    __ostream_fill(basic_ostream<_CharT, _Traits>& __out, streamsize __n)
+    {
+      typedef basic_ostream<_CharT, _Traits> __ostream_type;
+      typedef typename __ostream_type::ios_base __ios_base;
+
+      const _CharT __c = __out.fill();
+      for (; __n > 0; --__n)
+ {
+   const typename _Traits::int_type __put = __out.rdbuf()->sputc(__c);
+   if (_Traits::eq_int_type(__put, _Traits::eof()))
+     {
+       __out.setstate(__ios_base::badbit);
+       break;
+     }
+ }
+    }
+
+  template<typename _CharT, typename _Traits>
+    basic_ostream<_CharT, _Traits>&
+    __ostream_insert(basic_ostream<_CharT, _Traits>& __out,
+       const _CharT* __s, streamsize __n)
+    {
+      typedef basic_ostream<_CharT, _Traits> __ostream_type;
+      typedef typename __ostream_type::ios_base __ios_base;
+
+      typename __ostream_type::sentry __cerb(__out);
+      if (__cerb)
+ {
+   try
+     {
+       const streamsize __w = __out.width();
+       if (__w > __n)
+  {
+    const bool __left = ((__out.flags()
+     & __ios_base::adjustfield)
+           == __ios_base::left);
+    if (!__left)
+      __ostream_fill(__out, __w - __n);
+    if (__out.good())
+      __ostream_write(__out, __s, __n);
+    if (__left && __out.good())
+      __ostream_fill(__out, __w - __n);
+  }
+       else
+  __ostream_write(__out, __s, __n);
+       __out.width(0);
+     }
+   catch(__cxxabiv1::__forced_unwind&)
+     {
+       __out._M_setstate(__ios_base::badbit);
+       throw;
+     }
+   catch(...)
+     { __out._M_setstate(__ios_base::badbit); }
+ }
+      return __out;
+    }
+
+
+
+
+  extern template ostream& __ostream_insert(ostream&, const char*, streamsize);
+
+
+  extern template wostream& __ostream_insert(wostream&, const wchar_t*,
+          streamsize);
+
+
+
+
+}
+# 45 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/string" 2 3
+
+
+
+
+
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 1 3
+# 38 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/atomicity.h" 1 3
+# 33 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/atomicity.h" 3
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/gthr.h" 1 3
+# 30 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/gthr.h" 3
+#pragma GCC visibility push(default)
+# 148 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/gthr.h" 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/gthr-default.h" 1 3
+# 35 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/gthr-default.h" 3
+# 1 "/usr/xenomai/include/cobalt/pthread.h" 1 3
+# 19 "/usr/xenomai/include/cobalt/pthread.h" 3
+# 1 "/usr/include/pthread.h" 1 3 4
+# 23 "/usr/include/pthread.h" 3 4
+# 1 "/usr/xenomai/include/cobalt/sched.h" 1 3 4
+# 19 "/usr/xenomai/include/cobalt/sched.h" 3
+# 1 "/usr/include/sched.h" 1 3 4
+# 28 "/usr/include/sched.h" 3 4
+# 1 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stddef.h" 1 3 4
+# 29 "/usr/include/sched.h" 2 3 4
+
+
+
+
+
+# 1 "/usr/xenomai/include/cobalt/time.h" 1 3 4
+# 19 "/usr/xenomai/include/cobalt/time.h" 3
+# 35 "/usr/include/sched.h" 2 3 4
+
+
+
+
+
+
+
+
+# 1 "/usr/include/arm-linux-gnueabihf/bits/sched.h" 1 3 4
+# 73 "/usr/include/arm-linux-gnueabihf/bits/sched.h" 3 4
+struct sched_param
+  {
+    int __sched_priority;
+  };
+
+extern "C" {
+
+
+
+extern int clone (int (*__fn) (void *__arg), void *__child_stack,
+    int __flags, void *__arg, ...) throw ();
+
+
+extern int unshare (int __flags) throw ();
+
+
+extern int sched_getcpu (void) throw ();
+
+
+extern int setns (int __fd, int __nstype) throw ();
+
+
+
+}
+
+
+
+
+
+
+
+struct __sched_param
+  {
+    int __sched_priority;
+  };
+# 119 "/usr/include/arm-linux-gnueabihf/bits/sched.h" 3 4
+typedef unsigned long int __cpu_mask;
+
+
+
+
+
+
+typedef struct
+{
+  __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))];
+} cpu_set_t;
+# 202 "/usr/include/arm-linux-gnueabihf/bits/sched.h" 3 4
+extern "C" {
+
+extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp)
+  throw ();
+extern cpu_set_t *__sched_cpualloc (size_t __count) throw () ;
+extern void __sched_cpufree (cpu_set_t *__set) throw ();
+
+}
+# 44 "/usr/include/sched.h" 2 3 4
+
+
+
+
+extern "C" {
+
+
+extern int sched_setparam (__pid_t __pid, const struct sched_param *__param)
+     throw ();
+
+
+extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw ();
+
+
+extern int sched_setscheduler (__pid_t __pid, int __policy,
+          const struct sched_param *__param) throw ();
+
+
+extern int sched_getscheduler (__pid_t __pid) throw ();
+
+
+extern int sched_yield (void) throw ();
+
+
+extern int sched_get_priority_max (int __algorithm) throw ();
+
+
+extern int sched_get_priority_min (int __algorithm) throw ();
+
+
+extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw ();
+# 118 "/usr/include/sched.h" 3 4
+extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize,
+         const cpu_set_t *__cpuset) throw ();
+
+
+extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
+         cpu_set_t *__cpuset) throw ();
+
+
+}
+# 20 "/usr/xenomai/include/cobalt/sched.h" 2 3
+
+
+
+
+
+
+# 1 "/usr/xenomai/include/cobalt/uapi/sched.h" 1 3
+# 32 "/usr/xenomai/include/cobalt/uapi/sched.h" 3
+struct __sched_ss_param {
+ int __sched_low_priority;
+ struct timespec __sched_repl_period;
+ struct timespec __sched_init_budget;
+ int __sched_max_repl;
+};
+
+
+
+struct __sched_rr_param {
+ struct timespec __sched_rr_quantum;
+};
+
+
+
+
+
+
+struct __sched_tp_param {
+ int __sched_partition;
+};
+
+struct sched_tp_window {
+ struct timespec offset;
+ struct timespec duration;
+ int ptid;
+};
+
+enum {
+ sched_tp_install,
+ sched_tp_uninstall,
+ sched_tp_start,
+ sched_tp_stop,
+};
+
+struct __sched_config_tp {
+ int op;
+ int nr_windows;
+ struct sched_tp_window windows[0];
+};
+# 81 "/usr/xenomai/include/cobalt/uapi/sched.h" 3
+struct __sched_quota_param {
+ int __sched_group;
+};
+
+enum {
+ sched_quota_add,
+ sched_quota_remove,
+ sched_quota_force_remove,
+ sched_quota_set,
+ sched_quota_get,
+};
+
+struct __sched_config_quota {
+ int op;
+ union {
+  struct {
+   int pshared;
+  } add;
+  struct {
+   int tgid;
+  } remove;
+  struct {
+   int tgid;
+   int quota;
+   int quota_peak;
+  } set;
+  struct {
+   int tgid;
+  } get;
+ };
+ struct __sched_quota_info {
+  int tgid;
+  int quota;
+  int quota_peak;
+  int quota_sum;
+ } info;
+};
+
+
+
+struct sched_param_ex {
+ int __sched_priority;
+ union {
+  struct __sched_ss_param ss;
+  struct __sched_rr_param rr;
+  struct __sched_tp_param tp;
+  struct __sched_quota_param quota;
+ } sched_u;
+};
+
+union sched_config {
+ struct __sched_config_tp tp;
+ struct __sched_config_quota quota;
+};
+# 27 "/usr/xenomai/include/cobalt/sched.h" 2 3
+
+
+extern "C" {
+
+
+__typeof__(int) __cobalt_sched_yield(void); __typeof__(int) __real_sched_yield(void); __typeof__(int) __wrap_sched_yield(void);
+
+__typeof__(int) __cobalt_sched_get_priority_min(int policy); __typeof__(int) __real_sched_get_priority_min(int policy); __typeof__(int) __wrap_sched_get_priority_min(int policy);
+
+__typeof__(int) __cobalt_sched_get_priority_max(int policy); __typeof__(int) __real_sched_get_priority_max(int policy); __typeof__(int) __wrap_sched_get_priority_max(int policy);
+
+__typeof__(int) __cobalt_sched_setscheduler(pid_t pid, int policy, const struct sched_param *param); __typeof__(int) __real_sched_setscheduler(pid_t pid, int policy, const struct sched_param *param); __typeof__(int) __wrap_sched_setscheduler(pid_t pid, int policy, const struct sched_param *param);
+
+
+__typeof__(int) __cobalt_sched_getscheduler(pid_t pid); __typeof__(int) __real_sched_getscheduler(pid_t pid); __typeof__(int) __wrap_sched_getscheduler(pid_t pid);
+
+int sched_get_priority_min_ex(int policy);
+
+int sched_get_priority_max_ex(int policy);
+
+int sched_setscheduler_ex(pid_t pid, int policy,
+     const struct sched_param_ex *param_ex);
+
+int sched_getscheduler_ex(pid_t pid, int *policy_r,
+     struct sched_param_ex *param_ex);
+
+int sched_setconfig_np(int cpu, int policy,
+         const union sched_config *config, size_t len);
+
+ssize_t sched_getconfig_np(int cpu, int policy,
+      union sched_config *config, size_t *len_r);
+
+
+}
+# 24 "/usr/include/pthread.h" 2 3 4
+# 1 "/usr/xenomai/include/cobalt/time.h" 1 3 4
+# 19 "/usr/xenomai/include/cobalt/time.h" 3
+# 25 "/usr/include/pthread.h" 2 3 4
+
+
+# 1 "/usr/include/arm-linux-gnueabihf/bits/setjmp.h" 1 3 4
+# 33 "/usr/include/arm-linux-gnueabihf/bits/setjmp.h" 3 4
+typedef int __jmp_buf[64] __attribute__((__aligned__ (8)));
+# 28 "/usr/include/pthread.h" 2 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/bits/wordsize.h" 1 3 4
+# 29 "/usr/include/pthread.h" 2 3 4
+
+
+
+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
+};
+# 114 "/usr/include/pthread.h" 3 4
+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
+};
+# 155 "/usr/include/pthread.h" 3 4
+enum
+{
+  PTHREAD_INHERIT_SCHED,
+
+  PTHREAD_EXPLICIT_SCHED
+
+};
+
+
+
+enum
+{
+  PTHREAD_SCOPE_SYSTEM,
+
+  PTHREAD_SCOPE_PROCESS
+
+};
+
+
+
+enum
+{
+  PTHREAD_PROCESS_PRIVATE,
+
+  PTHREAD_PROCESS_SHARED
+
+};
+# 190 "/usr/include/pthread.h" 3 4
+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
+
+};
+# 228 "/usr/include/pthread.h" 3 4
+extern "C" {
+
+
+
+
+extern int pthread_create (pthread_t *__restrict __newthread,
+      const pthread_attr_t *__restrict __attr,
+      void *(*__start_routine) (void *),
+      void *__restrict __arg) throw () __attribute__ ((__nonnull__ (1, 3)));
+
+
+
+
+
+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) throw ();
+
+
+
+
+
+
+
+extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
+     const struct timespec *__abstime);
+
+
+
+
+
+
+extern int pthread_detach (pthread_t __th) throw ();
+
+
+
+extern pthread_t pthread_self (void) throw () __attribute__ ((__const__));
+
+
+extern int pthread_equal (pthread_t __thread1, pthread_t __thread2)
+  throw () __attribute__ ((__const__));
+
+
+
+
+
+
+
+extern int pthread_attr_init (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_attr_destroy (pthread_attr_t *__attr)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr,
+     int *__detachstate)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
+     int __detachstate)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+extern int pthread_attr_getguardsize (const pthread_attr_t *__attr,
+          size_t *__guardsize)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
+          size_t __guardsize)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr,
+           struct sched_param *__restrict __param)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
+           const struct sched_param *__restrict
+           __param) throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict
+     __attr, int *__restrict __policy)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict
+      __attr, int *__restrict __inherit)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
+      int __inherit)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr,
+      int *__restrict __scope)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict
+          __attr, void **__restrict __stackaddr)
+     throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__));
+
+
+
+
+
+extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
+          void *__stackaddr)
+     throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__));
+
+
+extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict
+          __attr, size_t *__restrict __stacksize)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
+          size_t __stacksize)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr,
+      void **__restrict __stackaddr,
+      size_t *__restrict __stacksize)
+     throw () __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+
+extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
+      size_t __stacksize) throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr,
+     size_t __cpusetsize,
+     const cpu_set_t *__cpuset)
+     throw () __attribute__ ((__nonnull__ (1, 3)));
+
+
+
+extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr,
+     size_t __cpusetsize,
+     cpu_set_t *__cpuset)
+     throw () __attribute__ ((__nonnull__ (1, 3)));
+
+
+extern int pthread_getattr_default_np (pthread_attr_t *__attr)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+extern int pthread_setattr_default_np (const pthread_attr_t *__attr)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+
+extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr)
+     throw () __attribute__ ((__nonnull__ (2)));
+
+
+
+
+
+
+
+extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
+      const struct sched_param *__param)
+     throw () __attribute__ ((__nonnull__ (3)));
+
+
+extern int pthread_getschedparam (pthread_t __target_thread,
+      int *__restrict __policy,
+      struct sched_param *__restrict __param)
+     throw () __attribute__ ((__nonnull__ (2, 3)));
+
+
+extern int pthread_setschedprio (pthread_t __target_thread, int __prio)
+     throw ();
+
+
+
+
+extern int pthread_getname_np (pthread_t __target_thread, char *__buf,
+          size_t __buflen)
+     throw () __attribute__ ((__nonnull__ (2)));
+
+
+extern int pthread_setname_np (pthread_t __target_thread, const char *__name)
+     throw () __attribute__ ((__nonnull__ (2)));
+
+
+
+
+
+extern int pthread_getconcurrency (void) throw ();
+
+
+extern int pthread_setconcurrency (int __level) throw ();
+
+
+
+
+
+
+
+extern int pthread_yield (void) throw ();
+
+
+
+
+extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize,
+       const cpu_set_t *__cpuset)
+     throw () __attribute__ ((__nonnull__ (3)));
+
+
+extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize,
+       cpu_set_t *__cpuset)
+     throw () __attribute__ ((__nonnull__ (3)));
+# 494 "/usr/include/pthread.h" 3 4
+extern int pthread_once (pthread_once_t *__once_control,
+    void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2)));
+# 506 "/usr/include/pthread.h" 3 4
+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);
+
+
+
+
+typedef struct
+{
+  struct
+  {
+    __jmp_buf __cancel_jmp_buf;
+    int __mask_was_saved;
+  } __cancel_jmp_buf[1];
+  void *__pad[4];
+} __pthread_unwind_buf_t __attribute__ ((__aligned__));
+# 540 "/usr/include/pthread.h" 3 4
+struct __pthread_cleanup_frame
+{
+  void (*__cancel_routine) (void *);
+  void *__cancel_arg;
+  int __do_it;
+  int __cancel_type;
+};
+
+
+
+
+class __pthread_cleanup_class
+{
+  void (*__cancel_routine) (void *);
+  void *__cancel_arg;
+  int __do_it;
+  int __cancel_type;
+
+ public:
+  __pthread_cleanup_class (void (*__fct) (void *), void *__arg)
+    : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { }
+  ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); }
+  void __setdoit (int __newval) { __do_it = __newval; }
+  void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED,
+        &__cancel_type); }
+  void __restore () const { pthread_setcanceltype (__cancel_type, 0); }
+};
+# 742 "/usr/include/pthread.h" 3 4
+struct __jmp_buf_tag;
+extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) throw ();
+
+
+
+
+
+extern int pthread_mutex_init (pthread_mutex_t *__mutex,
+          const pthread_mutexattr_t *__mutexattr)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_mutex_destroy (pthread_mutex_t *__mutex)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_mutex_trylock (pthread_mutex_t *__mutex)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_mutex_lock (pthread_mutex_t *__mutex)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
+        const struct timespec *__restrict
+        __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+extern int pthread_mutex_unlock (pthread_mutex_t *__mutex)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+extern int pthread_mutex_getprioceiling (const pthread_mutex_t *
+      __restrict __mutex,
+      int *__restrict __prioceiling)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex,
+      int __prioceiling,
+      int *__restrict __old_ceiling)
+     throw () __attribute__ ((__nonnull__ (1, 3)));
+
+
+
+
+extern int pthread_mutex_consistent (pthread_mutex_t *__mutex)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex)
+     throw () __attribute__ ((__nonnull__ (1)));
+# 806 "/usr/include/pthread.h" 3 4
+extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t *
+      __restrict __attr,
+      int *__restrict __pshared)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
+      int __pshared)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict
+          __attr, int *__restrict __kind)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t *
+       __restrict __attr,
+       int *__restrict __protocol)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr,
+       int __protocol)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t *
+          __restrict __attr,
+          int *__restrict __prioceiling)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr,
+          int __prioceiling)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr,
+     int *__robustness)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+extern int pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr,
+        int *__robustness)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr,
+     int __robustness)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr,
+        int __robustness)
+     throw () __attribute__ ((__nonnull__ (1)));
+# 888 "/usr/include/pthread.h" 3 4
+extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
+    const pthread_rwlockattr_t *__restrict
+    __attr) throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock)
+  throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
+           const struct timespec *__restrict
+           __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
+           const struct timespec *__restrict
+           __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *
+       __restrict __attr,
+       int *__restrict __pshared)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
+       int __pshared)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t *
+       __restrict __attr,
+       int *__restrict __pref)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
+       int __pref) throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
+         const pthread_condattr_t *__restrict __cond_attr)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_cond_destroy (pthread_cond_t *__cond)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_cond_signal (pthread_cond_t *__cond)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_cond_broadcast (pthread_cond_t *__cond)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
+         pthread_mutex_t *__restrict __mutex)
+     __attribute__ ((__nonnull__ (1, 2)));
+# 1000 "/usr/include/pthread.h" 3 4
+extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
+       pthread_mutex_t *__restrict __mutex,
+       const struct timespec *__restrict __abstime)
+     __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+
+extern int pthread_condattr_init (pthread_condattr_t *__attr)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_condattr_destroy (pthread_condattr_t *__attr)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_condattr_getpshared (const pthread_condattr_t *
+     __restrict __attr,
+     int *__restrict __pshared)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
+     int __pshared) throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+extern int pthread_condattr_getclock (const pthread_condattr_t *
+          __restrict __attr,
+          __clockid_t *__restrict __clock_id)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+extern int pthread_condattr_setclock (pthread_condattr_t *__attr,
+          __clockid_t __clock_id)
+     throw () __attribute__ ((__nonnull__ (1)));
+# 1044 "/usr/include/pthread.h" 3 4
+extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_spin_destroy (pthread_spinlock_t *__lock)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_spin_lock (pthread_spinlock_t *__lock)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_spin_trylock (pthread_spinlock_t *__lock)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_spin_unlock (pthread_spinlock_t *__lock)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
+     const pthread_barrierattr_t *__restrict
+     __attr, unsigned int __count)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_barrier_destroy (pthread_barrier_t *__barrier)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_barrier_wait (pthread_barrier_t *__barrier)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+
+extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr)
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t *
+        __restrict __attr,
+        int *__restrict __pshared)
+     throw () __attribute__ ((__nonnull__ (1, 2)));
+
+
+extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,
+        int __pshared)
+     throw () __attribute__ ((__nonnull__ (1)));
+# 1111 "/usr/include/pthread.h" 3 4
+extern int pthread_key_create (pthread_key_t *__key,
+          void (*__destr_function) (void *))
+     throw () __attribute__ ((__nonnull__ (1)));
+
+
+extern int pthread_key_delete (pthread_key_t __key) throw ();
+
+
+extern void *pthread_getspecific (pthread_key_t __key) throw ();
+
+
+extern int pthread_setspecific (pthread_key_t __key,
+    const void *__pointer) throw () ;
+
+
+
+
+extern int pthread_getcpuclockid (pthread_t __thread_id,
+      __clockid_t *__clock_id)
+     throw () __attribute__ ((__nonnull__ (2)));
+# 1145 "/usr/include/pthread.h" 3 4
+extern int pthread_atfork (void (*__prepare) (void),
+      void (*__parent) (void),
+      void (*__child) (void)) throw ();
+
+
+
+
+extern __inline __attribute__ ((__gnu_inline__)) int
+ pthread_equal (pthread_t __thread1, pthread_t __thread2) throw ()
+{
+  return __thread1 == __thread2;
+}
+
+
+}
+# 20 "/usr/xenomai/include/cobalt/pthread.h" 2 3
+
+
+
+
+# 1 "/usr/xenomai/include/boilerplate/libc.h" 1 3
+# 21 "/usr/xenomai/include/boilerplate/libc.h" 3
+# 1 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/limits.h" 1 3
+# 37 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/limits.h" 3
+# 1 "/usr/include/limits.h" 1 3 4
+# 143 "/usr/include/limits.h" 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/bits/posix1_lim.h" 1 3 4
+# 160 "/usr/include/arm-linux-gnueabihf/bits/posix1_lim.h" 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/bits/local_lim.h" 1 3 4
+# 38 "/usr/include/arm-linux-gnueabihf/bits/local_lim.h" 3 4
+# 1 "/usr/include/linux/limits.h" 1 3 4
+# 39 "/usr/include/arm-linux-gnueabihf/bits/local_lim.h" 2 3 4
+# 161 "/usr/include/arm-linux-gnueabihf/bits/posix1_lim.h" 2 3 4
+# 144 "/usr/include/limits.h" 2 3 4
+
+
+
+# 1 "/usr/include/arm-linux-gnueabihf/bits/posix2_lim.h" 1 3 4
+# 148 "/usr/include/limits.h" 2 3 4
+
+
+
+# 1 "/usr/include/arm-linux-gnueabihf/bits/xopen_lim.h" 1 3 4
+# 33 "/usr/include/arm-linux-gnueabihf/bits/xopen_lim.h" 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/bits/stdio_lim.h" 1 3 4
+# 34 "/usr/include/arm-linux-gnueabihf/bits/xopen_lim.h" 2 3 4
+# 152 "/usr/include/limits.h" 2 3 4
+# 38 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/limits.h" 2 3
+# 22 "/usr/xenomai/include/boilerplate/libc.h" 2 3
+# 211 "/usr/xenomai/include/boilerplate/libc.h" 3
+int clock_nanosleep(clockid_t clock_id, int flags,
+      const struct timespec *request,
+      struct timespec *remain);
+
+
+
+int pthread_setname_np(pthread_t thread, const char *name);
+# 25 "/usr/xenomai/include/cobalt/pthread.h" 2 3
+
+# 1 "/usr/xenomai/include/cobalt/uapi/thread.h" 1 3
+# 21 "/usr/xenomai/include/cobalt/uapi/thread.h" 3
+# 1 "/usr/xenomai/include/cobalt/uapi/kernel/thread.h" 1 3
+# 21 "/usr/xenomai/include/cobalt/uapi/kernel/thread.h" 3
+# 1 "/usr/xenomai/include/cobalt/uapi/kernel/types.h" 1 3
+# 21 "/usr/xenomai/include/cobalt/uapi/kernel/types.h" 3
+# 1 "/usr/include/linux/types.h" 1 3 4
+
+
+
+# 1 "/usr/include/arm-linux-gnueabihf/asm/types.h" 1 3 4
+
+
+
+# 1 "/usr/include/asm-generic/int-ll64.h" 1 3 4
+# 11 "/usr/include/asm-generic/int-ll64.h" 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/asm/bitsperlong.h" 1 3 4
+# 1 "/usr/include/asm-generic/bitsperlong.h" 1 3 4
+# 2 "/usr/include/arm-linux-gnueabihf/asm/bitsperlong.h" 2 3 4
+# 12 "/usr/include/asm-generic/int-ll64.h" 2 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;
+# 5 "/usr/include/arm-linux-gnueabihf/asm/types.h" 2 3 4
+# 5 "/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
+# 5 "/usr/include/linux/posix_types.h" 2 3 4
+# 24 "/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/arm-linux-gnueabihf/asm/posix_types.h" 1 3 4
+# 22 "/usr/include/arm-linux-gnueabihf/asm/posix_types.h" 3 4
+typedef unsigned short __kernel_mode_t;
+
+
+typedef unsigned short __kernel_ipc_pid_t;
+
+
+typedef unsigned short __kernel_uid_t;
+typedef unsigned short __kernel_gid_t;
+
+
+typedef unsigned short __kernel_old_dev_t;
+
+
+
+# 1 "/usr/include/asm-generic/posix_types.h" 1 3 4
+
+
+
+# 1 "/usr/include/arm-linux-gnueabihf/asm/bitsperlong.h" 1 3 4
+# 5 "/usr/include/asm-generic/posix_types.h" 2 3 4
+# 14 "/usr/include/asm-generic/posix_types.h" 3 4
+typedef long __kernel_long_t;
+typedef unsigned long __kernel_ulong_t;
+
+
+
+typedef __kernel_ulong_t __kernel_ino_t;
+
+
+
+
+
+
+
+typedef int __kernel_pid_t;
+# 40 "/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;
+# 67 "/usr/include/asm-generic/posix_types.h" 3 4
+typedef unsigned int __kernel_size_t;
+typedef int __kernel_ssize_t;
+typedef int __kernel_ptrdiff_t;
+# 78 "/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_time_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;
+# 36 "/usr/include/arm-linux-gnueabihf/asm/posix_types.h" 2 3 4
+# 36 "/usr/include/linux/posix_types.h" 2 3 4
+# 9 "/usr/include/linux/types.h" 2 3 4
+# 27 "/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;
+# 22 "/usr/xenomai/include/cobalt/uapi/kernel/types.h" 2 3
+# 1 "/usr/xenomai/include/cobalt/uapi/kernel/limits.h" 1 3
+# 23 "/usr/xenomai/include/cobalt/uapi/kernel/types.h" 2 3
+
+typedef __u64 xnticks_t;
+
+typedef __s64 xnsticks_t;
+
+typedef __u32 xnhandle_t;
+# 45 "/usr/xenomai/include/cobalt/uapi/kernel/types.h" 3
+static inline xnhandle_t xnhandle_get_index(xnhandle_t handle)
+{
+ return handle & ~((xnhandle_t)0xf0000000);
+}
+
+
+
+
+
+static inline xnhandle_t xnhandle_get_id(xnhandle_t handle)
+{
+ return handle & ~((xnhandle_t)0x80000000);
+}
+# 22 "/usr/xenomai/include/cobalt/uapi/kernel/thread.h" 2 3
+# 104 "/usr/xenomai/include/cobalt/uapi/kernel/thread.h" 3
+struct xnthread_user_window {
+ __u32 state;
+ __u32 info;
+ __u32 grant_value;
+};
+# 22 "/usr/xenomai/include/cobalt/uapi/thread.h" 2 3
+
+
+
+
+
+
+struct cobalt_mutexattr {
+ int type : 3;
+ int protocol : 3;
+ int pshared : 1;
+ int __pad : 1;
+};
+
+struct cobalt_condattr {
+ int clock : 7;
+ int pshared : 1;
+};
+
+struct cobalt_threadstat {
+ __u64 xtime;
+ __u64 timeout;
+ __u64 msw;
+ __u64 csw;
+ __u64 xsc;
+ __u32 status;
+ __u32 pf;
+ int cpu;
+ int cprio;
+ char name[32];
+ char personality[32];
+};
+# 27 "/usr/xenomai/include/cobalt/pthread.h" 2 3
+
+typedef struct pthread_attr_ex {
+ pthread_attr_t std;
+ struct {
+  int personality;
+  int sched_policy;
+  struct sched_param_ex sched_param;
+ } nonstd;
+} pthread_attr_ex_t;
+
+
+extern "C" {
+
+
+__typeof__(int) __cobalt_pthread_attr_init(pthread_attr_t *attr); __typeof__(int) __real_pthread_attr_init(pthread_attr_t *attr); __typeof__(int) __wrap_pthread_attr_init(pthread_attr_t *attr);
+
+__typeof__(int) __cobalt_pthread_create(pthread_t *ptid_r, const pthread_attr_t *attr, void *(*start) (void *), void *arg); __typeof__(int) __real_pthread_create(pthread_t *ptid_r, const pthread_attr_t *attr, void *(*start) (void *), void *arg); __typeof__(int) __wrap_pthread_create(pthread_t *ptid_r, const pthread_attr_t *attr, void *(*start) (void *), void *arg);
+
+
+
+
+__typeof__(int) __cobalt_pthread_getschedparam(pthread_t thread, int *policy, struct sched_param *param); __typeof__(int) __real_pthread_getschedparam(pthread_t thread, int *policy, struct sched_param *param); __typeof__(int) __wrap_pthread_getschedparam(pthread_t thread, int *policy, struct sched_param *param);
+
+
+
+__typeof__(int) __cobalt_pthread_setschedparam(pthread_t thread, int policy, const struct sched_param *param); __typeof__(int) __real_pthread_setschedparam(pthread_t thread, int policy, const struct sched_param *param); __typeof__(int) __wrap_pthread_setschedparam(pthread_t thread, int policy, const struct sched_param *param);
+
+
+
+__typeof__(int) __cobalt_pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr); __typeof__(int) __real_pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr); __typeof__(int) __wrap_pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr);
+
+
+__typeof__(int) __cobalt_pthread_mutex_destroy(pthread_mutex_t *mutex); __typeof__(int) __real_pthread_mutex_destroy(pthread_mutex_t *mutex); __typeof__(int) __wrap_pthread_mutex_destroy(pthread_mutex_t *mutex);
+
+__typeof__(int) __cobalt_pthread_mutex_lock(pthread_mutex_t *mutex); __typeof__(int) __real_pthread_mutex_lock(pthread_mutex_t *mutex); __typeof__(int) __wrap_pthread_mutex_lock(pthread_mutex_t *mutex);
+
+__typeof__(int) __cobalt_pthread_mutex_timedlock(pthread_mutex_t *mutex, const struct timespec *to); __typeof__(int) __real_pthread_mutex_timedlock(pthread_mutex_t *mutex, const struct timespec *to); __typeof__(int) __wrap_pthread_mutex_timedlock(pthread_mutex_t *mutex, const struct timespec *to);
+
+
+__typeof__(int) __cobalt_pthread_mutex_trylock(pthread_mutex_t *mutex); __typeof__(int) __real_pthread_mutex_trylock(pthread_mutex_t *mutex); __typeof__(int) __wrap_pthread_mutex_trylock(pthread_mutex_t *mutex);
+
+__typeof__(int) __cobalt_pthread_mutex_unlock(pthread_mutex_t *mutex); __typeof__(int) __real_pthread_mutex_unlock(pthread_mutex_t *mutex); __typeof__(int) __wrap_pthread_mutex_unlock(pthread_mutex_t *mutex);
+
+__typeof__(int) __cobalt_pthread_cond_init (pthread_cond_t *cond, const pthread_condattr_t *attr); __typeof__(int) __real_pthread_cond_init (pthread_cond_t *cond, const pthread_condattr_t *attr); __typeof__(int) __wrap_pthread_cond_init (pthread_cond_t *cond, const pthread_condattr_t *attr);
+
+
+__typeof__(int) __cobalt_pthread_cond_destroy(pthread_cond_t *cond); __typeof__(int) __real_pthread_cond_destroy(pthread_cond_t *cond); __typeof__(int) __wrap_pthread_cond_destroy(pthread_cond_t *cond);
+
+__typeof__(int) __cobalt_pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex); __typeof__(int) __real_pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex); __typeof__(int) __wrap_pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex);
+
+
+__typeof__(int) __cobalt_pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex, const struct timespec *abstime); __typeof__(int) __real_pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex, const struct timespec *abstime); __typeof__(int) __wrap_pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex, const struct timespec *abstime);
+
+
+
+__typeof__(int) __cobalt_pthread_cond_signal(pthread_cond_t *cond); __typeof__(int) __real_pthread_cond_signal(pthread_cond_t *cond); __typeof__(int) __wrap_pthread_cond_signal(pthread_cond_t *cond);
+
+__typeof__(int) __cobalt_pthread_cond_broadcast(pthread_cond_t *cond); __typeof__(int) __real_pthread_cond_broadcast(pthread_cond_t *cond); __typeof__(int) __wrap_pthread_cond_broadcast(pthread_cond_t *cond);
+
+__typeof__(int) __cobalt_pthread_kill(pthread_t ptid, int sig); __typeof__(int) __real_pthread_kill(pthread_t ptid, int sig); __typeof__(int) __wrap_pthread_kill(pthread_t ptid, int sig);
+
+__typeof__(int) __cobalt_pthread_join(pthread_t ptid, void **retval); __typeof__(int) __real_pthread_join(pthread_t ptid, void **retval); __typeof__(int) __wrap_pthread_join(pthread_t ptid, void **retval);
+# 98 "/usr/xenomai/include/cobalt/pthread.h" 3
+__typeof__(int) __cobalt_pthread_yield(void); __typeof__(int) __real_pthread_yield(void); __typeof__(int) __wrap_pthread_yield(void);
+
+
+int pthread_setmode_np(int clrmask, int setmask,
+         int *mask_r);
+
+__typeof__(int) __cobalt_pthread_setname_np(pthread_t thread, const char *name); __typeof__(int) __real_pthread_setname_np(pthread_t thread, const char *name); __typeof__(int) __wrap_pthread_setname_np(pthread_t thread, const char *name);
+
+int pthread_create_ex(pthread_t *ptid_r,
+        const pthread_attr_ex_t *attr_ex,
+        void *(*start)(void *),
+        void *arg);
+
+int pthread_getschedparam_ex(pthread_t ptid,
+        int *pol,
+        struct sched_param_ex *par);
+
+int pthread_setschedparam_ex(pthread_t ptid,
+        int pol,
+        const struct sched_param_ex *par);
+
+int pthread_attr_init_ex(pthread_attr_ex_t *attr_ex);
+
+int pthread_attr_destroy_ex(pthread_attr_ex_t *attr_ex);
+
+int pthread_attr_setschedpolicy_ex(pthread_attr_ex_t *attr_ex,
+       int policy);
+
+int pthread_attr_getschedpolicy_ex(const pthread_attr_ex_t *attr_ex,
+       int *policy);
+
+int pthread_attr_setschedparam_ex(pthread_attr_ex_t *attr_ex,
+      const struct sched_param_ex *param_ex);
+
+int pthread_attr_getschedparam_ex(const pthread_attr_ex_t *attr_ex,
+      struct sched_param_ex *param_ex);
+
+int pthread_attr_getinheritsched_ex(const pthread_attr_ex_t *attr_ex,
+        int *inheritsched);
+
+int pthread_attr_setinheritsched_ex(pthread_attr_ex_t *attr_ex,
+        int inheritsched);
+
+int pthread_attr_getdetachstate_ex(const pthread_attr_ex_t *attr_ex,
+       int *detachstate);
+
+int pthread_attr_setdetachstate_ex(pthread_attr_ex_t *attr_ex,
+       int detachstate);
+
+int pthread_attr_setdetachstate_ex(pthread_attr_ex_t *attr_ex,
+       int detachstate);
+
+int pthread_attr_getstacksize_ex(const pthread_attr_ex_t *attr_ex,
+     size_t *stacksize);
+
+int pthread_attr_setstacksize_ex(pthread_attr_ex_t *attr_ex,
+     size_t stacksize);
+
+int pthread_attr_getscope_ex(const pthread_attr_ex_t *attr_ex,
+        int *scope);
+
+int pthread_attr_setscope_ex(pthread_attr_ex_t *attr_ex,
+        int scope);
+
+int pthread_attr_getpersonality_ex(const pthread_attr_ex_t *attr_ex,
+       int *personality);
+
+int pthread_attr_setpersonality_ex(pthread_attr_ex_t *attr_ex,
+       int personality);
+
+}
+# 36 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/gthr-default.h" 2 3
+# 47 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/gthr-default.h" 3
+typedef pthread_t __gthread_t;
+typedef pthread_key_t __gthread_key_t;
+typedef pthread_once_t __gthread_once_t;
+typedef pthread_mutex_t __gthread_mutex_t;
+typedef pthread_mutex_t __gthread_recursive_mutex_t;
+typedef pthread_cond_t __gthread_cond_t;
+typedef struct timespec __gthread_time_t;
+# 101 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/gthr-default.h" 3
+static __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once")));
+static __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific")));
+static __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific")));
+
+static __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create")));
+static __typeof(pthread_join) __gthrw_pthread_join __attribute__ ((__weakref__("pthread_join")));
+static __typeof(pthread_equal) __gthrw_pthread_equal __attribute__ ((__weakref__("pthread_equal")));
+static __typeof(pthread_self) __gthrw_pthread_self __attribute__ ((__weakref__("pthread_self")));
+static __typeof(pthread_detach) __gthrw_pthread_detach __attribute__ ((__weakref__("pthread_detach")));
+
+static __typeof(pthread_cancel) __gthrw_pthread_cancel __attribute__ ((__weakref__("pthread_cancel")));
+
+static __typeof(sched_yield) __gthrw_sched_yield __attribute__ ((__weakref__("sched_yield")));
+
+static __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock")));
+static __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock")));
+
+static __typeof(pthread_mutex_timedlock) __gthrw_pthread_mutex_timedlock __attribute__ ((__weakref__("pthread_mutex_timedlock")));
+
+static __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock")));
+static __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init")));
+static __typeof(pthread_mutex_destroy) __gthrw_pthread_mutex_destroy __attribute__ ((__weakref__("pthread_mutex_destroy")));
+
+static __typeof(pthread_cond_init) __gthrw_pthread_cond_init __attribute__ ((__weakref__("pthread_cond_init")));
+static __typeof(pthread_cond_broadcast) __gthrw_pthread_cond_broadcast __attribute__ ((__weakref__("pthread_cond_broadcast")));
+static __typeof(pthread_cond_signal) __gthrw_pthread_cond_signal __attribute__ ((__weakref__("pthread_cond_signal")));
+static __typeof(pthread_cond_wait) __gthrw_pthread_cond_wait __attribute__ ((__weakref__("pthread_cond_wait")));
+static __typeof(pthread_cond_timedwait) __gthrw_pthread_cond_timedwait __attribute__ ((__weakref__("pthread_cond_timedwait")));
+static __typeof(pthread_cond_destroy) __gthrw_pthread_cond_destroy __attribute__ ((__weakref__("pthread_cond_destroy")));
+
+static __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create")));
+static __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete")));
+static __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init")));
+static __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype")));
+static __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy")));
+# 236 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/gthr-default.h" 3
+static __typeof(pthread_key_create) __gthrw___pthread_key_create __attribute__ ((__weakref__("__pthread_key_create")));
+# 246 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/gthr-default.h" 3
+static inline int
+__gthread_active_p (void)
+{
+  static void *const __gthread_active_ptr
+    = __extension__ (void *) &__gthrw___pthread_key_create;
+  return __gthread_active_ptr != 0;
+}
+# 658 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/gthr-default.h" 3
+static inline int
+__gthread_create (__gthread_t *__threadid, void *(*__func) (void*),
+    void *__args)
+{
+  return __gthrw_pthread_create (__threadid, __null, __func, __args);
+}
+
+static inline int
+__gthread_join (__gthread_t __threadid, void **__value_ptr)
+{
+  return __gthrw_pthread_join (__threadid, __value_ptr);
+}
+
+static inline int
+__gthread_detach (__gthread_t __threadid)
+{
+  return __gthrw_pthread_detach (__threadid);
+}
+
+static inline int
+__gthread_equal (__gthread_t __t1, __gthread_t __t2)
+{
+  return __gthrw_pthread_equal (__t1, __t2);
+}
+
+static inline __gthread_t
+__gthread_self (void)
+{
+  return __gthrw_pthread_self ();
+}
+
+static inline int
+__gthread_yield (void)
+{
+  return __gthrw_sched_yield ();
+}
+
+static inline int
+__gthread_once (__gthread_once_t *__once, void (*__func) (void))
+{
+  if (__gthread_active_p ())
+    return __gthrw_pthread_once (__once, __func);
+  else
+    return -1;
+}
+
+static inline int
+__gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *))
+{
+  return __gthrw_pthread_key_create (__key, __dtor);
+}
+
+static inline int
+__gthread_key_delete (__gthread_key_t __key)
+{
+  return __gthrw_pthread_key_delete (__key);
+}
+
+static inline void *
+__gthread_getspecific (__gthread_key_t __key)
+{
+  return __gthrw_pthread_getspecific (__key);
+}
+
+static inline int
+__gthread_setspecific (__gthread_key_t __key, const void *__ptr)
+{
+  return __gthrw_pthread_setspecific (__key, __ptr);
+}
+
+static inline void
+__gthread_mutex_init_function (__gthread_mutex_t *__mutex)
+{
+  if (__gthread_active_p ())
+    __gthrw_pthread_mutex_init (__mutex, __null);
+}
+
+static inline int
+__gthread_mutex_destroy (__gthread_mutex_t *__mutex)
+{
+  if (__gthread_active_p ())
+    return __gthrw_pthread_mutex_destroy (__mutex);
+  else
+    return 0;
+}
+
+static inline int
+__gthread_mutex_lock (__gthread_mutex_t *__mutex)
+{
+  if (__gthread_active_p ())
+    return __gthrw_pthread_mutex_lock (__mutex);
+  else
+    return 0;
+}
+
+static inline int
+__gthread_mutex_trylock (__gthread_mutex_t *__mutex)
+{
+  if (__gthread_active_p ())
+    return __gthrw_pthread_mutex_trylock (__mutex);
+  else
+    return 0;
+}
+
+
+static inline int
+__gthread_mutex_timedlock (__gthread_mutex_t *__mutex,
+      const __gthread_time_t *__abs_timeout)
+{
+  if (__gthread_active_p ())
+    return __gthrw_pthread_mutex_timedlock (__mutex, __abs_timeout);
+  else
+    return 0;
+}
+
+
+static inline int
+__gthread_mutex_unlock (__gthread_mutex_t *__mutex)
+{
+  if (__gthread_active_p ())
+    return __gthrw_pthread_mutex_unlock (__mutex);
+  else
+    return 0;
+}
+# 807 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/gthr-default.h" 3
+static inline int
+__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
+{
+  return __gthread_mutex_lock (__mutex);
+}
+
+static inline int
+__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
+{
+  return __gthread_mutex_trylock (__mutex);
+}
+
+
+static inline int
+__gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex,
+         const __gthread_time_t *__abs_timeout)
+{
+  return __gthread_mutex_timedlock (__mutex, __abs_timeout);
+}
+
+
+static inline int
+__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
+{
+  return __gthread_mutex_unlock (__mutex);
+}
+
+static inline int
+__gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex)
+{
+  return __gthread_mutex_destroy (__mutex);
+}
+# 849 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/gthr-default.h" 3
+static inline int
+__gthread_cond_broadcast (__gthread_cond_t *__cond)
+{
+  return __gthrw_pthread_cond_broadcast (__cond);
+}
+
+static inline int
+__gthread_cond_signal (__gthread_cond_t *__cond)
+{
+  return __gthrw_pthread_cond_signal (__cond);
+}
+
+static inline int
+__gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex)
+{
+  return __gthrw_pthread_cond_wait (__cond, __mutex);
+}
+
+static inline int
+__gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex,
+     const __gthread_time_t *__abs_timeout)
+{
+  return __gthrw_pthread_cond_timedwait (__cond, __mutex, __abs_timeout);
+}
+
+static inline int
+__gthread_cond_wait_recursive (__gthread_cond_t *__cond,
+          __gthread_recursive_mutex_t *__mutex)
+{
+  return __gthread_cond_wait (__cond, __mutex);
+}
+
+static inline int
+__gthread_cond_destroy (__gthread_cond_t* __cond)
+{
+  return __gthrw_pthread_cond_destroy (__cond);
+}
+# 149 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/gthr.h" 2 3
+
+
+#pragma GCC visibility pop
+# 36 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/atomicity.h" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/atomic_word.h" 1 3
+# 32 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits/atomic_word.h" 3
+typedef int _Atomic_word;
+# 37 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/atomicity.h" 2 3
+
+namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
+{
+
+
+
+
+
+
+
+  static inline _Atomic_word
+  __exchange_and_add(volatile _Atomic_word* __mem, int __val)
+  { return __atomic_fetch_add(__mem, __val, 4); }
+
+  static inline void
+  __atomic_add(volatile _Atomic_word* __mem, int __val)
+  { __atomic_fetch_add(__mem, __val, 4); }
+# 64 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/atomicity.h" 3
+  static inline _Atomic_word
+  __exchange_and_add_single(_Atomic_word* __mem, int __val)
+  {
+    _Atomic_word __result = *__mem;
+    *__mem += __val;
+    return __result;
+  }
+
+  static inline void
+  __atomic_add_single(_Atomic_word* __mem, int __val)
+  { *__mem += __val; }
+
+  static inline _Atomic_word
+  __attribute__ ((__unused__))
+  __exchange_and_add_dispatch(_Atomic_word* __mem, int __val)
+  {
+
+    if (__gthread_active_p())
+      return __exchange_and_add(__mem, __val);
+    else
+      return __exchange_and_add_single(__mem, __val);
+
+
+
+  }
+
+  static inline void
+  __attribute__ ((__unused__))
+  __atomic_add_dispatch(_Atomic_word* __mem, int __val)
+  {
+
+    if (__gthread_active_p())
+      __atomic_add(__mem, __val);
+    else
+      __atomic_add_single(__mem, __val);
+
+
+
+  }
+
+
+}
+# 40 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 2 3
+
+
+
+
+
+
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+
+namespace __cxx11 {
+# 71 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    class basic_string
+    {
+      typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template
+ rebind<_CharT>::other _Char_alloc_type;
+      typedef __gnu_cxx::__alloc_traits<_Char_alloc_type> _Alloc_traits;
+
+
+    public:
+      typedef _Traits traits_type;
+      typedef typename _Traits::char_type value_type;
+      typedef _Char_alloc_type allocator_type;
+      typedef typename _Alloc_traits::size_type size_type;
+      typedef typename _Alloc_traits::difference_type difference_type;
+      typedef typename _Alloc_traits::reference reference;
+      typedef typename _Alloc_traits::const_reference const_reference;
+      typedef typename _Alloc_traits::pointer pointer;
+      typedef typename _Alloc_traits::const_pointer const_pointer;
+      typedef __gnu_cxx::__normal_iterator<pointer, basic_string> iterator;
+      typedef __gnu_cxx::__normal_iterator<const_pointer, basic_string>
+       const_iterator;
+      typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
+      typedef std::reverse_iterator<iterator> reverse_iterator;
+
+
+      static const size_type npos = static_cast<size_type>(-1);
+
+    private:
+
+
+
+
+      typedef const_iterator __const_iterator;
+
+
+
+      struct _Alloc_hider : allocator_type
+      {
+ _Alloc_hider(pointer __dat, const _Alloc& __a = _Alloc())
+ : allocator_type(__a), _M_p(__dat) { }
+
+ pointer _M_p;
+      };
+
+      _Alloc_hider _M_dataplus;
+      size_type _M_string_length;
+
+      enum { _S_local_capacity = 15 / sizeof(_CharT) };
+
+      union
+      {
+ _CharT _M_local_buf[_S_local_capacity + 1];
+ size_type _M_allocated_capacity;
+      };
+
+      void
+      _M_data(pointer __p)
+      { _M_dataplus._M_p = __p; }
+
+      void
+      _M_length(size_type __length)
+      { _M_string_length = __length; }
+
+      pointer
+      _M_data() const
+      { return _M_dataplus._M_p; }
+
+      pointer
+      _M_local_data()
+      {
+
+ return std::pointer_traits<pointer>::pointer_to(*_M_local_buf);
+
+
+
+      }
+
+      const_pointer
+      _M_local_data() const
+      {
+
+ return std::pointer_traits<const_pointer>::pointer_to(*_M_local_buf);
+
+
+
+      }
+
+      void
+      _M_capacity(size_type __capacity)
+      { _M_allocated_capacity = __capacity; }
+
+      void
+      _M_set_length(size_type __n)
+      {
+ _M_length(__n);
+ traits_type::assign(_M_data()[__n], _CharT());
+      }
+
+      bool
+      _M_is_local() const
+      { return _M_data() == _M_local_data(); }
+
+
+      pointer
+      _M_create(size_type&, size_type);
+
+      void
+      _M_dispose()
+      {
+ if (!_M_is_local())
+   _M_destroy(_M_allocated_capacity);
+      }
+
+      void
+      _M_destroy(size_type __size) throw()
+      { _Alloc_traits::deallocate(_M_get_allocator(), _M_data(), __size + 1); }
+
+
+
+      template<typename _InIterator>
+        void
+        _M_construct_aux(_InIterator __beg, _InIterator __end,
+    std::__false_type)
+ {
+          typedef typename iterator_traits<_InIterator>::iterator_category _Tag;
+          _M_construct(__beg, __end, _Tag());
+ }
+
+
+
+      template<typename _Integer>
+        void
+        _M_construct_aux(_Integer __beg, _Integer __end, std::__true_type)
+ { _M_construct_aux_2(static_cast<size_type>(__beg), __end); }
+
+      void
+      _M_construct_aux_2(size_type __req, _CharT __c)
+      { _M_construct(__req, __c); }
+
+      template<typename _InIterator>
+        void
+        _M_construct(_InIterator __beg, _InIterator __end)
+ {
+   typedef typename std::__is_integer<_InIterator>::__type _Integral;
+   _M_construct_aux(__beg, __end, _Integral());
+        }
+
+
+      template<typename _InIterator>
+        void
+        _M_construct(_InIterator __beg, _InIterator __end,
+       std::input_iterator_tag);
+
+
+
+      template<typename _FwdIterator>
+        void
+        _M_construct(_FwdIterator __beg, _FwdIterator __end,
+       std::forward_iterator_tag);
+
+      void
+      _M_construct(size_type __req, _CharT __c);
+
+      allocator_type&
+      _M_get_allocator()
+      { return _M_dataplus; }
+
+      const allocator_type&
+      _M_get_allocator() const
+      { return _M_dataplus; }
+
+    private:
+# 258 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      _M_check(size_type __pos, const char* __s) const
+      {
+ if (__pos > this->size())
+   __throw_out_of_range_fmt(("%s: __pos (which is %zu) > " "this->size() (which is %zu)"),
+
+       __s, __pos, this->size());
+ return __pos;
+      }
+
+      void
+      _M_check_length(size_type __n1, size_type __n2, const char* __s) const
+      {
+ if (this->max_size() - (this->size() - __n1) < __n2)
+   __throw_length_error((__s));
+      }
+
+
+
+      size_type
+      _M_limit(size_type __pos, size_type __off) const noexcept
+      {
+ const bool __testoff = __off < this->size() - __pos;
+ return __testoff ? __off : this->size() - __pos;
+      }
+
+
+      bool
+      _M_disjunct(const _CharT* __s) const noexcept
+      {
+ return (less<const _CharT*>()(__s, _M_data())
+  || less<const _CharT*>()(_M_data() + this->size(), __s));
+      }
+
+
+
+      static void
+      _S_copy(_CharT* __d, const _CharT* __s, size_type __n)
+      {
+ if (__n == 1)
+   traits_type::assign(*__d, *__s);
+ else
+   traits_type::copy(__d, __s, __n);
+      }
+
+      static void
+      _S_move(_CharT* __d, const _CharT* __s, size_type __n)
+      {
+ if (__n == 1)
+   traits_type::assign(*__d, *__s);
+ else
+   traits_type::move(__d, __s, __n);
+      }
+
+      static void
+      _S_assign(_CharT* __d, size_type __n, _CharT __c)
+      {
+ if (__n == 1)
+   traits_type::assign(*__d, __c);
+ else
+   traits_type::assign(__d, __n, __c);
+      }
+
+
+
+      template<class _Iterator>
+        static void
+        _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2)
+        {
+   for (; __k1 != __k2; ++__k1, (void)++__p)
+     traits_type::assign(*__p, *__k1);
+ }
+
+      static void
+      _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2) noexcept
+      { _S_copy_chars(__p, __k1.base(), __k2.base()); }
+
+      static void
+      _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2)
+      noexcept
+      { _S_copy_chars(__p, __k1.base(), __k2.base()); }
+
+      static void
+      _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2) noexcept
+      { _S_copy(__p, __k1, __k2 - __k1); }
+
+      static void
+      _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2)
+      noexcept
+      { _S_copy(__p, __k1, __k2 - __k1); }
+
+      static int
+      _S_compare(size_type __n1, size_type __n2) noexcept
+      {
+ const difference_type __d = difference_type(__n1 - __n2);
+
+ if (__d > __gnu_cxx::__numeric_traits<int>::__max)
+   return __gnu_cxx::__numeric_traits<int>::__max;
+ else if (__d < __gnu_cxx::__numeric_traits<int>::__min)
+   return __gnu_cxx::__numeric_traits<int>::__min;
+ else
+   return int(__d);
+      }
+
+      void
+      _M_assign(const basic_string& __rcs);
+
+      void
+      _M_mutate(size_type __pos, size_type __len1, const _CharT* __s,
+  size_type __len2);
+
+      void
+      _M_erase(size_type __pos, size_type __n);
+
+    public:
+
+
+
+
+
+
+
+      basic_string()
+      noexcept(is_nothrow_default_constructible<_Alloc>::value)
+      : _M_dataplus(_M_local_data())
+      { _M_set_length(0); }
+
+
+
+
+      explicit
+      basic_string(const _Alloc& __a) noexcept
+      : _M_dataplus(_M_local_data(), __a)
+      { _M_set_length(0); }
+
+
+
+
+
+      basic_string(const basic_string& __str)
+      : _M_dataplus(_M_local_data(),
+      _Alloc_traits::_S_select_on_copy(__str._M_get_allocator()))
+      { _M_construct(__str._M_data(), __str._M_data() + __str.length()); }
+# 410 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string(const basic_string& __str, size_type __pos,
+     size_type __n = npos)
+      : _M_dataplus(_M_local_data())
+      {
+ const _CharT* __start = __str._M_data()
+   + __str._M_check(__pos, "basic_string::basic_string");
+ _M_construct(__start, __start + __str._M_limit(__pos, __n));
+      }
+# 426 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string(const basic_string& __str, size_type __pos,
+     size_type __n, const _Alloc& __a)
+      : _M_dataplus(_M_local_data(), __a)
+      {
+ const _CharT* __start
+   = __str._M_data() + __str._M_check(__pos, "string::string");
+ _M_construct(__start, __start + __str._M_limit(__pos, __n));
+      }
+# 444 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string(const _CharT* __s, size_type __n,
+     const _Alloc& __a = _Alloc())
+      : _M_dataplus(_M_local_data(), __a)
+      { _M_construct(__s, __s + __n); }
+
+
+
+
+
+
+      basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
+      : _M_dataplus(_M_local_data(), __a)
+      { _M_construct(__s, __s ? __s + traits_type::length(__s) : __s+npos); }
+
+
+
+
+
+
+
+      basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
+      : _M_dataplus(_M_local_data(), __a)
+      { _M_construct(__n, __c); }
+# 476 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string(basic_string&& __str) noexcept
+      : _M_dataplus(_M_local_data(), std::move(__str._M_get_allocator()))
+      {
+ if (__str._M_is_local())
+   {
+     traits_type::copy(_M_local_buf, __str._M_local_buf,
+         _S_local_capacity + 1);
+   }
+ else
+   {
+     _M_data(__str._M_data());
+     _M_capacity(__str._M_allocated_capacity);
+   }
+
+
+
+
+ _M_length(__str.length());
+ __str._M_data(__str._M_local_data());
+ __str._M_set_length(0);
+      }
+
+
+
+
+
+
+      basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
+      : _M_dataplus(_M_local_data(), __a)
+      { _M_construct(__l.begin(), __l.end()); }
+
+      basic_string(const basic_string& __str, const _Alloc& __a)
+      : _M_dataplus(_M_local_data(), __a)
+      { _M_construct(__str.begin(), __str.end()); }
+
+      basic_string(basic_string&& __str, const _Alloc& __a)
+      noexcept(_Alloc_traits::_S_always_equal())
+      : _M_dataplus(_M_local_data(), __a)
+      {
+ if (__str._M_is_local())
+   {
+     traits_type::copy(_M_local_buf, __str._M_local_buf,
+         _S_local_capacity + 1);
+     _M_length(__str.length());
+     __str._M_set_length(0);
+   }
+ else if (_Alloc_traits::_S_always_equal()
+     || __str.get_allocator() == __a)
+   {
+     _M_data(__str._M_data());
+     _M_length(__str.length());
+     _M_capacity(__str._M_allocated_capacity);
+     __str._M_data(__str._M_local_buf);
+     __str._M_set_length(0);
+   }
+ else
+   _M_construct(__str.begin(), __str.end());
+      }
+# 544 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      template<typename _InputIterator,
+        typename = std::_RequireInputIter<_InputIterator>>
+
+
+
+        basic_string(_InputIterator __beg, _InputIterator __end,
+       const _Alloc& __a = _Alloc())
+ : _M_dataplus(_M_local_data(), __a)
+ { _M_construct(__beg, __end); }
+
+
+
+
+      ~basic_string()
+      { _M_dispose(); }
+
+
+
+
+
+      basic_string&
+      operator=(const basic_string& __str)
+      {
+
+ if (_Alloc_traits::_S_propagate_on_copy_assign())
+   {
+     if (!_Alloc_traits::_S_always_equal() && !_M_is_local()
+  && _M_get_allocator() != __str._M_get_allocator())
+       {
+
+
+  if (__str.size() <= _S_local_capacity)
+    {
+      _M_destroy(_M_allocated_capacity);
+      _M_data(_M_local_data());
+      _M_set_length(0);
+    }
+  else
+    {
+      const auto __len = __str.size();
+      auto __alloc = __str._M_get_allocator();
+
+      auto __ptr = _Alloc_traits::allocate(__alloc, __len + 1);
+      _M_destroy(_M_allocated_capacity);
+      _M_data(__ptr);
+      _M_capacity(__len);
+      _M_set_length(__len);
+    }
+       }
+     std::__alloc_on_copy(_M_get_allocator(), __str._M_get_allocator());
+   }
+
+ return this->assign(__str);
+      }
+
+
+
+
+
+      basic_string&
+      operator=(const _CharT* __s)
+      { return this->assign(__s); }
+# 614 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      operator=(_CharT __c)
+      {
+ this->assign(1, __c);
+ return *this;
+      }
+# 632 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      operator=(basic_string&& __str)
+      noexcept(_Alloc_traits::_S_nothrow_move())
+      {
+ if (!_M_is_local() && _Alloc_traits::_S_propagate_on_move_assign()
+     && !_Alloc_traits::_S_always_equal()
+     && _M_get_allocator() != __str._M_get_allocator())
+   {
+
+     _M_destroy(_M_allocated_capacity);
+     _M_data(_M_local_data());
+     _M_set_length(0);
+   }
+
+ std::__alloc_on_move(_M_get_allocator(), __str._M_get_allocator());
+
+ if (!__str._M_is_local()
+     && (_Alloc_traits::_S_propagate_on_move_assign()
+       || _Alloc_traits::_S_always_equal()))
+   {
+     pointer __data = nullptr;
+     size_type __capacity;
+     if (!_M_is_local())
+       {
+  if (_Alloc_traits::_S_always_equal())
+    {
+      __data = _M_data();
+      __capacity = _M_allocated_capacity;
+    }
+  else
+    _M_destroy(_M_allocated_capacity);
+       }
+
+     _M_data(__str._M_data());
+     _M_length(__str.length());
+     _M_capacity(__str._M_allocated_capacity);
+     if (__data)
+       {
+  __str._M_data(__data);
+  __str._M_capacity(__capacity);
+       }
+     else
+       __str._M_data(__str._M_local_buf);
+   }
+ else
+     assign(__str);
+ __str.clear();
+ return *this;
+      }
+
+
+
+
+
+      basic_string&
+      operator=(initializer_list<_CharT> __l)
+      {
+ this->assign(__l.begin(), __l.size());
+ return *this;
+      }
+
+
+
+
+
+
+
+      iterator
+      begin() noexcept
+      { return iterator(_M_data()); }
+
+
+
+
+
+      const_iterator
+      begin() const noexcept
+      { return const_iterator(_M_data()); }
+
+
+
+
+
+      iterator
+      end() noexcept
+      { return iterator(_M_data() + this->size()); }
+
+
+
+
+
+      const_iterator
+      end() const noexcept
+      { return const_iterator(_M_data() + this->size()); }
+
+
+
+
+
+
+      reverse_iterator
+      rbegin() noexcept
+      { return reverse_iterator(this->end()); }
+
+
+
+
+
+
+      const_reverse_iterator
+      rbegin() const noexcept
+      { return const_reverse_iterator(this->end()); }
+
+
+
+
+
+
+      reverse_iterator
+      rend() noexcept
+      { return reverse_iterator(this->begin()); }
+
+
+
+
+
+
+      const_reverse_iterator
+      rend() const noexcept
+      { return const_reverse_iterator(this->begin()); }
+
+
+
+
+
+
+      const_iterator
+      cbegin() const noexcept
+      { return const_iterator(this->_M_data()); }
+
+
+
+
+
+      const_iterator
+      cend() const noexcept
+      { return const_iterator(this->_M_data() + this->size()); }
+
+
+
+
+
+
+      const_reverse_iterator
+      crbegin() const noexcept
+      { return const_reverse_iterator(this->end()); }
+
+
+
+
+
+
+      const_reverse_iterator
+      crend() const noexcept
+      { return const_reverse_iterator(this->begin()); }
+
+
+    public:
+
+
+
+      size_type
+      size() const noexcept
+      { return _M_string_length; }
+
+
+
+      size_type
+      length() const noexcept
+      { return _M_string_length; }
+
+
+      size_type
+      max_size() const noexcept
+      { return (_Alloc_traits::max_size(_M_get_allocator()) - 1) / 2; }
+# 828 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      void
+      resize(size_type __n, _CharT __c);
+# 841 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      void
+      resize(size_type __n)
+      { this->resize(__n, _CharT()); }
+
+
+
+      void
+      shrink_to_fit() noexcept
+      {
+
+ if (capacity() > size())
+   {
+     try
+       { reserve(0); }
+     catch(...)
+       { }
+   }
+
+      }
+
+
+
+
+
+
+      size_type
+      capacity() const noexcept
+      {
+ return _M_is_local() ? size_type(_S_local_capacity)
+                      : _M_allocated_capacity;
+      }
+# 890 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      void
+      reserve(size_type __res_arg = 0);
+
+
+
+
+      void
+      clear() noexcept
+      { _M_set_length(0); }
+
+
+
+
+
+      bool
+      empty() const noexcept
+      { return this->size() == 0; }
+# 919 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      const_reference
+      operator[] (size_type __pos) const noexcept
+      {
+                                  ;
+ return _M_data()[__pos];
+      }
+# 936 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      reference
+      operator[](size_type __pos)
+      {
+
+
+                                  ;
+
+                                                                   ;
+ return _M_data()[__pos];
+      }
+# 957 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      const_reference
+      at(size_type __n) const
+      {
+ if (__n >= this->size())
+   __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)"),
+
+
+       __n, this->size());
+ return _M_data()[__n];
+      }
+# 978 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      reference
+      at(size_type __n)
+      {
+ if (__n >= size())
+   __throw_out_of_range_fmt(("basic_string::at: __n " "(which is %zu) >= this->size() " "(which is %zu)"),
+
+
+       __n, this->size());
+ return _M_data()[__n];
+      }
+
+
+
+
+
+
+      reference
+      front() noexcept
+      {
+                           ;
+ return operator[](0);
+      }
+
+
+
+
+
+      const_reference
+      front() const noexcept
+      {
+                           ;
+ return operator[](0);
+      }
+
+
+
+
+
+      reference
+      back() noexcept
+      {
+                           ;
+ return operator[](this->size() - 1);
+      }
+
+
+
+
+
+      const_reference
+      back() const noexcept
+      {
+                           ;
+ return operator[](this->size() - 1);
+      }
+# 1041 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      operator+=(const basic_string& __str)
+      { return this->append(__str); }
+
+
+
+
+
+
+      basic_string&
+      operator+=(const _CharT* __s)
+      { return this->append(__s); }
+
+
+
+
+
+
+      basic_string&
+      operator+=(_CharT __c)
+      {
+ this->push_back(__c);
+ return *this;
+      }
+
+
+
+
+
+
+
+      basic_string&
+      operator+=(initializer_list<_CharT> __l)
+      { return this->append(__l.begin(), __l.size()); }
+
+
+
+
+
+
+
+      basic_string&
+      append(const basic_string& __str)
+      { return _M_append(__str._M_data(), __str.size()); }
+# 1099 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      append(const basic_string& __str, size_type __pos, size_type __n)
+      { return _M_append(__str._M_data()
+    + __str._M_check(__pos, "basic_string::append"),
+    __str._M_limit(__pos, __n)); }
+
+
+
+
+
+
+
+      basic_string&
+      append(const _CharT* __s, size_type __n)
+      {
+                                        ;
+ _M_check_length(size_type(0), __n, "basic_string::append");
+ return _M_append(__s, __n);
+      }
+
+
+
+
+
+
+      basic_string&
+      append(const _CharT* __s)
+      {
+                               ;
+ const size_type __n = traits_type::length(__s);
+ _M_check_length(size_type(0), __n, "basic_string::append");
+ return _M_append(__s, __n);
+      }
+# 1141 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      append(size_type __n, _CharT __c)
+      { return _M_replace_aux(this->size(), size_type(0), __n, __c); }
+
+
+
+
+
+
+
+      basic_string&
+      append(initializer_list<_CharT> __l)
+      { return this->append(__l.begin(), __l.size()); }
+# 1165 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      template<class _InputIterator,
+        typename = std::_RequireInputIter<_InputIterator>>
+
+
+
+        basic_string&
+        append(_InputIterator __first, _InputIterator __last)
+        { return this->replace(end(), end(), __first, __last); }
+
+
+
+
+
+      void
+      push_back(_CharT __c)
+      {
+ const size_type __size = this->size();
+ if (__size + 1 > this->capacity())
+   this->_M_mutate(__size, size_type(0), 0, size_type(1));
+ traits_type::assign(this->_M_data()[__size], __c);
+ this->_M_set_length(__size + 1);
+      }
+
+
+
+
+
+
+      basic_string&
+      assign(const basic_string& __str)
+      {
+ this->_M_assign(__str);
+ return *this;
+      }
+# 1209 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      assign(basic_string&& __str)
+      noexcept(_Alloc_traits::_S_nothrow_move())
+      {
+
+
+ return *this = std::move(__str);
+      }
+# 1232 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      assign(const basic_string& __str, size_type __pos, size_type __n)
+      { return _M_replace(size_type(0), this->size(), __str._M_data()
+     + __str._M_check(__pos, "basic_string::assign"),
+     __str._M_limit(__pos, __n)); }
+# 1248 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      assign(const _CharT* __s, size_type __n)
+      {
+                                        ;
+ return _M_replace(size_type(0), this->size(), __s, __n);
+      }
+# 1264 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      assign(const _CharT* __s)
+      {
+                               ;
+ return _M_replace(size_type(0), this->size(), __s,
+     traits_type::length(__s));
+      }
+# 1281 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      assign(size_type __n, _CharT __c)
+      { return _M_replace_aux(size_type(0), this->size(), __n, __c); }
+# 1294 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      template<class _InputIterator,
+        typename = std::_RequireInputIter<_InputIterator>>
+
+
+
+        basic_string&
+        assign(_InputIterator __first, _InputIterator __last)
+        { return this->replace(begin(), end(), __first, __last); }
+
+
+
+
+
+
+
+      basic_string&
+      assign(initializer_list<_CharT> __l)
+      { return this->assign(__l.begin(), __l.size()); }
+# 1330 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      iterator
+      insert(const_iterator __p, size_type __n, _CharT __c)
+      {
+                                                         ;
+ const size_type __pos = __p - begin();
+ this->replace(__p, __p, __n, __c);
+ return iterator(this->_M_data() + __pos);
+      }
+# 1372 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      template<class _InputIterator,
+        typename = std::_RequireInputIter<_InputIterator>>
+ iterator
+        insert(const_iterator __p, _InputIterator __beg, _InputIterator __end)
+        {
+                                                           ;
+   const size_type __pos = __p - begin();
+   this->replace(__p, __p, __beg, __end);
+   return iterator(this->_M_data() + __pos);
+ }
+# 1408 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      void
+      insert(iterator __p, initializer_list<_CharT> __l)
+      {
+                                                         ;
+ this->insert(__p - begin(), __l.begin(), __l.size());
+      }
+# 1428 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      insert(size_type __pos1, const basic_string& __str)
+      { return this->replace(__pos1, size_type(0),
+        __str._M_data(), __str.size()); }
+# 1451 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      insert(size_type __pos1, const basic_string& __str,
+      size_type __pos2, size_type __n)
+      { return this->replace(__pos1, size_type(0), __str._M_data()
+        + __str._M_check(__pos2, "basic_string::insert"),
+        __str._M_limit(__pos2, __n)); }
+# 1474 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      insert(size_type __pos, const _CharT* __s, size_type __n)
+      { return this->replace(__pos, size_type(0), __s, __n); }
+# 1493 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      insert(size_type __pos, const _CharT* __s)
+      {
+                               ;
+ return this->replace(__pos, size_type(0), __s,
+        traits_type::length(__s));
+      }
+# 1517 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      insert(size_type __pos, size_type __n, _CharT __c)
+      { return _M_replace_aux(_M_check(__pos, "basic_string::insert"),
+         size_type(0), __n, __c); }
+# 1535 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      iterator
+      insert(__const_iterator __p, _CharT __c)
+      {
+                                                         ;
+ const size_type __pos = __p - begin();
+ _M_replace_aux(__pos, size_type(0), size_type(1), __c);
+ return iterator(_M_data() + __pos);
+      }
+# 1559 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      erase(size_type __pos = 0, size_type __n = npos)
+      {
+ this->_M_erase(_M_check(__pos, "basic_string::erase"),
+         _M_limit(__pos, __n));
+ return *this;
+      }
+# 1575 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      iterator
+      erase(__const_iterator __position)
+      {
+
+                           ;
+ const size_type __pos = __position - begin();
+ this->_M_erase(__pos, size_type(1));
+ return iterator(_M_data() + __pos);
+      }
+# 1594 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      iterator
+      erase(__const_iterator __first, __const_iterator __last)
+      {
+
+                        ;
+        const size_type __pos = __first - begin();
+ this->_M_erase(__pos, __last - __first);
+ return iterator(this->_M_data() + __pos);
+      }
+
+
+
+
+
+
+
+      void
+      pop_back() noexcept
+      {
+                           ;
+ _M_erase(size() - 1, 1);
+      }
+# 1635 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      replace(size_type __pos, size_type __n, const basic_string& __str)
+      { return this->replace(__pos, __n, __str._M_data(), __str.size()); }
+# 1657 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      replace(size_type __pos1, size_type __n1, const basic_string& __str,
+       size_type __pos2, size_type __n2)
+      { return this->replace(__pos1, __n1, __str._M_data()
+        + __str._M_check(__pos2, "basic_string::replace"),
+        __str._M_limit(__pos2, __n2)); }
+# 1682 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      replace(size_type __pos, size_type __n1, const _CharT* __s,
+       size_type __n2)
+      {
+                                         ;
+ return _M_replace(_M_check(__pos, "basic_string::replace"),
+     _M_limit(__pos, __n1), __s, __n2);
+      }
+# 1707 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      replace(size_type __pos, size_type __n1, const _CharT* __s)
+      {
+                               ;
+ return this->replace(__pos, __n1, __s, traits_type::length(__s));
+      }
+# 1731 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c)
+      { return _M_replace_aux(_M_check(__pos, "basic_string::replace"),
+         _M_limit(__pos, __n1), __n2, __c); }
+# 1749 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      replace(__const_iterator __i1, __const_iterator __i2,
+       const basic_string& __str)
+      { return this->replace(__i1, __i2, __str._M_data(), __str.size()); }
+# 1769 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      replace(__const_iterator __i1, __const_iterator __i2,
+       const _CharT* __s, size_type __n)
+      {
+
+                      ;
+ return this->replace(__i1 - begin(), __i2 - __i1, __s, __n);
+      }
+# 1791 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      replace(__const_iterator __i1, __const_iterator __i2, const _CharT* __s)
+      {
+                               ;
+ return this->replace(__i1, __i2, __s, traits_type::length(__s));
+      }
+# 1812 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      replace(__const_iterator __i1, __const_iterator __i2, size_type __n,
+       _CharT __c)
+      {
+
+                      ;
+ return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __c);
+      }
+# 1837 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      template<class _InputIterator,
+        typename = std::_RequireInputIter<_InputIterator>>
+        basic_string&
+        replace(const_iterator __i1, const_iterator __i2,
+  _InputIterator __k1, _InputIterator __k2)
+        {
+
+                        ;
+                                             ;
+   return this->_M_replace_dispatch(__i1, __i2, __k1, __k2,
+        std::__false_type());
+ }
+# 1869 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string&
+      replace(__const_iterator __i1, __const_iterator __i2,
+       _CharT* __k1, _CharT* __k2)
+      {
+
+                      ;
+                                           ;
+ return this->replace(__i1 - begin(), __i2 - __i1,
+        __k1, __k2 - __k1);
+      }
+
+      basic_string&
+      replace(__const_iterator __i1, __const_iterator __i2,
+       const _CharT* __k1, const _CharT* __k2)
+      {
+
+                      ;
+                                           ;
+ return this->replace(__i1 - begin(), __i2 - __i1,
+        __k1, __k2 - __k1);
+      }
+
+      basic_string&
+      replace(__const_iterator __i1, __const_iterator __i2,
+       iterator __k1, iterator __k2)
+      {
+
+                      ;
+                                           ;
+ return this->replace(__i1 - begin(), __i2 - __i1,
+        __k1.base(), __k2 - __k1);
+      }
+
+      basic_string&
+      replace(__const_iterator __i1, __const_iterator __i2,
+       const_iterator __k1, const_iterator __k2)
+      {
+
+                      ;
+                                           ;
+ return this->replace(__i1 - begin(), __i2 - __i1,
+        __k1.base(), __k2 - __k1);
+      }
+# 1928 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string& replace(const_iterator __i1, const_iterator __i2,
+       initializer_list<_CharT> __l)
+      { return this->replace(__i1, __i2, __l.begin(), __l.end()); }
+
+
+    private:
+      template<class _Integer>
+ basic_string&
+ _M_replace_dispatch(const_iterator __i1, const_iterator __i2,
+       _Integer __n, _Integer __val, __true_type)
+        { return _M_replace_aux(__i1 - begin(), __i2 - __i1, __n, __val); }
+
+      template<class _InputIterator>
+ basic_string&
+ _M_replace_dispatch(const_iterator __i1, const_iterator __i2,
+       _InputIterator __k1, _InputIterator __k2,
+       __false_type);
+
+      basic_string&
+      _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2,
+       _CharT __c);
+
+      basic_string&
+      _M_replace(size_type __pos, size_type __len1, const _CharT* __s,
+   const size_type __len2);
+
+      basic_string&
+      _M_append(const _CharT* __s, size_type __n);
+
+    public:
+# 1971 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      copy(_CharT* __s, size_type __n, size_type __pos = 0) const;
+# 1981 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      void
+      swap(basic_string& __s) noexcept;
+# 1991 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      const _CharT*
+      c_str() const noexcept
+      { return _M_data(); }
+
+
+
+
+
+
+
+      const _CharT*
+      data() const noexcept
+      { return _M_data(); }
+
+
+
+
+      allocator_type
+      get_allocator() const noexcept
+      { return _M_get_allocator(); }
+# 2024 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      find(const _CharT* __s, size_type __pos, size_type __n) const;
+# 2037 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      find(const basic_string& __str, size_type __pos = 0) const
+ noexcept
+      { return this->find(__str.data(), __pos, __str.size()); }
+# 2052 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      find(const _CharT* __s, size_type __pos = 0) const
+      {
+                               ;
+ return this->find(__s, __pos, traits_type::length(__s));
+      }
+# 2069 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      find(_CharT __c, size_type __pos = 0) const noexcept;
+# 2082 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      rfind(const basic_string& __str, size_type __pos = npos) const
+ noexcept
+      { return this->rfind(__str.data(), __pos, __str.size()); }
+# 2099 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      rfind(const _CharT* __s, size_type __pos, size_type __n) const;
+# 2112 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      rfind(const _CharT* __s, size_type __pos = npos) const
+      {
+                               ;
+ return this->rfind(__s, __pos, traits_type::length(__s));
+      }
+# 2129 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      rfind(_CharT __c, size_type __pos = npos) const noexcept;
+# 2143 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      find_first_of(const basic_string& __str, size_type __pos = 0) const
+ noexcept
+      { return this->find_first_of(__str.data(), __pos, __str.size()); }
+# 2160 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      find_first_of(const _CharT* __s, size_type __pos, size_type __n) const;
+# 2173 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      find_first_of(const _CharT* __s, size_type __pos = 0) const
+      {
+                               ;
+ return this->find_first_of(__s, __pos, traits_type::length(__s));
+      }
+# 2192 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      find_first_of(_CharT __c, size_type __pos = 0) const noexcept
+      { return this->find(__c, __pos); }
+# 2207 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      find_last_of(const basic_string& __str, size_type __pos = npos) const
+ noexcept
+      { return this->find_last_of(__str.data(), __pos, __str.size()); }
+# 2224 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      find_last_of(const _CharT* __s, size_type __pos, size_type __n) const;
+# 2237 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      find_last_of(const _CharT* __s, size_type __pos = npos) const
+      {
+                               ;
+ return this->find_last_of(__s, __pos, traits_type::length(__s));
+      }
+# 2256 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      find_last_of(_CharT __c, size_type __pos = npos) const noexcept
+      { return this->rfind(__c, __pos); }
+# 2270 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      find_first_not_of(const basic_string& __str, size_type __pos = 0) const
+ noexcept
+      { return this->find_first_not_of(__str.data(), __pos, __str.size()); }
+# 2287 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      find_first_not_of(const _CharT* __s, size_type __pos,
+   size_type __n) const;
+# 2301 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      find_first_not_of(const _CharT* __s, size_type __pos = 0) const
+      {
+                               ;
+ return this->find_first_not_of(__s, __pos, traits_type::length(__s));
+      }
+# 2318 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      find_first_not_of(_CharT __c, size_type __pos = 0) const
+ noexcept;
+# 2333 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      find_last_not_of(const basic_string& __str, size_type __pos = npos) const
+ noexcept
+      { return this->find_last_not_of(__str.data(), __pos, __str.size()); }
+# 2350 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      find_last_not_of(const _CharT* __s, size_type __pos,
+         size_type __n) const;
+# 2364 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      find_last_not_of(const _CharT* __s, size_type __pos = npos) const
+      {
+                               ;
+ return this->find_last_not_of(__s, __pos, traits_type::length(__s));
+      }
+# 2381 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      size_type
+      find_last_not_of(_CharT __c, size_type __pos = npos) const
+ noexcept;
+# 2397 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      basic_string
+      substr(size_type __pos = 0, size_type __n = npos) const
+      { return basic_string(*this,
+       _M_check(__pos, "basic_string::substr"), __n); }
+# 2416 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      int
+      compare(const basic_string& __str) const
+      {
+ const size_type __size = this->size();
+ const size_type __osize = __str.size();
+ const size_type __len = std::min(__size, __osize);
+
+ int __r = traits_type::compare(_M_data(), __str.data(), __len);
+ if (!__r)
+   __r = _S_compare(__size, __osize);
+ return __r;
+      }
+# 2448 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      int
+      compare(size_type __pos, size_type __n, const basic_string& __str) const;
+# 2474 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      int
+      compare(size_type __pos1, size_type __n1, const basic_string& __str,
+       size_type __pos2, size_type __n2) const;
+# 2492 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      int
+      compare(const _CharT* __s) const;
+# 2516 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      int
+      compare(size_type __pos, size_type __n1, const _CharT* __s) const;
+# 2543 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+      int
+      compare(size_type __pos, size_type __n1, const _CharT* __s,
+       size_type __n2) const;
+  };
+}
+# 4942 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    basic_string<_CharT, _Traits, _Alloc>
+    operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
+       const basic_string<_CharT, _Traits, _Alloc>& __rhs)
+    {
+      basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
+      __str.append(__rhs);
+      return __str;
+    }
+
+
+
+
+
+
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    basic_string<_CharT,_Traits,_Alloc>
+    operator+(const _CharT* __lhs,
+       const basic_string<_CharT,_Traits,_Alloc>& __rhs);
+
+
+
+
+
+
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    basic_string<_CharT,_Traits,_Alloc>
+    operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs);
+
+
+
+
+
+
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline basic_string<_CharT, _Traits, _Alloc>
+    operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
+       const _CharT* __rhs)
+    {
+      basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
+      __str.append(__rhs);
+      return __str;
+    }
+
+
+
+
+
+
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline basic_string<_CharT, _Traits, _Alloc>
+    operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs)
+    {
+      typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
+      typedef typename __string_type::size_type __size_type;
+      __string_type __str(__lhs);
+      __str.append(__size_type(1), __rhs);
+      return __str;
+    }
+
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline basic_string<_CharT, _Traits, _Alloc>
+    operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
+       const basic_string<_CharT, _Traits, _Alloc>& __rhs)
+    { return std::move(__lhs.append(__rhs)); }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline basic_string<_CharT, _Traits, _Alloc>
+    operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
+       basic_string<_CharT, _Traits, _Alloc>&& __rhs)
+    { return std::move(__rhs.insert(0, __lhs)); }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline basic_string<_CharT, _Traits, _Alloc>
+    operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
+       basic_string<_CharT, _Traits, _Alloc>&& __rhs)
+    {
+      const auto __size = __lhs.size() + __rhs.size();
+      const bool __cond = (__size > __lhs.capacity()
+      && __size <= __rhs.capacity());
+      return __cond ? std::move(__rhs.insert(0, __lhs))
+             : std::move(__lhs.append(__rhs));
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline basic_string<_CharT, _Traits, _Alloc>
+    operator+(const _CharT* __lhs,
+       basic_string<_CharT, _Traits, _Alloc>&& __rhs)
+    { return std::move(__rhs.insert(0, __lhs)); }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline basic_string<_CharT, _Traits, _Alloc>
+    operator+(_CharT __lhs,
+       basic_string<_CharT, _Traits, _Alloc>&& __rhs)
+    { return std::move(__rhs.insert(0, 1, __lhs)); }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline basic_string<_CharT, _Traits, _Alloc>
+    operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
+       const _CharT* __rhs)
+    { return std::move(__lhs.append(__rhs)); }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline basic_string<_CharT, _Traits, _Alloc>
+    operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
+       _CharT __rhs)
+    { return std::move(__lhs.append(1, __rhs)); }
+# 5063 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline bool
+    operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
+        const basic_string<_CharT, _Traits, _Alloc>& __rhs)
+    noexcept
+    { return __lhs.compare(__rhs) == 0; }
+
+  template<typename _CharT>
+    inline
+    typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, bool>::__type
+    operator==(const basic_string<_CharT>& __lhs,
+        const basic_string<_CharT>& __rhs) noexcept
+    { return (__lhs.size() == __rhs.size()
+       && !std::char_traits<_CharT>::compare(__lhs.data(), __rhs.data(),
+          __lhs.size())); }
+
+
+
+
+
+
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline bool
+    operator==(const _CharT* __lhs,
+        const basic_string<_CharT, _Traits, _Alloc>& __rhs)
+    { return __rhs.compare(__lhs) == 0; }
+
+
+
+
+
+
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline bool
+    operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
+        const _CharT* __rhs)
+    { return __lhs.compare(__rhs) == 0; }
+# 5110 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline bool
+    operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
+        const basic_string<_CharT, _Traits, _Alloc>& __rhs)
+    noexcept
+    { return !(__lhs == __rhs); }
+
+
+
+
+
+
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline bool
+    operator!=(const _CharT* __lhs,
+        const basic_string<_CharT, _Traits, _Alloc>& __rhs)
+    { return !(__lhs == __rhs); }
+
+
+
+
+
+
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline bool
+    operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
+        const _CharT* __rhs)
+    { return !(__lhs == __rhs); }
+# 5148 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline bool
+    operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
+       const basic_string<_CharT, _Traits, _Alloc>& __rhs)
+    noexcept
+    { return __lhs.compare(__rhs) < 0; }
+
+
+
+
+
+
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline bool
+    operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
+       const _CharT* __rhs)
+    { return __lhs.compare(__rhs) < 0; }
+
+
+
+
+
+
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline bool
+    operator<(const _CharT* __lhs,
+       const basic_string<_CharT, _Traits, _Alloc>& __rhs)
+    { return __rhs.compare(__lhs) > 0; }
+# 5186 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline bool
+    operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
+       const basic_string<_CharT, _Traits, _Alloc>& __rhs)
+    noexcept
+    { return __lhs.compare(__rhs) > 0; }
+
+
+
+
+
+
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline bool
+    operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
+       const _CharT* __rhs)
+    { return __lhs.compare(__rhs) > 0; }
+
+
+
+
+
+
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline bool
+    operator>(const _CharT* __lhs,
+       const basic_string<_CharT, _Traits, _Alloc>& __rhs)
+    { return __rhs.compare(__lhs) < 0; }
+# 5224 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline bool
+    operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
+        const basic_string<_CharT, _Traits, _Alloc>& __rhs)
+    noexcept
+    { return __lhs.compare(__rhs) <= 0; }
+
+
+
+
+
+
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline bool
+    operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
+        const _CharT* __rhs)
+    { return __lhs.compare(__rhs) <= 0; }
+
+
+
+
+
+
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline bool
+    operator<=(const _CharT* __lhs,
+        const basic_string<_CharT, _Traits, _Alloc>& __rhs)
+    { return __rhs.compare(__lhs) >= 0; }
+# 5262 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline bool
+    operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
+        const basic_string<_CharT, _Traits, _Alloc>& __rhs)
+    noexcept
+    { return __lhs.compare(__rhs) >= 0; }
+
+
+
+
+
+
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline bool
+    operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
+        const _CharT* __rhs)
+    { return __lhs.compare(__rhs) >= 0; }
+
+
+
+
+
+
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline bool
+    operator>=(const _CharT* __lhs,
+      const basic_string<_CharT, _Traits, _Alloc>& __rhs)
+    { return __rhs.compare(__lhs) <= 0; }
+# 5300 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline void
+    swap(basic_string<_CharT, _Traits, _Alloc>& __lhs,
+  basic_string<_CharT, _Traits, _Alloc>& __rhs)
+    noexcept(noexcept(__lhs.swap(__rhs)))
+    { __lhs.swap(__rhs); }
+# 5320 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    basic_istream<_CharT, _Traits>&
+    operator>>(basic_istream<_CharT, _Traits>& __is,
+        basic_string<_CharT, _Traits, _Alloc>& __str);
+
+  template<>
+    basic_istream<char>&
+    operator>>(basic_istream<char>& __is, basic_string<char>& __str);
+# 5338 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline basic_ostream<_CharT, _Traits>&
+    operator<<(basic_ostream<_CharT, _Traits>& __os,
+        const basic_string<_CharT, _Traits, _Alloc>& __str)
+    {
+
+
+      return __ostream_insert(__os, __str.data(), __str.size());
+    }
+# 5361 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    basic_istream<_CharT, _Traits>&
+    getline(basic_istream<_CharT, _Traits>& __is,
+     basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim);
+# 5378 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline basic_istream<_CharT, _Traits>&
+    getline(basic_istream<_CharT, _Traits>& __is,
+     basic_string<_CharT, _Traits, _Alloc>& __str)
+    { return std::getline(__is, __str, __is.widen('\n')); }
+
+
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline basic_istream<_CharT, _Traits>&
+    getline(basic_istream<_CharT, _Traits>&& __is,
+     basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim)
+    { return std::getline(__is, __str, __delim); }
+
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    inline basic_istream<_CharT, _Traits>&
+    getline(basic_istream<_CharT, _Traits>&& __is,
+     basic_string<_CharT, _Traits, _Alloc>& __str)
+    { return std::getline(__is, __str); }
+
+
+  template<>
+    basic_istream<char>&
+    getline(basic_istream<char>& __in, basic_string<char>& __str,
+     char __delim);
+
+
+  template<>
+    basic_istream<wchar_t>&
+    getline(basic_istream<wchar_t>& __in, basic_string<wchar_t>& __str,
+     wchar_t __delim);
+
+
+
+}
+
+
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/string_conversions.h" 1 3
+# 33 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/string_conversions.h" 3
+
+
+
+
+
+
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cstdlib" 1 3
+# 40 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cstdlib" 3
+# 42 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/string_conversions.h" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cwchar" 1 3
+# 40 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cwchar" 3
+
+
+
+
+# 1 "/usr/include/wchar.h" 1 3 4
+# 45 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cwchar" 2 3
+# 43 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/string_conversions.h" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cstdio" 1 3
+# 40 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cstdio" 3
+
+
+# 1 "/usr/xenomai/include/cobalt/stdio.h" 1 3
+# 20 "/usr/xenomai/include/cobalt/stdio.h" 3
+# 43 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cstdio" 2 3
+# 96 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cstdio" 3
+namespace std
+{
+  using ::FILE;
+  using ::fpos_t;
+
+  using ::clearerr;
+  using ::fclose;
+  using ::feof;
+  using ::ferror;
+  using ::fflush;
+  using ::fgetc;
+  using ::fgetpos;
+  using ::fgets;
+  using ::fopen;
+  using ::fprintf;
+  using ::fputc;
+  using ::fputs;
+  using ::fread;
+  using ::freopen;
+  using ::fscanf;
+  using ::fseek;
+  using ::fsetpos;
+  using ::ftell;
+  using ::fwrite;
+  using ::getc;
+  using ::getchar;
+
+
+  using ::gets;
+
+  using ::perror;
+  using ::printf;
+  using ::putc;
+  using ::putchar;
+  using ::puts;
+  using ::remove;
+  using ::rename;
+  using ::rewind;
+  using ::scanf;
+  using ::setbuf;
+  using ::setvbuf;
+  using ::sprintf;
+  using ::sscanf;
+  using ::tmpfile;
+
+  using ::tmpnam;
+
+  using ::ungetc;
+  using ::vfprintf;
+  using ::vprintf;
+  using ::vsprintf;
+}
+# 157 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cstdio" 3
+namespace __gnu_cxx
+{
+# 175 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cstdio" 3
+  using ::snprintf;
+  using ::vfscanf;
+  using ::vscanf;
+  using ::vsnprintf;
+  using ::vsscanf;
+
+}
+
+namespace std
+{
+  using ::__gnu_cxx::snprintf;
+  using ::__gnu_cxx::vfscanf;
+  using ::__gnu_cxx::vscanf;
+  using ::__gnu_cxx::vsnprintf;
+  using ::__gnu_cxx::vsscanf;
+}
+# 44 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/string_conversions.h" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cerrno" 1 3
+# 40 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cerrno" 3
+
+
+# 1 "/usr/include/errno.h" 1 3 4
+# 31 "/usr/include/errno.h" 3 4
+extern "C" {
+
+
+
+
+# 1 "/usr/include/arm-linux-gnueabihf/bits/errno.h" 1 3 4
+# 24 "/usr/include/arm-linux-gnueabihf/bits/errno.h" 3 4
+# 1 "/usr/include/linux/errno.h" 1 3 4
+# 1 "/usr/include/arm-linux-gnueabihf/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
+# 5 "/usr/include/asm-generic/errno.h" 2 3 4
+# 2 "/usr/include/arm-linux-gnueabihf/asm/errno.h" 2 3 4
+# 2 "/usr/include/linux/errno.h" 2 3 4
+# 25 "/usr/include/arm-linux-gnueabihf/bits/errno.h" 2 3 4
+# 50 "/usr/include/arm-linux-gnueabihf/bits/errno.h" 3 4
+extern int *__errno_location (void) throw () __attribute__ ((__const__));
+# 36 "/usr/include/errno.h" 2 3 4
+# 54 "/usr/include/errno.h" 3 4
+extern char *program_invocation_name, *program_invocation_short_name;
+
+
+
+}
+# 68 "/usr/include/errno.h" 3 4
+typedef int error_t;
+# 43 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/cerrno" 2 3
+# 45 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/string_conversions.h" 2 3
+
+namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
+{
+
+
+
+  template<typename _TRet, typename _Ret = _TRet, typename _CharT,
+    typename... _Base>
+    _Ret
+    __stoa(_TRet (*__convf) (const _CharT*, _CharT**, _Base...),
+    const char* __name, const _CharT* __str, std::size_t* __idx,
+    _Base... __base)
+    {
+      _Ret __ret;
+
+      _CharT* __endptr;
+
+      struct _Save_errno {
+ _Save_errno() : _M_errno((*__errno_location ())) { (*__errno_location ()) = 0; }
+ ~_Save_errno() { if ((*__errno_location ()) == 0) (*__errno_location ()) = _M_errno; }
+ int _M_errno;
+      } const __save_errno;
+
+      const _TRet __tmp = __convf(__str, &__endptr, __base...);
+
+      if (__endptr == __str)
+ std::__throw_invalid_argument(__name);
+      else if ((*__errno_location ()) == 34
+        || (std::__are_same<_Ret, int>::__value
+     && (__tmp < __numeric_traits<int>::__min
+         || __tmp > __numeric_traits<int>::__max)))
+ std::__throw_out_of_range(__name);
+      else
+ __ret = __tmp;
+
+      if (__idx)
+ *__idx = __endptr - __str;
+
+      return __ret;
+    }
+
+
+  template<typename _String, typename _CharT = typename _String::value_type>
+    _String
+    __to_xstring(int (*__convf) (_CharT*, std::size_t, const _CharT*,
+     __builtin_va_list), std::size_t __n,
+   const _CharT* __fmt, ...)
+    {
+
+
+      _CharT* __s = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+         * __n));
+
+      __builtin_va_list __args;
+      __builtin_va_start(__args, __fmt);
+
+      const int __len = __convf(__s, __n, __fmt, __args);
+
+      __builtin_va_end(__args);
+
+      return _String(__s, __s + __len);
+    }
+
+
+}
+# 5418 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 2 3
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+namespace __cxx11 {
+
+
+
+  inline int
+  stoi(const string& __str, size_t* __idx = 0, int __base = 10)
+  { return __gnu_cxx::__stoa<long, int>(&std::strtol, "stoi", __str.c_str(),
+     __idx, __base); }
+
+  inline long
+  stol(const string& __str, size_t* __idx = 0, int __base = 10)
+  { return __gnu_cxx::__stoa(&std::strtol, "stol", __str.c_str(),
+        __idx, __base); }
+
+  inline unsigned long
+  stoul(const string& __str, size_t* __idx = 0, int __base = 10)
+  { return __gnu_cxx::__stoa(&std::strtoul, "stoul", __str.c_str(),
+        __idx, __base); }
+
+  inline long long
+  stoll(const string& __str, size_t* __idx = 0, int __base = 10)
+  { return __gnu_cxx::__stoa(&std::strtoll, "stoll", __str.c_str(),
+        __idx, __base); }
+
+  inline unsigned long long
+  stoull(const string& __str, size_t* __idx = 0, int __base = 10)
+  { return __gnu_cxx::__stoa(&std::strtoull, "stoull", __str.c_str(),
+        __idx, __base); }
+
+
+  inline float
+  stof(const string& __str, size_t* __idx = 0)
+  { return __gnu_cxx::__stoa(&std::strtof, "stof", __str.c_str(), __idx); }
+
+  inline double
+  stod(const string& __str, size_t* __idx = 0)
+  { return __gnu_cxx::__stoa(&std::strtod, "stod", __str.c_str(), __idx); }
+
+  inline long double
+  stold(const string& __str, size_t* __idx = 0)
+  { return __gnu_cxx::__stoa(&std::strtold, "stold", __str.c_str(), __idx); }
+
+
+
+
+
+
+  inline string
+  to_string(int __val)
+  { return __gnu_cxx::__to_xstring<string>(&std::vsnprintf, 4 * sizeof(int),
+        "%d", __val); }
+
+  inline string
+  to_string(unsigned __val)
+  { return __gnu_cxx::__to_xstring<string>(&std::vsnprintf,
+        4 * sizeof(unsigned),
+        "%u", __val); }
+
+  inline string
+  to_string(long __val)
+  { return __gnu_cxx::__to_xstring<string>(&std::vsnprintf, 4 * sizeof(long),
+        "%ld", __val); }
+
+  inline string
+  to_string(unsigned long __val)
+  { return __gnu_cxx::__to_xstring<string>(&std::vsnprintf,
+        4 * sizeof(unsigned long),
+        "%lu", __val); }
+
+  inline string
+  to_string(long long __val)
+  { return __gnu_cxx::__to_xstring<string>(&std::vsnprintf,
+        4 * sizeof(long long),
+        "%lld", __val); }
+
+  inline string
+  to_string(unsigned long long __val)
+  { return __gnu_cxx::__to_xstring<string>(&std::vsnprintf,
+        4 * sizeof(unsigned long long),
+        "%llu", __val); }
+
+  inline string
+  to_string(float __val)
+  {
+    const int __n =
+      __gnu_cxx::__numeric_traits<float>::__max_exponent10 + 20;
+    return __gnu_cxx::__to_xstring<string>(&std::vsnprintf, __n,
+        "%f", __val);
+  }
+
+  inline string
+  to_string(double __val)
+  {
+    const int __n =
+      __gnu_cxx::__numeric_traits<double>::__max_exponent10 + 20;
+    return __gnu_cxx::__to_xstring<string>(&std::vsnprintf, __n,
+        "%f", __val);
+  }
+
+  inline string
+  to_string(long double __val)
+  {
+    const int __n =
+      __gnu_cxx::__numeric_traits<long double>::__max_exponent10 + 20;
+    return __gnu_cxx::__to_xstring<string>(&std::vsnprintf, __n,
+        "%Lf", __val);
+  }
+
+
+
+  inline int
+  stoi(const wstring& __str, size_t* __idx = 0, int __base = 10)
+  { return __gnu_cxx::__stoa<long, int>(&std::wcstol, "stoi", __str.c_str(),
+     __idx, __base); }
+
+  inline long
+  stol(const wstring& __str, size_t* __idx = 0, int __base = 10)
+  { return __gnu_cxx::__stoa(&std::wcstol, "stol", __str.c_str(),
+        __idx, __base); }
+
+  inline unsigned long
+  stoul(const wstring& __str, size_t* __idx = 0, int __base = 10)
+  { return __gnu_cxx::__stoa(&std::wcstoul, "stoul", __str.c_str(),
+        __idx, __base); }
+
+  inline long long
+  stoll(const wstring& __str, size_t* __idx = 0, int __base = 10)
+  { return __gnu_cxx::__stoa(&std::wcstoll, "stoll", __str.c_str(),
+        __idx, __base); }
+
+  inline unsigned long long
+  stoull(const wstring& __str, size_t* __idx = 0, int __base = 10)
+  { return __gnu_cxx::__stoa(&std::wcstoull, "stoull", __str.c_str(),
+        __idx, __base); }
+
+
+  inline float
+  stof(const wstring& __str, size_t* __idx = 0)
+  { return __gnu_cxx::__stoa(&std::wcstof, "stof", __str.c_str(), __idx); }
+
+  inline double
+  stod(const wstring& __str, size_t* __idx = 0)
+  { return __gnu_cxx::__stoa(&std::wcstod, "stod", __str.c_str(), __idx); }
+
+  inline long double
+  stold(const wstring& __str, size_t* __idx = 0)
+  { return __gnu_cxx::__stoa(&std::wcstold, "stold", __str.c_str(), __idx); }
+
+
+
+  inline wstring
+  to_wstring(int __val)
+  { return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf, 4 * sizeof(int),
+         L"%d", __val); }
+
+  inline wstring
+  to_wstring(unsigned __val)
+  { return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf,
+         4 * sizeof(unsigned),
+         L"%u", __val); }
+
+  inline wstring
+  to_wstring(long __val)
+  { return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf, 4 * sizeof(long),
+         L"%ld", __val); }
+
+  inline wstring
+  to_wstring(unsigned long __val)
+  { return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf,
+         4 * sizeof(unsigned long),
+         L"%lu", __val); }
+
+  inline wstring
+  to_wstring(long long __val)
+  { return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf,
+         4 * sizeof(long long),
+         L"%lld", __val); }
+
+  inline wstring
+  to_wstring(unsigned long long __val)
+  { return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf,
+         4 * sizeof(unsigned long long),
+         L"%llu", __val); }
+
+  inline wstring
+  to_wstring(float __val)
+  {
+    const int __n =
+      __gnu_cxx::__numeric_traits<float>::__max_exponent10 + 20;
+    return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf, __n,
+         L"%f", __val);
+  }
+
+  inline wstring
+  to_wstring(double __val)
+  {
+    const int __n =
+      __gnu_cxx::__numeric_traits<double>::__max_exponent10 + 20;
+    return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf, __n,
+         L"%f", __val);
+  }
+
+  inline wstring
+  to_wstring(long double __val)
+  {
+    const int __n =
+      __gnu_cxx::__numeric_traits<long double>::__max_exponent10 + 20;
+    return __gnu_cxx::__to_xstring<wstring>(&std::vswprintf, __n,
+         L"%Lf", __val);
+  }
+
+
+
+}
+
+}
+
+
+
+
+
+
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+
+
+
+
+  template<>
+    struct hash<string>
+    : public __hash_base<size_t, string>
+    {
+      size_t
+      operator()(const string& __s) const noexcept
+      { return std::_Hash_impl::hash(__s.data(), __s.length()); }
+    };
+
+  template<>
+    struct __is_fast_hash<hash<string>> : std::false_type
+    { };
+
+
+
+  template<>
+    struct hash<wstring>
+    : public __hash_base<size_t, wstring>
+    {
+      size_t
+      operator()(const wstring& __s) const noexcept
+      { return std::_Hash_impl::hash(__s.data(),
+                                     __s.length() * sizeof(wchar_t)); }
+    };
+
+  template<>
+    struct __is_fast_hash<hash<wstring>> : std::false_type
+    { };
+
+
+
+
+
+  template<>
+    struct hash<u16string>
+    : public __hash_base<size_t, u16string>
+    {
+      size_t
+      operator()(const u16string& __s) const noexcept
+      { return std::_Hash_impl::hash(__s.data(),
+                                     __s.length() * sizeof(char16_t)); }
+    };
+
+  template<>
+    struct __is_fast_hash<hash<u16string>> : std::false_type
+    { };
+
+
+  template<>
+    struct hash<u32string>
+    : public __hash_base<size_t, u32string>
+    {
+      size_t
+      operator()(const u32string& __s) const noexcept
+      { return std::_Hash_impl::hash(__s.data(),
+                                     __s.length() * sizeof(char32_t)); }
+    };
+
+  template<>
+    struct __is_fast_hash<hash<u32string>> : std::false_type
+    { };
+# 5758 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h" 3
+}
+# 53 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/string" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.tcc" 1 3
+# 43 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.tcc" 3
+
+
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    const typename basic_string<_CharT, _Traits, _Alloc>::size_type
+    basic_string<_CharT, _Traits, _Alloc>::npos;
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    void
+    basic_string<_CharT, _Traits, _Alloc>::
+    swap(basic_string& __s) noexcept
+    {
+      if (this == &__s)
+ return;
+
+      _Alloc_traits::_S_on_swap(_M_get_allocator(), __s._M_get_allocator());
+
+      if (_M_is_local())
+ if (__s._M_is_local())
+   {
+     if (length() && __s.length())
+       {
+  _CharT __tmp_data[_S_local_capacity + 1];
+  traits_type::copy(__tmp_data, __s._M_local_buf,
+      _S_local_capacity + 1);
+  traits_type::copy(__s._M_local_buf, _M_local_buf,
+      _S_local_capacity + 1);
+  traits_type::copy(_M_local_buf, __tmp_data,
+      _S_local_capacity + 1);
+       }
+     else if (__s.length())
+       {
+  traits_type::copy(_M_local_buf, __s._M_local_buf,
+      _S_local_capacity + 1);
+  _M_length(__s.length());
+  __s._M_set_length(0);
+  return;
+       }
+     else if (length())
+       {
+  traits_type::copy(__s._M_local_buf, _M_local_buf,
+      _S_local_capacity + 1);
+  __s._M_length(length());
+  _M_set_length(0);
+  return;
+       }
+   }
+ else
+   {
+     const size_type __tmp_capacity = __s._M_allocated_capacity;
+     traits_type::copy(__s._M_local_buf, _M_local_buf,
+         _S_local_capacity + 1);
+     _M_data(__s._M_data());
+     __s._M_data(__s._M_local_buf);
+     _M_capacity(__tmp_capacity);
+   }
+      else
+ {
+   const size_type __tmp_capacity = _M_allocated_capacity;
+   if (__s._M_is_local())
+     {
+       traits_type::copy(_M_local_buf, __s._M_local_buf,
+    _S_local_capacity + 1);
+       __s._M_data(_M_data());
+       _M_data(_M_local_buf);
+     }
+   else
+     {
+       pointer __tmp_ptr = _M_data();
+       _M_data(__s._M_data());
+       __s._M_data(__tmp_ptr);
+       _M_capacity(__s._M_allocated_capacity);
+     }
+   __s._M_capacity(__tmp_capacity);
+ }
+
+      const size_type __tmp_length = length();
+      _M_length(__s.length());
+      __s._M_length(__tmp_length);
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    typename basic_string<_CharT, _Traits, _Alloc>::pointer
+    basic_string<_CharT, _Traits, _Alloc>::
+    _M_create(size_type& __capacity, size_type __old_capacity)
+    {
+
+
+      if (__capacity > max_size())
+ std::__throw_length_error(("basic_string::_M_create"));
+
+
+
+
+      if (__capacity > __old_capacity && __capacity < 2 * __old_capacity)
+ {
+   __capacity = 2 * __old_capacity;
+
+   if (__capacity > max_size())
+     __capacity = max_size();
+ }
+
+
+
+      return _Alloc_traits::allocate(_M_get_allocator(), __capacity + 1);
+    }
+
+
+
+
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    template<typename _InIterator>
+      void
+      basic_string<_CharT, _Traits, _Alloc>::
+      _M_construct(_InIterator __beg, _InIterator __end,
+     std::input_iterator_tag)
+      {
+ size_type __len = 0;
+ size_type __capacity = size_type(_S_local_capacity);
+
+ while (__beg != __end && __len < __capacity)
+   {
+     _M_data()[__len++] = *__beg;
+     ++__beg;
+   }
+
+ try
+   {
+     while (__beg != __end)
+       {
+  if (__len == __capacity)
+    {
+
+      __capacity = __len + 1;
+      pointer __another = _M_create(__capacity, __len);
+      this->_S_copy(__another, _M_data(), __len);
+      _M_dispose();
+      _M_data(__another);
+      _M_capacity(__capacity);
+    }
+  _M_data()[__len++] = *__beg;
+  ++__beg;
+       }
+   }
+ catch(...)
+   {
+     _M_dispose();
+     throw;
+   }
+
+ _M_set_length(__len);
+      }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    template<typename _InIterator>
+      void
+      basic_string<_CharT, _Traits, _Alloc>::
+      _M_construct(_InIterator __beg, _InIterator __end,
+     std::forward_iterator_tag)
+      {
+
+ if (__gnu_cxx::__is_null_pointer(__beg) && __beg != __end)
+   std::__throw_logic_error(("basic_string::" "_M_construct null not valid"));
+
+
+ size_type __dnew = static_cast<size_type>(std::distance(__beg, __end));
+
+ if (__dnew > size_type(_S_local_capacity))
+   {
+     _M_data(_M_create(__dnew, size_type(0)));
+     _M_capacity(__dnew);
+   }
+
+
+ try
+   { this->_S_copy_chars(_M_data(), __beg, __end); }
+ catch(...)
+   {
+     _M_dispose();
+     throw;
+   }
+
+ _M_set_length(__dnew);
+      }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    void
+    basic_string<_CharT, _Traits, _Alloc>::
+    _M_construct(size_type __n, _CharT __c)
+    {
+      if (__n > size_type(_S_local_capacity))
+ {
+   _M_data(_M_create(__n, size_type(0)));
+   _M_capacity(__n);
+ }
+
+      if (__n)
+ this->_S_assign(_M_data(), __n, __c);
+
+      _M_set_length(__n);
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    void
+    basic_string<_CharT, _Traits, _Alloc>::
+    _M_assign(const basic_string& __str)
+    {
+      if (this != &__str)
+ {
+   const size_type __rsize = __str.length();
+   const size_type __capacity = capacity();
+
+   if (__rsize > __capacity)
+     {
+       size_type __new_capacity = __rsize;
+       pointer __tmp = _M_create(__new_capacity, __capacity);
+       _M_dispose();
+       _M_data(__tmp);
+       _M_capacity(__new_capacity);
+     }
+
+   if (__rsize)
+     this->_S_copy(_M_data(), __str._M_data(), __rsize);
+
+   _M_set_length(__rsize);
+ }
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    void
+    basic_string<_CharT, _Traits, _Alloc>::
+    reserve(size_type __res)
+    {
+
+      if (__res < length())
+ __res = length();
+
+      const size_type __capacity = capacity();
+      if (__res != __capacity)
+ {
+   if (__res > __capacity
+       || __res > size_type(_S_local_capacity))
+     {
+       pointer __tmp = _M_create(__res, __capacity);
+       this->_S_copy(__tmp, _M_data(), length() + 1);
+       _M_dispose();
+       _M_data(__tmp);
+       _M_capacity(__res);
+     }
+   else if (!_M_is_local())
+     {
+       this->_S_copy(_M_local_data(), _M_data(), length() + 1);
+       _M_destroy(__capacity);
+       _M_data(_M_local_data());
+     }
+ }
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    void
+    basic_string<_CharT, _Traits, _Alloc>::
+    _M_mutate(size_type __pos, size_type __len1, const _CharT* __s,
+       size_type __len2)
+    {
+      const size_type __how_much = length() - __pos - __len1;
+
+      size_type __new_capacity = length() + __len2 - __len1;
+      pointer __r = _M_create(__new_capacity, capacity());
+
+      if (__pos)
+ this->_S_copy(__r, _M_data(), __pos);
+      if (__s && __len2)
+ this->_S_copy(__r + __pos, __s, __len2);
+      if (__how_much)
+ this->_S_copy(__r + __pos + __len2,
+        _M_data() + __pos + __len1, __how_much);
+
+      _M_dispose();
+      _M_data(__r);
+      _M_capacity(__new_capacity);
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    void
+    basic_string<_CharT, _Traits, _Alloc>::
+    _M_erase(size_type __pos, size_type __n)
+    {
+      const size_type __how_much = length() - __pos - __n;
+
+      if (__how_much && __n)
+ this->_S_move(_M_data() + __pos, _M_data() + __pos + __n, __how_much);
+
+      _M_set_length(length() - __n);
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    void
+    basic_string<_CharT, _Traits, _Alloc>::
+    resize(size_type __n, _CharT __c)
+    {
+      const size_type __size = this->size();
+      if (__size < __n)
+ this->append(__n - __size, __c);
+      else if (__n < __size)
+ this->_M_erase(__n, __size - __n);
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    basic_string<_CharT, _Traits, _Alloc>&
+    basic_string<_CharT, _Traits, _Alloc>::
+    _M_append(const _CharT* __s, size_type __n)
+    {
+      const size_type __len = __n + this->size();
+
+      if (__len <= this->capacity())
+ {
+   if (__n)
+     this->_S_copy(this->_M_data() + this->size(), __s, __n);
+ }
+      else
+ this->_M_mutate(this->size(), size_type(0), __s, __n);
+
+      this->_M_set_length(__len);
+      return *this;
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    template<typename _InputIterator>
+      basic_string<_CharT, _Traits, _Alloc>&
+      basic_string<_CharT, _Traits, _Alloc>::
+      _M_replace_dispatch(const_iterator __i1, const_iterator __i2,
+     _InputIterator __k1, _InputIterator __k2,
+     std::__false_type)
+      {
+ const basic_string __s(__k1, __k2);
+ const size_type __n1 = __i2 - __i1;
+ return _M_replace(__i1 - begin(), __n1, __s._M_data(),
+     __s.size());
+      }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    basic_string<_CharT, _Traits, _Alloc>&
+    basic_string<_CharT, _Traits, _Alloc>::
+    _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2,
+     _CharT __c)
+    {
+      _M_check_length(__n1, __n2, "basic_string::_M_replace_aux");
+
+      const size_type __old_size = this->size();
+      const size_type __new_size = __old_size + __n2 - __n1;
+
+      if (__new_size <= this->capacity())
+ {
+   pointer __p = this->_M_data() + __pos1;
+
+   const size_type __how_much = __old_size - __pos1 - __n1;
+   if (__how_much && __n1 != __n2)
+     this->_S_move(__p + __n2, __p + __n1, __how_much);
+ }
+      else
+ this->_M_mutate(__pos1, __n1, 0, __n2);
+
+      if (__n2)
+ this->_S_assign(this->_M_data() + __pos1, __n2, __c);
+
+      this->_M_set_length(__new_size);
+      return *this;
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    basic_string<_CharT, _Traits, _Alloc>&
+    basic_string<_CharT, _Traits, _Alloc>::
+    _M_replace(size_type __pos, size_type __len1, const _CharT* __s,
+        const size_type __len2)
+    {
+      _M_check_length(__len1, __len2, "basic_string::_M_replace");
+
+      const size_type __old_size = this->size();
+      const size_type __new_size = __old_size + __len2 - __len1;
+
+      if (__new_size <= this->capacity())
+ {
+   pointer __p = this->_M_data() + __pos;
+
+   const size_type __how_much = __old_size - __pos - __len1;
+   if (_M_disjunct(__s))
+     {
+       if (__how_much && __len1 != __len2)
+  this->_S_move(__p + __len2, __p + __len1, __how_much);
+       if (__len2)
+  this->_S_copy(__p, __s, __len2);
+     }
+   else
+     {
+
+       if (__len2 && __len2 <= __len1)
+  this->_S_move(__p, __s, __len2);
+       if (__how_much && __len1 != __len2)
+  this->_S_move(__p + __len2, __p + __len1, __how_much);
+       if (__len2 > __len1)
+  {
+    if (__s + __len2 <= __p + __len1)
+      this->_S_move(__p, __s, __len2);
+    else if (__s >= __p + __len1)
+      this->_S_copy(__p, __s + __len2 - __len1, __len2);
+    else
+      {
+        const size_type __nleft = (__p + __len1) - __s;
+        this->_S_move(__p, __s, __nleft);
+        this->_S_copy(__p + __nleft, __p + __len2,
+        __len2 - __nleft);
+      }
+  }
+     }
+ }
+      else
+ this->_M_mutate(__pos, __len1, __s, __len2);
+
+      this->_M_set_length(__new_size);
+      return *this;
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    typename basic_string<_CharT, _Traits, _Alloc>::size_type
+    basic_string<_CharT, _Traits, _Alloc>::
+    copy(_CharT* __s, size_type __n, size_type __pos) const
+    {
+      _M_check(__pos, "basic_string::copy");
+      __n = _M_limit(__pos, __n);
+                                             ;
+      if (__n)
+ _S_copy(__s, _M_data() + __pos, __n);
+
+      return __n;
+    }
+# 1145 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.tcc" 3
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    basic_string<_CharT, _Traits, _Alloc>
+    operator+(const _CharT* __lhs,
+       const basic_string<_CharT, _Traits, _Alloc>& __rhs)
+    {
+                                      ;
+      typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
+      typedef typename __string_type::size_type __size_type;
+      const __size_type __len = _Traits::length(__lhs);
+      __string_type __str;
+      __str.reserve(__len + __rhs.size());
+      __str.append(__lhs, __len);
+      __str.append(__rhs);
+      return __str;
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    basic_string<_CharT, _Traits, _Alloc>
+    operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs)
+    {
+      typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
+      typedef typename __string_type::size_type __size_type;
+      __string_type __str;
+      const __size_type __len = __rhs.size();
+      __str.reserve(__len + 1);
+      __str.append(__size_type(1), __lhs);
+      __str.append(__rhs);
+      return __str;
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    typename basic_string<_CharT, _Traits, _Alloc>::size_type
+    basic_string<_CharT, _Traits, _Alloc>::
+    find(const _CharT* __s, size_type __pos, size_type __n) const
+    {
+                                             ;
+      const size_type __size = this->size();
+      const _CharT* __data = _M_data();
+
+      if (__n == 0)
+ return __pos <= __size ? __pos : npos;
+
+      if (__n <= __size)
+ {
+   for (; __pos <= __size - __n; ++__pos)
+     if (traits_type::eq(__data[__pos], __s[0])
+  && traits_type::compare(__data + __pos + 1,
+     __s + 1, __n - 1) == 0)
+       return __pos;
+ }
+      return npos;
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    typename basic_string<_CharT, _Traits, _Alloc>::size_type
+    basic_string<_CharT, _Traits, _Alloc>::
+    find(_CharT __c, size_type __pos) const noexcept
+    {
+      size_type __ret = npos;
+      const size_type __size = this->size();
+      if (__pos < __size)
+ {
+   const _CharT* __data = _M_data();
+   const size_type __n = __size - __pos;
+   const _CharT* __p = traits_type::find(__data + __pos, __n, __c);
+   if (__p)
+     __ret = __p - __data;
+ }
+      return __ret;
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    typename basic_string<_CharT, _Traits, _Alloc>::size_type
+    basic_string<_CharT, _Traits, _Alloc>::
+    rfind(const _CharT* __s, size_type __pos, size_type __n) const
+    {
+                                             ;
+      const size_type __size = this->size();
+      if (__n <= __size)
+ {
+   __pos = std::min(size_type(__size - __n), __pos);
+   const _CharT* __data = _M_data();
+   do
+     {
+       if (traits_type::compare(__data + __pos, __s, __n) == 0)
+  return __pos;
+     }
+   while (__pos-- > 0);
+ }
+      return npos;
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    typename basic_string<_CharT, _Traits, _Alloc>::size_type
+    basic_string<_CharT, _Traits, _Alloc>::
+    rfind(_CharT __c, size_type __pos) const noexcept
+    {
+      size_type __size = this->size();
+      if (__size)
+ {
+   if (--__size > __pos)
+     __size = __pos;
+   for (++__size; __size-- > 0; )
+     if (traits_type::eq(_M_data()[__size], __c))
+       return __size;
+ }
+      return npos;
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    typename basic_string<_CharT, _Traits, _Alloc>::size_type
+    basic_string<_CharT, _Traits, _Alloc>::
+    find_first_of(const _CharT* __s, size_type __pos, size_type __n) const
+    {
+                                             ;
+      for (; __n && __pos < this->size(); ++__pos)
+ {
+   const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]);
+   if (__p)
+     return __pos;
+ }
+      return npos;
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    typename basic_string<_CharT, _Traits, _Alloc>::size_type
+    basic_string<_CharT, _Traits, _Alloc>::
+    find_last_of(const _CharT* __s, size_type __pos, size_type __n) const
+    {
+                                             ;
+      size_type __size = this->size();
+      if (__size && __n)
+ {
+   if (--__size > __pos)
+     __size = __pos;
+   do
+     {
+       if (traits_type::find(__s, __n, _M_data()[__size]))
+  return __size;
+     }
+   while (__size-- != 0);
+ }
+      return npos;
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    typename basic_string<_CharT, _Traits, _Alloc>::size_type
+    basic_string<_CharT, _Traits, _Alloc>::
+    find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const
+    {
+                                             ;
+      for (; __pos < this->size(); ++__pos)
+ if (!traits_type::find(__s, __n, _M_data()[__pos]))
+   return __pos;
+      return npos;
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    typename basic_string<_CharT, _Traits, _Alloc>::size_type
+    basic_string<_CharT, _Traits, _Alloc>::
+    find_first_not_of(_CharT __c, size_type __pos) const noexcept
+    {
+      for (; __pos < this->size(); ++__pos)
+ if (!traits_type::eq(_M_data()[__pos], __c))
+   return __pos;
+      return npos;
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    typename basic_string<_CharT, _Traits, _Alloc>::size_type
+    basic_string<_CharT, _Traits, _Alloc>::
+    find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const
+    {
+                                             ;
+      size_type __size = this->size();
+      if (__size)
+ {
+   if (--__size > __pos)
+     __size = __pos;
+   do
+     {
+       if (!traits_type::find(__s, __n, _M_data()[__size]))
+  return __size;
+     }
+   while (__size--);
+ }
+      return npos;
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    typename basic_string<_CharT, _Traits, _Alloc>::size_type
+    basic_string<_CharT, _Traits, _Alloc>::
+    find_last_not_of(_CharT __c, size_type __pos) const noexcept
+    {
+      size_type __size = this->size();
+      if (__size)
+ {
+   if (--__size > __pos)
+     __size = __pos;
+   do
+     {
+       if (!traits_type::eq(_M_data()[__size], __c))
+  return __size;
+     }
+   while (__size--);
+ }
+      return npos;
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    int
+    basic_string<_CharT, _Traits, _Alloc>::
+    compare(size_type __pos, size_type __n, const basic_string& __str) const
+    {
+      _M_check(__pos, "basic_string::compare");
+      __n = _M_limit(__pos, __n);
+      const size_type __osize = __str.size();
+      const size_type __len = std::min(__n, __osize);
+      int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len);
+      if (!__r)
+ __r = _S_compare(__n, __osize);
+      return __r;
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    int
+    basic_string<_CharT, _Traits, _Alloc>::
+    compare(size_type __pos1, size_type __n1, const basic_string& __str,
+     size_type __pos2, size_type __n2) const
+    {
+      _M_check(__pos1, "basic_string::compare");
+      __str._M_check(__pos2, "basic_string::compare");
+      __n1 = _M_limit(__pos1, __n1);
+      __n2 = __str._M_limit(__pos2, __n2);
+      const size_type __len = std::min(__n1, __n2);
+      int __r = traits_type::compare(_M_data() + __pos1,
+         __str.data() + __pos2, __len);
+      if (!__r)
+ __r = _S_compare(__n1, __n2);
+      return __r;
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    int
+    basic_string<_CharT, _Traits, _Alloc>::
+    compare(const _CharT* __s) const
+    {
+                                    ;
+      const size_type __size = this->size();
+      const size_type __osize = traits_type::length(__s);
+      const size_type __len = std::min(__size, __osize);
+      int __r = traits_type::compare(_M_data(), __s, __len);
+      if (!__r)
+ __r = _S_compare(__size, __osize);
+      return __r;
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    int
+    basic_string <_CharT, _Traits, _Alloc>::
+    compare(size_type __pos, size_type __n1, const _CharT* __s) const
+    {
+                                    ;
+      _M_check(__pos, "basic_string::compare");
+      __n1 = _M_limit(__pos, __n1);
+      const size_type __osize = traits_type::length(__s);
+      const size_type __len = std::min(__n1, __osize);
+      int __r = traits_type::compare(_M_data() + __pos, __s, __len);
+      if (!__r)
+ __r = _S_compare(__n1, __osize);
+      return __r;
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    int
+    basic_string <_CharT, _Traits, _Alloc>::
+    compare(size_type __pos, size_type __n1, const _CharT* __s,
+     size_type __n2) const
+    {
+                                              ;
+      _M_check(__pos, "basic_string::compare");
+      __n1 = _M_limit(__pos, __n1);
+      const size_type __len = std::min(__n1, __n2);
+      int __r = traits_type::compare(_M_data() + __pos, __s, __len);
+      if (!__r)
+ __r = _S_compare(__n1, __n2);
+      return __r;
+    }
+
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    basic_istream<_CharT, _Traits>&
+    operator>>(basic_istream<_CharT, _Traits>& __in,
+        basic_string<_CharT, _Traits, _Alloc>& __str)
+    {
+      typedef basic_istream<_CharT, _Traits> __istream_type;
+      typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
+      typedef typename __istream_type::ios_base __ios_base;
+      typedef typename __istream_type::int_type __int_type;
+      typedef typename __string_type::size_type __size_type;
+      typedef ctype<_CharT> __ctype_type;
+      typedef typename __ctype_type::ctype_base __ctype_base;
+
+      __size_type __extracted = 0;
+      typename __ios_base::iostate __err = __ios_base::goodbit;
+      typename __istream_type::sentry __cerb(__in, false);
+      if (__cerb)
+ {
+   try
+     {
+
+       __str.erase();
+       _CharT __buf[128];
+       __size_type __len = 0;
+       const streamsize __w = __in.width();
+       const __size_type __n = __w > 0 ? static_cast<__size_type>(__w)
+                                : __str.max_size();
+       const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc());
+       const __int_type __eof = _Traits::eof();
+       __int_type __c = __in.rdbuf()->sgetc();
+
+       while (__extracted < __n
+       && !_Traits::eq_int_type(__c, __eof)
+       && !__ct.is(__ctype_base::space,
+     _Traits::to_char_type(__c)))
+  {
+    if (__len == sizeof(__buf) / sizeof(_CharT))
+      {
+        __str.append(__buf, sizeof(__buf) / sizeof(_CharT));
+        __len = 0;
+      }
+    __buf[__len++] = _Traits::to_char_type(__c);
+    ++__extracted;
+    __c = __in.rdbuf()->snextc();
+  }
+       __str.append(__buf, __len);
+
+       if (_Traits::eq_int_type(__c, __eof))
+  __err |= __ios_base::eofbit;
+       __in.width(0);
+     }
+   catch(__cxxabiv1::__forced_unwind&)
+     {
+       __in._M_setstate(__ios_base::badbit);
+       throw;
+     }
+   catch(...)
+     {
+
+
+
+       __in._M_setstate(__ios_base::badbit);
+     }
+ }
+
+      if (!__extracted)
+ __err |= __ios_base::failbit;
+      if (__err)
+ __in.setstate(__err);
+      return __in;
+    }
+
+  template<typename _CharT, typename _Traits, typename _Alloc>
+    basic_istream<_CharT, _Traits>&
+    getline(basic_istream<_CharT, _Traits>& __in,
+     basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim)
+    {
+      typedef basic_istream<_CharT, _Traits> __istream_type;
+      typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
+      typedef typename __istream_type::ios_base __ios_base;
+      typedef typename __istream_type::int_type __int_type;
+      typedef typename __string_type::size_type __size_type;
+
+      __size_type __extracted = 0;
+      const __size_type __n = __str.max_size();
+      typename __ios_base::iostate __err = __ios_base::goodbit;
+      typename __istream_type::sentry __cerb(__in, true);
+      if (__cerb)
+ {
+   try
+     {
+       __str.erase();
+       const __int_type __idelim = _Traits::to_int_type(__delim);
+       const __int_type __eof = _Traits::eof();
+       __int_type __c = __in.rdbuf()->sgetc();
+
+       while (__extracted < __n
+       && !_Traits::eq_int_type(__c, __eof)
+       && !_Traits::eq_int_type(__c, __idelim))
+  {
+    __str += _Traits::to_char_type(__c);
+    ++__extracted;
+    __c = __in.rdbuf()->snextc();
+  }
+
+       if (_Traits::eq_int_type(__c, __eof))
+  __err |= __ios_base::eofbit;
+       else if (_Traits::eq_int_type(__c, __idelim))
+  {
+    ++__extracted;
+    __in.rdbuf()->sbumpc();
+  }
+       else
+  __err |= __ios_base::failbit;
+     }
+   catch(__cxxabiv1::__forced_unwind&)
+     {
+       __in._M_setstate(__ios_base::badbit);
+       throw;
+     }
+   catch(...)
+     {
+
+
+
+       __in._M_setstate(__ios_base::badbit);
+     }
+ }
+      if (!__extracted)
+ __err |= __ios_base::failbit;
+      if (__err)
+ __in.setstate(__err);
+      return __in;
+    }
+
+
+
+
+  extern template class basic_string<char>;
+  extern template
+    basic_istream<char>&
+    operator>>(basic_istream<char>&, string&);
+  extern template
+    basic_ostream<char>&
+    operator<<(basic_ostream<char>&, const string&);
+  extern template
+    basic_istream<char>&
+    getline(basic_istream<char>&, string&, char);
+  extern template
+    basic_istream<char>&
+    getline(basic_istream<char>&, string&);
+
+
+  extern template class basic_string<wchar_t>;
+  extern template
+    basic_istream<wchar_t>&
+    operator>>(basic_istream<wchar_t>&, wstring&);
+  extern template
+    basic_ostream<wchar_t>&
+    operator<<(basic_ostream<wchar_t>&, const wstring&);
+  extern template
+    basic_istream<wchar_t>&
+    getline(basic_istream<wchar_t>&, wstring&, wchar_t);
+  extern template
+    basic_istream<wchar_t>&
+    getline(basic_istream<wchar_t>&, wstring&);
+
+
+
+
+}
+# 54 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/string" 2 3
+# 40 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/stdexcept" 2 3
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+
+
+
+  struct __cow_string
+  {
+    union {
+      const char* _M_p;
+      char _M_bytes[sizeof(const char*)];
+    };
+
+    __cow_string();
+    __cow_string(const std::string&);
+    __cow_string(const char*, size_t);
+    __cow_string(const __cow_string&) noexcept;
+    __cow_string& operator=(const __cow_string&) noexcept;
+    ~__cow_string();
+
+    __cow_string(__cow_string&&) noexcept;
+    __cow_string& operator=(__cow_string&&) noexcept;
+
+  };
+
+  typedef basic_string<char> __sso_string;
+# 113 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/stdexcept" 3
+  class logic_error : public exception
+  {
+    __cow_string _M_msg;
+
+  public:
+
+    explicit
+    logic_error(const string& __arg) ;
+
+
+    explicit
+    logic_error(const char*) ;
+
+
+
+    logic_error(const logic_error&) noexcept;
+    logic_error& operator=(const logic_error&) noexcept;
+
+
+    virtual ~logic_error() noexcept;
+
+
+
+    virtual const char*
+    what() const noexcept;
+
+
+
+
+
+  };
+
+
+
+  class domain_error : public logic_error
+  {
+  public:
+    explicit domain_error(const string& __arg) ;
+
+    explicit domain_error(const char*) ;
+
+    virtual ~domain_error() noexcept;
+  };
+
+
+  class invalid_argument : public logic_error
+  {
+  public:
+    explicit invalid_argument(const string& __arg) ;
+
+    explicit invalid_argument(const char*) ;
+
+    virtual ~invalid_argument() noexcept;
+  };
+
+
+
+  class length_error : public logic_error
+  {
+  public:
+    explicit length_error(const string& __arg) ;
+
+    explicit length_error(const char*) ;
+
+    virtual ~length_error() noexcept;
+  };
+
+
+
+  class out_of_range : public logic_error
+  {
+  public:
+    explicit out_of_range(const string& __arg) ;
+
+    explicit out_of_range(const char*) ;
+
+    virtual ~out_of_range() noexcept;
+  };
+
+
+
+
+
+
+  class runtime_error : public exception
+  {
+    __cow_string _M_msg;
+
+  public:
+
+    explicit
+    runtime_error(const string& __arg) ;
+
+
+    explicit
+    runtime_error(const char*) ;
+
+
+
+    runtime_error(const runtime_error&) noexcept;
+    runtime_error& operator=(const runtime_error&) noexcept;
+
+
+    virtual ~runtime_error() noexcept;
+
+
+
+    virtual const char*
+    what() const noexcept;
+
+
+
+
+
+  };
+
+
+  class range_error : public runtime_error
+  {
+  public:
+    explicit range_error(const string& __arg) ;
+
+    explicit range_error(const char*) ;
+
+    virtual ~range_error() noexcept;
+  };
+
+
+  class overflow_error : public runtime_error
+  {
+  public:
+    explicit overflow_error(const string& __arg) ;
+
+    explicit overflow_error(const char*) ;
+
+    virtual ~overflow_error() noexcept;
+  };
+
+
+  class underflow_error : public runtime_error
+  {
+  public:
+    explicit underflow_error(const string& __arg) ;
+
+    explicit underflow_error(const char*) ;
+
+    virtual ~underflow_error() noexcept;
+  };
+
+
+
+
+}
+# 40 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/array" 2 3
+
+
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+  template<typename _Tp, std::size_t _Nm>
+    struct __array_traits
+    {
+      typedef _Tp _Type[_Nm];
+
+      static constexpr _Tp&
+      _S_ref(const _Type& __t, std::size_t __n) noexcept
+      { return const_cast<_Tp&>(__t[__n]); }
+
+      static constexpr _Tp*
+      _S_ptr(const _Type& __t) noexcept
+      { return const_cast<_Tp*>(__t); }
+    };
+
+ template<typename _Tp>
+   struct __array_traits<_Tp, 0>
+   {
+     struct _Type { };
+
+     static constexpr _Tp&
+     _S_ref(const _Type&, std::size_t) noexcept
+     { return *static_cast<_Tp*>(nullptr); }
+
+     static constexpr _Tp*
+     _S_ptr(const _Type&) noexcept
+     { return nullptr; }
+   };
+# 89 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/array" 3
+  template<typename _Tp, std::size_t _Nm>
+    struct array
+    {
+      typedef _Tp value_type;
+      typedef value_type* pointer;
+      typedef const value_type* const_pointer;
+      typedef value_type& reference;
+      typedef const value_type& const_reference;
+      typedef value_type* iterator;
+      typedef const value_type* const_iterator;
+      typedef std::size_t size_type;
+      typedef std::ptrdiff_t difference_type;
+      typedef std::reverse_iterator<iterator> reverse_iterator;
+      typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
+
+
+      typedef std::__array_traits<_Tp, _Nm> _AT_Type;
+      typename _AT_Type::_Type _M_elems;
+
+
+
+
+      void
+      fill(const value_type& __u)
+      { std::fill_n(begin(), size(), __u); }
+
+      void
+      swap(array& __other)
+      noexcept(__is_nothrow_swappable<_Tp>::value)
+      { std::swap_ranges(begin(), end(), __other.begin()); }
+
+
+      iterator
+      begin() noexcept
+      { return iterator(data()); }
+
+      const_iterator
+      begin() const noexcept
+      { return const_iterator(data()); }
+
+      iterator
+      end() noexcept
+      { return iterator(data() + _Nm); }
+
+      const_iterator
+      end() const noexcept
+      { return const_iterator(data() + _Nm); }
+
+      reverse_iterator
+      rbegin() noexcept
+      { return reverse_iterator(end()); }
+
+      const_reverse_iterator
+      rbegin() const noexcept
+      { return const_reverse_iterator(end()); }
+
+      reverse_iterator
+      rend() noexcept
+      { return reverse_iterator(begin()); }
+
+      const_reverse_iterator
+      rend() const noexcept
+      { return const_reverse_iterator(begin()); }
+
+      const_iterator
+      cbegin() const noexcept
+      { return const_iterator(data()); }
+
+      const_iterator
+      cend() const noexcept
+      { return const_iterator(data() + _Nm); }
+
+      const_reverse_iterator
+      crbegin() const noexcept
+      { return const_reverse_iterator(end()); }
+
+      const_reverse_iterator
+      crend() const noexcept
+      { return const_reverse_iterator(begin()); }
+
+
+      constexpr size_type
+      size() const noexcept { return _Nm; }
+
+      constexpr size_type
+      max_size() const noexcept { return _Nm; }
+
+      constexpr bool
+      empty() const noexcept { return size() == 0; }
+
+
+      reference
+      operator[](size_type __n) noexcept
+      { return _AT_Type::_S_ref(_M_elems, __n); }
+
+      constexpr const_reference
+      operator[](size_type __n) const noexcept
+      { return _AT_Type::_S_ref(_M_elems, __n); }
+
+      reference
+      at(size_type __n)
+      {
+ if (__n >= _Nm)
+   std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)"),
+
+     __n, _Nm);
+ return _AT_Type::_S_ref(_M_elems, __n);
+      }
+
+      constexpr const_reference
+      at(size_type __n) const
+      {
+
+
+ return __n < _Nm ? _AT_Type::_S_ref(_M_elems, __n)
+   : (std::__throw_out_of_range_fmt(("array::at: __n (which is %zu) " ">= _Nm (which is %zu)"),
+
+        __n, _Nm),
+      _AT_Type::_S_ref(_M_elems, 0));
+      }
+
+      reference
+      front() noexcept
+      { return *begin(); }
+
+      constexpr const_reference
+      front() const noexcept
+      { return _AT_Type::_S_ref(_M_elems, 0); }
+
+      reference
+      back() noexcept
+      { return _Nm ? *(end() - 1) : *end(); }
+
+      constexpr const_reference
+      back() const noexcept
+      {
+ return _Nm ? _AT_Type::_S_ref(_M_elems, _Nm - 1)
+             : _AT_Type::_S_ref(_M_elems, 0);
+      }
+
+      pointer
+      data() noexcept
+      { return _AT_Type::_S_ptr(_M_elems); }
+
+      const_pointer
+      data() const noexcept
+      { return _AT_Type::_S_ptr(_M_elems); }
+    };
+
+
+  template<typename _Tp, std::size_t _Nm>
+    inline bool
+    operator==(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two)
+    { return std::equal(__one.begin(), __one.end(), __two.begin()); }
+
+  template<typename _Tp, std::size_t _Nm>
+    inline bool
+    operator!=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two)
+    { return !(__one == __two); }
+
+  template<typename _Tp, std::size_t _Nm>
+    inline bool
+    operator<(const array<_Tp, _Nm>& __a, const array<_Tp, _Nm>& __b)
+    {
+      return std::lexicographical_compare(__a.begin(), __a.end(),
+       __b.begin(), __b.end());
+    }
+
+  template<typename _Tp, std::size_t _Nm>
+    inline bool
+    operator>(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two)
+    { return __two < __one; }
+
+  template<typename _Tp, std::size_t _Nm>
+    inline bool
+    operator<=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two)
+    { return !(__one > __two); }
+
+  template<typename _Tp, std::size_t _Nm>
+    inline bool
+    operator>=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two)
+    { return !(__one < __two); }
+
+
+  template<typename _Tp, std::size_t _Nm>
+    inline void
+    swap(array<_Tp, _Nm>& __one, array<_Tp, _Nm>& __two)
+    noexcept(noexcept(__one.swap(__two)))
+    { __one.swap(__two); }
+
+  template<std::size_t _Int, typename _Tp, std::size_t _Nm>
+    constexpr _Tp&
+    get(array<_Tp, _Nm>& __arr) noexcept
+    {
+      static_assert(_Int < _Nm, "index is out of bounds");
+      return std::__array_traits<_Tp, _Nm>::
+ _S_ref(__arr._M_elems, _Int);
+    }
+
+  template<std::size_t _Int, typename _Tp, std::size_t _Nm>
+    constexpr _Tp&&
+    get(array<_Tp, _Nm>&& __arr) noexcept
+    {
+      static_assert(_Int < _Nm, "index is out of bounds");
+      return std::move(std::get<_Int>(__arr));
+    }
+
+  template<std::size_t _Int, typename _Tp, std::size_t _Nm>
+    constexpr const _Tp&
+    get(const array<_Tp, _Nm>& __arr) noexcept
+    {
+      static_assert(_Int < _Nm, "index is out of bounds");
+      return std::__array_traits<_Tp, _Nm>::
+ _S_ref(__arr._M_elems, _Int);
+    }
+
+
+}
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+
+
+
+  template<typename _Tp>
+    class tuple_size;
+
+
+  template<typename _Tp, std::size_t _Nm>
+    struct tuple_size<std::array<_Tp, _Nm>>
+    : public integral_constant<std::size_t, _Nm> { };
+
+
+  template<std::size_t _Int, typename _Tp>
+    class tuple_element;
+
+
+  template<std::size_t _Int, typename _Tp, std::size_t _Nm>
+    struct tuple_element<_Int, std::array<_Tp, _Nm>>
+    {
+      static_assert(_Int < _Nm, "index is out of bounds");
+      typedef _Tp type;
+    };
+
+  template<typename _Tp, std::size_t _Nm>
+    struct __is_tuple_like_impl<std::array<_Tp, _Nm>> : true_type
+    { };
+
+
+}
+# 40 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/tuple" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/uses_allocator.h" 1 3
+# 35 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/uses_allocator.h" 3
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+  struct __erased_type { };
+
+  template<typename _Alloc, typename _Tp>
+    using __is_erased_or_convertible
+      = __or_<is_same<_Tp, __erased_type>, is_convertible<_Alloc, _Tp>>;
+
+
+  struct allocator_arg_t { explicit allocator_arg_t() = default; };
+
+  constexpr allocator_arg_t allocator_arg = allocator_arg_t();
+
+  template<typename _Tp, typename _Alloc, typename = __void_t<>>
+    struct __uses_allocator_helper
+    : false_type { };
+
+  template<typename _Tp, typename _Alloc>
+    struct __uses_allocator_helper<_Tp, _Alloc,
+       __void_t<typename _Tp::allocator_type>>
+    : __is_erased_or_convertible<_Alloc, typename _Tp::allocator_type>::type
+    { };
+
+
+  template<typename _Tp, typename _Alloc>
+    struct uses_allocator
+    : __uses_allocator_helper<_Tp, _Alloc>::type
+    { };
+
+  struct __uses_alloc_base { };
+
+  struct __uses_alloc0 : __uses_alloc_base
+  {
+    struct _Sink { void operator=(const void*) { } } _M_a;
+  };
+
+  template<typename _Alloc>
+    struct __uses_alloc1 : __uses_alloc_base { const _Alloc* _M_a; };
+
+  template<typename _Alloc>
+    struct __uses_alloc2 : __uses_alloc_base { const _Alloc* _M_a; };
+
+  template<bool, typename _Tp, typename _Alloc, typename... _Args>
+    struct __uses_alloc;
+
+  template<typename _Tp, typename _Alloc, typename... _Args>
+    struct __uses_alloc<true, _Tp, _Alloc, _Args...>
+    : conditional<
+        is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>::value,
+        __uses_alloc1<_Alloc>,
+        __uses_alloc2<_Alloc>>::type
+    {
+      static_assert(__or_<
+   is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>,
+   is_constructible<_Tp, _Args..., _Alloc>>::value, "construction with"
+   " an allocator must be possible if uses_allocator is true");
+    };
+
+  template<typename _Tp, typename _Alloc, typename... _Args>
+    struct __uses_alloc<false, _Tp, _Alloc, _Args...>
+    : __uses_alloc0 { };
+
+  template<typename _Tp, typename _Alloc, typename... _Args>
+    using __uses_alloc_t =
+      __uses_alloc<uses_allocator<_Tp, _Alloc>::value, _Tp, _Alloc, _Args...>;
+
+  template<typename _Tp, typename _Alloc, typename... _Args>
+    inline __uses_alloc_t<_Tp, _Alloc, _Args...>
+    __use_alloc(const _Alloc& __a)
+    {
+      __uses_alloc_t<_Tp, _Alloc, _Args...> __ret;
+      __ret._M_a = std::__addressof(__a);
+      return __ret;
+    }
+
+
+}
+# 41 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/tuple" 2 3
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+
+
+
+
+
+  template<std::size_t _Idx, typename _Head, bool _IsEmptyNotFinal>
+    struct _Head_base;
+
+  template<std::size_t _Idx, typename _Head>
+    struct _Head_base<_Idx, _Head, true>
+    : public _Head
+    {
+      constexpr _Head_base()
+      : _Head() { }
+
+      constexpr _Head_base(const _Head& __h)
+      : _Head(__h) { }
+
+      constexpr _Head_base(const _Head_base&) = default;
+      constexpr _Head_base(_Head_base&&) = default;
+
+      template<typename _UHead>
+        constexpr _Head_base(_UHead&& __h)
+ : _Head(std::forward<_UHead>(__h)) { }
+
+      _Head_base(allocator_arg_t, __uses_alloc0)
+      : _Head() { }
+
+      template<typename _Alloc>
+ _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a)
+ : _Head(allocator_arg, *__a._M_a) { }
+
+      template<typename _Alloc>
+ _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a)
+ : _Head(*__a._M_a) { }
+
+      template<typename _UHead>
+ _Head_base(__uses_alloc0, _UHead&& __uhead)
+ : _Head(std::forward<_UHead>(__uhead)) { }
+
+      template<typename _Alloc, typename _UHead>
+ _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead)
+ : _Head(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead)) { }
+
+      template<typename _Alloc, typename _UHead>
+ _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead)
+ : _Head(std::forward<_UHead>(__uhead), *__a._M_a) { }
+
+      static constexpr _Head&
+      _M_head(_Head_base& __b) noexcept { return __b; }
+
+      static constexpr const _Head&
+      _M_head(const _Head_base& __b) noexcept { return __b; }
+    };
+
+  template<std::size_t _Idx, typename _Head>
+    struct _Head_base<_Idx, _Head, false>
+    {
+      constexpr _Head_base()
+      : _M_head_impl() { }
+
+      constexpr _Head_base(const _Head& __h)
+      : _M_head_impl(__h) { }
+
+      constexpr _Head_base(const _Head_base&) = default;
+      constexpr _Head_base(_Head_base&&) = default;
+
+      template<typename _UHead>
+        constexpr _Head_base(_UHead&& __h)
+ : _M_head_impl(std::forward<_UHead>(__h)) { }
+
+      _Head_base(allocator_arg_t, __uses_alloc0)
+      : _M_head_impl() { }
+
+      template<typename _Alloc>
+ _Head_base(allocator_arg_t, __uses_alloc1<_Alloc> __a)
+ : _M_head_impl(allocator_arg, *__a._M_a) { }
+
+      template<typename _Alloc>
+ _Head_base(allocator_arg_t, __uses_alloc2<_Alloc> __a)
+ : _M_head_impl(*__a._M_a) { }
+
+      template<typename _UHead>
+ _Head_base(__uses_alloc0, _UHead&& __uhead)
+ : _M_head_impl(std::forward<_UHead>(__uhead)) { }
+
+      template<typename _Alloc, typename _UHead>
+ _Head_base(__uses_alloc1<_Alloc> __a, _UHead&& __uhead)
+ : _M_head_impl(allocator_arg, *__a._M_a, std::forward<_UHead>(__uhead))
+ { }
+
+      template<typename _Alloc, typename _UHead>
+ _Head_base(__uses_alloc2<_Alloc> __a, _UHead&& __uhead)
+ : _M_head_impl(std::forward<_UHead>(__uhead), *__a._M_a) { }
+
+      static constexpr _Head&
+      _M_head(_Head_base& __b) noexcept { return __b._M_head_impl; }
+
+      static constexpr const _Head&
+      _M_head(const _Head_base& __b) noexcept { return __b._M_head_impl; }
+
+      _Head _M_head_impl;
+    };
+# 158 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/tuple" 3
+  template<std::size_t _Idx, typename... _Elements>
+    struct _Tuple_impl;
+
+  template<typename _Tp>
+    struct __is_empty_non_tuple : is_empty<_Tp> { };
+
+
+  template<typename _El0, typename... _El>
+    struct __is_empty_non_tuple<tuple<_El0, _El...>> : false_type { };
+
+
+  template<typename _Tp>
+    using __empty_not_final
+    = typename conditional<__is_final(_Tp), false_type,
+      __is_empty_non_tuple<_Tp>>::type;
+
+
+
+
+
+
+  template<std::size_t _Idx, typename _Head, typename... _Tail>
+    struct _Tuple_impl<_Idx, _Head, _Tail...>
+    : public _Tuple_impl<_Idx + 1, _Tail...>,
+      private _Head_base<_Idx, _Head, __empty_not_final<_Head>::value>
+    {
+      template<std::size_t, typename...> friend class _Tuple_impl;
+
+      typedef _Tuple_impl<_Idx + 1, _Tail...> _Inherited;
+      typedef _Head_base<_Idx, _Head, __empty_not_final<_Head>::value> _Base;
+
+      static constexpr _Head&
+      _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); }
+
+      static constexpr const _Head&
+      _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); }
+
+      static constexpr _Inherited&
+      _M_tail(_Tuple_impl& __t) noexcept { return __t; }
+
+      static constexpr const _Inherited&
+      _M_tail(const _Tuple_impl& __t) noexcept { return __t; }
+
+      constexpr _Tuple_impl()
+      : _Inherited(), _Base() { }
+
+      explicit
+      constexpr _Tuple_impl(const _Head& __head, const _Tail&... __tail)
+      : _Inherited(__tail...), _Base(__head) { }
+
+      template<typename _UHead, typename... _UTail, typename = typename
+               enable_if<sizeof...(_Tail) == sizeof...(_UTail)>::type>
+        explicit
+        constexpr _Tuple_impl(_UHead&& __head, _UTail&&... __tail)
+ : _Inherited(std::forward<_UTail>(__tail)...),
+   _Base(std::forward<_UHead>(__head)) { }
+
+      constexpr _Tuple_impl(const _Tuple_impl&) = default;
+
+      constexpr
+      _Tuple_impl(_Tuple_impl&& __in)
+      noexcept(__and_<is_nothrow_move_constructible<_Head>,
+               is_nothrow_move_constructible<_Inherited>>::value)
+      : _Inherited(std::move(_M_tail(__in))),
+ _Base(std::forward<_Head>(_M_head(__in))) { }
+
+      template<typename... _UElements>
+        constexpr _Tuple_impl(const _Tuple_impl<_Idx, _UElements...>& __in)
+ : _Inherited(_Tuple_impl<_Idx, _UElements...>::_M_tail(__in)),
+   _Base(_Tuple_impl<_Idx, _UElements...>::_M_head(__in)) { }
+
+      template<typename _UHead, typename... _UTails>
+        constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in)
+ : _Inherited(std::move
+       (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))),
+   _Base(std::forward<_UHead>
+  (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) { }
+
+      template<typename _Alloc>
+ _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a)
+ : _Inherited(__tag, __a),
+          _Base(__tag, __use_alloc<_Head>(__a)) { }
+
+      template<typename _Alloc>
+ _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a,
+      const _Head& __head, const _Tail&... __tail)
+ : _Inherited(__tag, __a, __tail...),
+          _Base(__use_alloc<_Head, _Alloc, _Head>(__a), __head) { }
+
+      template<typename _Alloc, typename _UHead, typename... _UTail,
+               typename = typename enable_if<sizeof...(_Tail)
+          == sizeof...(_UTail)>::type>
+ _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a,
+             _UHead&& __head, _UTail&&... __tail)
+ : _Inherited(__tag, __a, std::forward<_UTail>(__tail)...),
+          _Base(__use_alloc<_Head, _Alloc, _UHead>(__a),
+         std::forward<_UHead>(__head)) { }
+
+      template<typename _Alloc>
+        _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a,
+             const _Tuple_impl& __in)
+ : _Inherited(__tag, __a, _M_tail(__in)),
+          _Base(__use_alloc<_Head, _Alloc, _Head>(__a), _M_head(__in)) { }
+
+      template<typename _Alloc>
+ _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a,
+             _Tuple_impl&& __in)
+ : _Inherited(__tag, __a, std::move(_M_tail(__in))),
+   _Base(__use_alloc<_Head, _Alloc, _Head>(__a),
+         std::forward<_Head>(_M_head(__in))) { }
+
+      template<typename _Alloc, typename... _UElements>
+ _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a,
+             const _Tuple_impl<_Idx, _UElements...>& __in)
+ : _Inherited(__tag, __a,
+       _Tuple_impl<_Idx, _UElements...>::_M_tail(__in)),
+   _Base(__use_alloc<_Head, _Alloc, _Head>(__a),
+  _Tuple_impl<_Idx, _UElements...>::_M_head(__in)) { }
+
+      template<typename _Alloc, typename _UHead, typename... _UTails>
+ _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a,
+             _Tuple_impl<_Idx, _UHead, _UTails...>&& __in)
+ : _Inherited(__tag, __a, std::move
+       (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in))),
+   _Base(__use_alloc<_Head, _Alloc, _UHead>(__a),
+                std::forward<_UHead>
+  (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in))) { }
+
+      _Tuple_impl&
+      operator=(const _Tuple_impl& __in)
+      {
+ _M_head(*this) = _M_head(__in);
+ _M_tail(*this) = _M_tail(__in);
+ return *this;
+      }
+
+      _Tuple_impl&
+      operator=(_Tuple_impl&& __in)
+      noexcept(__and_<is_nothrow_move_assignable<_Head>,
+               is_nothrow_move_assignable<_Inherited>>::value)
+      {
+ _M_head(*this) = std::forward<_Head>(_M_head(__in));
+ _M_tail(*this) = std::move(_M_tail(__in));
+ return *this;
+      }
+
+      template<typename... _UElements>
+        _Tuple_impl&
+        operator=(const _Tuple_impl<_Idx, _UElements...>& __in)
+        {
+   _M_head(*this) = _Tuple_impl<_Idx, _UElements...>::_M_head(__in);
+   _M_tail(*this) = _Tuple_impl<_Idx, _UElements...>::_M_tail(__in);
+   return *this;
+ }
+
+      template<typename _UHead, typename... _UTails>
+        _Tuple_impl&
+        operator=(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in)
+        {
+   _M_head(*this) = std::forward<_UHead>
+     (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_head(__in));
+   _M_tail(*this) = std::move
+     (_Tuple_impl<_Idx, _UHead, _UTails...>::_M_tail(__in));
+   return *this;
+ }
+
+    protected:
+      void
+      _M_swap(_Tuple_impl& __in)
+      noexcept(__is_nothrow_swappable<_Head>::value
+               && noexcept(_M_tail(__in)._M_swap(_M_tail(__in))))
+      {
+ using std::swap;
+ swap(_M_head(*this), _M_head(__in));
+ _Inherited::_M_swap(_M_tail(__in));
+      }
+    };
+
+
+  template<std::size_t _Idx, typename _Head>
+    struct _Tuple_impl<_Idx, _Head>
+    : private _Head_base<_Idx, _Head, __empty_not_final<_Head>::value>
+    {
+      template<std::size_t, typename...> friend class _Tuple_impl;
+
+      typedef _Head_base<_Idx, _Head, __empty_not_final<_Head>::value> _Base;
+
+      static constexpr _Head&
+      _M_head(_Tuple_impl& __t) noexcept { return _Base::_M_head(__t); }
+
+      static constexpr const _Head&
+      _M_head(const _Tuple_impl& __t) noexcept { return _Base::_M_head(__t); }
+
+      constexpr _Tuple_impl()
+      : _Base() { }
+
+      explicit
+      constexpr _Tuple_impl(const _Head& __head)
+      : _Base(__head) { }
+
+      template<typename _UHead>
+        explicit
+        constexpr _Tuple_impl(_UHead&& __head)
+ : _Base(std::forward<_UHead>(__head)) { }
+
+      constexpr _Tuple_impl(const _Tuple_impl&) = default;
+
+      constexpr
+      _Tuple_impl(_Tuple_impl&& __in)
+      noexcept(is_nothrow_move_constructible<_Head>::value)
+      : _Base(std::forward<_Head>(_M_head(__in))) { }
+
+      template<typename _UHead>
+        constexpr _Tuple_impl(const _Tuple_impl<_Idx, _UHead>& __in)
+ : _Base(_Tuple_impl<_Idx, _UHead>::_M_head(__in)) { }
+
+      template<typename _UHead>
+        constexpr _Tuple_impl(_Tuple_impl<_Idx, _UHead>&& __in)
+ : _Base(std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in)))
+ { }
+
+      template<typename _Alloc>
+ _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a)
+ : _Base(__tag, __use_alloc<_Head>(__a)) { }
+
+      template<typename _Alloc>
+ _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a,
+      const _Head& __head)
+ : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), __head) { }
+
+      template<typename _Alloc, typename _UHead>
+ _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a,
+             _UHead&& __head)
+ : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a),
+         std::forward<_UHead>(__head)) { }
+
+      template<typename _Alloc>
+        _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a,
+             const _Tuple_impl& __in)
+ : _Base(__use_alloc<_Head, _Alloc, _Head>(__a), _M_head(__in)) { }
+
+      template<typename _Alloc>
+ _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a,
+             _Tuple_impl&& __in)
+ : _Base(__use_alloc<_Head, _Alloc, _Head>(__a),
+         std::forward<_Head>(_M_head(__in))) { }
+
+      template<typename _Alloc, typename _UHead>
+ _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a,
+             const _Tuple_impl<_Idx, _UHead>& __in)
+ : _Base(__use_alloc<_Head, _Alloc, _Head>(__a),
+  _Tuple_impl<_Idx, _UHead>::_M_head(__in)) { }
+
+      template<typename _Alloc, typename _UHead>
+ _Tuple_impl(allocator_arg_t __tag, const _Alloc& __a,
+             _Tuple_impl<_Idx, _UHead>&& __in)
+ : _Base(__use_alloc<_Head, _Alloc, _UHead>(__a),
+                std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in)))
+ { }
+
+      _Tuple_impl&
+      operator=(const _Tuple_impl& __in)
+      {
+ _M_head(*this) = _M_head(__in);
+ return *this;
+      }
+
+      _Tuple_impl&
+      operator=(_Tuple_impl&& __in)
+      noexcept(is_nothrow_move_assignable<_Head>::value)
+      {
+ _M_head(*this) = std::forward<_Head>(_M_head(__in));
+ return *this;
+      }
+
+      template<typename _UHead>
+        _Tuple_impl&
+        operator=(const _Tuple_impl<_Idx, _UHead>& __in)
+        {
+   _M_head(*this) = _Tuple_impl<_Idx, _UHead>::_M_head(__in);
+   return *this;
+ }
+
+      template<typename _UHead>
+        _Tuple_impl&
+        operator=(_Tuple_impl<_Idx, _UHead>&& __in)
+        {
+   _M_head(*this)
+     = std::forward<_UHead>(_Tuple_impl<_Idx, _UHead>::_M_head(__in));
+   return *this;
+ }
+
+    protected:
+      void
+      _M_swap(_Tuple_impl& __in)
+      noexcept(__is_nothrow_swappable<_Head>::value)
+      {
+ using std::swap;
+ swap(_M_head(*this), _M_head(__in));
+      }
+    };
+
+  template<typename... _Elements>
+    class tuple;
+
+
+
+  template<bool, typename... _Elements>
+  struct _TC
+  {
+    template<typename... _UElements>
+    static constexpr bool _ConstructibleTuple()
+    {
+      return __and_<is_constructible<_Elements, const _UElements&>...>::value;
+    }
+
+    template<typename... _UElements>
+    static constexpr bool _ImplicitlyConvertibleTuple()
+    {
+      return __and_<is_convertible<const _UElements&, _Elements>...>::value;
+    }
+
+    template<typename... _UElements>
+    static constexpr bool _MoveConstructibleTuple()
+    {
+      return __and_<is_constructible<_Elements, _UElements&&>...>::value;
+    }
+
+    template<typename... _UElements>
+    static constexpr bool _ImplicitlyMoveConvertibleTuple()
+    {
+      return __and_<is_convertible<_UElements&&, _Elements>...>::value;
+    }
+
+    template<typename _SrcTuple>
+    static constexpr bool _NonNestedTuple()
+    {
+      return __and_<__not_<is_same<tuple<_Elements...>,
+                                   typename remove_cv<
+                                     typename remove_reference<_SrcTuple>::type
+                                   >::type>>,
+                     __not_<is_convertible<_SrcTuple, _Elements...>>,
+                     __not_<is_constructible<_Elements..., _SrcTuple>>
+              >::value;
+    }
+    template<typename... _UElements>
+    static constexpr bool _NotSameTuple()
+    {
+      return __not_<is_same<tuple<_Elements...>,
+        typename remove_const<
+          typename remove_reference<_UElements...>::type
+          >::type>>::value;
+    }
+  };
+
+  template<typename... _Elements>
+  struct _TC<false, _Elements...>
+  {
+    template<typename... _UElements>
+    static constexpr bool _ConstructibleTuple()
+    {
+      return false;
+    }
+
+    template<typename... _UElements>
+    static constexpr bool _ImplicitlyConvertibleTuple()
+    {
+      return false;
+    }
+
+    template<typename... _UElements>
+    static constexpr bool _MoveConstructibleTuple()
+    {
+      return false;
+    }
+
+    template<typename... _UElements>
+    static constexpr bool _ImplicitlyMoveConvertibleTuple()
+    {
+      return false;
+    }
+
+    template<typename... _UElements>
+    static constexpr bool _NonNestedTuple()
+    {
+      return true;
+    }
+    template<typename... _UElements>
+    static constexpr bool _NotSameTuple()
+    {
+      return true;
+    }
+  };
+
+
+  template<typename... _Elements>
+    class tuple : public _Tuple_impl<0, _Elements...>
+    {
+      typedef _Tuple_impl<0, _Elements...> _Inherited;
+
+
+
+      template<typename _Dummy>
+      struct _TC2
+      {
+        static constexpr bool _DefaultConstructibleTuple()
+        {
+          return __and_<is_default_constructible<_Elements>...>::value;
+        }
+        static constexpr bool _ImplicitlyDefaultConstructibleTuple()
+        {
+          return __and_<__is_implicitly_default_constructible<_Elements>...>
+            ::value;
+        }
+      };
+
+    public:
+      template<typename _Dummy = void,
+               typename enable_if<_TC2<_Dummy>::
+                                    _ImplicitlyDefaultConstructibleTuple(),
+                                  bool>::type = true>
+      constexpr tuple()
+      : _Inherited() { }
+
+      template<typename _Dummy = void,
+               typename enable_if<_TC2<_Dummy>::
+                                    _DefaultConstructibleTuple()
+                                  &&
+                                  !_TC2<_Dummy>::
+                                    _ImplicitlyDefaultConstructibleTuple(),
+                                  bool>::type = false>
+      explicit constexpr tuple()
+      : _Inherited() { }
+
+
+
+      template<typename _Dummy> using _TCC =
+        _TC<is_same<_Dummy, void>::value,
+            _Elements...>;
+
+      template<typename _Dummy = void,
+               typename enable_if<
+                 _TCC<_Dummy>::template
+                   _ConstructibleTuple<_Elements...>()
+                 && _TCC<_Dummy>::template
+                   _ImplicitlyConvertibleTuple<_Elements...>()
+                 && (sizeof...(_Elements) >= 1),
+               bool>::type=true>
+        constexpr tuple(const _Elements&... __elements)
+      : _Inherited(__elements...) { }
+
+      template<typename _Dummy = void,
+               typename enable_if<
+                 _TCC<_Dummy>::template
+                   _ConstructibleTuple<_Elements...>()
+                 && !_TCC<_Dummy>::template
+                   _ImplicitlyConvertibleTuple<_Elements...>()
+                 && (sizeof...(_Elements) >= 1),
+               bool>::type=false>
+      explicit constexpr tuple(const _Elements&... __elements)
+      : _Inherited(__elements...) { }
+
+
+
+      template<typename... _UElements> using _TMC =
+                  _TC<(sizeof...(_Elements) == sizeof...(_UElements)),
+                      _Elements...>;
+
+      template<typename... _UElements, typename
+        enable_if<
+    _TC<sizeof...(_UElements) == 1, _Elements...>::template
+      _NotSameTuple<_UElements...>()
+    && _TMC<_UElements...>::template
+                    _MoveConstructibleTuple<_UElements...>()
+                  && _TMC<_UElements...>::template
+                    _ImplicitlyMoveConvertibleTuple<_UElements...>()
+                  && (sizeof...(_Elements) >= 1),
+        bool>::type=true>
+        constexpr tuple(_UElements&&... __elements)
+        : _Inherited(std::forward<_UElements>(__elements)...) { }
+
+      template<typename... _UElements, typename
+        enable_if<
+    _TC<sizeof...(_UElements) == 1, _Elements...>::template
+      _NotSameTuple<_UElements...>()
+    && _TMC<_UElements...>::template
+                    _MoveConstructibleTuple<_UElements...>()
+                  && !_TMC<_UElements...>::template
+                    _ImplicitlyMoveConvertibleTuple<_UElements...>()
+                  && (sizeof...(_Elements) >= 1),
+        bool>::type=false>
+        explicit constexpr tuple(_UElements&&... __elements)
+ : _Inherited(std::forward<_UElements>(__elements)...) { }
+
+      constexpr tuple(const tuple&) = default;
+
+      constexpr tuple(tuple&&) = default;
+
+
+
+      template<typename _Dummy> using _TNTC =
+        _TC<is_same<_Dummy, void>::value && sizeof...(_Elements) == 1,
+            _Elements...>;
+
+      template<typename... _UElements, typename _Dummy = void, typename
+        enable_if<_TMC<_UElements...>::template
+                    _ConstructibleTuple<_UElements...>()
+                  && _TMC<_UElements...>::template
+                    _ImplicitlyConvertibleTuple<_UElements...>()
+                  && _TNTC<_Dummy>::template
+                    _NonNestedTuple<const tuple<_UElements...>&>(),
+        bool>::type=true>
+        constexpr tuple(const tuple<_UElements...>& __in)
+        : _Inherited(static_cast<const _Tuple_impl<0, _UElements...>&>(__in))
+        { }
+
+      template<typename... _UElements, typename _Dummy = void, typename
+        enable_if<_TMC<_UElements...>::template
+                    _ConstructibleTuple<_UElements...>()
+                  && !_TMC<_UElements...>::template
+                    _ImplicitlyConvertibleTuple<_UElements...>()
+                  && _TNTC<_Dummy>::template
+                    _NonNestedTuple<const tuple<_UElements...>&>(),
+        bool>::type=false>
+        explicit constexpr tuple(const tuple<_UElements...>& __in)
+        : _Inherited(static_cast<const _Tuple_impl<0, _UElements...>&>(__in))
+        { }
+
+      template<typename... _UElements, typename _Dummy = void, typename
+        enable_if<_TMC<_UElements...>::template
+                    _MoveConstructibleTuple<_UElements...>()
+                  && _TMC<_UElements...>::template
+                    _ImplicitlyMoveConvertibleTuple<_UElements...>()
+                  && _TNTC<_Dummy>::template
+                    _NonNestedTuple<tuple<_UElements...>&&>(),
+        bool>::type=true>
+        constexpr tuple(tuple<_UElements...>&& __in)
+        : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) { }
+
+      template<typename... _UElements, typename _Dummy = void, typename
+        enable_if<_TMC<_UElements...>::template
+                    _MoveConstructibleTuple<_UElements...>()
+                  && !_TMC<_UElements...>::template
+                    _ImplicitlyMoveConvertibleTuple<_UElements...>()
+                  && _TNTC<_Dummy>::template
+                    _NonNestedTuple<tuple<_UElements...>&&>(),
+        bool>::type=false>
+        explicit constexpr tuple(tuple<_UElements...>&& __in)
+        : _Inherited(static_cast<_Tuple_impl<0, _UElements...>&&>(__in)) { }
+
+
+
+      template<typename _Alloc>
+ tuple(allocator_arg_t __tag, const _Alloc& __a)
+ : _Inherited(__tag, __a) { }
+
+      template<typename _Alloc, typename _Dummy = void,
+               typename enable_if<
+                 _TCC<_Dummy>::template
+                   _ConstructibleTuple<_Elements...>()
+                 && _TCC<_Dummy>::template
+                   _ImplicitlyConvertibleTuple<_Elements...>(),
+               bool>::type=true>
+ tuple(allocator_arg_t __tag, const _Alloc& __a,
+       const _Elements&... __elements)
+ : _Inherited(__tag, __a, __elements...) { }
+
+      template<typename _Alloc, typename _Dummy = void,
+               typename enable_if<
+                 _TCC<_Dummy>::template
+                   _ConstructibleTuple<_Elements...>()
+                 && !_TCC<_Dummy>::template
+                   _ImplicitlyConvertibleTuple<_Elements...>(),
+               bool>::type=false>
+ explicit tuple(allocator_arg_t __tag, const _Alloc& __a,
+                       const _Elements&... __elements)
+ : _Inherited(__tag, __a, __elements...) { }
+
+      template<typename _Alloc, typename... _UElements, typename
+        enable_if<_TMC<_UElements...>::template
+                    _MoveConstructibleTuple<_UElements...>()
+                  && _TMC<_UElements...>::template
+                    _ImplicitlyMoveConvertibleTuple<_UElements...>(),
+        bool>::type=true>
+ tuple(allocator_arg_t __tag, const _Alloc& __a,
+       _UElements&&... __elements)
+ : _Inherited(__tag, __a, std::forward<_UElements>(__elements)...)
+        { }
+
+      template<typename _Alloc, typename... _UElements, typename
+        enable_if<_TMC<_UElements...>::template
+                    _MoveConstructibleTuple<_UElements...>()
+                  && !_TMC<_UElements...>::template
+                    _ImplicitlyMoveConvertibleTuple<_UElements...>(),
+        bool>::type=false>
+ explicit tuple(allocator_arg_t __tag, const _Alloc& __a,
+       _UElements&&... __elements)
+ : _Inherited(__tag, __a, std::forward<_UElements>(__elements)...)
+        { }
+
+      template<typename _Alloc>
+ tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in)
+ : _Inherited(__tag, __a, static_cast<const _Inherited&>(__in)) { }
+
+      template<typename _Alloc>
+ tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in)
+ : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { }
+
+      template<typename _Alloc, typename... _UElements, typename
+        enable_if<_TMC<_UElements...>::template
+                    _ConstructibleTuple<_UElements...>()
+                  && _TMC<_UElements...>::template
+                    _ImplicitlyConvertibleTuple<_UElements...>(),
+        bool>::type=true>
+ tuple(allocator_arg_t __tag, const _Alloc& __a,
+       const tuple<_UElements...>& __in)
+ : _Inherited(__tag, __a,
+              static_cast<const _Tuple_impl<0, _UElements...>&>(__in))
+ { }
+
+      template<typename _Alloc, typename... _UElements, typename
+        enable_if<_TMC<_UElements...>::template
+                    _ConstructibleTuple<_UElements...>()
+                  && !_TMC<_UElements...>::template
+                    _ImplicitlyConvertibleTuple<_UElements...>(),
+        bool>::type=false>
+ explicit tuple(allocator_arg_t __tag, const _Alloc& __a,
+       const tuple<_UElements...>& __in)
+ : _Inherited(__tag, __a,
+              static_cast<const _Tuple_impl<0, _UElements...>&>(__in))
+ { }
+
+      template<typename _Alloc, typename... _UElements, typename
+        enable_if<_TMC<_UElements...>::template
+                    _MoveConstructibleTuple<_UElements...>()
+                  && _TMC<_UElements...>::template
+                    _ImplicitlyMoveConvertibleTuple<_UElements...>(),
+        bool>::type=true>
+ tuple(allocator_arg_t __tag, const _Alloc& __a,
+       tuple<_UElements...>&& __in)
+ : _Inherited(__tag, __a,
+              static_cast<_Tuple_impl<0, _UElements...>&&>(__in))
+ { }
+
+      template<typename _Alloc, typename... _UElements, typename
+        enable_if<_TMC<_UElements...>::template
+                    _MoveConstructibleTuple<_UElements...>()
+                  && !_TMC<_UElements...>::template
+                    _ImplicitlyMoveConvertibleTuple<_UElements...>(),
+        bool>::type=false>
+ explicit tuple(allocator_arg_t __tag, const _Alloc& __a,
+       tuple<_UElements...>&& __in)
+ : _Inherited(__tag, __a,
+              static_cast<_Tuple_impl<0, _UElements...>&&>(__in))
+ { }
+
+      tuple&
+      operator=(const tuple& __in)
+      {
+ static_cast<_Inherited&>(*this) = __in;
+ return *this;
+      }
+
+      tuple&
+      operator=(tuple&& __in)
+      noexcept(is_nothrow_move_assignable<_Inherited>::value)
+      {
+ static_cast<_Inherited&>(*this) = std::move(__in);
+ return *this;
+      }
+
+      template<typename... _UElements, typename = typename
+        enable_if<sizeof...(_UElements)
+    == sizeof...(_Elements)>::type>
+        tuple&
+        operator=(const tuple<_UElements...>& __in)
+        {
+   static_cast<_Inherited&>(*this) = __in;
+   return *this;
+ }
+
+      template<typename... _UElements, typename = typename
+        enable_if<sizeof...(_UElements)
+    == sizeof...(_Elements)>::type>
+        tuple&
+        operator=(tuple<_UElements...>&& __in)
+        {
+   static_cast<_Inherited&>(*this) = std::move(__in);
+   return *this;
+ }
+
+      void
+      swap(tuple& __in)
+      noexcept(noexcept(__in._M_swap(__in)))
+      { _Inherited::_M_swap(__in); }
+    };
+
+
+  template<>
+    class tuple<>
+    {
+    public:
+      void swap(tuple&) noexcept { }
+    };
+
+
+
+  template<typename _T1, typename _T2>
+    class tuple<_T1, _T2> : public _Tuple_impl<0, _T1, _T2>
+    {
+      typedef _Tuple_impl<0, _T1, _T2> _Inherited;
+
+    public:
+      template <typename _U1 = _T1,
+                typename _U2 = _T2,
+                typename enable_if<__and_<
+                                     __is_implicitly_default_constructible<_U1>,
+                                     __is_implicitly_default_constructible<_U2>>
+                                   ::value, bool>::type = true>
+
+      constexpr tuple()
+      : _Inherited() { }
+
+      template <typename _U1 = _T1,
+                typename _U2 = _T2,
+                typename enable_if<
+                  __and_<
+                    is_default_constructible<_U1>,
+                    is_default_constructible<_U2>,
+                    __not_<
+                      __and_<__is_implicitly_default_constructible<_U1>,
+                             __is_implicitly_default_constructible<_U2>>>>
+                  ::value, bool>::type = false>
+
+      explicit constexpr tuple()
+      : _Inherited() { }
+
+
+
+      template<typename _Dummy> using _TCC =
+        _TC<is_same<_Dummy, void>::value, _T1, _T2>;
+
+      template<typename _Dummy = void, typename
+               enable_if<_TCC<_Dummy>::template
+                           _ConstructibleTuple<_T1, _T2>()
+                         && _TCC<_Dummy>::template
+                           _ImplicitlyConvertibleTuple<_T1, _T2>(),
+ bool>::type = true>
+        constexpr tuple(const _T1& __a1, const _T2& __a2)
+        : _Inherited(__a1, __a2) { }
+
+      template<typename _Dummy = void, typename
+               enable_if<_TCC<_Dummy>::template
+                           _ConstructibleTuple<_T1, _T2>()
+                         && !_TCC<_Dummy>::template
+                           _ImplicitlyConvertibleTuple<_T1, _T2>(),
+ bool>::type = false>
+        explicit constexpr tuple(const _T1& __a1, const _T2& __a2)
+        : _Inherited(__a1, __a2) { }
+
+
+
+      using _TMC = _TC<true, _T1, _T2>;
+
+      template<typename _U1, typename _U2, typename
+        enable_if<_TMC::template
+                    _MoveConstructibleTuple<_U1, _U2>()
+                  && _TMC::template
+                    _ImplicitlyMoveConvertibleTuple<_U1, _U2>()
+           && !is_same<typename decay<_U1>::type,
+         allocator_arg_t>::value,
+ bool>::type = true>
+        constexpr tuple(_U1&& __a1, _U2&& __a2)
+ : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) { }
+
+      template<typename _U1, typename _U2, typename
+        enable_if<_TMC::template
+                    _MoveConstructibleTuple<_U1, _U2>()
+                  && !_TMC::template
+                    _ImplicitlyMoveConvertibleTuple<_U1, _U2>()
+           && !is_same<typename decay<_U1>::type,
+         allocator_arg_t>::value,
+ bool>::type = false>
+        explicit constexpr tuple(_U1&& __a1, _U2&& __a2)
+ : _Inherited(std::forward<_U1>(__a1), std::forward<_U2>(__a2)) { }
+
+      constexpr tuple(const tuple&) = default;
+
+      constexpr tuple(tuple&&) = default;
+
+      template<typename _U1, typename _U2, typename
+        enable_if<_TMC::template
+                    _ConstructibleTuple<_U1, _U2>()
+                  && _TMC::template
+                    _ImplicitlyConvertibleTuple<_U1, _U2>(),
+ bool>::type = true>
+        constexpr tuple(const tuple<_U1, _U2>& __in)
+ : _Inherited(static_cast<const _Tuple_impl<0, _U1, _U2>&>(__in)) { }
+
+      template<typename _U1, typename _U2, typename
+        enable_if<_TMC::template
+                    _ConstructibleTuple<_U1, _U2>()
+                  && !_TMC::template
+                    _ImplicitlyConvertibleTuple<_U1, _U2>(),
+ bool>::type = false>
+        explicit constexpr tuple(const tuple<_U1, _U2>& __in)
+ : _Inherited(static_cast<const _Tuple_impl<0, _U1, _U2>&>(__in)) { }
+
+      template<typename _U1, typename _U2, typename
+        enable_if<_TMC::template
+                    _MoveConstructibleTuple<_U1, _U2>()
+                  && _TMC::template
+                    _ImplicitlyMoveConvertibleTuple<_U1, _U2>(),
+ bool>::type = true>
+        constexpr tuple(tuple<_U1, _U2>&& __in)
+ : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) { }
+
+      template<typename _U1, typename _U2, typename
+        enable_if<_TMC::template
+                    _MoveConstructibleTuple<_U1, _U2>()
+                  && !_TMC::template
+                    _ImplicitlyMoveConvertibleTuple<_U1, _U2>(),
+ bool>::type = false>
+        explicit constexpr tuple(tuple<_U1, _U2>&& __in)
+ : _Inherited(static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in)) { }
+
+      template<typename _U1, typename _U2, typename
+        enable_if<_TMC::template
+                    _ConstructibleTuple<_U1, _U2>()
+                  && _TMC::template
+                    _ImplicitlyConvertibleTuple<_U1, _U2>(),
+ bool>::type = true>
+        constexpr tuple(const pair<_U1, _U2>& __in)
+ : _Inherited(__in.first, __in.second) { }
+
+      template<typename _U1, typename _U2, typename
+        enable_if<_TMC::template
+                    _ConstructibleTuple<_U1, _U2>()
+                  && !_TMC::template
+                    _ImplicitlyConvertibleTuple<_U1, _U2>(),
+ bool>::type = false>
+        explicit constexpr tuple(const pair<_U1, _U2>& __in)
+ : _Inherited(__in.first, __in.second) { }
+
+      template<typename _U1, typename _U2, typename
+        enable_if<_TMC::template
+                    _MoveConstructibleTuple<_U1, _U2>()
+                  && _TMC::template
+                    _ImplicitlyMoveConvertibleTuple<_U1, _U2>(),
+ bool>::type = true>
+        constexpr tuple(pair<_U1, _U2>&& __in)
+ : _Inherited(std::forward<_U1>(__in.first),
+       std::forward<_U2>(__in.second)) { }
+
+      template<typename _U1, typename _U2, typename
+        enable_if<_TMC::template
+                    _MoveConstructibleTuple<_U1, _U2>()
+                  && !_TMC::template
+                    _ImplicitlyMoveConvertibleTuple<_U1, _U2>(),
+ bool>::type = false>
+        explicit constexpr tuple(pair<_U1, _U2>&& __in)
+ : _Inherited(std::forward<_U1>(__in.first),
+       std::forward<_U2>(__in.second)) { }
+
+
+
+      template<typename _Alloc>
+ tuple(allocator_arg_t __tag, const _Alloc& __a)
+ : _Inherited(__tag, __a) { }
+
+      template<typename _Alloc, typename _Dummy = void,
+               typename enable_if<
+                 _TCC<_Dummy>::template
+                   _ConstructibleTuple<_T1, _T2>()
+                 && _TCC<_Dummy>::template
+                   _ImplicitlyConvertibleTuple<_T1, _T2>(),
+               bool>::type=true>
+
+ tuple(allocator_arg_t __tag, const _Alloc& __a,
+       const _T1& __a1, const _T2& __a2)
+ : _Inherited(__tag, __a, __a1, __a2) { }
+
+      template<typename _Alloc, typename _Dummy = void,
+               typename enable_if<
+                 _TCC<_Dummy>::template
+                   _ConstructibleTuple<_T1, _T2>()
+                 && !_TCC<_Dummy>::template
+                   _ImplicitlyConvertibleTuple<_T1, _T2>(),
+               bool>::type=false>
+
+ explicit tuple(allocator_arg_t __tag, const _Alloc& __a,
+       const _T1& __a1, const _T2& __a2)
+ : _Inherited(__tag, __a, __a1, __a2) { }
+
+      template<typename _Alloc, typename _U1, typename _U2, typename
+        enable_if<_TMC::template
+                    _MoveConstructibleTuple<_U1, _U2>()
+                  && _TMC::template
+                    _ImplicitlyMoveConvertibleTuple<_U1, _U2>(),
+ bool>::type = true>
+ tuple(allocator_arg_t __tag, const _Alloc& __a, _U1&& __a1, _U2&& __a2)
+ : _Inherited(__tag, __a, std::forward<_U1>(__a1),
+              std::forward<_U2>(__a2)) { }
+
+      template<typename _Alloc, typename _U1, typename _U2, typename
+        enable_if<_TMC::template
+                    _MoveConstructibleTuple<_U1, _U2>()
+                  && !_TMC::template
+                    _ImplicitlyMoveConvertibleTuple<_U1, _U2>(),
+ bool>::type = false>
+ explicit tuple(allocator_arg_t __tag, const _Alloc& __a,
+                       _U1&& __a1, _U2&& __a2)
+ : _Inherited(__tag, __a, std::forward<_U1>(__a1),
+              std::forward<_U2>(__a2)) { }
+
+      template<typename _Alloc>
+ tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in)
+ : _Inherited(__tag, __a, static_cast<const _Inherited&>(__in)) { }
+
+      template<typename _Alloc>
+ tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in)
+ : _Inherited(__tag, __a, static_cast<_Inherited&&>(__in)) { }
+
+      template<typename _Alloc, typename _U1, typename _U2, typename
+        enable_if<_TMC::template
+                    _ConstructibleTuple<_U1, _U2>()
+                  && _TMC::template
+                    _ImplicitlyConvertibleTuple<_U1, _U2>(),
+ bool>::type = true>
+ tuple(allocator_arg_t __tag, const _Alloc& __a,
+       const tuple<_U1, _U2>& __in)
+ : _Inherited(__tag, __a,
+              static_cast<const _Tuple_impl<0, _U1, _U2>&>(__in))
+ { }
+
+      template<typename _Alloc, typename _U1, typename _U2, typename
+        enable_if<_TMC::template
+                    _ConstructibleTuple<_U1, _U2>()
+                  && !_TMC::template
+                    _ImplicitlyConvertibleTuple<_U1, _U2>(),
+ bool>::type = false>
+ explicit tuple(allocator_arg_t __tag, const _Alloc& __a,
+       const tuple<_U1, _U2>& __in)
+ : _Inherited(__tag, __a,
+              static_cast<const _Tuple_impl<0, _U1, _U2>&>(__in))
+ { }
+
+      template<typename _Alloc, typename _U1, typename _U2, typename
+        enable_if<_TMC::template
+                    _MoveConstructibleTuple<_U1, _U2>()
+                  && _TMC::template
+                    _ImplicitlyMoveConvertibleTuple<_U1, _U2>(),
+ bool>::type = true>
+ tuple(allocator_arg_t __tag, const _Alloc& __a, tuple<_U1, _U2>&& __in)
+ : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in))
+ { }
+
+      template<typename _Alloc, typename _U1, typename _U2, typename
+        enable_if<_TMC::template
+                    _MoveConstructibleTuple<_U1, _U2>()
+                  && !_TMC::template
+                    _ImplicitlyMoveConvertibleTuple<_U1, _U2>(),
+ bool>::type = false>
+ explicit tuple(allocator_arg_t __tag, const _Alloc& __a,
+                       tuple<_U1, _U2>&& __in)
+ : _Inherited(__tag, __a, static_cast<_Tuple_impl<0, _U1, _U2>&&>(__in))
+ { }
+
+      template<typename _Alloc, typename _U1, typename _U2, typename
+        enable_if<_TMC::template
+                    _ConstructibleTuple<_U1, _U2>()
+                  && _TMC::template
+                    _ImplicitlyConvertibleTuple<_U1, _U2>(),
+ bool>::type = true>
+        tuple(allocator_arg_t __tag, const _Alloc& __a,
+       const pair<_U1, _U2>& __in)
+ : _Inherited(__tag, __a, __in.first, __in.second) { }
+
+      template<typename _Alloc, typename _U1, typename _U2, typename
+        enable_if<_TMC::template
+                    _ConstructibleTuple<_U1, _U2>()
+                  && !_TMC::template
+                    _ImplicitlyConvertibleTuple<_U1, _U2>(),
+ bool>::type = false>
+        explicit tuple(allocator_arg_t __tag, const _Alloc& __a,
+       const pair<_U1, _U2>& __in)
+ : _Inherited(__tag, __a, __in.first, __in.second) { }
+
+      template<typename _Alloc, typename _U1, typename _U2, typename
+        enable_if<_TMC::template
+                    _MoveConstructibleTuple<_U1, _U2>()
+                  && _TMC::template
+                    _ImplicitlyMoveConvertibleTuple<_U1, _U2>(),
+ bool>::type = true>
+        tuple(allocator_arg_t __tag, const _Alloc& __a, pair<_U1, _U2>&& __in)
+ : _Inherited(__tag, __a, std::forward<_U1>(__in.first),
+       std::forward<_U2>(__in.second)) { }
+
+      template<typename _Alloc, typename _U1, typename _U2, typename
+        enable_if<_TMC::template
+                    _MoveConstructibleTuple<_U1, _U2>()
+                  && !_TMC::template
+                    _ImplicitlyMoveConvertibleTuple<_U1, _U2>(),
+ bool>::type = false>
+        explicit tuple(allocator_arg_t __tag, const _Alloc& __a,
+                       pair<_U1, _U2>&& __in)
+ : _Inherited(__tag, __a, std::forward<_U1>(__in.first),
+       std::forward<_U2>(__in.second)) { }
+
+      tuple&
+      operator=(const tuple& __in)
+      {
+ static_cast<_Inherited&>(*this) = __in;
+ return *this;
+      }
+
+      tuple&
+      operator=(tuple&& __in)
+      noexcept(is_nothrow_move_assignable<_Inherited>::value)
+      {
+ static_cast<_Inherited&>(*this) = std::move(__in);
+ return *this;
+      }
+
+      template<typename _U1, typename _U2>
+        tuple&
+        operator=(const tuple<_U1, _U2>& __in)
+        {
+   static_cast<_Inherited&>(*this) = __in;
+   return *this;
+ }
+
+      template<typename _U1, typename _U2>
+        tuple&
+        operator=(tuple<_U1, _U2>&& __in)
+        {
+   static_cast<_Inherited&>(*this) = std::move(__in);
+   return *this;
+ }
+
+      template<typename _U1, typename _U2>
+        tuple&
+        operator=(const pair<_U1, _U2>& __in)
+        {
+   this->_M_head(*this) = __in.first;
+   this->_M_tail(*this)._M_head(*this) = __in.second;
+   return *this;
+ }
+
+      template<typename _U1, typename _U2>
+        tuple&
+        operator=(pair<_U1, _U2>&& __in)
+        {
+   this->_M_head(*this) = std::forward<_U1>(__in.first);
+   this->_M_tail(*this)._M_head(*this) = std::forward<_U2>(__in.second);
+   return *this;
+ }
+
+      void
+      swap(tuple& __in)
+      noexcept(noexcept(__in._M_swap(__in)))
+      { _Inherited::_M_swap(__in); }
+    };
+
+
+
+
+
+
+  template<std::size_t __i, typename _Head, typename... _Tail>
+    struct tuple_element<__i, tuple<_Head, _Tail...> >
+    : tuple_element<__i - 1, tuple<_Tail...> > { };
+
+
+
+
+  template<typename _Head, typename... _Tail>
+    struct tuple_element<0, tuple<_Head, _Tail...> >
+    {
+      typedef _Head type;
+    };
+
+
+  template<typename... _Elements>
+    struct tuple_size<tuple<_Elements...>>
+    : public integral_constant<std::size_t, sizeof...(_Elements)> { };
+
+  template<std::size_t __i, typename _Head, typename... _Tail>
+    constexpr _Head&
+    __get_helper(_Tuple_impl<__i, _Head, _Tail...>& __t) noexcept
+    { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); }
+
+  template<std::size_t __i, typename _Head, typename... _Tail>
+    constexpr const _Head&
+    __get_helper(const _Tuple_impl<__i, _Head, _Tail...>& __t) noexcept
+    { return _Tuple_impl<__i, _Head, _Tail...>::_M_head(__t); }
+
+
+  template<std::size_t __i, typename... _Elements>
+    constexpr __tuple_element_t<__i, tuple<_Elements...>>&
+    get(tuple<_Elements...>& __t) noexcept
+    { return std::__get_helper<__i>(__t); }
+
+
+  template<std::size_t __i, typename... _Elements>
+    constexpr const __tuple_element_t<__i, tuple<_Elements...>>&
+    get(const tuple<_Elements...>& __t) noexcept
+    { return std::__get_helper<__i>(__t); }
+
+
+  template<std::size_t __i, typename... _Elements>
+    constexpr __tuple_element_t<__i, tuple<_Elements...>>&&
+    get(tuple<_Elements...>&& __t) noexcept
+    {
+      typedef __tuple_element_t<__i, tuple<_Elements...>> __element_type;
+      return std::forward<__element_type&&>(std::get<__i>(__t));
+    }
+# 1310 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/tuple" 3
+  template<typename _Tp, typename _Up, size_t __i, size_t __size>
+    struct __tuple_compare
+    {
+      static constexpr bool
+      __eq(const _Tp& __t, const _Up& __u)
+      {
+ return bool(std::get<__i>(__t) == std::get<__i>(__u))
+   && __tuple_compare<_Tp, _Up, __i + 1, __size>::__eq(__t, __u);
+      }
+
+      static constexpr bool
+      __less(const _Tp& __t, const _Up& __u)
+      {
+ return bool(std::get<__i>(__t) < std::get<__i>(__u))
+   || (!bool(std::get<__i>(__u) < std::get<__i>(__t))
+       && __tuple_compare<_Tp, _Up, __i + 1, __size>::__less(__t, __u));
+      }
+    };
+
+  template<typename _Tp, typename _Up, size_t __size>
+    struct __tuple_compare<_Tp, _Up, __size, __size>
+    {
+      static constexpr bool
+      __eq(const _Tp&, const _Up&) { return true; }
+
+      static constexpr bool
+      __less(const _Tp&, const _Up&) { return false; }
+    };
+
+  template<typename... _TElements, typename... _UElements>
+    constexpr bool
+    operator==(const tuple<_TElements...>& __t,
+        const tuple<_UElements...>& __u)
+    {
+      static_assert(sizeof...(_TElements) == sizeof...(_UElements),
+   "tuple objects can only be compared if they have equal sizes.");
+      using __compare = __tuple_compare<tuple<_TElements...>,
+     tuple<_UElements...>,
+     0, sizeof...(_TElements)>;
+      return __compare::__eq(__t, __u);
+    }
+
+  template<typename... _TElements, typename... _UElements>
+    constexpr bool
+    operator<(const tuple<_TElements...>& __t,
+       const tuple<_UElements...>& __u)
+    {
+      static_assert(sizeof...(_TElements) == sizeof...(_UElements),
+   "tuple objects can only be compared if they have equal sizes.");
+      using __compare = __tuple_compare<tuple<_TElements...>,
+     tuple<_UElements...>,
+     0, sizeof...(_TElements)>;
+      return __compare::__less(__t, __u);
+    }
+
+  template<typename... _TElements, typename... _UElements>
+    constexpr bool
+    operator!=(const tuple<_TElements...>& __t,
+        const tuple<_UElements...>& __u)
+    { return !(__t == __u); }
+
+  template<typename... _TElements, typename... _UElements>
+    constexpr bool
+    operator>(const tuple<_TElements...>& __t,
+       const tuple<_UElements...>& __u)
+    { return __u < __t; }
+
+  template<typename... _TElements, typename... _UElements>
+    constexpr bool
+    operator<=(const tuple<_TElements...>& __t,
+        const tuple<_UElements...>& __u)
+    { return !(__u < __t); }
+
+  template<typename... _TElements, typename... _UElements>
+    constexpr bool
+    operator>=(const tuple<_TElements...>& __t,
+        const tuple<_UElements...>& __u)
+    { return !(__t < __u); }
+
+
+  template<typename... _Elements>
+    constexpr tuple<typename __decay_and_strip<_Elements>::__type...>
+    make_tuple(_Elements&&... __args)
+    {
+      typedef tuple<typename __decay_and_strip<_Elements>::__type...>
+ __result_type;
+      return __result_type(std::forward<_Elements>(__args)...);
+    }
+
+
+
+  template<typename... _Elements>
+    constexpr tuple<_Elements&&...>
+    forward_as_tuple(_Elements&&... __args) noexcept
+    { return tuple<_Elements&&...>(std::forward<_Elements>(__args)...); }
+
+  template<typename... _Tps>
+    struct __is_tuple_like_impl<tuple<_Tps...>> : true_type
+    { };
+
+
+  template<typename _Tp>
+    struct __is_tuple_like
+    : public __is_tuple_like_impl<typename std::remove_cv
+            <typename std::remove_reference<_Tp>::type>::type>::type
+    { };
+
+  template<size_t, typename, typename, size_t>
+    struct __make_tuple_impl;
+
+  template<size_t _Idx, typename _Tuple, typename... _Tp, size_t _Nm>
+    struct __make_tuple_impl<_Idx, tuple<_Tp...>, _Tuple, _Nm>
+    : __make_tuple_impl<_Idx + 1,
+   tuple<_Tp..., __tuple_element_t<_Idx, _Tuple>>,
+   _Tuple, _Nm>
+    { };
+
+  template<std::size_t _Nm, typename _Tuple, typename... _Tp>
+    struct __make_tuple_impl<_Nm, tuple<_Tp...>, _Tuple, _Nm>
+    {
+      typedef tuple<_Tp...> __type;
+    };
+
+  template<typename _Tuple>
+    struct __do_make_tuple
+    : __make_tuple_impl<0, tuple<>, _Tuple, std::tuple_size<_Tuple>::value>
+    { };
+
+
+  template<typename _Tuple>
+    struct __make_tuple
+    : public __do_make_tuple<typename std::remove_cv
+            <typename std::remove_reference<_Tuple>::type>::type>
+    { };
+
+
+  template<typename...>
+    struct __combine_tuples;
+
+  template<>
+    struct __combine_tuples<>
+    {
+      typedef tuple<> __type;
+    };
+
+  template<typename... _Ts>
+    struct __combine_tuples<tuple<_Ts...>>
+    {
+      typedef tuple<_Ts...> __type;
+    };
+
+  template<typename... _T1s, typename... _T2s, typename... _Rem>
+    struct __combine_tuples<tuple<_T1s...>, tuple<_T2s...>, _Rem...>
+    {
+      typedef typename __combine_tuples<tuple<_T1s..., _T2s...>,
+     _Rem...>::__type __type;
+    };
+
+
+  template<typename... _Tpls>
+    struct __tuple_cat_result
+    {
+      typedef typename __combine_tuples
+        <typename __make_tuple<_Tpls>::__type...>::__type __type;
+    };
+
+
+
+  template<typename...>
+    struct __make_1st_indices;
+
+  template<>
+    struct __make_1st_indices<>
+    {
+      typedef std::_Index_tuple<> __type;
+    };
+
+  template<typename _Tp, typename... _Tpls>
+    struct __make_1st_indices<_Tp, _Tpls...>
+    {
+      typedef typename std::_Build_index_tuple<std::tuple_size<
+ typename std::remove_reference<_Tp>::type>::value>::__type __type;
+    };
+
+
+
+
+  template<typename _Ret, typename _Indices, typename... _Tpls>
+    struct __tuple_concater;
+
+  template<typename _Ret, std::size_t... _Is, typename _Tp, typename... _Tpls>
+    struct __tuple_concater<_Ret, std::_Index_tuple<_Is...>, _Tp, _Tpls...>
+    {
+      template<typename... _Us>
+        static constexpr _Ret
+        _S_do(_Tp&& __tp, _Tpls&&... __tps, _Us&&... __us)
+        {
+   typedef typename __make_1st_indices<_Tpls...>::__type __idx;
+   typedef __tuple_concater<_Ret, __idx, _Tpls...> __next;
+   return __next::_S_do(std::forward<_Tpls>(__tps)...,
+          std::forward<_Us>(__us)...,
+          std::get<_Is>(std::forward<_Tp>(__tp))...);
+ }
+    };
+
+  template<typename _Ret>
+    struct __tuple_concater<_Ret, std::_Index_tuple<>>
+    {
+      template<typename... _Us>
+ static constexpr _Ret
+ _S_do(_Us&&... __us)
+        {
+   return _Ret(std::forward<_Us>(__us)...);
+ }
+    };
+
+
+  template<typename... _Tpls, typename = typename
+           enable_if<__and_<__is_tuple_like<_Tpls>...>::value>::type>
+    constexpr auto
+    tuple_cat(_Tpls&&... __tpls)
+    -> typename __tuple_cat_result<_Tpls...>::__type
+    {
+      typedef typename __tuple_cat_result<_Tpls...>::__type __ret;
+      typedef typename __make_1st_indices<_Tpls...>::__type __idx;
+      typedef __tuple_concater<__ret, __idx, _Tpls...> __concater;
+      return __concater::_S_do(std::forward<_Tpls>(__tpls)...);
+    }
+
+
+
+
+  template<typename... _Elements>
+    constexpr tuple<_Elements&...>
+    tie(_Elements&... __args) noexcept
+    { return tuple<_Elements&...>(__args...); }
+
+
+  template<typename... _Elements>
+    inline void
+    swap(tuple<_Elements...>& __x, tuple<_Elements...>& __y)
+    noexcept(noexcept(__x.swap(__y)))
+    { __x.swap(__y); }
+
+
+
+  struct _Swallow_assign
+  {
+    template<class _Tp>
+      const _Swallow_assign&
+      operator=(const _Tp&) const
+      { return *this; }
+  };
+
+  const _Swallow_assign ignore{};
+
+
+  template<typename... _Types, typename _Alloc>
+    struct uses_allocator<tuple<_Types...>, _Alloc> : true_type { };
+
+
+  template<class _T1, class _T2>
+    template<typename... _Args1, typename... _Args2>
+      inline
+      pair<_T1, _T2>::
+      pair(piecewise_construct_t,
+    tuple<_Args1...> __first, tuple<_Args2...> __second)
+      : pair(__first, __second,
+      typename _Build_index_tuple<sizeof...(_Args1)>::__type(),
+      typename _Build_index_tuple<sizeof...(_Args2)>::__type())
+      { }
+
+  template<class _T1, class _T2>
+    template<typename... _Args1, std::size_t... _Indexes1,
+             typename... _Args2, std::size_t... _Indexes2>
+      inline
+      pair<_T1, _T2>::
+      pair(tuple<_Args1...>& __tuple1, tuple<_Args2...>& __tuple2,
+    _Index_tuple<_Indexes1...>, _Index_tuple<_Indexes2...>)
+      : first(std::forward<_Args1>(std::get<_Indexes1>(__tuple1))...),
+        second(std::forward<_Args2>(std::get<_Indexes2>(__tuple2))...)
+      { }
+
+
+
+
+}
+# 64 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 2 3
+
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 94 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+  template <typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
+            typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > >
+    class map
+    {
+    public:
+      typedef _Key key_type;
+      typedef _Tp mapped_type;
+      typedef std::pair<const _Key, _Tp> value_type;
+      typedef _Compare key_compare;
+      typedef _Alloc allocator_type;
+
+    private:
+
+      typedef typename _Alloc::value_type _Alloc_value_type;
+
+
+
+
+
+    public:
+      class value_compare
+      : public std::binary_function<value_type, value_type, bool>
+      {
+ friend class map<_Key, _Tp, _Compare, _Alloc>;
+      protected:
+ _Compare comp;
+
+ value_compare(_Compare __c)
+ : comp(__c) { }
+
+      public:
+ bool operator()(const value_type& __x, const value_type& __y) const
+ { return comp(__x.first, __y.first); }
+      };
+
+    private:
+
+      typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template
+ rebind<value_type>::other _Pair_alloc_type;
+
+      typedef _Rb_tree<key_type, value_type, _Select1st<value_type>,
+         key_compare, _Pair_alloc_type> _Rep_type;
+
+
+      _Rep_type _M_t;
+
+      typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> _Alloc_traits;
+
+    public:
+
+
+      typedef typename _Alloc_traits::pointer pointer;
+      typedef typename _Alloc_traits::const_pointer const_pointer;
+      typedef typename _Alloc_traits::reference reference;
+      typedef typename _Alloc_traits::const_reference const_reference;
+      typedef typename _Rep_type::iterator iterator;
+      typedef typename _Rep_type::const_iterator const_iterator;
+      typedef typename _Rep_type::size_type size_type;
+      typedef typename _Rep_type::difference_type difference_type;
+      typedef typename _Rep_type::reverse_iterator reverse_iterator;
+      typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator;
+
+
+
+
+
+
+
+      map()
+      noexcept(is_nothrow_default_constructible<allocator_type>::value && is_nothrow_default_constructible<key_compare>::value)
+
+
+      : _M_t() { }
+
+
+
+
+
+
+      explicit
+      map(const _Compare& __comp,
+   const allocator_type& __a = allocator_type())
+      : _M_t(__comp, _Pair_alloc_type(__a)) { }
+# 185 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      map(const map& __x)
+      : _M_t(__x._M_t) { }
+# 196 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      map(map&& __x)
+      noexcept(is_nothrow_copy_constructible<_Compare>::value)
+      : _M_t(std::move(__x._M_t)) { }
+# 211 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      map(initializer_list<value_type> __l,
+   const _Compare& __comp = _Compare(),
+   const allocator_type& __a = allocator_type())
+      : _M_t(__comp, _Pair_alloc_type(__a))
+      { _M_t._M_insert_unique(__l.begin(), __l.end()); }
+
+
+      explicit
+      map(const allocator_type& __a)
+      : _M_t(_Compare(), _Pair_alloc_type(__a)) { }
+
+
+      map(const map& __m, const allocator_type& __a)
+      : _M_t(__m._M_t, _Pair_alloc_type(__a)) { }
+
+
+      map(map&& __m, const allocator_type& __a)
+      noexcept(is_nothrow_copy_constructible<_Compare>::value
+        && _Alloc_traits::_S_always_equal())
+      : _M_t(std::move(__m._M_t), _Pair_alloc_type(__a)) { }
+
+
+      map(initializer_list<value_type> __l, const allocator_type& __a)
+      : _M_t(_Compare(), _Pair_alloc_type(__a))
+      { _M_t._M_insert_unique(__l.begin(), __l.end()); }
+
+
+      template<typename _InputIterator>
+        map(_InputIterator __first, _InputIterator __last,
+     const allocator_type& __a)
+ : _M_t(_Compare(), _Pair_alloc_type(__a))
+        { _M_t._M_insert_unique(__first, __last); }
+# 255 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      template<typename _InputIterator>
+        map(_InputIterator __first, _InputIterator __last)
+ : _M_t()
+        { _M_t._M_insert_unique(__first, __last); }
+# 272 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      template<typename _InputIterator>
+        map(_InputIterator __first, _InputIterator __last,
+     const _Compare& __comp,
+     const allocator_type& __a = allocator_type())
+ : _M_t(__comp, _Pair_alloc_type(__a))
+        { _M_t._M_insert_unique(__first, __last); }
+# 295 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      map&
+      operator=(const map& __x)
+      {
+ _M_t = __x._M_t;
+ return *this;
+      }
+
+
+
+      map&
+      operator=(map&&) = default;
+# 318 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      map&
+      operator=(initializer_list<value_type> __l)
+      {
+ _M_t._M_assign_unique(__l.begin(), __l.end());
+ return *this;
+      }
+
+
+
+      allocator_type
+      get_allocator() const noexcept
+      { return allocator_type(_M_t.get_allocator()); }
+
+
+
+
+
+
+
+      iterator
+      begin() noexcept
+      { return _M_t.begin(); }
+
+
+
+
+
+
+      const_iterator
+      begin() const noexcept
+      { return _M_t.begin(); }
+
+
+
+
+
+
+      iterator
+      end() noexcept
+      { return _M_t.end(); }
+
+
+
+
+
+
+      const_iterator
+      end() const noexcept
+      { return _M_t.end(); }
+
+
+
+
+
+
+      reverse_iterator
+      rbegin() noexcept
+      { return _M_t.rbegin(); }
+
+
+
+
+
+
+      const_reverse_iterator
+      rbegin() const noexcept
+      { return _M_t.rbegin(); }
+
+
+
+
+
+
+      reverse_iterator
+      rend() noexcept
+      { return _M_t.rend(); }
+
+
+
+
+
+
+      const_reverse_iterator
+      rend() const noexcept
+      { return _M_t.rend(); }
+
+
+
+
+
+
+
+      const_iterator
+      cbegin() const noexcept
+      { return _M_t.begin(); }
+
+
+
+
+
+
+      const_iterator
+      cend() const noexcept
+      { return _M_t.end(); }
+
+
+
+
+
+
+      const_reverse_iterator
+      crbegin() const noexcept
+      { return _M_t.rbegin(); }
+
+
+
+
+
+
+      const_reverse_iterator
+      crend() const noexcept
+      { return _M_t.rend(); }
+
+
+
+
+
+
+      bool
+      empty() const noexcept
+      { return _M_t.empty(); }
+
+
+      size_type
+      size() const noexcept
+      { return _M_t.size(); }
+
+
+      size_type
+      max_size() const noexcept
+      { return _M_t.max_size(); }
+# 473 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      mapped_type&
+      operator[](const key_type& __k)
+      {
+
+
+
+ iterator __i = lower_bound(__k);
+
+ if (__i == end() || key_comp()(__k, (*__i).first))
+
+   __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct,
+         std::tuple<const key_type&>(__k),
+         std::tuple<>());
+
+
+
+ return (*__i).second;
+      }
+
+
+      mapped_type&
+      operator[](key_type&& __k)
+      {
+
+
+
+ iterator __i = lower_bound(__k);
+
+ if (__i == end() || key_comp()(__k, (*__i).first))
+   __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct,
+     std::forward_as_tuple(std::move(__k)),
+     std::tuple<>());
+ return (*__i).second;
+      }
+# 518 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      mapped_type&
+      at(const key_type& __k)
+      {
+ iterator __i = lower_bound(__k);
+ if (__i == end() || key_comp()(__k, (*__i).first))
+   __throw_out_of_range(("map::at"));
+ return (*__i).second;
+      }
+
+      const mapped_type&
+      at(const key_type& __k) const
+      {
+ const_iterator __i = lower_bound(__k);
+ if (__i == end() || key_comp()(__k, (*__i).first))
+   __throw_out_of_range(("map::at"));
+ return (*__i).second;
+      }
+# 556 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      template<typename... _Args>
+ std::pair<iterator, bool>
+ emplace(_Args&&... __args)
+ { return _M_t._M_emplace_unique(std::forward<_Args>(__args)...); }
+# 586 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      template<typename... _Args>
+ iterator
+ emplace_hint(const_iterator __pos, _Args&&... __args)
+ {
+   return _M_t._M_emplace_hint_unique(__pos,
+          std::forward<_Args>(__args)...);
+ }
+# 730 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      std::pair<iterator, bool>
+      insert(const value_type& __x)
+      { return _M_t._M_insert_unique(__x); }
+
+
+      template<typename _Pair, typename = typename
+        std::enable_if<std::is_constructible<value_type,
+          _Pair&&>::value>::type>
+        std::pair<iterator, bool>
+        insert(_Pair&& __x)
+        { return _M_t._M_insert_unique(std::forward<_Pair>(__x)); }
+# 751 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      void
+      insert(std::initializer_list<value_type> __list)
+      { insert(__list.begin(), __list.end()); }
+# 779 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      iterator
+
+      insert(const_iterator __position, const value_type& __x)
+
+
+
+      { return _M_t._M_insert_unique_(__position, __x); }
+
+
+      template<typename _Pair, typename = typename
+        std::enable_if<std::is_constructible<value_type,
+          _Pair&&>::value>::type>
+        iterator
+        insert(const_iterator __position, _Pair&& __x)
+        { return _M_t._M_insert_unique_(__position,
+     std::forward<_Pair>(__x)); }
+# 805 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      template<typename _InputIterator>
+        void
+        insert(_InputIterator __first, _InputIterator __last)
+        { _M_t._M_insert_unique(__first, __last); }
+# 943 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      iterator
+      erase(const_iterator __position)
+      { return _M_t.erase(__position); }
+
+
+      __attribute ((__abi_tag__ ("cxx11")))
+      iterator
+      erase(iterator __position)
+      { return _M_t.erase(__position); }
+# 979 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      size_type
+      erase(const key_type& __x)
+      { return _M_t.erase(__x); }
+# 999 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      iterator
+      erase(const_iterator __first, const_iterator __last)
+      { return _M_t.erase(__first, __last); }
+# 1031 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      void
+      swap(map& __x)
+      noexcept(__is_nothrow_swappable<_Compare>::value)
+      { _M_t.swap(__x._M_t); }
+
+
+
+
+
+
+
+      void
+      clear() noexcept
+      { _M_t.clear(); }
+
+
+
+
+
+
+      key_compare
+      key_comp() const
+      { return _M_t.key_comp(); }
+
+
+
+
+
+      value_compare
+      value_comp() const
+      { return value_compare(_M_t.key_comp()); }
+# 1078 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      iterator
+      find(const key_type& __x)
+      { return _M_t.find(__x); }
+# 1103 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      const_iterator
+      find(const key_type& __x) const
+      { return _M_t.find(__x); }
+# 1124 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      size_type
+      count(const key_type& __x) const
+      { return _M_t.find(__x) == _M_t.end() ? 0 : 1; }
+# 1148 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      iterator
+      lower_bound(const key_type& __x)
+      { return _M_t.lower_bound(__x); }
+# 1173 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      const_iterator
+      lower_bound(const key_type& __x) const
+      { return _M_t.lower_bound(__x); }
+# 1193 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      iterator
+      upper_bound(const key_type& __x)
+      { return _M_t.upper_bound(__x); }
+# 1213 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      const_iterator
+      upper_bound(const key_type& __x) const
+      { return _M_t.upper_bound(__x); }
+# 1242 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      std::pair<iterator, iterator>
+      equal_range(const key_type& __x)
+      { return _M_t.equal_range(__x); }
+# 1271 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      std::pair<const_iterator, const_iterator>
+      equal_range(const key_type& __x) const
+      { return _M_t.equal_range(__x); }
+# 1288 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+      template<typename _K1, typename _T1, typename _C1, typename _A1>
+        friend bool
+        operator==(const map<_K1, _T1, _C1, _A1>&,
+     const map<_K1, _T1, _C1, _A1>&);
+
+      template<typename _K1, typename _T1, typename _C1, typename _A1>
+        friend bool
+        operator<(const map<_K1, _T1, _C1, _A1>&,
+    const map<_K1, _T1, _C1, _A1>&);
+    };
+# 1309 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+  template<typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+    inline bool
+    operator==(const map<_Key, _Tp, _Compare, _Alloc>& __x,
+               const map<_Key, _Tp, _Compare, _Alloc>& __y)
+    { return __x._M_t == __y._M_t; }
+# 1326 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_map.h" 3
+  template<typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+    inline bool
+    operator<(const map<_Key, _Tp, _Compare, _Alloc>& __x,
+              const map<_Key, _Tp, _Compare, _Alloc>& __y)
+    { return __x._M_t < __y._M_t; }
+
+
+  template<typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+    inline bool
+    operator!=(const map<_Key, _Tp, _Compare, _Alloc>& __x,
+               const map<_Key, _Tp, _Compare, _Alloc>& __y)
+    { return !(__x == __y); }
+
+
+  template<typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+    inline bool
+    operator>(const map<_Key, _Tp, _Compare, _Alloc>& __x,
+              const map<_Key, _Tp, _Compare, _Alloc>& __y)
+    { return __y < __x; }
+
+
+  template<typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+    inline bool
+    operator<=(const map<_Key, _Tp, _Compare, _Alloc>& __x,
+               const map<_Key, _Tp, _Compare, _Alloc>& __y)
+    { return !(__y < __x); }
+
+
+  template<typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+    inline bool
+    operator>=(const map<_Key, _Tp, _Compare, _Alloc>& __x,
+               const map<_Key, _Tp, _Compare, _Alloc>& __y)
+    { return !(__x < __y); }
+
+
+  template<typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+    inline void
+    swap(map<_Key, _Tp, _Compare, _Alloc>& __x,
+  map<_Key, _Tp, _Compare, _Alloc>& __y)
+    noexcept(noexcept(__x.swap(__y)))
+    { __x.swap(__y); }
+
+
+}
+# 62 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/map" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 1 3
+# 64 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 92 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+  template <typename _Key, typename _Tp,
+     typename _Compare = std::less<_Key>,
+     typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > >
+    class multimap
+    {
+    public:
+      typedef _Key key_type;
+      typedef _Tp mapped_type;
+      typedef std::pair<const _Key, _Tp> value_type;
+      typedef _Compare key_compare;
+      typedef _Alloc allocator_type;
+
+    private:
+
+      typedef typename _Alloc::value_type _Alloc_value_type;
+
+
+
+
+
+    public:
+      class value_compare
+      : public std::binary_function<value_type, value_type, bool>
+      {
+ friend class multimap<_Key, _Tp, _Compare, _Alloc>;
+      protected:
+ _Compare comp;
+
+ value_compare(_Compare __c)
+ : comp(__c) { }
+
+      public:
+ bool operator()(const value_type& __x, const value_type& __y) const
+ { return comp(__x.first, __y.first); }
+      };
+
+    private:
+
+      typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template
+ rebind<value_type>::other _Pair_alloc_type;
+
+      typedef _Rb_tree<key_type, value_type, _Select1st<value_type>,
+         key_compare, _Pair_alloc_type> _Rep_type;
+
+      _Rep_type _M_t;
+
+      typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> _Alloc_traits;
+
+    public:
+
+
+      typedef typename _Alloc_traits::pointer pointer;
+      typedef typename _Alloc_traits::const_pointer const_pointer;
+      typedef typename _Alloc_traits::reference reference;
+      typedef typename _Alloc_traits::const_reference const_reference;
+      typedef typename _Rep_type::iterator iterator;
+      typedef typename _Rep_type::const_iterator const_iterator;
+      typedef typename _Rep_type::size_type size_type;
+      typedef typename _Rep_type::difference_type difference_type;
+      typedef typename _Rep_type::reverse_iterator reverse_iterator;
+      typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator;
+
+
+
+
+
+
+
+      multimap()
+      noexcept(is_nothrow_default_constructible<allocator_type>::value && is_nothrow_default_constructible<key_compare>::value)
+
+
+      : _M_t() { }
+
+
+
+
+
+
+      explicit
+      multimap(const _Compare& __comp,
+        const allocator_type& __a = allocator_type())
+      : _M_t(__comp, _Pair_alloc_type(__a)) { }
+# 183 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      multimap(const multimap& __x)
+      : _M_t(__x._M_t) { }
+# 194 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      multimap(multimap&& __x)
+      noexcept(is_nothrow_copy_constructible<_Compare>::value)
+      : _M_t(std::move(__x._M_t)) { }
+# 208 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      multimap(initializer_list<value_type> __l,
+        const _Compare& __comp = _Compare(),
+        const allocator_type& __a = allocator_type())
+      : _M_t(__comp, _Pair_alloc_type(__a))
+      { _M_t._M_insert_equal(__l.begin(), __l.end()); }
+
+
+      explicit
+      multimap(const allocator_type& __a)
+      : _M_t(_Compare(), _Pair_alloc_type(__a)) { }
+
+
+      multimap(const multimap& __m, const allocator_type& __a)
+      : _M_t(__m._M_t, _Pair_alloc_type(__a)) { }
+
+
+      multimap(multimap&& __m, const allocator_type& __a)
+      noexcept(is_nothrow_copy_constructible<_Compare>::value
+        && _Alloc_traits::_S_always_equal())
+      : _M_t(std::move(__m._M_t), _Pair_alloc_type(__a)) { }
+
+
+      multimap(initializer_list<value_type> __l, const allocator_type& __a)
+      : _M_t(_Compare(), _Pair_alloc_type(__a))
+      { _M_t._M_insert_equal(__l.begin(), __l.end()); }
+
+
+      template<typename _InputIterator>
+        multimap(_InputIterator __first, _InputIterator __last,
+   const allocator_type& __a)
+ : _M_t(_Compare(), _Pair_alloc_type(__a))
+        { _M_t._M_insert_equal(__first, __last); }
+# 251 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      template<typename _InputIterator>
+        multimap(_InputIterator __first, _InputIterator __last)
+ : _M_t()
+        { _M_t._M_insert_equal(__first, __last); }
+# 267 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      template<typename _InputIterator>
+        multimap(_InputIterator __first, _InputIterator __last,
+   const _Compare& __comp,
+   const allocator_type& __a = allocator_type())
+ : _M_t(__comp, _Pair_alloc_type(__a))
+        { _M_t._M_insert_equal(__first, __last); }
+# 290 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      multimap&
+      operator=(const multimap& __x)
+      {
+ _M_t = __x._M_t;
+ return *this;
+      }
+
+
+
+      multimap&
+      operator=(multimap&&) = default;
+# 313 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      multimap&
+      operator=(initializer_list<value_type> __l)
+      {
+ _M_t._M_assign_equal(__l.begin(), __l.end());
+ return *this;
+      }
+
+
+
+      allocator_type
+      get_allocator() const noexcept
+      { return allocator_type(_M_t.get_allocator()); }
+
+
+
+
+
+
+
+      iterator
+      begin() noexcept
+      { return _M_t.begin(); }
+
+
+
+
+
+
+      const_iterator
+      begin() const noexcept
+      { return _M_t.begin(); }
+
+
+
+
+
+
+      iterator
+      end() noexcept
+      { return _M_t.end(); }
+
+
+
+
+
+
+      const_iterator
+      end() const noexcept
+      { return _M_t.end(); }
+
+
+
+
+
+
+      reverse_iterator
+      rbegin() noexcept
+      { return _M_t.rbegin(); }
+
+
+
+
+
+
+      const_reverse_iterator
+      rbegin() const noexcept
+      { return _M_t.rbegin(); }
+
+
+
+
+
+
+      reverse_iterator
+      rend() noexcept
+      { return _M_t.rend(); }
+
+
+
+
+
+
+      const_reverse_iterator
+      rend() const noexcept
+      { return _M_t.rend(); }
+
+
+
+
+
+
+
+      const_iterator
+      cbegin() const noexcept
+      { return _M_t.begin(); }
+
+
+
+
+
+
+      const_iterator
+      cend() const noexcept
+      { return _M_t.end(); }
+
+
+
+
+
+
+      const_reverse_iterator
+      crbegin() const noexcept
+      { return _M_t.rbegin(); }
+
+
+
+
+
+
+      const_reverse_iterator
+      crend() const noexcept
+      { return _M_t.rend(); }
+
+
+
+
+      bool
+      empty() const noexcept
+      { return _M_t.empty(); }
+
+
+      size_type
+      size() const noexcept
+      { return _M_t.size(); }
+
+
+      size_type
+      max_size() const noexcept
+      { return _M_t.max_size(); }
+# 471 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      template<typename... _Args>
+ iterator
+ emplace(_Args&&... __args)
+ { return _M_t._M_emplace_equal(std::forward<_Args>(__args)...); }
+# 498 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      template<typename... _Args>
+ iterator
+ emplace_hint(const_iterator __pos, _Args&&... __args)
+ {
+   return _M_t._M_emplace_hint_equal(__pos,
+         std::forward<_Args>(__args)...);
+ }
+# 519 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      iterator
+      insert(const value_type& __x)
+      { return _M_t._M_insert_equal(__x); }
+
+
+      template<typename _Pair, typename = typename
+        std::enable_if<std::is_constructible<value_type,
+          _Pair&&>::value>::type>
+        iterator
+        insert(_Pair&& __x)
+        { return _M_t._M_insert_equal(std::forward<_Pair>(__x)); }
+# 552 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      iterator
+
+      insert(const_iterator __position, const value_type& __x)
+
+
+
+      { return _M_t._M_insert_equal_(__position, __x); }
+
+
+      template<typename _Pair, typename = typename
+        std::enable_if<std::is_constructible<value_type,
+          _Pair&&>::value>::type>
+        iterator
+        insert(const_iterator __position, _Pair&& __x)
+        { return _M_t._M_insert_equal_(__position,
+           std::forward<_Pair>(__x)); }
+# 579 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      template<typename _InputIterator>
+        void
+        insert(_InputIterator __first, _InputIterator __last)
+        { _M_t._M_insert_equal(__first, __last); }
+# 592 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      void
+      insert(initializer_list<value_type> __l)
+      { this->insert(__l.begin(), __l.end()); }
+# 613 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      iterator
+      erase(const_iterator __position)
+      { return _M_t.erase(__position); }
+
+
+      __attribute ((__abi_tag__ ("cxx11")))
+      iterator
+      erase(iterator __position)
+      { return _M_t.erase(__position); }
+# 649 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      size_type
+      erase(const key_type& __x)
+      { return _M_t.erase(__x); }
+# 670 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      iterator
+      erase(const_iterator __first, const_iterator __last)
+      { return _M_t.erase(__first, __last); }
+# 705 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      void
+      swap(multimap& __x)
+      noexcept(__is_nothrow_swappable<_Compare>::value)
+      { _M_t.swap(__x._M_t); }
+
+
+
+
+
+
+
+      void
+      clear() noexcept
+      { _M_t.clear(); }
+
+
+
+
+
+
+      key_compare
+      key_comp() const
+      { return _M_t.key_comp(); }
+
+
+
+
+
+      value_compare
+      value_comp() const
+      { return value_compare(_M_t.key_comp()); }
+# 751 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      iterator
+      find(const key_type& __x)
+      { return _M_t.find(__x); }
+# 775 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      const_iterator
+      find(const key_type& __x) const
+      { return _M_t.find(__x); }
+# 793 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      size_type
+      count(const key_type& __x) const
+      { return _M_t.count(__x); }
+# 817 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      iterator
+      lower_bound(const key_type& __x)
+      { return _M_t.lower_bound(__x); }
+# 842 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      const_iterator
+      lower_bound(const key_type& __x) const
+      { return _M_t.lower_bound(__x); }
+# 862 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      iterator
+      upper_bound(const key_type& __x)
+      { return _M_t.upper_bound(__x); }
+# 882 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      const_iterator
+      upper_bound(const key_type& __x) const
+      { return _M_t.upper_bound(__x); }
+# 909 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      std::pair<iterator, iterator>
+      equal_range(const key_type& __x)
+      { return _M_t.equal_range(__x); }
+# 936 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      std::pair<const_iterator, const_iterator>
+      equal_range(const key_type& __x) const
+      { return _M_t.equal_range(__x); }
+# 953 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+      template<typename _K1, typename _T1, typename _C1, typename _A1>
+        friend bool
+        operator==(const multimap<_K1, _T1, _C1, _A1>&,
+     const multimap<_K1, _T1, _C1, _A1>&);
+
+      template<typename _K1, typename _T1, typename _C1, typename _A1>
+        friend bool
+        operator<(const multimap<_K1, _T1, _C1, _A1>&,
+    const multimap<_K1, _T1, _C1, _A1>&);
+  };
+# 974 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+  template<typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+    inline bool
+    operator==(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
+               const multimap<_Key, _Tp, _Compare, _Alloc>& __y)
+    { return __x._M_t == __y._M_t; }
+# 991 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_multimap.h" 3
+  template<typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+    inline bool
+    operator<(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
+              const multimap<_Key, _Tp, _Compare, _Alloc>& __y)
+    { return __x._M_t < __y._M_t; }
+
+
+  template<typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+    inline bool
+    operator!=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
+               const multimap<_Key, _Tp, _Compare, _Alloc>& __y)
+    { return !(__x == __y); }
+
+
+  template<typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+    inline bool
+    operator>(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
+              const multimap<_Key, _Tp, _Compare, _Alloc>& __y)
+    { return __y < __x; }
+
+
+  template<typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+    inline bool
+    operator<=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
+               const multimap<_Key, _Tp, _Compare, _Alloc>& __y)
+    { return !(__y < __x); }
+
+
+  template<typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+    inline bool
+    operator>=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
+               const multimap<_Key, _Tp, _Compare, _Alloc>& __y)
+    { return !(__x < __y); }
+
+
+  template<typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+    inline void
+    swap(multimap<_Key, _Tp, _Compare, _Alloc>& __x,
+         multimap<_Key, _Tp, _Compare, _Alloc>& __y)
+    noexcept(noexcept(__x.swap(__y)))
+    { __x.swap(__y); }
+
+
+}
+# 63 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/map" 2 3
+# 5 "./libraries/Scope/Scope.h" 2
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/memory" 1 3
+# 47 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/memory" 3
+# 66 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/memory" 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_tempbuf.h" 1 3
+# 62 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_tempbuf.h" 3
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 83 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_tempbuf.h" 3
+  template<typename _Tp>
+    pair<_Tp*, ptrdiff_t>
+    get_temporary_buffer(ptrdiff_t __len) noexcept
+    {
+      const ptrdiff_t __max =
+ __gnu_cxx::__numeric_traits<ptrdiff_t>::__max / sizeof(_Tp);
+      if (__len > __max)
+ __len = __max;
+
+      while (__len > 0)
+ {
+   _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp),
+       std::nothrow));
+   if (__tmp != 0)
+     return std::pair<_Tp*, ptrdiff_t>(__tmp, __len);
+   __len /= 2;
+ }
+      return std::pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0);
+    }
+# 110 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_tempbuf.h" 3
+  template<typename _Tp>
+    inline void
+    return_temporary_buffer(_Tp* __p)
+    { ::operator delete(__p, std::nothrow); }
+
+
+
+
+
+
+
+  template<typename _ForwardIterator, typename _Tp>
+    class _Temporary_buffer
+    {
+
+
+
+    public:
+      typedef _Tp value_type;
+      typedef value_type* pointer;
+      typedef pointer iterator;
+      typedef ptrdiff_t size_type;
+
+    protected:
+      size_type _M_original_len;
+      size_type _M_len;
+      pointer _M_buffer;
+
+    public:
+
+      size_type
+      size() const
+      { return _M_len; }
+
+
+      size_type
+      requested_size() const
+      { return _M_original_len; }
+
+
+      iterator
+      begin()
+      { return _M_buffer; }
+
+
+      iterator
+      end()
+      { return _M_buffer + _M_len; }
+
+
+
+
+
+      _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last);
+
+      ~_Temporary_buffer()
+      {
+ std::_Destroy(_M_buffer, _M_buffer + _M_len);
+ std::return_temporary_buffer(_M_buffer);
+      }
+
+    private:
+
+      _Temporary_buffer(const _Temporary_buffer&);
+
+      void
+      operator=(const _Temporary_buffer&);
+    };
+
+
+  template<bool>
+    struct __uninitialized_construct_buf_dispatch
+    {
+      template<typename _Pointer, typename _ForwardIterator>
+        static void
+        __ucr(_Pointer __first, _Pointer __last,
+       _ForwardIterator __seed)
+        {
+   if(__first == __last)
+     return;
+
+   _Pointer __cur = __first;
+   try
+     {
+       std::_Construct(std::__addressof(*__first),
+         std::move(*__seed));
+       _Pointer __prev = __cur;
+       ++__cur;
+       for(; __cur != __last; ++__cur, ++__prev)
+  std::_Construct(std::__addressof(*__cur),
+    std::move(*__prev));
+       *__seed = std::move(*__prev);
+     }
+   catch(...)
+     {
+       std::_Destroy(__first, __cur);
+       throw;
+     }
+ }
+    };
+
+  template<>
+    struct __uninitialized_construct_buf_dispatch<true>
+    {
+      template<typename _Pointer, typename _ForwardIterator>
+        static void
+        __ucr(_Pointer, _Pointer, _ForwardIterator) { }
+    };
+# 229 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_tempbuf.h" 3
+  template<typename _Pointer, typename _ForwardIterator>
+    inline void
+    __uninitialized_construct_buf(_Pointer __first, _Pointer __last,
+      _ForwardIterator __seed)
+    {
+      typedef typename std::iterator_traits<_Pointer>::value_type
+ _ValueType;
+
+      std::__uninitialized_construct_buf_dispatch<
+        __has_trivial_constructor(_ValueType)>::
+   __ucr(__first, __last, __seed);
+    }
+
+  template<typename _ForwardIterator, typename _Tp>
+    _Temporary_buffer<_ForwardIterator, _Tp>::
+    _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last)
+    : _M_original_len(std::distance(__first, __last)),
+      _M_len(0), _M_buffer(0)
+    {
+      try
+ {
+   std::pair<pointer, size_type> __p(std::get_temporary_buffer<
+         value_type>(_M_original_len));
+   _M_buffer = __p.first;
+   _M_len = __p.second;
+   if (_M_buffer)
+     std::__uninitialized_construct_buf(_M_buffer, _M_buffer + _M_len,
+            __first);
+ }
+      catch(...)
+ {
+   std::return_temporary_buffer(_M_buffer);
+   _M_buffer = 0;
+   _M_len = 0;
+   throw;
+ }
+    }
+
+
+}
+# 67 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/memory" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_raw_storage_iter.h" 1 3
+# 59 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_raw_storage_iter.h" 3
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+
+
+
+
+  template <class _OutputIterator, class _Tp>
+    class raw_storage_iterator
+    : public iterator<output_iterator_tag, void, void, void, void>
+    {
+    protected:
+      _OutputIterator _M_iter;
+
+    public:
+      explicit
+      raw_storage_iterator(_OutputIterator __x)
+      : _M_iter(__x) {}
+
+      raw_storage_iterator&
+      operator*() { return *this; }
+
+      raw_storage_iterator&
+      operator=(const _Tp& __element)
+      {
+ std::_Construct(std::__addressof(*_M_iter), __element);
+ return *this;
+      }
+
+
+
+
+      raw_storage_iterator&
+      operator=(_Tp&& __element)
+      {
+ std::_Construct(std::__addressof(*_M_iter), std::move(__element));
+ return *this;
+      }
+
+
+      raw_storage_iterator&
+      operator++()
+      {
+ ++_M_iter;
+ return *this;
+      }
+
+      raw_storage_iterator
+      operator++(int)
+      {
+ raw_storage_iterator __tmp = *this;
+ ++_M_iter;
+ return __tmp;
+      }
+
+
+
+      _OutputIterator base() const { return _M_iter; }
+    };
+
+
+}
+# 68 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/memory" 2 3
+
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/typeinfo" 1 3
+# 33 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/typeinfo" 3
+
+
+
+
+
+
+#pragma GCC visibility push(default)
+
+extern "C++" {
+
+namespace __cxxabiv1
+{
+  class __class_type_info;
+}
+# 80 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/typeinfo" 3
+namespace std
+{
+
+
+
+
+
+
+  class type_info
+  {
+  public:
+
+
+
+
+    virtual ~type_info();
+
+
+
+    const char* name() const noexcept
+    { return __name[0] == '*' ? __name + 1 : __name; }
+# 115 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/typeinfo" 3
+    bool before(const type_info& __arg) const noexcept
+    { return (__name[0] == '*' && __arg.__name[0] == '*')
+ ? __name < __arg.__name
+ : __builtin_strcmp (__name, __arg.__name) < 0; }
+
+    bool operator==(const type_info& __arg) const noexcept
+    {
+      return ((__name == __arg.__name)
+       || (__name[0] != '*' &&
+    __builtin_strcmp (__name, __arg.__name) == 0));
+    }
+# 136 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/typeinfo" 3
+    bool operator!=(const type_info& __arg) const noexcept
+    { return !operator==(__arg); }
+
+
+    size_t hash_code() const noexcept
+    {
+
+      return _Hash_bytes(name(), __builtin_strlen(name()),
+    static_cast<size_t>(0xc70f6907UL));
+
+
+
+    }
+
+
+
+    virtual bool __is_pointer_p() const;
+
+
+    virtual bool __is_function_p() const;
+
+
+
+
+
+
+
+    virtual bool __do_catch(const type_info *__thr_type, void **__thr_obj,
+       unsigned __outer) const;
+
+
+    virtual bool __do_upcast(const __cxxabiv1::__class_type_info *__target,
+        void **__obj_ptr) const;
+
+  protected:
+    const char *__name;
+
+    explicit type_info(const char *__n): __name(__n) { }
+
+  private:
+
+    type_info& operator=(const type_info&);
+    type_info(const type_info&);
+  };
+
+
+
+
+
+
+
+  class bad_cast : public exception
+  {
+  public:
+    bad_cast() noexcept { }
+
+
+
+    virtual ~bad_cast() noexcept;
+
+
+    virtual const char* what() const noexcept;
+  };
+
+
+
+
+
+  class bad_typeid : public exception
+  {
+  public:
+    bad_typeid () noexcept { }
+
+
+
+    virtual ~bad_typeid() noexcept;
+
+
+    virtual const char* what() const noexcept;
+  };
+}
+
+}
+
+#pragma GCC visibility pop
+# 72 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/memory" 2 3
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/concurrence.h" 1 3
+# 33 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/concurrence.h" 3
+
+
+
+
+
+
+
+namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
+{
+
+
+
+
+
+
+
+  enum _Lock_policy { _S_single, _S_mutex, _S_atomic };
+
+
+
+  static const _Lock_policy __default_lock_policy =
+
+
+
+  _S_atomic;
+# 67 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/concurrence.h" 3
+  class __concurrence_lock_error : public std::exception
+  {
+  public:
+    virtual char const*
+    what() const throw()
+    { return "__gnu_cxx::__concurrence_lock_error"; }
+  };
+
+  class __concurrence_unlock_error : public std::exception
+  {
+  public:
+    virtual char const*
+    what() const throw()
+    { return "__gnu_cxx::__concurrence_unlock_error"; }
+  };
+
+  class __concurrence_broadcast_error : public std::exception
+  {
+  public:
+    virtual char const*
+    what() const throw()
+    { return "__gnu_cxx::__concurrence_broadcast_error"; }
+  };
+
+  class __concurrence_wait_error : public std::exception
+  {
+  public:
+    virtual char const*
+    what() const throw()
+    { return "__gnu_cxx::__concurrence_wait_error"; }
+  };
+
+
+  inline void
+  __throw_concurrence_lock_error()
+  { (throw (__concurrence_lock_error())); }
+
+  inline void
+  __throw_concurrence_unlock_error()
+  { (throw (__concurrence_unlock_error())); }
+
+
+  inline void
+  __throw_concurrence_broadcast_error()
+  { (throw (__concurrence_broadcast_error())); }
+
+  inline void
+  __throw_concurrence_wait_error()
+  { (throw (__concurrence_wait_error())); }
+
+
+  class __mutex
+  {
+  private:
+
+    __gthread_mutex_t _M_mutex = { { 0, 0, 0, 0, 0, { 0 } } };
+
+
+
+
+    __mutex(const __mutex&);
+    __mutex& operator=(const __mutex&);
+
+  public:
+    __mutex()
+    {
+
+
+
+
+    }
+# 147 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/concurrence.h" 3
+    void lock()
+    {
+
+      if (__gthread_active_p())
+ {
+   if (__gthread_mutex_lock(&_M_mutex) != 0)
+     __throw_concurrence_lock_error();
+ }
+
+    }
+
+    void unlock()
+    {
+
+      if (__gthread_active_p())
+ {
+   if (__gthread_mutex_unlock(&_M_mutex) != 0)
+     __throw_concurrence_unlock_error();
+ }
+
+    }
+
+    __gthread_mutex_t* gthread_mutex(void)
+      { return &_M_mutex; }
+  };
+
+  class __recursive_mutex
+  {
+  private:
+
+    __gthread_recursive_mutex_t _M_mutex = { { 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, { 0 } } };
+
+
+
+
+    __recursive_mutex(const __recursive_mutex&);
+    __recursive_mutex& operator=(const __recursive_mutex&);
+
+  public:
+    __recursive_mutex()
+    {
+
+
+
+
+    }
+# 202 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/concurrence.h" 3
+    void lock()
+    {
+
+      if (__gthread_active_p())
+ {
+   if (__gthread_recursive_mutex_lock(&_M_mutex) != 0)
+     __throw_concurrence_lock_error();
+ }
+
+    }
+
+    void unlock()
+    {
+
+      if (__gthread_active_p())
+ {
+   if (__gthread_recursive_mutex_unlock(&_M_mutex) != 0)
+     __throw_concurrence_unlock_error();
+ }
+
+    }
+
+    __gthread_recursive_mutex_t* gthread_recursive_mutex(void)
+    { return &_M_mutex; }
+  };
+
+
+
+
+  class __scoped_lock
+  {
+  public:
+    typedef __mutex __mutex_type;
+
+  private:
+    __mutex_type& _M_device;
+
+    __scoped_lock(const __scoped_lock&);
+    __scoped_lock& operator=(const __scoped_lock&);
+
+  public:
+    explicit __scoped_lock(__mutex_type& __name) : _M_device(__name)
+    { _M_device.lock(); }
+
+    ~__scoped_lock() throw()
+    { _M_device.unlock(); }
+  };
+
+
+  class __cond
+  {
+  private:
+
+    __gthread_cond_t _M_cond = { { 0, 0, 0, 0, 0, (void *) 0, 0, 0 } };
+
+
+
+
+    __cond(const __cond&);
+    __cond& operator=(const __cond&);
+
+  public:
+    __cond()
+    {
+
+
+
+
+    }
+# 280 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext/concurrence.h" 3
+    void broadcast()
+    {
+
+      if (__gthread_active_p())
+ {
+   if (__gthread_cond_broadcast(&_M_cond) != 0)
+     __throw_concurrence_broadcast_error();
+ }
+
+    }
+
+    void wait(__mutex *mutex)
+    {
+
+      {
+   if (__gthread_cond_wait(&_M_cond, mutex->gthread_mutex()) != 0)
+     __throw_concurrence_wait_error();
+      }
+
+    }
+
+    void wait_recursive(__recursive_mutex *mutex)
+    {
+
+      {
+   if (__gthread_cond_wait_recursive(&_M_cond,
+         mutex->gthread_recursive_mutex())
+       != 0)
+     __throw_concurrence_wait_error();
+      }
+
+    }
+  };
+
+
+
+}
+# 75 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/memory" 2 3
+
+
+
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/functional" 1 3
+# 47 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/functional" 3
+# 60 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/functional" 3
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+  template<typename _MemberPointer>
+    class _Mem_fn;
+  template<typename _Tp, typename _Class>
+    _Mem_fn<_Tp _Class::*>
+    mem_fn(_Tp _Class::*) noexcept;
+
+
+  template<typename _Functor, typename = __void_t<>>
+    struct _Maybe_get_result_type
+    { };
+
+  template<typename _Functor>
+    struct _Maybe_get_result_type<_Functor,
+      __void_t<typename _Functor::result_type>>
+    { typedef typename _Functor::result_type result_type; };
+
+
+
+
+
+  template<typename _Functor>
+    struct _Weak_result_type_impl
+    : _Maybe_get_result_type<_Functor>
+    { };
+
+
+  template<typename _Res, typename... _ArgTypes>
+    struct _Weak_result_type_impl<_Res(_ArgTypes...)>
+    { typedef _Res result_type; };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct _Weak_result_type_impl<_Res(_ArgTypes......)>
+    { typedef _Res result_type; };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct _Weak_result_type_impl<_Res(_ArgTypes...) const>
+    { typedef _Res result_type; };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct _Weak_result_type_impl<_Res(_ArgTypes......) const>
+    { typedef _Res result_type; };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct _Weak_result_type_impl<_Res(_ArgTypes...) volatile>
+    { typedef _Res result_type; };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct _Weak_result_type_impl<_Res(_ArgTypes......) volatile>
+    { typedef _Res result_type; };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct _Weak_result_type_impl<_Res(_ArgTypes...) const volatile>
+    { typedef _Res result_type; };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct _Weak_result_type_impl<_Res(_ArgTypes......) const volatile>
+    { typedef _Res result_type; };
+
+
+  template<typename _Res, typename... _ArgTypes>
+    struct _Weak_result_type_impl<_Res(&)(_ArgTypes...)>
+    { typedef _Res result_type; };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct _Weak_result_type_impl<_Res(&)(_ArgTypes......)>
+    { typedef _Res result_type; };
+
+
+  template<typename _Res, typename... _ArgTypes>
+    struct _Weak_result_type_impl<_Res(*)(_ArgTypes...)>
+    { typedef _Res result_type; };
+
+  template<typename _Res, typename... _ArgTypes>
+    struct _Weak_result_type_impl<_Res(*)(_ArgTypes......)>
+    { typedef _Res result_type; };
+
+
+  template<typename _Res, typename _Class, typename... _ArgTypes>
+    struct _Weak_result_type_impl<_Res (_Class::*)(_ArgTypes...)>
+    { typedef _Res result_type; };
+
+  template<typename _Res, typename _Class, typename... _ArgTypes>
+    struct _Weak_result_type_impl<_Res (_Class::*)(_ArgTypes......)>
+    { typedef _Res result_type; };
+
+
+  template<typename _Res, typename _Class, typename... _ArgTypes>
+    struct _Weak_result_type_impl<_Res (_Class::*)(_ArgTypes...) const>
+    { typedef _Res result_type; };
+
+  template<typename _Res, typename _Class, typename... _ArgTypes>
+    struct _Weak_result_type_impl<_Res (_Class::*)(_ArgTypes......) const>
+    { typedef _Res result_type; };
+
+
+  template<typename _Res, typename _Class, typename... _ArgTypes>
+    struct _Weak_result_type_impl<_Res (_Class::*)(_ArgTypes...) volatile>
+    { typedef _Res result_type; };
+
+  template<typename _Res, typename _Class, typename... _ArgTypes>
+    struct _Weak_result_type_impl<_Res (_Class::*)(_ArgTypes......) volatile>
+    { typedef _Res result_type; };
+
+
+  template<typename _Res, typename _Class, typename... _ArgTypes>
+    struct _Weak_result_type_impl<_Res (_Class::*)(_ArgTypes...)
+      const volatile>
+    { typedef _Res result_type; };
+
+  template<typename _Res, typename _Class, typename... _ArgTypes>
+    struct _Weak_result_type_impl<_Res (_Class::*)(_ArgTypes......)
+      const volatile>
+    { typedef _Res result_type; };
+
+
+
+
+
+  template<typename _Functor>
+    struct _Weak_result_type
+    : _Weak_result_type_impl<typename remove_cv<_Functor>::type>
+    { };
+
+  template<typename _Tp, typename _Up = typename decay<_Tp>::type>
+    struct __inv_unwrap
+    {
+      using type = _Tp;
+    };
+
+  template<typename _Tp, typename _Up>
+    struct __inv_unwrap<_Tp, reference_wrapper<_Up>>
+    {
+      using type = _Up&;
+    };
+
+
+
+  template<typename _Tp, typename _Up = typename __inv_unwrap<_Tp>::type>
+    inline _Up&&
+    __invfwd(typename remove_reference<_Tp>::type& __t) noexcept
+    { return static_cast<_Up&&>(__t); }
+
+  template<typename _Res, typename _Fn, typename... _Args>
+    inline _Res
+    __invoke_impl(__invoke_other, _Fn&& __f, _Args&&... __args)
+    noexcept(noexcept(std::forward<_Fn>(__f)(std::forward<_Args>(__args)...)))
+    { return std::forward<_Fn>(__f)(std::forward<_Args>(__args)...); }
+
+  template<typename _Res, typename _MemFun, typename _Tp, typename... _Args>
+    inline _Res
+    __invoke_impl(__invoke_memfun_ref, _MemFun&& __f, _Tp&& __t,
+    _Args&&... __args)
+    noexcept(noexcept(
+   (__invfwd<_Tp>(__t).*__f)(std::forward<_Args>(__args)...)))
+    { return (__invfwd<_Tp>(__t).*__f)(std::forward<_Args>(__args)...); }
+
+  template<typename _Res, typename _MemFun, typename _Tp, typename... _Args>
+    inline _Res
+    __invoke_impl(__invoke_memfun_deref, _MemFun&& __f, _Tp&& __t,
+    _Args&&... __args)
+    noexcept(noexcept(
+   ((*std::forward<_Tp>(__t)).*__f)(std::forward<_Args>(__args)...)))
+    {
+      return ((*std::forward<_Tp>(__t)).*__f)(std::forward<_Args>(__args)...);
+    }
+
+  template<typename _Res, typename _MemPtr, typename _Tp>
+    inline _Res
+    __invoke_impl(__invoke_memobj_ref, _MemPtr&& __f, _Tp&& __t)
+    noexcept(noexcept(__invfwd<_Tp>(__t).*__f))
+    { return __invfwd<_Tp>(__t).*__f; }
+
+  template<typename _Res, typename _MemPtr, typename _Tp>
+    inline _Res
+    __invoke_impl(__invoke_memobj_deref, _MemPtr&& __f, _Tp&& __t)
+    noexcept(noexcept((*std::forward<_Tp>(__t)).*__f))
+    { return (*std::forward<_Tp>(__t)).*__f; }
+
+
+  template<typename _Callable, typename... _Args>
+    inline typename result_of<_Callable&&(_Args&&...)>::type
+    __invoke(_Callable&& __fn, _Args&&... __args)
+    {
+      using __result_of = result_of<_Callable&&(_Args&&...)>;
+      using __type = typename __result_of::type;
+      using __tag = typename __result_of::__invoke_type;
+      return std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn),
+     std::forward<_Args>(__args)...);
+    }
+# 272 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/functional" 3
+  template<bool _Unary, bool _Binary, typename _Tp>
+    struct _Reference_wrapper_base_impl;
+
+
+  template<typename _Tp>
+    struct _Reference_wrapper_base_impl<false, false, _Tp>
+    : _Weak_result_type<_Tp>
+    { };
+
+
+  template<typename _Tp>
+    struct _Reference_wrapper_base_impl<true, false, _Tp>
+    : _Weak_result_type<_Tp>
+    {
+      typedef typename _Tp::argument_type argument_type;
+    };
+
+
+  template<typename _Tp>
+    struct _Reference_wrapper_base_impl<false, true, _Tp>
+    : _Weak_result_type<_Tp>
+    {
+      typedef typename _Tp::first_argument_type first_argument_type;
+      typedef typename _Tp::second_argument_type second_argument_type;
+    };
+
+
+   template<typename _Tp>
+    struct _Reference_wrapper_base_impl<true, true, _Tp>
+    : _Weak_result_type<_Tp>
+    {
+      typedef typename _Tp::argument_type argument_type;
+      typedef typename _Tp::first_argument_type first_argument_type;
+      typedef typename _Tp::second_argument_type second_argument_type;
+    };
+
+  template<typename _Tp, typename = __void_t<>> struct __has_argument_type : false_type { }; template<typename _Tp> struct __has_argument_type<_Tp, __void_t<typename _Tp::argument_type>> : true_type { };
+  template<typename _Tp, typename = __void_t<>> struct __has_first_argument_type : false_type { }; template<typename _Tp> struct __has_first_argument_type<_Tp, __void_t<typename _Tp::first_argument_type>> : true_type { };
+  template<typename _Tp, typename = __void_t<>> struct __has_second_argument_type : false_type { }; template<typename _Tp> struct __has_second_argument_type<_Tp, __void_t<typename _Tp::second_argument_type>> : true_type { };
+
+
+
+
+
+
+
+  template<typename _Tp>
+    struct _Reference_wrapper_base
+    : _Reference_wrapper_base_impl<
+      __has_argument_type<_Tp>::value,
+      __has_first_argument_type<_Tp>::value
+      && __has_second_argument_type<_Tp>::value,
+      _Tp>
+    { };
+
+
+  template<typename _Res, typename _T1>
+    struct _Reference_wrapper_base<_Res(_T1)>
+    : unary_function<_T1, _Res>
+    { };
+
+  template<typename _Res, typename _T1>
+    struct _Reference_wrapper_base<_Res(_T1) const>
+    : unary_function<_T1, _Res>
+    { };
+
+  template<typename _Res, typename _T1>
+    struct _Reference_wrapper_base<_Res(_T1) volatile>
+    : unary_function<_T1, _Res>
+    { };
+
+  template<typename _Res, typename _T1>
+    struct _Reference_wrapper_base<_Res(_T1) const volatile>
+    : unary_function<_T1, _Res>
+    { };
+
+
+  template<typename _Res, typename _T1, typename _T2>
+    struct _Reference_wrapper_base<_Res(_T1, _T2)>
+    : binary_function<_T1, _T2, _Res>
+    { };
+
+  template<typename _Res, typename _T1, typename _T2>
+    struct _Reference_wrapper_base<_Res(_T1, _T2) const>
+    : binary_function<_T1, _T2, _Res>
+    { };
+
+  template<typename _Res, typename _T1, typename _T2>
+    struct _Reference_wrapper_base<_Res(_T1, _T2) volatile>
+    : binary_function<_T1, _T2, _Res>
+    { };
+
+  template<typename _Res, typename _T1, typename _T2>
+    struct _Reference_wrapper_base<_Res(_T1, _T2) const volatile>
+    : binary_function<_T1, _T2, _Res>
+    { };
+
+
+  template<typename _Res, typename _T1>
+    struct _Reference_wrapper_base<_Res(*)(_T1)>
+    : unary_function<_T1, _Res>
+    { };
+
+
+  template<typename _Res, typename _T1, typename _T2>
+    struct _Reference_wrapper_base<_Res(*)(_T1, _T2)>
+    : binary_function<_T1, _T2, _Res>
+    { };
+
+
+  template<typename _Res, typename _T1>
+    struct _Reference_wrapper_base<_Res (_T1::*)()>
+    : unary_function<_T1*, _Res>
+    { };
+
+
+  template<typename _Res, typename _T1, typename _T2>
+    struct _Reference_wrapper_base<_Res (_T1::*)(_T2)>
+    : binary_function<_T1*, _T2, _Res>
+    { };
+
+
+  template<typename _Res, typename _T1>
+    struct _Reference_wrapper_base<_Res (_T1::*)() const>
+    : unary_function<const _T1*, _Res>
+    { };
+
+
+  template<typename _Res, typename _T1, typename _T2>
+    struct _Reference_wrapper_base<_Res (_T1::*)(_T2) const>
+    : binary_function<const _T1*, _T2, _Res>
+    { };
+
+
+  template<typename _Res, typename _T1>
+    struct _Reference_wrapper_base<_Res (_T1::*)() volatile>
+    : unary_function<volatile _T1*, _Res>
+    { };
+
+
+  template<typename _Res, typename _T1, typename _T2>
+    struct _Reference_wrapper_base<_Res (_T1::*)(_T2) volatile>
+    : binary_function<volatile _T1*, _T2, _Res>
+    { };
+
+
+  template<typename _Res, typename _T1>
+    struct _Reference_wrapper_base<_Res (_T1::*)() const volatile>
+    : unary_function<const volatile _T1*, _Res>
+    { };
+
+
+  template<typename _Res, typename _T1, typename _T2>
+    struct _Reference_wrapper_base<_Res (_T1::*)(_T2) const volatile>
+    : binary_function<const volatile _T1*, _T2, _Res>
+    { };
+
+
+
+
+
+
+  template<typename _Tp>
+    class reference_wrapper
+    : public _Reference_wrapper_base<typename remove_cv<_Tp>::type>
+    {
+      _Tp* _M_data;
+
+    public:
+      typedef _Tp type;
+
+      reference_wrapper(_Tp& __indata) noexcept
+      : _M_data(std::__addressof(__indata))
+      { }
+
+      reference_wrapper(_Tp&&) = delete;
+
+      reference_wrapper(const reference_wrapper&) = default;
+
+      reference_wrapper&
+      operator=(const reference_wrapper&) = default;
+
+      operator _Tp&() const noexcept
+      { return this->get(); }
+
+      _Tp&
+      get() const noexcept
+      { return *_M_data; }
+
+      template<typename... _Args>
+ typename result_of<_Tp&(_Args&&...)>::type
+ operator()(_Args&&... __args) const
+ {
+   return std::__invoke(get(), std::forward<_Args>(__args)...);
+ }
+    };
+
+
+
+  template<typename _Tp>
+    inline reference_wrapper<_Tp>
+    ref(_Tp& __t) noexcept
+    { return reference_wrapper<_Tp>(__t); }
+
+
+  template<typename _Tp>
+    inline reference_wrapper<const _Tp>
+    cref(const _Tp& __t) noexcept
+    { return reference_wrapper<const _Tp>(__t); }
+
+  template<typename _Tp>
+    void ref(const _Tp&&) = delete;
+
+  template<typename _Tp>
+    void cref(const _Tp&&) = delete;
+
+
+  template<typename _Tp>
+    inline reference_wrapper<_Tp>
+    ref(reference_wrapper<_Tp> __t) noexcept
+    { return ref(__t.get()); }
+
+
+  template<typename _Tp>
+    inline reference_wrapper<const _Tp>
+    cref(reference_wrapper<_Tp> __t) noexcept
+    { return cref(__t.get()); }
+
+
+
+  template<typename... _Types>
+    struct _Pack : integral_constant<size_t, sizeof...(_Types)>
+    { };
+
+  template<typename _From, typename _To, bool = _From::value == _To::value>
+    struct _AllConvertible : false_type
+    { };
+
+  template<typename... _From, typename... _To>
+    struct _AllConvertible<_Pack<_From...>, _Pack<_To...>, true>
+    : __and_<is_convertible<_From, _To>...>
+    { };
+
+  template<typename _Tp1, typename _Tp2>
+    using _NotSame = __not_<is_same<typename std::decay<_Tp1>::type,
+        typename std::decay<_Tp2>::type>>;
+
+
+
+
+
+
+  template<typename _Res, typename... _ArgTypes>
+    struct _Maybe_unary_or_binary_function { };
+
+
+  template<typename _Res, typename _T1>
+    struct _Maybe_unary_or_binary_function<_Res, _T1>
+    : std::unary_function<_T1, _Res> { };
+
+
+  template<typename _Res, typename _T1, typename _T2>
+    struct _Maybe_unary_or_binary_function<_Res, _T1, _T2>
+    : std::binary_function<_T1, _T2, _Res> { };
+
+  template<typename _Signature>
+    struct _Mem_fn_traits;
+
+  template<typename _Res, typename _Class, typename... _ArgTypes>
+    struct _Mem_fn_traits_base
+    {
+      using __result_type = _Res;
+      using __maybe_type
+ = _Maybe_unary_or_binary_function<_Res, _Class*, _ArgTypes...>;
+      using __arity = integral_constant<size_t, sizeof...(_ArgTypes)>;
+    };
+# 569 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/functional" 3
+template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) > : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = false_type; }; template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) > : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = true_type; }; template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const > : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = false_type; }; template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const > : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = true_type; }; template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) volatile > : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) volatile > : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = true_type; }; template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const volatile > : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const volatile > : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = true_type; };
+template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) &> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = false_type; }; template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) &> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = true_type; }; template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const &> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = false_type; }; template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const &> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = true_type; }; template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) volatile &> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) volatile &> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = true_type; }; template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const volatile &> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const volatile &> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = true_type; };
+template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) &&> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = false_type; }; template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) &&> : _Mem_fn_traits_base<_Res, _Class, _ArgTypes...> { using __vararg = true_type; }; template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const &&> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = false_type; }; template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const &&> : _Mem_fn_traits_base<_Res, const _Class, _ArgTypes...> { using __vararg = true_type; }; template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) volatile &&> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) volatile &&> : _Mem_fn_traits_base<_Res, volatile _Class, _ArgTypes...> { using __vararg = true_type; }; template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) const volatile &&> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = false_type; }; template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes... ...) const volatile &&> : _Mem_fn_traits_base<_Res, const volatile _Class, _ArgTypes...> { using __vararg = true_type; };
+
+
+
+
+  template<typename _MemFunPtr,
+    bool __is_mem_fn = is_member_function_pointer<_MemFunPtr>::value>
+    class _Mem_fn_base
+    : public _Mem_fn_traits<_MemFunPtr>::__maybe_type
+    {
+      using _Traits = _Mem_fn_traits<_MemFunPtr>;
+
+      using _Arity = typename _Traits::__arity;
+      using _Varargs = typename _Traits::__vararg;
+
+      template<typename _Func, typename... _BoundArgs>
+ friend struct _Bind_check_arity;
+
+      _MemFunPtr _M_pmf;
+
+    public:
+
+      using result_type = typename _Traits::__result_type;
+
+      explicit constexpr
+      _Mem_fn_base(_MemFunPtr __pmf) noexcept : _M_pmf(__pmf) { }
+
+      template<typename... _Args>
+ auto
+ operator()(_Args&&... __args) const
+ noexcept(noexcept(
+       std::__invoke(_M_pmf, std::forward<_Args>(__args)...)))
+ -> decltype(std::__invoke(_M_pmf, std::forward<_Args>(__args)...))
+ { return std::__invoke(_M_pmf, std::forward<_Args>(__args)...); }
+    };
+
+
+  template<typename _MemObjPtr>
+    class _Mem_fn_base<_MemObjPtr, false>
+    {
+      using _Arity = integral_constant<size_t, 0>;
+      using _Varargs = false_type;
+
+      template<typename _Func, typename... _BoundArgs>
+ friend struct _Bind_check_arity;
+
+      _MemObjPtr _M_pm;
+
+    public:
+      explicit constexpr
+      _Mem_fn_base(_MemObjPtr __pm) noexcept : _M_pm(__pm) { }
+
+      template<typename _Tp>
+ auto
+ operator()(_Tp&& __obj) const
+ noexcept(noexcept(std::__invoke(_M_pm, std::forward<_Tp>(__obj))))
+ -> decltype(std::__invoke(_M_pm, std::forward<_Tp>(__obj)))
+ { return std::__invoke(_M_pm, std::forward<_Tp>(__obj)); }
+    };
+
+  template<typename _Res, typename _Class>
+    struct _Mem_fn<_Res _Class::*>
+    : _Mem_fn_base<_Res _Class::*>
+    {
+      using _Mem_fn_base<_Res _Class::*>::_Mem_fn_base;
+    };
+# 645 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/functional" 3
+  template<typename _Tp, typename _Class>
+    inline _Mem_fn<_Tp _Class::*>
+    mem_fn(_Tp _Class::* __pm) noexcept
+    {
+      return _Mem_fn<_Tp _Class::*>(__pm);
+    }
+# 660 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/functional" 3
+  template<typename _Tp>
+    struct is_bind_expression
+    : public false_type { };
+# 671 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/functional" 3
+  template<typename _Tp>
+    struct is_placeholder
+    : public integral_constant<int, 0>
+    { };
+
+
+
+
+  template<int _Num> struct _Placeholder { };
+
+
+
+
+
+
+
+  namespace placeholders
+  {
+
+
+
+
+
+    extern const _Placeholder<1> _1;
+    extern const _Placeholder<2> _2;
+    extern const _Placeholder<3> _3;
+    extern const _Placeholder<4> _4;
+    extern const _Placeholder<5> _5;
+    extern const _Placeholder<6> _6;
+    extern const _Placeholder<7> _7;
+    extern const _Placeholder<8> _8;
+    extern const _Placeholder<9> _9;
+    extern const _Placeholder<10> _10;
+    extern const _Placeholder<11> _11;
+    extern const _Placeholder<12> _12;
+    extern const _Placeholder<13> _13;
+    extern const _Placeholder<14> _14;
+    extern const _Placeholder<15> _15;
+    extern const _Placeholder<16> _16;
+    extern const _Placeholder<17> _17;
+    extern const _Placeholder<18> _18;
+    extern const _Placeholder<19> _19;
+    extern const _Placeholder<20> _20;
+    extern const _Placeholder<21> _21;
+    extern const _Placeholder<22> _22;
+    extern const _Placeholder<23> _23;
+    extern const _Placeholder<24> _24;
+    extern const _Placeholder<25> _25;
+    extern const _Placeholder<26> _26;
+    extern const _Placeholder<27> _27;
+    extern const _Placeholder<28> _28;
+    extern const _Placeholder<29> _29;
+
+  }
+# 733 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/functional" 3
+  template<int _Num>
+    struct is_placeholder<_Placeholder<_Num> >
+    : public integral_constant<int, _Num>
+    { };
+
+  template<int _Num>
+    struct is_placeholder<const _Placeholder<_Num> >
+    : public integral_constant<int, _Num>
+    { };
+
+
+
+ template<std::size_t __i, typename _Tuple>
+   using _Safe_tuple_element_t
+     = typename enable_if<(__i < tuple_size<_Tuple>::value),
+     tuple_element<__i, _Tuple>>::type::type;
+# 761 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/functional" 3
+  template<typename _Arg,
+    bool _IsBindExp = is_bind_expression<_Arg>::value,
+    bool _IsPlaceholder = (is_placeholder<_Arg>::value > 0)>
+    class _Mu;
+
+
+
+
+
+
+  template<typename _Tp>
+    class _Mu<reference_wrapper<_Tp>, false, false>
+    {
+    public:
+
+
+
+
+      template<typename _CVRef, typename _Tuple>
+ _Tp&
+ operator()(_CVRef& __arg, _Tuple&) const volatile
+ { return __arg.get(); }
+    };
+
+
+
+
+
+
+
+  template<typename _Arg>
+    class _Mu<_Arg, true, false>
+    {
+    public:
+      template<typename _CVArg, typename... _Args>
+ auto
+ operator()(_CVArg& __arg,
+     tuple<_Args...>& __tuple) const volatile
+ -> decltype(__arg(declval<_Args>()...))
+ {
+
+   typedef typename _Build_index_tuple<sizeof...(_Args)>::__type
+     _Indexes;
+   return this->__call(__arg, __tuple, _Indexes());
+ }
+
+    private:
+
+
+      template<typename _CVArg, typename... _Args, std::size_t... _Indexes>
+ auto
+ __call(_CVArg& __arg, tuple<_Args...>& __tuple,
+        const _Index_tuple<_Indexes...>&) const volatile
+ -> decltype(__arg(declval<_Args>()...))
+ {
+   return __arg(std::forward<_Args>(std::get<_Indexes>(__tuple))...);
+ }
+    };
+
+
+
+
+
+
+  template<typename _Arg>
+    class _Mu<_Arg, false, true>
+    {
+    public:
+      template<typename _Tuple>
+ _Safe_tuple_element_t<(is_placeholder<_Arg>::value - 1), _Tuple>&&
+ operator()(const volatile _Arg&, _Tuple& __tuple) const volatile
+ {
+   using __type
+     = __tuple_element_t<(is_placeholder<_Arg>::value - 1), _Tuple>;
+   return std::forward<__type>(
+       ::std::get<(is_placeholder<_Arg>::value - 1)>(__tuple));
+ }
+    };
+
+
+
+
+
+
+  template<typename _Arg>
+    class _Mu<_Arg, false, false>
+    {
+    public:
+      template<typename _CVArg, typename _Tuple>
+ _CVArg&&
+ operator()(_CVArg&& __arg, _Tuple&) const volatile
+ { return std::forward<_CVArg>(__arg); }
+    };
+
+
+
+
+
+
+  template<typename _Tp>
+    struct _Maybe_wrap_member_pointer
+    {
+      typedef _Tp type;
+
+      static constexpr const _Tp&
+      __do_wrap(const _Tp& __x)
+      { return __x; }
+
+      static constexpr _Tp&&
+      __do_wrap(_Tp&& __x)
+      { return static_cast<_Tp&&>(__x); }
+    };
+
+
+
+
+
+
+  template<typename _Tp, typename _Class>
+    struct _Maybe_wrap_member_pointer<_Tp _Class::*>
+    {
+      typedef _Mem_fn<_Tp _Class::*> type;
+
+      static constexpr type
+      __do_wrap(_Tp _Class::* __pm)
+      { return type(__pm); }
+    };
+
+
+
+
+
+  template<>
+    struct _Maybe_wrap_member_pointer<void>
+    {
+      typedef void type;
+    };
+
+
+  template<std::size_t _Ind, typename... _Tp>
+    inline auto
+    __volget(volatile tuple<_Tp...>& __tuple)
+    -> __tuple_element_t<_Ind, tuple<_Tp...>> volatile&
+    { return std::get<_Ind>(const_cast<tuple<_Tp...>&>(__tuple)); }
+
+
+  template<std::size_t _Ind, typename... _Tp>
+    inline auto
+    __volget(const volatile tuple<_Tp...>& __tuple)
+    -> __tuple_element_t<_Ind, tuple<_Tp...>> const volatile&
+    { return std::get<_Ind>(const_cast<const tuple<_Tp...>&>(__tuple)); }
+
+
+  template<typename _Signature>
+    struct _Bind;
+
+   template<typename _Functor, typename... _Bound_args>
+    class _Bind<_Functor(_Bound_args...)>
+    : public _Weak_result_type<_Functor>
+    {
+      typedef _Bind __self_type;
+      typedef typename _Build_index_tuple<sizeof...(_Bound_args)>::__type
+ _Bound_indexes;
+
+      _Functor _M_f;
+      tuple<_Bound_args...> _M_bound_args;
+
+
+      template<typename _Result, typename... _Args, std::size_t... _Indexes>
+ _Result
+ __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>)
+ {
+   return _M_f(_Mu<_Bound_args>()
+        (std::get<_Indexes>(_M_bound_args), __args)...);
+ }
+
+
+      template<typename _Result, typename... _Args, std::size_t... _Indexes>
+ _Result
+ __call_c(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>) const
+ {
+   return _M_f(_Mu<_Bound_args>()
+        (std::get<_Indexes>(_M_bound_args), __args)...);
+ }
+
+
+      template<typename _Result, typename... _Args, std::size_t... _Indexes>
+ _Result
+ __call_v(tuple<_Args...>&& __args,
+   _Index_tuple<_Indexes...>) volatile
+ {
+   return _M_f(_Mu<_Bound_args>()
+        (__volget<_Indexes>(_M_bound_args), __args)...);
+ }
+
+
+      template<typename _Result, typename... _Args, std::size_t... _Indexes>
+ _Result
+ __call_c_v(tuple<_Args...>&& __args,
+     _Index_tuple<_Indexes...>) const volatile
+ {
+   return _M_f(_Mu<_Bound_args>()
+        (__volget<_Indexes>(_M_bound_args), __args)...);
+ }
+
+     public:
+      template<typename... _Args>
+ explicit _Bind(const _Functor& __f, _Args&&... __args)
+ : _M_f(__f), _M_bound_args(std::forward<_Args>(__args)...)
+ { }
+
+      template<typename... _Args>
+ explicit _Bind(_Functor&& __f, _Args&&... __args)
+ : _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
+ { }
+
+      _Bind(const _Bind&) = default;
+
+      _Bind(_Bind&& __b)
+      : _M_f(std::move(__b._M_f)), _M_bound_args(std::move(__b._M_bound_args))
+      { }
+
+
+      template<typename... _Args, typename _Result
+ = decltype( std::declval<_Functor&>()(
+       _Mu<_Bound_args>()( std::declval<_Bound_args&>(),
+      std::declval<tuple<_Args...>&>() )... ) )>
+ _Result
+ operator()(_Args&&... __args)
+ {
+   return this->__call<_Result>(
+       std::forward_as_tuple(std::forward<_Args>(__args)...),
+       _Bound_indexes());
+ }
+
+
+      template<typename... _Args, typename _Result
+ = decltype( std::declval<typename enable_if<(sizeof...(_Args) >= 0),
+         typename add_const<_Functor>::type&>::type>()(
+       _Mu<_Bound_args>()( std::declval<const _Bound_args&>(),
+      std::declval<tuple<_Args...>&>() )... ) )>
+ _Result
+ operator()(_Args&&... __args) const
+ {
+   return this->__call_c<_Result>(
+       std::forward_as_tuple(std::forward<_Args>(__args)...),
+       _Bound_indexes());
+ }
+
+
+      template<typename... _Args, typename _Result
+ = decltype( std::declval<typename enable_if<(sizeof...(_Args) >= 0),
+                       typename add_volatile<_Functor>::type&>::type>()(
+       _Mu<_Bound_args>()( std::declval<volatile _Bound_args&>(),
+      std::declval<tuple<_Args...>&>() )... ) )>
+ _Result
+ operator()(_Args&&... __args) volatile
+ {
+   return this->__call_v<_Result>(
+       std::forward_as_tuple(std::forward<_Args>(__args)...),
+       _Bound_indexes());
+ }
+
+
+      template<typename... _Args, typename _Result
+ = decltype( std::declval<typename enable_if<(sizeof...(_Args) >= 0),
+                       typename add_cv<_Functor>::type&>::type>()(
+       _Mu<_Bound_args>()( std::declval<const volatile _Bound_args&>(),
+      std::declval<tuple<_Args...>&>() )... ) )>
+ _Result
+ operator()(_Args&&... __args) const volatile
+ {
+   return this->__call_c_v<_Result>(
+       std::forward_as_tuple(std::forward<_Args>(__args)...),
+       _Bound_indexes());
+ }
+    };
+
+
+  template<typename _Result, typename _Signature>
+    struct _Bind_result;
+
+  template<typename _Result, typename _Functor, typename... _Bound_args>
+    class _Bind_result<_Result, _Functor(_Bound_args...)>
+    {
+      typedef _Bind_result __self_type;
+      typedef typename _Build_index_tuple<sizeof...(_Bound_args)>::__type
+ _Bound_indexes;
+
+      _Functor _M_f;
+      tuple<_Bound_args...> _M_bound_args;
+
+
+      template<typename _Res>
+ struct __enable_if_void : enable_if<is_void<_Res>::value, int> { };
+      template<typename _Res>
+ struct __disable_if_void : enable_if<!is_void<_Res>::value, int> { };
+
+
+      template<typename _Res, typename... _Args, std::size_t... _Indexes>
+ _Result
+ __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>,
+     typename __disable_if_void<_Res>::type = 0)
+ {
+   return _M_f(_Mu<_Bound_args>()
+        (std::get<_Indexes>(_M_bound_args), __args)...);
+ }
+
+
+      template<typename _Res, typename... _Args, std::size_t... _Indexes>
+ void
+ __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>,
+     typename __enable_if_void<_Res>::type = 0)
+ {
+   _M_f(_Mu<_Bound_args>()
+        (std::get<_Indexes>(_M_bound_args), __args)...);
+ }
+
+
+      template<typename _Res, typename... _Args, std::size_t... _Indexes>
+ _Result
+ __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>,
+     typename __disable_if_void<_Res>::type = 0) const
+ {
+   return _M_f(_Mu<_Bound_args>()
+        (std::get<_Indexes>(_M_bound_args), __args)...);
+ }
+
+
+      template<typename _Res, typename... _Args, std::size_t... _Indexes>
+ void
+ __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>,
+     typename __enable_if_void<_Res>::type = 0) const
+ {
+   _M_f(_Mu<_Bound_args>()
+        (std::get<_Indexes>(_M_bound_args), __args)...);
+ }
+
+
+      template<typename _Res, typename... _Args, std::size_t... _Indexes>
+ _Result
+ __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>,
+     typename __disable_if_void<_Res>::type = 0) volatile
+ {
+   return _M_f(_Mu<_Bound_args>()
+        (__volget<_Indexes>(_M_bound_args), __args)...);
+ }
+
+
+      template<typename _Res, typename... _Args, std::size_t... _Indexes>
+ void
+ __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>,
+     typename __enable_if_void<_Res>::type = 0) volatile
+ {
+   _M_f(_Mu<_Bound_args>()
+        (__volget<_Indexes>(_M_bound_args), __args)...);
+ }
+
+
+      template<typename _Res, typename... _Args, std::size_t... _Indexes>
+ _Result
+ __call(tuple<_Args...>&& __args, _Index_tuple<_Indexes...>,
+     typename __disable_if_void<_Res>::type = 0) const volatile
+ {
+   return _M_f(_Mu<_Bound_args>()
+        (__volget<_Indexes>(_M_bound_args), __args)...);
+ }
+
+
+      template<typename _Res, typename... _Args, std::size_t... _Indexes>
+ void
+ __call(tuple<_Args...>&& __args,
+        _Index_tuple<_Indexes...>,
+     typename __enable_if_void<_Res>::type = 0) const volatile
+ {
+   _M_f(_Mu<_Bound_args>()
+        (__volget<_Indexes>(_M_bound_args), __args)...);
+ }
+
+    public:
+      typedef _Result result_type;
+
+      template<typename... _Args>
+ explicit _Bind_result(const _Functor& __f, _Args&&... __args)
+ : _M_f(__f), _M_bound_args(std::forward<_Args>(__args)...)
+ { }
+
+      template<typename... _Args>
+ explicit _Bind_result(_Functor&& __f, _Args&&... __args)
+ : _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
+ { }
+
+      _Bind_result(const _Bind_result&) = default;
+
+      _Bind_result(_Bind_result&& __b)
+      : _M_f(std::move(__b._M_f)), _M_bound_args(std::move(__b._M_bound_args))
+      { }
+
+
+      template<typename... _Args>
+ result_type
+ operator()(_Args&&... __args)
+ {
+   return this->__call<_Result>(
+       std::forward_as_tuple(std::forward<_Args>(__args)...),
+       _Bound_indexes());
+ }
+
+
+      template<typename... _Args>
+ result_type
+ operator()(_Args&&... __args) const
+ {
+   return this->__call<_Result>(
+       std::forward_as_tuple(std::forward<_Args>(__args)...),
+       _Bound_indexes());
+ }
+
+
+      template<typename... _Args>
+ result_type
+ operator()(_Args&&... __args) volatile
+ {
+   return this->__call<_Result>(
+       std::forward_as_tuple(std::forward<_Args>(__args)...),
+       _Bound_indexes());
+ }
+
+
+      template<typename... _Args>
+ result_type
+ operator()(_Args&&... __args) const volatile
+ {
+   return this->__call<_Result>(
+       std::forward_as_tuple(std::forward<_Args>(__args)...),
+       _Bound_indexes());
+ }
+    };
+
+
+
+
+
+  template<typename _Signature>
+    struct is_bind_expression<_Bind<_Signature> >
+    : public true_type { };
+
+
+
+
+
+  template<typename _Signature>
+    struct is_bind_expression<const _Bind<_Signature> >
+    : public true_type { };
+
+
+
+
+
+  template<typename _Signature>
+    struct is_bind_expression<volatile _Bind<_Signature> >
+    : public true_type { };
+
+
+
+
+
+  template<typename _Signature>
+    struct is_bind_expression<const volatile _Bind<_Signature>>
+    : public true_type { };
+
+
+
+
+
+  template<typename _Result, typename _Signature>
+    struct is_bind_expression<_Bind_result<_Result, _Signature>>
+    : public true_type { };
+
+
+
+
+
+  template<typename _Result, typename _Signature>
+    struct is_bind_expression<const _Bind_result<_Result, _Signature>>
+    : public true_type { };
+
+
+
+
+
+  template<typename _Result, typename _Signature>
+    struct is_bind_expression<volatile _Bind_result<_Result, _Signature>>
+    : public true_type { };
+
+
+
+
+
+  template<typename _Result, typename _Signature>
+    struct is_bind_expression<const volatile _Bind_result<_Result, _Signature>>
+    : public true_type { };
+
+  template<typename _Func, typename... _BoundArgs>
+    struct _Bind_check_arity { };
+
+  template<typename _Ret, typename... _Args, typename... _BoundArgs>
+    struct _Bind_check_arity<_Ret (*)(_Args...), _BoundArgs...>
+    {
+      static_assert(sizeof...(_BoundArgs) == sizeof...(_Args),
+                   "Wrong number of arguments for function");
+    };
+
+  template<typename _Ret, typename... _Args, typename... _BoundArgs>
+    struct _Bind_check_arity<_Ret (*)(_Args......), _BoundArgs...>
+    {
+      static_assert(sizeof...(_BoundArgs) >= sizeof...(_Args),
+                   "Wrong number of arguments for function");
+    };
+
+  template<typename _Tp, typename _Class, typename... _BoundArgs>
+    struct _Bind_check_arity<_Tp _Class::*, _BoundArgs...>
+    {
+      using _Arity = typename _Mem_fn<_Tp _Class::*>::_Arity;
+      using _Varargs = typename _Mem_fn<_Tp _Class::*>::_Varargs;
+      static_assert(_Varargs::value
+      ? sizeof...(_BoundArgs) >= _Arity::value + 1
+      : sizeof...(_BoundArgs) == _Arity::value + 1,
+      "Wrong number of arguments for pointer-to-member");
+    };
+
+
+
+
+  template<typename _Tp, typename _Tp2 = typename decay<_Tp>::type>
+    using __is_socketlike = __or_<is_integral<_Tp2>, is_enum<_Tp2>>;
+
+  template<bool _SocketLike, typename _Func, typename... _BoundArgs>
+    struct _Bind_helper
+    : _Bind_check_arity<typename decay<_Func>::type, _BoundArgs...>
+    {
+      typedef _Maybe_wrap_member_pointer<typename decay<_Func>::type>
+ __maybe_type;
+      typedef typename __maybe_type::type __func_type;
+      typedef _Bind<__func_type(typename decay<_BoundArgs>::type...)> type;
+    };
+
+
+
+
+  template<typename _Func, typename... _BoundArgs>
+    struct _Bind_helper<true, _Func, _BoundArgs...>
+    { };
+
+
+
+
+
+  template<typename _Func, typename... _BoundArgs>
+    inline typename
+    _Bind_helper<__is_socketlike<_Func>::value, _Func, _BoundArgs...>::type
+    bind(_Func&& __f, _BoundArgs&&... __args)
+    {
+      typedef _Bind_helper<false, _Func, _BoundArgs...> __helper_type;
+      typedef typename __helper_type::__maybe_type __maybe_type;
+      typedef typename __helper_type::type __result_type;
+      return __result_type(__maybe_type::__do_wrap(std::forward<_Func>(__f)),
+      std::forward<_BoundArgs>(__args)...);
+    }
+
+  template<typename _Result, typename _Func, typename... _BoundArgs>
+    struct _Bindres_helper
+    : _Bind_check_arity<typename decay<_Func>::type, _BoundArgs...>
+    {
+      typedef _Maybe_wrap_member_pointer<typename decay<_Func>::type>
+ __maybe_type;
+      typedef typename __maybe_type::type __functor_type;
+      typedef _Bind_result<_Result,
+      __functor_type(typename decay<_BoundArgs>::type...)>
+ type;
+    };
+
+
+
+
+
+  template<typename _Result, typename _Func, typename... _BoundArgs>
+    inline
+    typename _Bindres_helper<_Result, _Func, _BoundArgs...>::type
+    bind(_Func&& __f, _BoundArgs&&... __args)
+    {
+      typedef _Bindres_helper<_Result, _Func, _BoundArgs...> __helper_type;
+      typedef typename __helper_type::__maybe_type __maybe_type;
+      typedef typename __helper_type::type __result_type;
+      return __result_type(__maybe_type::__do_wrap(std::forward<_Func>(__f)),
+      std::forward<_BoundArgs>(__args)...);
+    }
+
+  template<typename _Signature>
+    struct _Bind_simple;
+
+  template<typename _Callable, typename... _Args>
+    struct _Bind_simple<_Callable(_Args...)>
+    {
+      typedef typename result_of<_Callable(_Args...)>::type result_type;
+
+      template<typename _Tp, typename... _Up>
+        explicit
+        _Bind_simple(_Tp&& __f, _Up&&... __args)
+        : _M_bound(std::forward<_Tp>(__f), std::forward<_Up>(__args)...)
+        { }
+
+      _Bind_simple(const _Bind_simple&) = default;
+      _Bind_simple(_Bind_simple&&) = default;
+
+      result_type
+      operator()()
+      {
+        typedef typename _Build_index_tuple<sizeof...(_Args)>::__type _Indices;
+        return _M_invoke(_Indices());
+      }
+
+    private:
+      template<std::size_t... _Indices>
+        typename result_of<_Callable(_Args...)>::type
+        _M_invoke(_Index_tuple<_Indices...>)
+        {
+
+
+          return std::forward<_Callable>(std::get<0>(_M_bound))(
+              std::forward<_Args>(std::get<_Indices+1>(_M_bound))...);
+        }
+
+      std::tuple<_Callable, _Args...> _M_bound;
+    };
+
+  template<typename _Func, typename... _BoundArgs>
+    struct _Bind_simple_helper
+    : _Bind_check_arity<typename decay<_Func>::type, _BoundArgs...>
+    {
+      typedef _Maybe_wrap_member_pointer<typename decay<_Func>::type>
+        __maybe_type;
+      typedef typename __maybe_type::type __func_type;
+      typedef _Bind_simple<__func_type(typename decay<_BoundArgs>::type...)>
+        __type;
+    };
+
+
+
+  template<typename _Callable, typename... _Args>
+    typename _Bind_simple_helper<_Callable, _Args...>::__type
+    __bind_simple(_Callable&& __callable, _Args&&... __args)
+    {
+      typedef _Bind_simple_helper<_Callable, _Args...> __helper_type;
+      typedef typename __helper_type::__maybe_type __maybe_type;
+      typedef typename __helper_type::__type __result_type;
+      return __result_type(
+          __maybe_type::__do_wrap( std::forward<_Callable>(__callable)),
+          std::forward<_Args>(__args)...);
+    }
+
+
+
+
+
+
+  class bad_function_call : public std::exception
+  {
+  public:
+    virtual ~bad_function_call() noexcept;
+
+    const char* what() const noexcept;
+  };
+
+
+
+
+
+
+
+  template<typename _Tp>
+    struct __is_location_invariant
+    : is_trivially_copyable<_Tp>::type
+    { };
+
+  class _Undefined_class;
+
+  union _Nocopy_types
+  {
+    void* _M_object;
+    const void* _M_const_object;
+    void (*_M_function_pointer)();
+    void (_Undefined_class::*_M_member_pointer)();
+  };
+
+  union [[gnu::may_alias]] _Any_data
+  {
+    void* _M_access() { return &_M_pod_data[0]; }
+    const void* _M_access() const { return &_M_pod_data[0]; }
+
+    template<typename _Tp>
+      _Tp&
+      _M_access()
+      { return *static_cast<_Tp*>(_M_access()); }
+
+    template<typename _Tp>
+      const _Tp&
+      _M_access() const
+      { return *static_cast<const _Tp*>(_M_access()); }
+
+    _Nocopy_types _M_unused;
+    char _M_pod_data[sizeof(_Nocopy_types)];
+  };
+
+  enum _Manager_operation
+  {
+    __get_type_info,
+    __get_functor_ptr,
+    __clone_functor,
+    __destroy_functor
+  };
+
+
+
+  template<typename _Tp>
+    struct _Simple_type_wrapper
+    {
+      _Simple_type_wrapper(_Tp __value) : __value(__value) { }
+
+      _Tp __value;
+    };
+
+  template<typename _Tp>
+    struct __is_location_invariant<_Simple_type_wrapper<_Tp> >
+    : __is_location_invariant<_Tp>
+    { };
+
+
+
+  template<typename _Functor>
+    inline _Functor&
+    __callable_functor(_Functor& __f)
+    { return __f; }
+
+  template<typename _Member, typename _Class>
+    inline _Mem_fn<_Member _Class::*>
+    __callable_functor(_Member _Class::* &__p)
+    { return std::mem_fn(__p); }
+
+  template<typename _Member, typename _Class>
+    inline _Mem_fn<_Member _Class::*>
+    __callable_functor(_Member _Class::* const &__p)
+    { return std::mem_fn(__p); }
+
+  template<typename _Member, typename _Class>
+    inline _Mem_fn<_Member _Class::*>
+    __callable_functor(_Member _Class::* volatile &__p)
+    { return std::mem_fn(__p); }
+
+  template<typename _Member, typename _Class>
+    inline _Mem_fn<_Member _Class::*>
+    __callable_functor(_Member _Class::* const volatile &__p)
+    { return std::mem_fn(__p); }
+
+  template<typename _Signature>
+    class function;
+
+
+  class _Function_base
+  {
+  public:
+    static const std::size_t _M_max_size = sizeof(_Nocopy_types);
+    static const std::size_t _M_max_align = __alignof__(_Nocopy_types);
+
+    template<typename _Functor>
+      class _Base_manager
+      {
+      protected:
+ static const bool __stored_locally =
+ (__is_location_invariant<_Functor>::value
+  && sizeof(_Functor) <= _M_max_size
+  && __alignof__(_Functor) <= _M_max_align
+  && (_M_max_align % __alignof__(_Functor) == 0));
+
+ typedef integral_constant<bool, __stored_locally> _Local_storage;
+
+
+ static _Functor*
+ _M_get_pointer(const _Any_data& __source)
+ {
+   const _Functor* __ptr =
+     __stored_locally? std::__addressof(__source._M_access<_Functor>())
+                                 : __source._M_access<_Functor*>();
+   return const_cast<_Functor*>(__ptr);
+ }
+
+
+
+ static void
+ _M_clone(_Any_data& __dest, const _Any_data& __source, true_type)
+ {
+   ::new (__dest._M_access()) _Functor(__source._M_access<_Functor>());
+ }
+
+
+
+ static void
+ _M_clone(_Any_data& __dest, const _Any_data& __source, false_type)
+ {
+   __dest._M_access<_Functor*>() =
+     new _Functor(*__source._M_access<_Functor*>());
+ }
+
+
+
+ static void
+ _M_destroy(_Any_data& __victim, true_type)
+ {
+   __victim._M_access<_Functor>().~_Functor();
+ }
+
+
+ static void
+ _M_destroy(_Any_data& __victim, false_type)
+ {
+   delete __victim._M_access<_Functor*>();
+ }
+
+      public:
+ static bool
+ _M_manager(_Any_data& __dest, const _Any_data& __source,
+     _Manager_operation __op)
+ {
+   switch (__op)
+     {
+
+     case __get_type_info:
+       __dest._M_access<const type_info*>() = &typeid(_Functor);
+       break;
+
+     case __get_functor_ptr:
+       __dest._M_access<_Functor*>() = _M_get_pointer(__source);
+       break;
+
+     case __clone_functor:
+       _M_clone(__dest, __source, _Local_storage());
+       break;
+
+     case __destroy_functor:
+       _M_destroy(__dest, _Local_storage());
+       break;
+     }
+   return false;
+ }
+
+ static void
+ _M_init_functor(_Any_data& __functor, _Functor&& __f)
+ { _M_init_functor(__functor, std::move(__f), _Local_storage()); }
+
+ template<typename _Signature>
+   static bool
+   _M_not_empty_function(const function<_Signature>& __f)
+   { return static_cast<bool>(__f); }
+
+ template<typename _Tp>
+   static bool
+   _M_not_empty_function(_Tp* __fp)
+   { return __fp != nullptr; }
+
+ template<typename _Class, typename _Tp>
+   static bool
+   _M_not_empty_function(_Tp _Class::* __mp)
+   { return __mp != nullptr; }
+
+ template<typename _Tp>
+   static bool
+   _M_not_empty_function(const _Tp&)
+   { return true; }
+
+      private:
+ static void
+ _M_init_functor(_Any_data& __functor, _Functor&& __f, true_type)
+ { ::new (__functor._M_access()) _Functor(std::move(__f)); }
+
+ static void
+ _M_init_functor(_Any_data& __functor, _Functor&& __f, false_type)
+ { __functor._M_access<_Functor*>() = new _Functor(std::move(__f)); }
+      };
+
+    template<typename _Functor>
+      class _Ref_manager : public _Base_manager<_Functor*>
+      {
+ typedef _Function_base::_Base_manager<_Functor*> _Base;
+
+      public:
+ static bool
+ _M_manager(_Any_data& __dest, const _Any_data& __source,
+     _Manager_operation __op)
+ {
+   switch (__op)
+     {
+
+     case __get_type_info:
+       __dest._M_access<const type_info*>() = &typeid(_Functor);
+       break;
+
+     case __get_functor_ptr:
+       __dest._M_access<_Functor*>() = *_Base::_M_get_pointer(__source);
+       return is_const<_Functor>::value;
+       break;
+
+     default:
+       _Base::_M_manager(__dest, __source, __op);
+     }
+   return false;
+ }
+
+ static void
+ _M_init_functor(_Any_data& __functor, reference_wrapper<_Functor> __f)
+ {
+   _Base::_M_init_functor(__functor, std::__addressof(__f.get()));
+ }
+      };
+
+    _Function_base() : _M_manager(nullptr) { }
+
+    ~_Function_base()
+    {
+      if (_M_manager)
+ _M_manager(_M_functor, _M_functor, __destroy_functor);
+    }
+
+
+    bool _M_empty() const { return !_M_manager; }
+
+    typedef bool (*_Manager_type)(_Any_data&, const _Any_data&,
+      _Manager_operation);
+
+    _Any_data _M_functor;
+    _Manager_type _M_manager;
+  };
+
+  template<typename _Signature, typename _Functor>
+    class _Function_handler;
+
+  template<typename _Res, typename _Functor, typename... _ArgTypes>
+    class _Function_handler<_Res(_ArgTypes...), _Functor>
+    : public _Function_base::_Base_manager<_Functor>
+    {
+      typedef _Function_base::_Base_manager<_Functor> _Base;
+
+    public:
+      static _Res
+      _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args)
+      {
+ return (*_Base::_M_get_pointer(__functor))(
+     std::forward<_ArgTypes>(__args)...);
+      }
+    };
+
+  template<typename _Functor, typename... _ArgTypes>
+    class _Function_handler<void(_ArgTypes...), _Functor>
+    : public _Function_base::_Base_manager<_Functor>
+    {
+      typedef _Function_base::_Base_manager<_Functor> _Base;
+
+     public:
+      static void
+      _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args)
+      {
+ (*_Base::_M_get_pointer(__functor))(
+     std::forward<_ArgTypes>(__args)...);
+      }
+    };
+
+  template<typename _Res, typename _Functor, typename... _ArgTypes>
+    class _Function_handler<_Res(_ArgTypes...), reference_wrapper<_Functor> >
+    : public _Function_base::_Ref_manager<_Functor>
+    {
+      typedef _Function_base::_Ref_manager<_Functor> _Base;
+
+     public:
+      static _Res
+      _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args)
+      {
+ return std::__callable_functor(**_Base::_M_get_pointer(__functor))(
+       std::forward<_ArgTypes>(__args)...);
+      }
+    };
+
+  template<typename _Functor, typename... _ArgTypes>
+    class _Function_handler<void(_ArgTypes...), reference_wrapper<_Functor> >
+    : public _Function_base::_Ref_manager<_Functor>
+    {
+      typedef _Function_base::_Ref_manager<_Functor> _Base;
+
+     public:
+      static void
+      _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args)
+      {
+ std::__callable_functor(**_Base::_M_get_pointer(__functor))(
+     std::forward<_ArgTypes>(__args)...);
+      }
+    };
+
+  template<typename _Class, typename _Member, typename _Res,
+    typename... _ArgTypes>
+    class _Function_handler<_Res(_ArgTypes...), _Member _Class::*>
+    : public _Function_handler<void(_ArgTypes...), _Member _Class::*>
+    {
+      typedef _Function_handler<void(_ArgTypes...), _Member _Class::*>
+ _Base;
+
+     public:
+      static _Res
+      _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args)
+      {
+ return std::mem_fn(_Base::_M_get_pointer(__functor)->__value)(
+     std::forward<_ArgTypes>(__args)...);
+      }
+    };
+
+  template<typename _Class, typename _Member, typename... _ArgTypes>
+    class _Function_handler<void(_ArgTypes...), _Member _Class::*>
+    : public _Function_base::_Base_manager<
+   _Simple_type_wrapper< _Member _Class::* > >
+    {
+      typedef _Member _Class::* _Functor;
+      typedef _Simple_type_wrapper<_Functor> _Wrapper;
+      typedef _Function_base::_Base_manager<_Wrapper> _Base;
+
+    public:
+      static bool
+      _M_manager(_Any_data& __dest, const _Any_data& __source,
+   _Manager_operation __op)
+      {
+ switch (__op)
+   {
+
+   case __get_type_info:
+     __dest._M_access<const type_info*>() = &typeid(_Functor);
+     break;
+
+   case __get_functor_ptr:
+     __dest._M_access<_Functor*>() =
+       &_Base::_M_get_pointer(__source)->__value;
+     break;
+
+   default:
+     _Base::_M_manager(__dest, __source, __op);
+   }
+ return false;
+      }
+
+      static void
+      _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args)
+      {
+ std::mem_fn(_Base::_M_get_pointer(__functor)->__value)(
+     std::forward<_ArgTypes>(__args)...);
+      }
+    };
+
+  template<typename _From, typename _To>
+    using __check_func_return_type
+      = __or_<is_void<_To>, is_same<_From, _To>, is_convertible<_From, _To>>;
+
+
+
+
+
+
+
+  template<typename _Res, typename... _ArgTypes>
+    class function<_Res(_ArgTypes...)>
+    : public _Maybe_unary_or_binary_function<_Res, _ArgTypes...>,
+      private _Function_base
+    {
+      typedef _Res _Signature_type(_ArgTypes...);
+
+      template<typename _Func,
+        typename _Res2 = typename result_of<_Func&(_ArgTypes...)>::type>
+ struct _Callable : __check_func_return_type<_Res2, _Res> { };
+
+
+
+      template<typename _Tp>
+ struct _Callable<function, _Tp> : false_type { };
+
+      template<typename _Cond, typename _Tp>
+ using _Requires = typename enable_if<_Cond::value, _Tp>::type;
+
+    public:
+      typedef _Res result_type;
+
+
+
+
+
+
+
+      function() noexcept
+      : _Function_base() { }
+
+
+
+
+
+      function(nullptr_t) noexcept
+      : _Function_base() { }
+# 1879 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/functional" 3
+      function(const function& __x);
+# 1888 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/functional" 3
+      function(function&& __x) : _Function_base()
+      {
+ __x.swap(*this);
+      }
+# 1911 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/functional" 3
+      template<typename _Functor,
+        typename = _Requires<__not_<is_same<_Functor, function>>, void>,
+        typename = _Requires<_Callable<_Functor>, void>>
+ function(_Functor);
+# 1928 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/functional" 3
+      function&
+      operator=(const function& __x)
+      {
+ function(__x).swap(*this);
+ return *this;
+      }
+# 1946 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/functional" 3
+      function&
+      operator=(function&& __x)
+      {
+ function(std::move(__x)).swap(*this);
+ return *this;
+      }
+# 1960 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/functional" 3
+      function&
+      operator=(nullptr_t) noexcept
+      {
+ if (_M_manager)
+   {
+     _M_manager(_M_functor, _M_functor, __destroy_functor);
+     _M_manager = nullptr;
+     _M_invoker = nullptr;
+   }
+ return *this;
+      }
+# 1988 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/functional" 3
+      template<typename _Functor>
+ _Requires<_Callable<typename decay<_Functor>::type>, function&>
+ operator=(_Functor&& __f)
+ {
+   function(std::forward<_Functor>(__f)).swap(*this);
+   return *this;
+ }
+
+
+      template<typename _Functor>
+ function&
+ operator=(reference_wrapper<_Functor> __f) noexcept
+ {
+   function(__f).swap(*this);
+   return *this;
+ }
+# 2014 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/functional" 3
+      void swap(function& __x) noexcept
+      {
+ std::swap(_M_functor, __x._M_functor);
+ std::swap(_M_manager, __x._M_manager);
+ std::swap(_M_invoker, __x._M_invoker);
+      }
+# 2042 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/functional" 3
+      explicit operator bool() const noexcept
+      { return !_M_empty(); }
+# 2055 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/functional" 3
+      _Res operator()(_ArgTypes... __args) const;
+# 2068 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/functional" 3
+      const type_info& target_type() const noexcept;
+# 2079 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/functional" 3
+      template<typename _Functor> _Functor* target() noexcept;
+
+
+      template<typename _Functor> const _Functor* target() const noexcept;
+
+
+    private:
+      using _Invoker_type = _Res (*)(const _Any_data&, _ArgTypes&&...);
+      _Invoker_type _M_invoker;
+  };
+
+
+  template<typename _Res, typename... _ArgTypes>
+    function<_Res(_ArgTypes...)>::
+    function(const function& __x)
+    : _Function_base()
+    {
+      if (static_cast<bool>(__x))
+ {
+   __x._M_manager(_M_functor, __x._M_functor, __clone_functor);
+   _M_invoker = __x._M_invoker;
+   _M_manager = __x._M_manager;
+ }
+    }
+
+  template<typename _Res, typename... _ArgTypes>
+    template<typename _Functor, typename, typename>
+      function<_Res(_ArgTypes...)>::
+      function(_Functor __f)
+      : _Function_base()
+      {
+ typedef _Function_handler<_Signature_type, _Functor> _My_handler;
+
+ if (_My_handler::_M_not_empty_function(__f))
+   {
+     _My_handler::_M_init_functor(_M_functor, std::move(__f));
+     _M_invoker = &_My_handler::_M_invoke;
+     _M_manager = &_My_handler::_M_manager;
+   }
+      }
+
+  template<typename _Res, typename... _ArgTypes>
+    _Res
+    function<_Res(_ArgTypes...)>::
+    operator()(_ArgTypes... __args) const
+    {
+      if (_M_empty())
+ __throw_bad_function_call();
+      return _M_invoker(_M_functor, std::forward<_ArgTypes>(__args)...);
+    }
+
+
+  template<typename _Res, typename... _ArgTypes>
+    const type_info&
+    function<_Res(_ArgTypes...)>::
+    target_type() const noexcept
+    {
+      if (_M_manager)
+ {
+   _Any_data __typeinfo_result;
+   _M_manager(__typeinfo_result, _M_functor, __get_type_info);
+   return *__typeinfo_result._M_access<const type_info*>();
+ }
+      else
+ return typeid(void);
+    }
+
+  template<typename _Res, typename... _ArgTypes>
+    template<typename _Functor>
+      _Functor*
+      function<_Res(_ArgTypes...)>::
+      target() noexcept
+      {
+ if (typeid(_Functor) == target_type() && _M_manager)
+   {
+     _Any_data __ptr;
+     if (_M_manager(__ptr, _M_functor, __get_functor_ptr)
+  && !is_const<_Functor>::value)
+       return 0;
+     else
+       return __ptr._M_access<_Functor*>();
+   }
+ else
+   return 0;
+      }
+
+  template<typename _Res, typename... _ArgTypes>
+    template<typename _Functor>
+      const _Functor*
+      function<_Res(_ArgTypes...)>::
+      target() const noexcept
+      {
+ if (typeid(_Functor) == target_type() && _M_manager)
+   {
+     _Any_data __ptr;
+     _M_manager(__ptr, _M_functor, __get_functor_ptr);
+     return __ptr._M_access<const _Functor*>();
+   }
+ else
+   return 0;
+      }
+# 2191 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/functional" 3
+  template<typename _Res, typename... _Args>
+    inline bool
+    operator==(const function<_Res(_Args...)>& __f, nullptr_t) noexcept
+    { return !static_cast<bool>(__f); }
+
+
+  template<typename _Res, typename... _Args>
+    inline bool
+    operator==(nullptr_t, const function<_Res(_Args...)>& __f) noexcept
+    { return !static_cast<bool>(__f); }
+# 2209 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/functional" 3
+  template<typename _Res, typename... _Args>
+    inline bool
+    operator!=(const function<_Res(_Args...)>& __f, nullptr_t) noexcept
+    { return static_cast<bool>(__f); }
+
+
+  template<typename _Res, typename... _Args>
+    inline bool
+    operator!=(nullptr_t, const function<_Res(_Args...)>& __f) noexcept
+    { return static_cast<bool>(__f); }
+# 2229 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/functional" 3
+  template<typename _Res, typename... _Args>
+    inline void
+    swap(function<_Res(_Args...)>& __x, function<_Res(_Args...)>& __y) noexcept
+    { __x.swap(__y); }
+
+
+}
+# 80 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/memory" 2 3
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/unique_ptr.h" 1 3
+# 39 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/unique_ptr.h" 3
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 49 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/unique_ptr.h" 3
+  template<typename> class auto_ptr;
+
+
+
+  template<typename _Tp>
+    struct default_delete
+    {
+
+      constexpr default_delete() noexcept = default;
+
+
+
+
+
+
+      template<typename _Up, typename = typename
+        enable_if<is_convertible<_Up*, _Tp*>::value>::type>
+        default_delete(const default_delete<_Up>&) noexcept { }
+
+
+      void
+      operator()(_Tp* __ptr) const
+      {
+ static_assert(!is_void<_Tp>::value,
+        "can't delete pointer to incomplete type");
+ static_assert(sizeof(_Tp)>0,
+        "can't delete pointer to incomplete type");
+ delete __ptr;
+      }
+    };
+
+
+
+
+  template<typename _Tp>
+    struct default_delete<_Tp[]>
+    {
+    public:
+
+      constexpr default_delete() noexcept = default;
+# 99 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/unique_ptr.h" 3
+      template<typename _Up, typename = typename
+        enable_if<is_convertible<_Up(*)[], _Tp(*)[]>::value>::type>
+        default_delete(const default_delete<_Up[]>&) noexcept { }
+
+
+      template<typename _Up>
+      typename enable_if<is_convertible<_Up(*)[], _Tp(*)[]>::value>::type
+ operator()(_Up* __ptr) const
+      {
+ static_assert(sizeof(_Tp)>0,
+        "can't delete pointer to incomplete type");
+ delete [] __ptr;
+      }
+    };
+
+
+  template <typename _Tp, typename _Dp = default_delete<_Tp> >
+    class unique_ptr
+    {
+
+      class _Pointer
+      {
+ template<typename _Up>
+   static typename _Up::pointer __test(typename _Up::pointer*);
+
+ template<typename _Up>
+   static _Tp* __test(...);
+
+ typedef typename remove_reference<_Dp>::type _Del;
+
+      public:
+ typedef decltype(__test<_Del>(0)) type;
+      };
+
+      typedef std::tuple<typename _Pointer::type, _Dp> __tuple_type;
+      __tuple_type _M_t;
+
+    public:
+      typedef typename _Pointer::type pointer;
+      typedef _Tp element_type;
+      typedef _Dp deleter_type;
+
+
+
+
+      template<typename _Up, typename _Ep>
+ using __safe_conversion_up = __and_<
+         is_convertible<typename unique_ptr<_Up, _Ep>::pointer, pointer>,
+                __not_<is_array<_Up>>,
+                __or_<__and_<is_reference<deleter_type>,
+                             is_same<deleter_type, _Ep>>,
+                      __and_<__not_<is_reference<deleter_type>>,
+                             is_convertible<_Ep, deleter_type>>
+                >
+              >;
+
+
+
+
+      constexpr unique_ptr() noexcept
+      : _M_t()
+      { static_assert(!is_pointer<deleter_type>::value,
+       "constructed with null function pointer deleter"); }
+
+
+
+
+
+
+
+      explicit
+      unique_ptr(pointer __p) noexcept
+      : _M_t()
+      {
+ std::get<0>(_M_t) = __p;
+ static_assert(!is_pointer<deleter_type>::value,
+       "constructed with null function pointer deleter");
+      }
+# 185 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/unique_ptr.h" 3
+      unique_ptr(pointer __p,
+   typename conditional<is_reference<deleter_type>::value,
+     deleter_type, const deleter_type&>::type __d) noexcept
+      : _M_t(__p, __d) { }
+# 197 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/unique_ptr.h" 3
+      unique_ptr(pointer __p,
+   typename remove_reference<deleter_type>::type&& __d) noexcept
+      : _M_t(std::move(__p), std::move(__d))
+      { static_assert(!std::is_reference<deleter_type>::value,
+        "rvalue deleter bound to reference"); }
+
+
+      constexpr unique_ptr(nullptr_t) noexcept : unique_ptr() { }
+
+
+
+
+      unique_ptr(unique_ptr&& __u) noexcept
+      : _M_t(__u.release(), std::forward<deleter_type>(__u.get_deleter())) { }
+
+
+
+
+
+
+
+      template<typename _Up, typename _Ep, typename = _Require<
+               __safe_conversion_up<_Up, _Ep>,
+        typename conditional<is_reference<_Dp>::value,
+        is_same<_Ep, _Dp>,
+        is_convertible<_Ep, _Dp>>::type>>
+ unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept
+ : _M_t(__u.release(), std::forward<_Ep>(__u.get_deleter()))
+ { }
+
+
+
+      template<typename _Up, typename = _Require<
+        is_convertible<_Up*, _Tp*>, is_same<_Dp, default_delete<_Tp>>>>
+ unique_ptr(auto_ptr<_Up>&& __u) noexcept;
+
+
+
+      ~unique_ptr() noexcept
+      {
+ auto& __ptr = std::get<0>(_M_t);
+ if (__ptr != nullptr)
+   get_deleter()(__ptr);
+ __ptr = pointer();
+      }
+# 251 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/unique_ptr.h" 3
+      unique_ptr&
+      operator=(unique_ptr&& __u) noexcept
+      {
+ reset(__u.release());
+ get_deleter() = std::forward<deleter_type>(__u.get_deleter());
+ return *this;
+      }
+# 266 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/unique_ptr.h" 3
+      template<typename _Up, typename _Ep>
+        typename enable_if< __and_<
+          __safe_conversion_up<_Up, _Ep>,
+          is_assignable<deleter_type&, _Ep&&>
+          >::value,
+          unique_ptr&>::type
+ operator=(unique_ptr<_Up, _Ep>&& __u) noexcept
+ {
+   reset(__u.release());
+   get_deleter() = std::forward<_Ep>(__u.get_deleter());
+   return *this;
+ }
+
+
+      unique_ptr&
+      operator=(nullptr_t) noexcept
+      {
+ reset();
+ return *this;
+      }
+
+
+
+
+      typename add_lvalue_reference<element_type>::type
+      operator*() const
+      {
+                                     ;
+ return *get();
+      }
+
+
+      pointer
+      operator->() const noexcept
+      {
+                                             ;
+ return get();
+      }
+
+
+      pointer
+      get() const noexcept
+      { return std::get<0>(_M_t); }
+
+
+      deleter_type&
+      get_deleter() noexcept
+      { return std::get<1>(_M_t); }
+
+
+      const deleter_type&
+      get_deleter() const noexcept
+      { return std::get<1>(_M_t); }
+
+
+      explicit operator bool() const noexcept
+      { return get() == pointer() ? false : true; }
+
+
+
+
+      pointer
+      release() noexcept
+      {
+ pointer __p = get();
+ std::get<0>(_M_t) = pointer();
+ return __p;
+      }
+
+
+
+
+
+
+
+      void
+      reset(pointer __p = pointer()) noexcept
+      {
+ using std::swap;
+ swap(std::get<0>(_M_t), __p);
+ if (__p != pointer())
+   get_deleter()(__p);
+      }
+
+
+      void
+      swap(unique_ptr& __u) noexcept
+      {
+ using std::swap;
+ swap(_M_t, __u._M_t);
+      }
+
+
+      unique_ptr(const unique_ptr&) = delete;
+      unique_ptr& operator=(const unique_ptr&) = delete;
+  };
+
+
+
+
+
+  template<typename _Tp, typename _Dp>
+    class unique_ptr<_Tp[], _Dp>
+    {
+
+      class _Pointer
+      {
+ template<typename _Up>
+   static typename _Up::pointer __test(typename _Up::pointer*);
+
+ template<typename _Up>
+   static _Tp* __test(...);
+
+ typedef typename remove_reference<_Dp>::type _Del;
+
+      public:
+ typedef decltype(__test<_Del>(0)) type;
+      };
+
+      typedef std::tuple<typename _Pointer::type, _Dp> __tuple_type;
+      __tuple_type _M_t;
+
+      template<typename _Up>
+ using __remove_cv = typename remove_cv<_Up>::type;
+
+
+      template<typename _Up>
+ using __is_derived_Tp
+   = __and_< is_base_of<_Tp, _Up>,
+      __not_<is_same<__remove_cv<_Tp>, __remove_cv<_Up>>> >;
+
+
+    public:
+      typedef typename _Pointer::type pointer;
+      typedef _Tp element_type;
+      typedef _Dp deleter_type;
+
+
+
+      template<typename _Up, typename _Ep,
+               typename _Up_up = unique_ptr<_Up, _Ep>,
+        typename _Up_element_type = typename _Up_up::element_type>
+ using __safe_conversion_up = __and_<
+          is_array<_Up>,
+          is_same<pointer, element_type*>,
+          is_same<typename _Up_up::pointer, _Up_element_type*>,
+          is_convertible<_Up_element_type(*)[], element_type(*)[]>,
+          __or_<__and_<is_reference<deleter_type>, is_same<deleter_type, _Ep>>,
+                __and_<__not_<is_reference<deleter_type>>,
+                       is_convertible<_Ep, deleter_type>>>
+        >;
+
+
+      template<typename _Up>
+        using __safe_conversion_raw = __and_<
+          __or_<__or_<is_same<_Up, pointer>,
+                      is_same<_Up, nullptr_t>>,
+                __and_<is_pointer<_Up>,
+                       is_same<pointer, element_type*>,
+                       is_convertible<
+                         typename remove_pointer<_Up>::type(*)[],
+                         element_type(*)[]>
+                >
+          >
+        >;
+
+
+
+
+      constexpr unique_ptr() noexcept
+      : _M_t()
+      { static_assert(!std::is_pointer<deleter_type>::value,
+        "constructed with null function pointer deleter"); }
+# 447 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/unique_ptr.h" 3
+      template<typename _Up,
+               typename = typename enable_if<
+                 __safe_conversion_raw<_Up>::value, bool>::type>
+      explicit
+      unique_ptr(_Up __p) noexcept
+      : _M_t(__p, deleter_type())
+      { static_assert(!is_pointer<deleter_type>::value,
+        "constructed with null function pointer deleter"); }
+# 464 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/unique_ptr.h" 3
+      template<typename _Up,
+               typename = typename enable_if<
+                 __safe_conversion_raw<_Up>::value, bool>::type>
+      unique_ptr(_Up __p,
+                 typename conditional<is_reference<deleter_type>::value,
+                 deleter_type, const deleter_type&>::type __d) noexcept
+      : _M_t(__p, __d) { }
+# 480 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/unique_ptr.h" 3
+      template<typename _Up,
+               typename = typename enable_if<
+                 __safe_conversion_raw<_Up>::value, bool>::type>
+      unique_ptr(_Up __p, typename
+   remove_reference<deleter_type>::type&& __d) noexcept
+      : _M_t(std::move(__p), std::move(__d))
+      { static_assert(!is_reference<deleter_type>::value,
+        "rvalue deleter bound to reference"); }
+
+
+      unique_ptr(unique_ptr&& __u) noexcept
+      : _M_t(__u.release(), std::forward<deleter_type>(__u.get_deleter())) { }
+
+
+      constexpr unique_ptr(nullptr_t) noexcept : unique_ptr() { }
+
+      template<typename _Up, typename _Ep,
+        typename = _Require<__safe_conversion_up<_Up, _Ep>>>
+ unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept
+ : _M_t(__u.release(), std::forward<_Ep>(__u.get_deleter()))
+ { }
+
+
+      ~unique_ptr()
+      {
+ auto& __ptr = std::get<0>(_M_t);
+ if (__ptr != nullptr)
+   get_deleter()(__ptr);
+ __ptr = pointer();
+      }
+# 519 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/unique_ptr.h" 3
+      unique_ptr&
+      operator=(unique_ptr&& __u) noexcept
+      {
+ reset(__u.release());
+ get_deleter() = std::forward<deleter_type>(__u.get_deleter());
+ return *this;
+      }
+# 534 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/unique_ptr.h" 3
+      template<typename _Up, typename _Ep>
+ typename
+ enable_if<__and_<__safe_conversion_up<_Up, _Ep>,
+                         is_assignable<deleter_type&, _Ep&&>
+                  >::value,
+                  unique_ptr&>::type
+ operator=(unique_ptr<_Up, _Ep>&& __u) noexcept
+ {
+   reset(__u.release());
+   get_deleter() = std::forward<_Ep>(__u.get_deleter());
+   return *this;
+ }
+
+
+      unique_ptr&
+      operator=(nullptr_t) noexcept
+      {
+ reset();
+ return *this;
+      }
+
+
+
+
+      typename std::add_lvalue_reference<element_type>::type
+      operator[](size_t __i) const
+      {
+                                     ;
+ return get()[__i];
+      }
+
+
+      pointer
+      get() const noexcept
+      { return std::get<0>(_M_t); }
+
+
+      deleter_type&
+      get_deleter() noexcept
+      { return std::get<1>(_M_t); }
+
+
+      const deleter_type&
+      get_deleter() const noexcept
+      { return std::get<1>(_M_t); }
+
+
+      explicit operator bool() const noexcept
+      { return get() == pointer() ? false : true; }
+
+
+
+
+      pointer
+      release() noexcept
+      {
+ pointer __p = get();
+ std::get<0>(_M_t) = pointer();
+ return __p;
+      }
+
+
+
+
+
+
+
+      template <typename _Up,
+                typename = _Require<
+                  __or_<is_same<_Up, pointer>,
+                        __and_<is_same<pointer, element_type*>,
+                               is_pointer<_Up>,
+                               is_convertible<
+                                 typename remove_pointer<_Up>::type(*)[],
+                                 element_type(*)[]
+                               >
+                        >
+                  >
+               >>
+      void
+      reset(_Up __p) noexcept
+      {
+ pointer __ptr = __p;
+ using std::swap;
+ swap(std::get<0>(_M_t), __ptr);
+ if (__ptr != nullptr)
+   get_deleter()(__ptr);
+      }
+
+      void reset(nullptr_t = nullptr) noexcept
+      {
+        reset(pointer());
+      }
+
+
+      void
+      swap(unique_ptr& __u) noexcept
+      {
+ using std::swap;
+ swap(_M_t, __u._M_t);
+      }
+
+
+      unique_ptr(const unique_ptr&) = delete;
+      unique_ptr& operator=(const unique_ptr&) = delete;
+    };
+
+  template<typename _Tp, typename _Dp>
+    inline void
+    swap(unique_ptr<_Tp, _Dp>& __x,
+  unique_ptr<_Tp, _Dp>& __y) noexcept
+    { __x.swap(__y); }
+
+  template<typename _Tp, typename _Dp,
+    typename _Up, typename _Ep>
+    inline bool
+    operator==(const unique_ptr<_Tp, _Dp>& __x,
+        const unique_ptr<_Up, _Ep>& __y)
+    { return __x.get() == __y.get(); }
+
+  template<typename _Tp, typename _Dp>
+    inline bool
+    operator==(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) noexcept
+    { return !__x; }
+
+  template<typename _Tp, typename _Dp>
+    inline bool
+    operator==(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) noexcept
+    { return !__x; }
+
+  template<typename _Tp, typename _Dp,
+    typename _Up, typename _Ep>
+    inline bool
+    operator!=(const unique_ptr<_Tp, _Dp>& __x,
+        const unique_ptr<_Up, _Ep>& __y)
+    { return __x.get() != __y.get(); }
+
+  template<typename _Tp, typename _Dp>
+    inline bool
+    operator!=(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) noexcept
+    { return (bool)__x; }
+
+  template<typename _Tp, typename _Dp>
+    inline bool
+    operator!=(nullptr_t, const unique_ptr<_Tp, _Dp>& __x) noexcept
+    { return (bool)__x; }
+
+  template<typename _Tp, typename _Dp,
+    typename _Up, typename _Ep>
+    inline bool
+    operator<(const unique_ptr<_Tp, _Dp>& __x,
+       const unique_ptr<_Up, _Ep>& __y)
+    {
+      typedef typename
+ std::common_type<typename unique_ptr<_Tp, _Dp>::pointer,
+                  typename unique_ptr<_Up, _Ep>::pointer>::type _CT;
+      return std::less<_CT>()(__x.get(), __y.get());
+    }
+
+  template<typename _Tp, typename _Dp>
+    inline bool
+    operator<(const unique_ptr<_Tp, _Dp>& __x, nullptr_t)
+    { return std::less<typename unique_ptr<_Tp, _Dp>::pointer>()(__x.get(),
+         nullptr); }
+
+  template<typename _Tp, typename _Dp>
+    inline bool
+    operator<(nullptr_t, const unique_ptr<_Tp, _Dp>& __x)
+    { return std::less<typename unique_ptr<_Tp, _Dp>::pointer>()(nullptr,
+         __x.get()); }
+
+  template<typename _Tp, typename _Dp,
+    typename _Up, typename _Ep>
+    inline bool
+    operator<=(const unique_ptr<_Tp, _Dp>& __x,
+        const unique_ptr<_Up, _Ep>& __y)
+    { return !(__y < __x); }
+
+  template<typename _Tp, typename _Dp>
+    inline bool
+    operator<=(const unique_ptr<_Tp, _Dp>& __x, nullptr_t)
+    { return !(nullptr < __x); }
+
+  template<typename _Tp, typename _Dp>
+    inline bool
+    operator<=(nullptr_t, const unique_ptr<_Tp, _Dp>& __x)
+    { return !(__x < nullptr); }
+
+  template<typename _Tp, typename _Dp,
+    typename _Up, typename _Ep>
+    inline bool
+    operator>(const unique_ptr<_Tp, _Dp>& __x,
+       const unique_ptr<_Up, _Ep>& __y)
+    { return (__y < __x); }
+
+  template<typename _Tp, typename _Dp>
+    inline bool
+    operator>(const unique_ptr<_Tp, _Dp>& __x, nullptr_t)
+    { return std::less<typename unique_ptr<_Tp, _Dp>::pointer>()(nullptr,
+         __x.get()); }
+
+  template<typename _Tp, typename _Dp>
+    inline bool
+    operator>(nullptr_t, const unique_ptr<_Tp, _Dp>& __x)
+    { return std::less<typename unique_ptr<_Tp, _Dp>::pointer>()(__x.get(),
+         nullptr); }
+
+  template<typename _Tp, typename _Dp,
+    typename _Up, typename _Ep>
+    inline bool
+    operator>=(const unique_ptr<_Tp, _Dp>& __x,
+        const unique_ptr<_Up, _Ep>& __y)
+    { return !(__x < __y); }
+
+  template<typename _Tp, typename _Dp>
+    inline bool
+    operator>=(const unique_ptr<_Tp, _Dp>& __x, nullptr_t)
+    { return !(__x < nullptr); }
+
+  template<typename _Tp, typename _Dp>
+    inline bool
+    operator>=(nullptr_t, const unique_ptr<_Tp, _Dp>& __x)
+    { return !(nullptr < __x); }
+
+
+  template<typename _Tp, typename _Dp>
+    struct hash<unique_ptr<_Tp, _Dp>>
+    : public __hash_base<size_t, unique_ptr<_Tp, _Dp>>
+    {
+      size_t
+      operator()(const unique_ptr<_Tp, _Dp>& __u) const noexcept
+      {
+ typedef unique_ptr<_Tp, _Dp> _UP;
+ return std::hash<typename _UP::pointer>()(__u.get());
+      }
+    };
+# 808 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/unique_ptr.h" 3
+}
+# 82 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/memory" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr.h" 1 3
+# 52 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr.h" 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr_base.h" 1 3
+# 53 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr_base.h" 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/allocated_ptr.h" 1 3
+# 40 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/allocated_ptr.h" 3
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+
+  template<typename _Alloc>
+    struct __allocated_ptr
+    {
+      using pointer = typename allocator_traits<_Alloc>::pointer;
+      using value_type = typename allocator_traits<_Alloc>::value_type;
+
+
+      __allocated_ptr(_Alloc& __a, pointer __ptr) noexcept
+      : _M_alloc(std::__addressof(__a)), _M_ptr(__ptr)
+      { }
+
+
+      template<typename _Ptr,
+        typename _Req = _Require<is_same<_Ptr, value_type*>>>
+      __allocated_ptr(_Alloc& __a, _Ptr __ptr)
+      : _M_alloc(std::__addressof(__a)),
+ _M_ptr(pointer_traits<pointer>::pointer_to(*__ptr))
+      { }
+
+
+      __allocated_ptr(__allocated_ptr&& __gd) noexcept
+      : _M_alloc(__gd._M_alloc), _M_ptr(__gd._M_ptr)
+      { __gd._M_ptr = nullptr; }
+
+
+      ~__allocated_ptr()
+      {
+ if (_M_ptr != nullptr)
+   std::allocator_traits<_Alloc>::deallocate(*_M_alloc, _M_ptr, 1);
+      }
+
+
+      __allocated_ptr&
+      operator=(std::nullptr_t) noexcept
+      {
+ _M_ptr = nullptr;
+ return *this;
+      }
+
+
+      value_type* get() { return _S_raw_ptr(_M_ptr); }
+
+    private:
+      value_type* _S_raw_ptr(value_type* __ptr) { return __ptr; }
+
+      template<typename _Ptr>
+ auto _S_raw_ptr(_Ptr __ptr) -> decltype(_S_raw_ptr(__ptr.operator->()))
+ { return _S_raw_ptr(__ptr.operator->()); }
+
+      _Alloc* _M_alloc;
+      pointer _M_ptr;
+    };
+
+
+  template<typename _Alloc>
+    __allocated_ptr<_Alloc>
+    __allocate_guarded(_Alloc& __a)
+    {
+      return { __a, std::allocator_traits<_Alloc>::allocate(__a, 1) };
+    }
+
+
+}
+# 54 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr_base.h" 2 3
+
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+
+  template<typename> class auto_ptr;
+
+
+
+
+
+
+  class bad_weak_ptr : public std::exception
+  {
+  public:
+    virtual char const* what() const noexcept;
+
+    virtual ~bad_weak_ptr() noexcept;
+  };
+
+
+  inline void
+  __throw_bad_weak_ptr()
+  { (throw (bad_weak_ptr())); }
+
+  using __gnu_cxx::_Lock_policy;
+  using __gnu_cxx::__default_lock_policy;
+  using __gnu_cxx::_S_single;
+  using __gnu_cxx::_S_mutex;
+  using __gnu_cxx::_S_atomic;
+
+
+  template<_Lock_policy _Lp>
+    class _Mutex_base
+    {
+    protected:
+
+      enum { _S_need_barriers = 0 };
+    };
+
+  template<>
+    class _Mutex_base<_S_mutex>
+    : public __gnu_cxx::__mutex
+    {
+    protected:
+
+
+
+      enum { _S_need_barriers = 1 };
+    };
+
+  template<_Lock_policy _Lp = __default_lock_policy>
+    class _Sp_counted_base
+    : public _Mutex_base<_Lp>
+    {
+    public:
+      _Sp_counted_base() noexcept
+      : _M_use_count(1), _M_weak_count(1) { }
+
+      virtual
+      ~_Sp_counted_base() noexcept
+      { }
+
+
+
+      virtual void
+      _M_dispose() noexcept = 0;
+
+
+      virtual void
+      _M_destroy() noexcept
+      { delete this; }
+
+      virtual void*
+      _M_get_deleter(const std::type_info&) noexcept = 0;
+
+      void
+      _M_add_ref_copy()
+      { __gnu_cxx::__atomic_add_dispatch(&_M_use_count, 1); }
+
+      void
+      _M_add_ref_lock();
+
+      bool
+      _M_add_ref_lock_nothrow();
+
+      void
+      _M_release() noexcept
+      {
+
+                                                              ;
+ if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, -1) == 1)
+   {
+                                                                 ;
+     _M_dispose();
+
+
+
+
+     if (_Mutex_base<_Lp>::_S_need_barriers)
+       {
+  __atomic_thread_fence (4);
+       }
+
+
+                                                                   ;
+     if (__gnu_cxx::__exchange_and_add_dispatch(&_M_weak_count,
+             -1) == 1)
+              {
+                                                                      ;
+         _M_destroy();
+              }
+   }
+      }
+
+      void
+      _M_weak_add_ref() noexcept
+      { __gnu_cxx::__atomic_add_dispatch(&_M_weak_count, 1); }
+
+      void
+      _M_weak_release() noexcept
+      {
+
+                                                               ;
+ if (__gnu_cxx::__exchange_and_add_dispatch(&_M_weak_count, -1) == 1)
+   {
+                                                                  ;
+     if (_Mutex_base<_Lp>::_S_need_barriers)
+       {
+
+
+  __atomic_thread_fence (4);
+       }
+     _M_destroy();
+   }
+      }
+
+      long
+      _M_get_use_count() const noexcept
+      {
+
+
+        return __atomic_load_n(&_M_use_count, 0);
+      }
+
+    private:
+      _Sp_counted_base(_Sp_counted_base const&) = delete;
+      _Sp_counted_base& operator=(_Sp_counted_base const&) = delete;
+
+      _Atomic_word _M_use_count;
+      _Atomic_word _M_weak_count;
+    };
+
+  template<>
+    inline void
+    _Sp_counted_base<_S_single>::
+    _M_add_ref_lock()
+    {
+      if (_M_use_count == 0)
+ __throw_bad_weak_ptr();
+      ++_M_use_count;
+    }
+
+  template<>
+    inline void
+    _Sp_counted_base<_S_mutex>::
+    _M_add_ref_lock()
+    {
+      __gnu_cxx::__scoped_lock sentry(*this);
+      if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, 1) == 0)
+ {
+   _M_use_count = 0;
+   __throw_bad_weak_ptr();
+ }
+    }
+
+  template<>
+    inline void
+    _Sp_counted_base<_S_atomic>::
+    _M_add_ref_lock()
+    {
+
+      _Atomic_word __count = _M_get_use_count();
+      do
+ {
+   if (__count == 0)
+     __throw_bad_weak_ptr();
+
+
+ }
+      while (!__atomic_compare_exchange_n(&_M_use_count, &__count, __count + 1,
+       true, 4,
+       0));
+    }
+
+  template<>
+    inline bool
+    _Sp_counted_base<_S_single>::
+    _M_add_ref_lock_nothrow()
+    {
+      if (_M_use_count == 0)
+ return false;
+      ++_M_use_count;
+      return true;
+    }
+
+  template<>
+    inline bool
+    _Sp_counted_base<_S_mutex>::
+    _M_add_ref_lock_nothrow()
+    {
+      __gnu_cxx::__scoped_lock sentry(*this);
+      if (__gnu_cxx::__exchange_and_add_dispatch(&_M_use_count, 1) == 0)
+ {
+   _M_use_count = 0;
+   return false;
+ }
+      return true;
+    }
+
+  template<>
+    inline bool
+    _Sp_counted_base<_S_atomic>::
+    _M_add_ref_lock_nothrow()
+    {
+
+      _Atomic_word __count = _M_get_use_count();
+      do
+ {
+   if (__count == 0)
+     return false;
+
+
+ }
+      while (!__atomic_compare_exchange_n(&_M_use_count, &__count, __count + 1,
+       true, 4,
+       0));
+      return true;
+    }
+
+  template<>
+    inline void
+    _Sp_counted_base<_S_single>::_M_add_ref_copy()
+    { ++_M_use_count; }
+
+  template<>
+    inline void
+    _Sp_counted_base<_S_single>::_M_release() noexcept
+    {
+      if (--_M_use_count == 0)
+        {
+          _M_dispose();
+          if (--_M_weak_count == 0)
+            _M_destroy();
+        }
+    }
+
+  template<>
+    inline void
+    _Sp_counted_base<_S_single>::_M_weak_add_ref() noexcept
+    { ++_M_weak_count; }
+
+  template<>
+    inline void
+    _Sp_counted_base<_S_single>::_M_weak_release() noexcept
+    {
+      if (--_M_weak_count == 0)
+        _M_destroy();
+    }
+
+  template<>
+    inline long
+    _Sp_counted_base<_S_single>::_M_get_use_count() const noexcept
+    { return _M_use_count; }
+
+
+
+  template<typename _Tp, _Lock_policy _Lp = __default_lock_policy>
+    class __shared_ptr;
+
+  template<typename _Tp, _Lock_policy _Lp = __default_lock_policy>
+    class __weak_ptr;
+
+  template<typename _Tp, _Lock_policy _Lp = __default_lock_policy>
+    class __enable_shared_from_this;
+
+  template<typename _Tp>
+    class shared_ptr;
+
+  template<typename _Tp>
+    class weak_ptr;
+
+  template<typename _Tp>
+    struct owner_less;
+
+  template<typename _Tp>
+    class enable_shared_from_this;
+
+  template<_Lock_policy _Lp = __default_lock_policy>
+    class __weak_count;
+
+  template<_Lock_policy _Lp = __default_lock_policy>
+    class __shared_count;
+
+
+
+  template<typename _Ptr, _Lock_policy _Lp>
+    class _Sp_counted_ptr final : public _Sp_counted_base<_Lp>
+    {
+    public:
+      explicit
+      _Sp_counted_ptr(_Ptr __p) noexcept
+      : _M_ptr(__p) { }
+
+      virtual void
+      _M_dispose() noexcept
+      { delete _M_ptr; }
+
+      virtual void
+      _M_destroy() noexcept
+      { delete this; }
+
+      virtual void*
+      _M_get_deleter(const std::type_info&) noexcept
+      { return nullptr; }
+
+      _Sp_counted_ptr(const _Sp_counted_ptr&) = delete;
+      _Sp_counted_ptr& operator=(const _Sp_counted_ptr&) = delete;
+
+    private:
+      _Ptr _M_ptr;
+    };
+
+  template<>
+    inline void
+    _Sp_counted_ptr<nullptr_t, _S_single>::_M_dispose() noexcept { }
+
+  template<>
+    inline void
+    _Sp_counted_ptr<nullptr_t, _S_mutex>::_M_dispose() noexcept { }
+
+  template<>
+    inline void
+    _Sp_counted_ptr<nullptr_t, _S_atomic>::_M_dispose() noexcept { }
+
+  template<int _Nm, typename _Tp,
+    bool __use_ebo = !__is_final(_Tp) && __is_empty(_Tp)>
+    struct _Sp_ebo_helper;
+
+
+  template<int _Nm, typename _Tp>
+    struct _Sp_ebo_helper<_Nm, _Tp, true> : private _Tp
+    {
+      explicit _Sp_ebo_helper(const _Tp& __tp) : _Tp(__tp) { }
+
+      static _Tp&
+      _S_get(_Sp_ebo_helper& __eboh) { return static_cast<_Tp&>(__eboh); }
+    };
+
+
+  template<int _Nm, typename _Tp>
+    struct _Sp_ebo_helper<_Nm, _Tp, false>
+    {
+      explicit _Sp_ebo_helper(const _Tp& __tp) : _M_tp(__tp) { }
+
+      static _Tp&
+      _S_get(_Sp_ebo_helper& __eboh)
+      { return __eboh._M_tp; }
+
+    private:
+      _Tp _M_tp;
+    };
+
+
+  template<typename _Ptr, typename _Deleter, typename _Alloc, _Lock_policy _Lp>
+    class _Sp_counted_deleter final : public _Sp_counted_base<_Lp>
+    {
+      class _Impl : _Sp_ebo_helper<0, _Deleter>, _Sp_ebo_helper<1, _Alloc>
+      {
+ typedef _Sp_ebo_helper<0, _Deleter> _Del_base;
+ typedef _Sp_ebo_helper<1, _Alloc> _Alloc_base;
+
+      public:
+ _Impl(_Ptr __p, _Deleter __d, const _Alloc& __a) noexcept
+ : _M_ptr(__p), _Del_base(__d), _Alloc_base(__a)
+ { }
+
+ _Deleter& _M_del() noexcept { return _Del_base::_S_get(*this); }
+ _Alloc& _M_alloc() noexcept { return _Alloc_base::_S_get(*this); }
+
+ _Ptr _M_ptr;
+      };
+
+    public:
+      using __allocator_type = __alloc_rebind<_Alloc, _Sp_counted_deleter>;
+
+
+      _Sp_counted_deleter(_Ptr __p, _Deleter __d) noexcept
+      : _M_impl(__p, __d, _Alloc()) { }
+
+
+      _Sp_counted_deleter(_Ptr __p, _Deleter __d, const _Alloc& __a) noexcept
+      : _M_impl(__p, __d, __a) { }
+
+      ~_Sp_counted_deleter() noexcept { }
+
+      virtual void
+      _M_dispose() noexcept
+      { _M_impl._M_del()(_M_impl._M_ptr); }
+
+      virtual void
+      _M_destroy() noexcept
+      {
+ __allocator_type __a(_M_impl._M_alloc());
+ __allocated_ptr<__allocator_type> __guard_ptr{ __a, this };
+ this->~_Sp_counted_deleter();
+      }
+
+      virtual void*
+      _M_get_deleter(const std::type_info& __ti) noexcept
+      {
+
+
+
+        return __ti == typeid(_Deleter)
+   ? std::__addressof(_M_impl._M_del())
+   : nullptr;
+
+
+
+      }
+
+    private:
+      _Impl _M_impl;
+    };
+
+
+
+  struct _Sp_make_shared_tag { };
+
+  template<typename _Tp, typename _Alloc, _Lock_policy _Lp>
+    class _Sp_counted_ptr_inplace final : public _Sp_counted_base<_Lp>
+    {
+      class _Impl : _Sp_ebo_helper<0, _Alloc>
+      {
+ typedef _Sp_ebo_helper<0, _Alloc> _A_base;
+
+      public:
+ explicit _Impl(_Alloc __a) noexcept : _A_base(__a) { }
+
+ _Alloc& _M_alloc() noexcept { return _A_base::_S_get(*this); }
+
+ __gnu_cxx::__aligned_buffer<_Tp> _M_storage;
+      };
+
+    public:
+      using __allocator_type = __alloc_rebind<_Alloc, _Sp_counted_ptr_inplace>;
+
+      template<typename... _Args>
+ _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
+ : _M_impl(__a)
+ {
+
+
+   allocator_traits<_Alloc>::construct(__a, _M_ptr(),
+       std::forward<_Args>(__args)...);
+ }
+
+      ~_Sp_counted_ptr_inplace() noexcept { }
+
+      virtual void
+      _M_dispose() noexcept
+      {
+ allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr());
+      }
+
+
+      virtual void
+      _M_destroy() noexcept
+      {
+ __allocator_type __a(_M_impl._M_alloc());
+ __allocated_ptr<__allocator_type> __guard_ptr{ __a, this };
+ this->~_Sp_counted_ptr_inplace();
+      }
+
+
+      virtual void*
+      _M_get_deleter(const std::type_info& __ti) noexcept
+      {
+
+ if (__ti == typeid(_Sp_make_shared_tag))
+   return const_cast<typename remove_cv<_Tp>::type*>(_M_ptr());
+
+ return nullptr;
+      }
+
+    private:
+      _Tp* _M_ptr() noexcept { return _M_impl._M_storage._M_ptr(); }
+
+      _Impl _M_impl;
+    };
+
+
+  template<_Lock_policy _Lp>
+    class __shared_count
+    {
+    public:
+      constexpr __shared_count() noexcept : _M_pi(0)
+      { }
+
+      template<typename _Ptr>
+        explicit
+ __shared_count(_Ptr __p) : _M_pi(0)
+ {
+   try
+     {
+       _M_pi = new _Sp_counted_ptr<_Ptr, _Lp>(__p);
+     }
+   catch(...)
+     {
+       delete __p;
+       throw;
+     }
+ }
+
+      template<typename _Ptr, typename _Deleter>
+ __shared_count(_Ptr __p, _Deleter __d)
+ : __shared_count(__p, std::move(__d), allocator<void>())
+ { }
+
+      template<typename _Ptr, typename _Deleter, typename _Alloc>
+ __shared_count(_Ptr __p, _Deleter __d, _Alloc __a) : _M_pi(0)
+ {
+   typedef _Sp_counted_deleter<_Ptr, _Deleter, _Alloc, _Lp> _Sp_cd_type;
+   try
+     {
+       typename _Sp_cd_type::__allocator_type __a2(__a);
+       auto __guard = std::__allocate_guarded(__a2);
+       _Sp_cd_type* __mem = __guard.get();
+       ::new (__mem) _Sp_cd_type(__p, std::move(__d), std::move(__a));
+       _M_pi = __mem;
+       __guard = nullptr;
+     }
+   catch(...)
+     {
+       __d(__p);
+       throw;
+     }
+ }
+
+      template<typename _Tp, typename _Alloc, typename... _Args>
+ __shared_count(_Sp_make_shared_tag, _Tp*, const _Alloc& __a,
+         _Args&&... __args)
+ : _M_pi(0)
+ {
+   typedef _Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp> _Sp_cp_type;
+   typename _Sp_cp_type::__allocator_type __a2(__a);
+   auto __guard = std::__allocate_guarded(__a2);
+   _Sp_cp_type* __mem = __guard.get();
+   ::new (__mem) _Sp_cp_type(std::move(__a),
+        std::forward<_Args>(__args)...);
+   _M_pi = __mem;
+   __guard = nullptr;
+ }
+
+
+
+      template<typename _Tp>
+        explicit
+ __shared_count(std::auto_ptr<_Tp>&& __r);
+
+
+
+      template<typename _Tp, typename _Del>
+        explicit
+ __shared_count(std::unique_ptr<_Tp, _Del>&& __r) : _M_pi(0)
+ {
+
+
+   if (__r.get() == nullptr)
+     return;
+
+   using _Ptr = typename unique_ptr<_Tp, _Del>::pointer;
+   using _Del2 = typename conditional<is_reference<_Del>::value,
+       reference_wrapper<typename remove_reference<_Del>::type>,
+       _Del>::type;
+   using _Sp_cd_type
+     = _Sp_counted_deleter<_Ptr, _Del2, allocator<void>, _Lp>;
+   using _Alloc = allocator<_Sp_cd_type>;
+   using _Alloc_traits = allocator_traits<_Alloc>;
+   _Alloc __a;
+   _Sp_cd_type* __mem = _Alloc_traits::allocate(__a, 1);
+   _Alloc_traits::construct(__a, __mem, __r.release(),
+       __r.get_deleter());
+   _M_pi = __mem;
+ }
+
+
+      explicit __shared_count(const __weak_count<_Lp>& __r);
+
+
+      explicit __shared_count(const __weak_count<_Lp>& __r, std::nothrow_t);
+
+      ~__shared_count() noexcept
+      {
+ if (_M_pi != nullptr)
+   _M_pi->_M_release();
+      }
+
+      __shared_count(const __shared_count& __r) noexcept
+      : _M_pi(__r._M_pi)
+      {
+ if (_M_pi != 0)
+   _M_pi->_M_add_ref_copy();
+      }
+
+      __shared_count&
+      operator=(const __shared_count& __r) noexcept
+      {
+ _Sp_counted_base<_Lp>* __tmp = __r._M_pi;
+ if (__tmp != _M_pi)
+   {
+     if (__tmp != 0)
+       __tmp->_M_add_ref_copy();
+     if (_M_pi != 0)
+       _M_pi->_M_release();
+     _M_pi = __tmp;
+   }
+ return *this;
+      }
+
+      void
+      _M_swap(__shared_count& __r) noexcept
+      {
+ _Sp_counted_base<_Lp>* __tmp = __r._M_pi;
+ __r._M_pi = _M_pi;
+ _M_pi = __tmp;
+      }
+
+      long
+      _M_get_use_count() const noexcept
+      { return _M_pi != 0 ? _M_pi->_M_get_use_count() : 0; }
+
+      bool
+      _M_unique() const noexcept
+      { return this->_M_get_use_count() == 1; }
+
+      void*
+      _M_get_deleter(const std::type_info& __ti) const noexcept
+      { return _M_pi ? _M_pi->_M_get_deleter(__ti) : nullptr; }
+
+      bool
+      _M_less(const __shared_count& __rhs) const noexcept
+      { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); }
+
+      bool
+      _M_less(const __weak_count<_Lp>& __rhs) const noexcept
+      { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); }
+
+
+      friend inline bool
+      operator==(const __shared_count& __a, const __shared_count& __b) noexcept
+      { return __a._M_pi == __b._M_pi; }
+
+    private:
+      friend class __weak_count<_Lp>;
+
+      _Sp_counted_base<_Lp>* _M_pi;
+    };
+
+
+  template<_Lock_policy _Lp>
+    class __weak_count
+    {
+    public:
+      constexpr __weak_count() noexcept : _M_pi(nullptr)
+      { }
+
+      __weak_count(const __shared_count<_Lp>& __r) noexcept
+      : _M_pi(__r._M_pi)
+      {
+ if (_M_pi != nullptr)
+   _M_pi->_M_weak_add_ref();
+      }
+
+      __weak_count(const __weak_count& __r) noexcept
+      : _M_pi(__r._M_pi)
+      {
+ if (_M_pi != nullptr)
+   _M_pi->_M_weak_add_ref();
+      }
+
+      __weak_count(__weak_count&& __r) noexcept
+      : _M_pi(__r._M_pi)
+      { __r._M_pi = nullptr; }
+
+      ~__weak_count() noexcept
+      {
+ if (_M_pi != nullptr)
+   _M_pi->_M_weak_release();
+      }
+
+      __weak_count&
+      operator=(const __shared_count<_Lp>& __r) noexcept
+      {
+ _Sp_counted_base<_Lp>* __tmp = __r._M_pi;
+ if (__tmp != nullptr)
+   __tmp->_M_weak_add_ref();
+ if (_M_pi != nullptr)
+   _M_pi->_M_weak_release();
+ _M_pi = __tmp;
+ return *this;
+      }
+
+      __weak_count&
+      operator=(const __weak_count& __r) noexcept
+      {
+ _Sp_counted_base<_Lp>* __tmp = __r._M_pi;
+ if (__tmp != nullptr)
+   __tmp->_M_weak_add_ref();
+ if (_M_pi != nullptr)
+   _M_pi->_M_weak_release();
+ _M_pi = __tmp;
+ return *this;
+      }
+
+      __weak_count&
+      operator=(__weak_count&& __r) noexcept
+      {
+ if (_M_pi != nullptr)
+   _M_pi->_M_weak_release();
+ _M_pi = __r._M_pi;
+        __r._M_pi = nullptr;
+ return *this;
+      }
+
+      void
+      _M_swap(__weak_count& __r) noexcept
+      {
+ _Sp_counted_base<_Lp>* __tmp = __r._M_pi;
+ __r._M_pi = _M_pi;
+ _M_pi = __tmp;
+      }
+
+      long
+      _M_get_use_count() const noexcept
+      { return _M_pi != nullptr ? _M_pi->_M_get_use_count() : 0; }
+
+      bool
+      _M_less(const __weak_count& __rhs) const noexcept
+      { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); }
+
+      bool
+      _M_less(const __shared_count<_Lp>& __rhs) const noexcept
+      { return std::less<_Sp_counted_base<_Lp>*>()(this->_M_pi, __rhs._M_pi); }
+
+
+      friend inline bool
+      operator==(const __weak_count& __a, const __weak_count& __b) noexcept
+      { return __a._M_pi == __b._M_pi; }
+
+    private:
+      friend class __shared_count<_Lp>;
+
+      _Sp_counted_base<_Lp>* _M_pi;
+    };
+
+
+  template<_Lock_policy _Lp>
+    inline
+    __shared_count<_Lp>::__shared_count(const __weak_count<_Lp>& __r)
+    : _M_pi(__r._M_pi)
+    {
+      if (_M_pi != nullptr)
+ _M_pi->_M_add_ref_lock();
+      else
+ __throw_bad_weak_ptr();
+    }
+
+
+  template<_Lock_policy _Lp>
+    inline
+    __shared_count<_Lp>::
+    __shared_count(const __weak_count<_Lp>& __r, std::nothrow_t)
+    : _M_pi(__r._M_pi)
+    {
+      if (_M_pi != nullptr)
+ if (!_M_pi->_M_add_ref_lock_nothrow())
+   _M_pi = nullptr;
+    }
+
+
+
+
+  template<_Lock_policy _Lp, typename _Tp1, typename _Tp2>
+    void
+    __enable_shared_from_this_helper(const __shared_count<_Lp>&,
+         const __enable_shared_from_this<_Tp1,
+         _Lp>*, const _Tp2*) noexcept;
+
+
+  template<typename _Tp1, typename _Tp2>
+    void
+    __enable_shared_from_this_helper(const __shared_count<>&,
+         const enable_shared_from_this<_Tp1>*,
+         const _Tp2*) noexcept;
+
+  template<_Lock_policy _Lp>
+    inline void
+    __enable_shared_from_this_helper(const __shared_count<_Lp>&, ...) noexcept
+    { }
+
+
+  template<typename _Tp, _Lock_policy _Lp>
+    class __shared_ptr
+    {
+      template<typename _Ptr>
+ using _Convertible
+   = typename enable_if<is_convertible<_Ptr, _Tp*>::value>::type;
+
+    public:
+      typedef _Tp element_type;
+
+      constexpr __shared_ptr() noexcept
+      : _M_ptr(0), _M_refcount()
+      { }
+
+      template<typename _Tp1>
+ explicit __shared_ptr(_Tp1* __p)
+        : _M_ptr(__p), _M_refcount(__p)
+ {
+
+   static_assert( !is_void<_Tp1>::value, "incomplete type" );
+   static_assert( sizeof(_Tp1) > 0, "incomplete type" );
+   __enable_shared_from_this_helper(_M_refcount, __p, __p);
+ }
+
+      template<typename _Tp1, typename _Deleter>
+ __shared_ptr(_Tp1* __p, _Deleter __d)
+ : _M_ptr(__p), _M_refcount(__p, __d)
+ {
+
+
+   __enable_shared_from_this_helper(_M_refcount, __p, __p);
+ }
+
+      template<typename _Tp1, typename _Deleter, typename _Alloc>
+ __shared_ptr(_Tp1* __p, _Deleter __d, _Alloc __a)
+ : _M_ptr(__p), _M_refcount(__p, __d, std::move(__a))
+ {
+
+
+   __enable_shared_from_this_helper(_M_refcount, __p, __p);
+ }
+
+      template<typename _Deleter>
+ __shared_ptr(nullptr_t __p, _Deleter __d)
+ : _M_ptr(0), _M_refcount(__p, __d)
+ { }
+
+      template<typename _Deleter, typename _Alloc>
+        __shared_ptr(nullptr_t __p, _Deleter __d, _Alloc __a)
+ : _M_ptr(0), _M_refcount(__p, __d, std::move(__a))
+ { }
+
+      template<typename _Tp1>
+ __shared_ptr(const __shared_ptr<_Tp1, _Lp>& __r, _Tp* __p) noexcept
+ : _M_ptr(__p), _M_refcount(__r._M_refcount)
+ { }
+
+      __shared_ptr(const __shared_ptr&) noexcept = default;
+      __shared_ptr& operator=(const __shared_ptr&) noexcept = default;
+      ~__shared_ptr() = default;
+
+      template<typename _Tp1, typename = _Convertible<_Tp1*>>
+ __shared_ptr(const __shared_ptr<_Tp1, _Lp>& __r) noexcept
+ : _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount)
+ { }
+
+      __shared_ptr(__shared_ptr&& __r) noexcept
+      : _M_ptr(__r._M_ptr), _M_refcount()
+      {
+ _M_refcount._M_swap(__r._M_refcount);
+ __r._M_ptr = 0;
+      }
+
+      template<typename _Tp1, typename = _Convertible<_Tp1*>>
+ __shared_ptr(__shared_ptr<_Tp1, _Lp>&& __r) noexcept
+ : _M_ptr(__r._M_ptr), _M_refcount()
+ {
+   _M_refcount._M_swap(__r._M_refcount);
+   __r._M_ptr = 0;
+ }
+
+      template<typename _Tp1>
+ explicit __shared_ptr(const __weak_ptr<_Tp1, _Lp>& __r)
+ : _M_refcount(__r._M_refcount)
+ {
+
+
+
+
+   _M_ptr = __r._M_ptr;
+ }
+
+
+      template<typename _Tp1, typename _Del, typename
+        = _Convertible<typename unique_ptr<_Tp1, _Del>::pointer>>
+ __shared_ptr(std::unique_ptr<_Tp1, _Del>&& __r)
+ : _M_ptr(__r.get()), _M_refcount()
+ {
+
+   auto __raw = _S_raw_ptr(__r.get());
+   _M_refcount = __shared_count<_Lp>(std::move(__r));
+   __enable_shared_from_this_helper(_M_refcount, __raw, __raw);
+ }
+
+
+
+      template<typename _Tp1>
+ __shared_ptr(std::auto_ptr<_Tp1>&& __r);
+
+
+      constexpr __shared_ptr(nullptr_t) noexcept : __shared_ptr() { }
+
+      template<typename _Tp1>
+ __shared_ptr&
+ operator=(const __shared_ptr<_Tp1, _Lp>& __r) noexcept
+ {
+   _M_ptr = __r._M_ptr;
+   _M_refcount = __r._M_refcount;
+   return *this;
+ }
+
+
+      template<typename _Tp1>
+ __shared_ptr&
+ operator=(std::auto_ptr<_Tp1>&& __r)
+ {
+   __shared_ptr(std::move(__r)).swap(*this);
+   return *this;
+ }
+
+
+      __shared_ptr&
+      operator=(__shared_ptr&& __r) noexcept
+      {
+ __shared_ptr(std::move(__r)).swap(*this);
+ return *this;
+      }
+
+      template<class _Tp1>
+ __shared_ptr&
+ operator=(__shared_ptr<_Tp1, _Lp>&& __r) noexcept
+ {
+   __shared_ptr(std::move(__r)).swap(*this);
+   return *this;
+ }
+
+      template<typename _Tp1, typename _Del>
+ __shared_ptr&
+ operator=(std::unique_ptr<_Tp1, _Del>&& __r)
+ {
+   __shared_ptr(std::move(__r)).swap(*this);
+   return *this;
+ }
+
+      void
+      reset() noexcept
+      { __shared_ptr().swap(*this); }
+
+      template<typename _Tp1>
+ void
+ reset(_Tp1* __p)
+ {
+
+                                              ;
+   __shared_ptr(__p).swap(*this);
+ }
+
+      template<typename _Tp1, typename _Deleter>
+ void
+ reset(_Tp1* __p, _Deleter __d)
+ { __shared_ptr(__p, __d).swap(*this); }
+
+      template<typename _Tp1, typename _Deleter, typename _Alloc>
+ void
+        reset(_Tp1* __p, _Deleter __d, _Alloc __a)
+        { __shared_ptr(__p, __d, std::move(__a)).swap(*this); }
+
+
+      typename std::add_lvalue_reference<_Tp>::type
+      operator*() const noexcept
+      {
+                              ;
+ return *_M_ptr;
+      }
+
+      _Tp*
+      operator->() const noexcept
+      {
+                                      ;
+ return _M_ptr;
+      }
+
+      _Tp*
+      get() const noexcept
+      { return _M_ptr; }
+
+      explicit operator bool() const
+      { return _M_ptr == 0 ? false : true; }
+
+      bool
+      unique() const noexcept
+      { return _M_refcount._M_unique(); }
+
+      long
+      use_count() const noexcept
+      { return _M_refcount._M_get_use_count(); }
+
+      void
+      swap(__shared_ptr<_Tp, _Lp>& __other) noexcept
+      {
+ std::swap(_M_ptr, __other._M_ptr);
+ _M_refcount._M_swap(__other._M_refcount);
+      }
+
+      template<typename _Tp1>
+ bool
+ owner_before(__shared_ptr<_Tp1, _Lp> const& __rhs) const
+ { return _M_refcount._M_less(__rhs._M_refcount); }
+
+      template<typename _Tp1>
+ bool
+ owner_before(__weak_ptr<_Tp1, _Lp> const& __rhs) const
+ { return _M_refcount._M_less(__rhs._M_refcount); }
+
+
+    protected:
+
+      template<typename _Alloc, typename... _Args>
+ __shared_ptr(_Sp_make_shared_tag __tag, const _Alloc& __a,
+       _Args&&... __args)
+ : _M_ptr(), _M_refcount(__tag, (_Tp*)0, __a,
+    std::forward<_Args>(__args)...)
+ {
+
+
+   void* __p = _M_refcount._M_get_deleter(typeid(__tag));
+   _M_ptr = static_cast<_Tp*>(__p);
+   __enable_shared_from_this_helper(_M_refcount, _M_ptr, _M_ptr);
+ }
+# 1142 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr_base.h" 3
+      template<typename _Tp1, _Lock_policy _Lp1, typename _Alloc,
+        typename... _Args>
+ friend __shared_ptr<_Tp1, _Lp1>
+ __allocate_shared(const _Alloc& __a, _Args&&... __args);
+
+
+
+      __shared_ptr(const __weak_ptr<_Tp, _Lp>& __r, std::nothrow_t)
+      : _M_refcount(__r._M_refcount, std::nothrow)
+      {
+ _M_ptr = _M_refcount._M_get_use_count() ? __r._M_ptr : nullptr;
+      }
+
+      friend class __weak_ptr<_Tp, _Lp>;
+
+    private:
+      void*
+      _M_get_deleter(const std::type_info& __ti) const noexcept
+      { return _M_refcount._M_get_deleter(__ti); }
+
+      template<typename _Tp1>
+ static _Tp1*
+ _S_raw_ptr(_Tp1* __ptr)
+ { return __ptr; }
+
+      template<typename _Tp1>
+ static auto
+ _S_raw_ptr(_Tp1 __ptr) -> decltype(std::__addressof(*__ptr))
+ { return std::__addressof(*__ptr); }
+
+      template<typename _Tp1, _Lock_policy _Lp1> friend class __shared_ptr;
+      template<typename _Tp1, _Lock_policy _Lp1> friend class __weak_ptr;
+
+      template<typename _Del, typename _Tp1, _Lock_policy _Lp1>
+ friend _Del* get_deleter(const __shared_ptr<_Tp1, _Lp1>&) noexcept;
+
+      _Tp* _M_ptr;
+      __shared_count<_Lp> _M_refcount;
+    };
+
+
+
+  template<typename _Tp1, typename _Tp2, _Lock_policy _Lp>
+    inline bool
+    operator==(const __shared_ptr<_Tp1, _Lp>& __a,
+        const __shared_ptr<_Tp2, _Lp>& __b) noexcept
+    { return __a.get() == __b.get(); }
+
+  template<typename _Tp, _Lock_policy _Lp>
+    inline bool
+    operator==(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept
+    { return !__a; }
+
+  template<typename _Tp, _Lock_policy _Lp>
+    inline bool
+    operator==(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept
+    { return !__a; }
+
+  template<typename _Tp1, typename _Tp2, _Lock_policy _Lp>
+    inline bool
+    operator!=(const __shared_ptr<_Tp1, _Lp>& __a,
+        const __shared_ptr<_Tp2, _Lp>& __b) noexcept
+    { return __a.get() != __b.get(); }
+
+  template<typename _Tp, _Lock_policy _Lp>
+    inline bool
+    operator!=(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept
+    { return (bool)__a; }
+
+  template<typename _Tp, _Lock_policy _Lp>
+    inline bool
+    operator!=(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept
+    { return (bool)__a; }
+
+  template<typename _Tp1, typename _Tp2, _Lock_policy _Lp>
+    inline bool
+    operator<(const __shared_ptr<_Tp1, _Lp>& __a,
+       const __shared_ptr<_Tp2, _Lp>& __b) noexcept
+    {
+      typedef typename std::common_type<_Tp1*, _Tp2*>::type _CT;
+      return std::less<_CT>()(__a.get(), __b.get());
+    }
+
+  template<typename _Tp, _Lock_policy _Lp>
+    inline bool
+    operator<(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept
+    { return std::less<_Tp*>()(__a.get(), nullptr); }
+
+  template<typename _Tp, _Lock_policy _Lp>
+    inline bool
+    operator<(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept
+    { return std::less<_Tp*>()(nullptr, __a.get()); }
+
+  template<typename _Tp1, typename _Tp2, _Lock_policy _Lp>
+    inline bool
+    operator<=(const __shared_ptr<_Tp1, _Lp>& __a,
+        const __shared_ptr<_Tp2, _Lp>& __b) noexcept
+    { return !(__b < __a); }
+
+  template<typename _Tp, _Lock_policy _Lp>
+    inline bool
+    operator<=(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept
+    { return !(nullptr < __a); }
+
+  template<typename _Tp, _Lock_policy _Lp>
+    inline bool
+    operator<=(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept
+    { return !(__a < nullptr); }
+
+  template<typename _Tp1, typename _Tp2, _Lock_policy _Lp>
+    inline bool
+    operator>(const __shared_ptr<_Tp1, _Lp>& __a,
+       const __shared_ptr<_Tp2, _Lp>& __b) noexcept
+    { return (__b < __a); }
+
+  template<typename _Tp, _Lock_policy _Lp>
+    inline bool
+    operator>(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept
+    { return std::less<_Tp*>()(nullptr, __a.get()); }
+
+  template<typename _Tp, _Lock_policy _Lp>
+    inline bool
+    operator>(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept
+    { return std::less<_Tp*>()(__a.get(), nullptr); }
+
+  template<typename _Tp1, typename _Tp2, _Lock_policy _Lp>
+    inline bool
+    operator>=(const __shared_ptr<_Tp1, _Lp>& __a,
+        const __shared_ptr<_Tp2, _Lp>& __b) noexcept
+    { return !(__a < __b); }
+
+  template<typename _Tp, _Lock_policy _Lp>
+    inline bool
+    operator>=(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept
+    { return !(__a < nullptr); }
+
+  template<typename _Tp, _Lock_policy _Lp>
+    inline bool
+    operator>=(nullptr_t, const __shared_ptr<_Tp, _Lp>& __a) noexcept
+    { return !(nullptr < __a); }
+
+  template<typename _Sp>
+    struct _Sp_less : public binary_function<_Sp, _Sp, bool>
+    {
+      bool
+      operator()(const _Sp& __lhs, const _Sp& __rhs) const noexcept
+      {
+ typedef typename _Sp::element_type element_type;
+ return std::less<element_type*>()(__lhs.get(), __rhs.get());
+      }
+    };
+
+  template<typename _Tp, _Lock_policy _Lp>
+    struct less<__shared_ptr<_Tp, _Lp>>
+    : public _Sp_less<__shared_ptr<_Tp, _Lp>>
+    { };
+
+
+  template<typename _Tp, _Lock_policy _Lp>
+    inline void
+    swap(__shared_ptr<_Tp, _Lp>& __a, __shared_ptr<_Tp, _Lp>& __b) noexcept
+    { __a.swap(__b); }
+# 1312 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr_base.h" 3
+  template<typename _Tp, typename _Tp1, _Lock_policy _Lp>
+    inline __shared_ptr<_Tp, _Lp>
+    static_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) noexcept
+    { return __shared_ptr<_Tp, _Lp>(__r, static_cast<_Tp*>(__r.get())); }
+
+
+
+
+
+
+  template<typename _Tp, typename _Tp1, _Lock_policy _Lp>
+    inline __shared_ptr<_Tp, _Lp>
+    const_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) noexcept
+    { return __shared_ptr<_Tp, _Lp>(__r, const_cast<_Tp*>(__r.get())); }
+
+
+
+
+
+
+  template<typename _Tp, typename _Tp1, _Lock_policy _Lp>
+    inline __shared_ptr<_Tp, _Lp>
+    dynamic_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) noexcept
+    {
+      if (_Tp* __p = dynamic_cast<_Tp*>(__r.get()))
+ return __shared_ptr<_Tp, _Lp>(__r, __p);
+      return __shared_ptr<_Tp, _Lp>();
+    }
+
+
+  template<typename _Tp, _Lock_policy _Lp>
+    class __weak_ptr
+    {
+      template<typename _Ptr>
+ using _Convertible
+   = typename enable_if<is_convertible<_Ptr, _Tp*>::value>::type;
+
+    public:
+      typedef _Tp element_type;
+
+      constexpr __weak_ptr() noexcept
+      : _M_ptr(nullptr), _M_refcount()
+      { }
+
+      __weak_ptr(const __weak_ptr&) noexcept = default;
+
+      ~__weak_ptr() = default;
+# 1374 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr_base.h" 3
+      template<typename _Tp1, typename = _Convertible<_Tp1*>>
+ __weak_ptr(const __weak_ptr<_Tp1, _Lp>& __r) noexcept
+ : _M_refcount(__r._M_refcount)
+        { _M_ptr = __r.lock().get(); }
+
+      template<typename _Tp1, typename = _Convertible<_Tp1*>>
+ __weak_ptr(const __shared_ptr<_Tp1, _Lp>& __r) noexcept
+ : _M_ptr(__r._M_ptr), _M_refcount(__r._M_refcount)
+ { }
+
+      __weak_ptr(__weak_ptr&& __r) noexcept
+      : _M_ptr(__r._M_ptr), _M_refcount(std::move(__r._M_refcount))
+      { __r._M_ptr = nullptr; }
+
+      template<typename _Tp1, typename = _Convertible<_Tp1*>>
+ __weak_ptr(__weak_ptr<_Tp1, _Lp>&& __r) noexcept
+ : _M_ptr(__r.lock().get()), _M_refcount(std::move(__r._M_refcount))
+        { __r._M_ptr = nullptr; }
+
+      __weak_ptr&
+      operator=(const __weak_ptr& __r) noexcept = default;
+
+      template<typename _Tp1>
+ __weak_ptr&
+ operator=(const __weak_ptr<_Tp1, _Lp>& __r) noexcept
+ {
+   _M_ptr = __r.lock().get();
+   _M_refcount = __r._M_refcount;
+   return *this;
+ }
+
+      template<typename _Tp1>
+ __weak_ptr&
+ operator=(const __shared_ptr<_Tp1, _Lp>& __r) noexcept
+ {
+   _M_ptr = __r._M_ptr;
+   _M_refcount = __r._M_refcount;
+   return *this;
+ }
+
+      __weak_ptr&
+      operator=(__weak_ptr&& __r) noexcept
+      {
+ _M_ptr = __r._M_ptr;
+ _M_refcount = std::move(__r._M_refcount);
+ __r._M_ptr = nullptr;
+ return *this;
+      }
+
+      template<typename _Tp1>
+ __weak_ptr&
+ operator=(__weak_ptr<_Tp1, _Lp>&& __r) noexcept
+ {
+   _M_ptr = __r.lock().get();
+   _M_refcount = std::move(__r._M_refcount);
+   __r._M_ptr = nullptr;
+   return *this;
+ }
+
+      __shared_ptr<_Tp, _Lp>
+      lock() const noexcept
+      { return __shared_ptr<element_type, _Lp>(*this, std::nothrow); }
+
+      long
+      use_count() const noexcept
+      { return _M_refcount._M_get_use_count(); }
+
+      bool
+      expired() const noexcept
+      { return _M_refcount._M_get_use_count() == 0; }
+
+      template<typename _Tp1>
+ bool
+ owner_before(const __shared_ptr<_Tp1, _Lp>& __rhs) const
+ { return _M_refcount._M_less(__rhs._M_refcount); }
+
+      template<typename _Tp1>
+ bool
+ owner_before(const __weak_ptr<_Tp1, _Lp>& __rhs) const
+ { return _M_refcount._M_less(__rhs._M_refcount); }
+
+      void
+      reset() noexcept
+      { __weak_ptr().swap(*this); }
+
+      void
+      swap(__weak_ptr& __s) noexcept
+      {
+ std::swap(_M_ptr, __s._M_ptr);
+ _M_refcount._M_swap(__s._M_refcount);
+      }
+
+    private:
+
+      void
+      _M_assign(_Tp* __ptr, const __shared_count<_Lp>& __refcount) noexcept
+      {
+ if (use_count() == 0)
+   {
+     _M_ptr = __ptr;
+     _M_refcount = __refcount;
+   }
+      }
+
+      template<typename _Tp1, _Lock_policy _Lp1> friend class __shared_ptr;
+      template<typename _Tp1, _Lock_policy _Lp1> friend class __weak_ptr;
+      friend class __enable_shared_from_this<_Tp, _Lp>;
+      friend class enable_shared_from_this<_Tp>;
+
+      _Tp* _M_ptr;
+      __weak_count<_Lp> _M_refcount;
+    };
+
+
+  template<typename _Tp, _Lock_policy _Lp>
+    inline void
+    swap(__weak_ptr<_Tp, _Lp>& __a, __weak_ptr<_Tp, _Lp>& __b) noexcept
+    { __a.swap(__b); }
+
+  template<typename _Tp, typename _Tp1>
+    struct _Sp_owner_less : public binary_function<_Tp, _Tp, bool>
+    {
+      bool
+      operator()(const _Tp& __lhs, const _Tp& __rhs) const
+      { return __lhs.owner_before(__rhs); }
+
+      bool
+      operator()(const _Tp& __lhs, const _Tp1& __rhs) const
+      { return __lhs.owner_before(__rhs); }
+
+      bool
+      operator()(const _Tp1& __lhs, const _Tp& __rhs) const
+      { return __lhs.owner_before(__rhs); }
+    };
+
+  template<typename _Tp, _Lock_policy _Lp>
+    struct owner_less<__shared_ptr<_Tp, _Lp>>
+    : public _Sp_owner_less<__shared_ptr<_Tp, _Lp>, __weak_ptr<_Tp, _Lp>>
+    { };
+
+  template<typename _Tp, _Lock_policy _Lp>
+    struct owner_less<__weak_ptr<_Tp, _Lp>>
+    : public _Sp_owner_less<__weak_ptr<_Tp, _Lp>, __shared_ptr<_Tp, _Lp>>
+    { };
+
+
+  template<typename _Tp, _Lock_policy _Lp>
+    class __enable_shared_from_this
+    {
+    protected:
+      constexpr __enable_shared_from_this() noexcept { }
+
+      __enable_shared_from_this(const __enable_shared_from_this&) noexcept { }
+
+      __enable_shared_from_this&
+      operator=(const __enable_shared_from_this&) noexcept
+      { return *this; }
+
+      ~__enable_shared_from_this() { }
+
+    public:
+      __shared_ptr<_Tp, _Lp>
+      shared_from_this()
+      { return __shared_ptr<_Tp, _Lp>(this->_M_weak_this); }
+
+      __shared_ptr<const _Tp, _Lp>
+      shared_from_this() const
+      { return __shared_ptr<const _Tp, _Lp>(this->_M_weak_this); }
+
+    private:
+      template<typename _Tp1>
+ void
+ _M_weak_assign(_Tp1* __p, const __shared_count<_Lp>& __n) const noexcept
+ { _M_weak_this._M_assign(__p, __n); }
+
+      template<_Lock_policy _Lp1, typename _Tp1, typename _Tp2>
+ friend void
+ __enable_shared_from_this_helper(const __shared_count<_Lp1>&,
+      const __enable_shared_from_this<_Tp1,
+      _Lp1>*, const _Tp2*) noexcept;
+
+      mutable __weak_ptr<_Tp, _Lp> _M_weak_this;
+    };
+
+  template<_Lock_policy _Lp1, typename _Tp1, typename _Tp2>
+    inline void
+    __enable_shared_from_this_helper(const __shared_count<_Lp1>& __pn,
+         const __enable_shared_from_this<_Tp1,
+         _Lp1>* __pe,
+         const _Tp2* __px) noexcept
+    {
+      if (__pe != nullptr)
+ __pe->_M_weak_assign(const_cast<_Tp2*>(__px), __pn);
+    }
+
+  template<typename _Tp, _Lock_policy _Lp, typename _Alloc, typename... _Args>
+    inline __shared_ptr<_Tp, _Lp>
+    __allocate_shared(const _Alloc& __a, _Args&&... __args)
+    {
+      return __shared_ptr<_Tp, _Lp>(_Sp_make_shared_tag(), __a,
+        std::forward<_Args>(__args)...);
+    }
+
+  template<typename _Tp, _Lock_policy _Lp, typename... _Args>
+    inline __shared_ptr<_Tp, _Lp>
+    __make_shared(_Args&&... __args)
+    {
+      typedef typename std::remove_const<_Tp>::type _Tp_nc;
+      return std::__allocate_shared<_Tp, _Lp>(std::allocator<_Tp_nc>(),
+           std::forward<_Args>(__args)...);
+    }
+
+
+  template<typename _Tp, _Lock_policy _Lp>
+    struct hash<__shared_ptr<_Tp, _Lp>>
+    : public __hash_base<size_t, __shared_ptr<_Tp, _Lp>>
+    {
+      size_t
+      operator()(const __shared_ptr<_Tp, _Lp>& __s) const noexcept
+      { return std::hash<_Tp*>()(__s.get()); }
+    };
+
+
+}
+# 53 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr.h" 2 3
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 64 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr.h" 3
+  template<typename _Ch, typename _Tr, typename _Tp, _Lock_policy _Lp>
+    inline std::basic_ostream<_Ch, _Tr>&
+    operator<<(std::basic_ostream<_Ch, _Tr>& __os,
+        const __shared_ptr<_Tp, _Lp>& __p)
+    {
+      __os << __p.get();
+      return __os;
+    }
+
+
+  template<typename _Del, typename _Tp, _Lock_policy _Lp>
+    inline _Del*
+    get_deleter(const __shared_ptr<_Tp, _Lp>& __p) noexcept
+    {
+
+      return static_cast<_Del*>(__p._M_get_deleter(typeid(_Del)));
+
+
+
+    }
+# 92 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr.h" 3
+  template<typename _Tp>
+    class shared_ptr : public __shared_ptr<_Tp>
+    {
+      template<typename _Ptr>
+ using _Convertible
+   = typename enable_if<is_convertible<_Ptr, _Tp*>::value>::type;
+
+    public:
+
+
+
+
+      constexpr shared_ptr() noexcept
+      : __shared_ptr<_Tp>() { }
+
+      shared_ptr(const shared_ptr&) noexcept = default;
+
+
+
+
+
+
+
+      template<typename _Tp1>
+ explicit shared_ptr(_Tp1* __p)
+        : __shared_ptr<_Tp>(__p) { }
+# 132 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr.h" 3
+      template<typename _Tp1, typename _Deleter>
+ shared_ptr(_Tp1* __p, _Deleter __d)
+        : __shared_ptr<_Tp>(__p, __d) { }
+# 149 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr.h" 3
+      template<typename _Deleter>
+ shared_ptr(nullptr_t __p, _Deleter __d)
+        : __shared_ptr<_Tp>(__p, __d) { }
+# 168 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr.h" 3
+      template<typename _Tp1, typename _Deleter, typename _Alloc>
+ shared_ptr(_Tp1* __p, _Deleter __d, _Alloc __a)
+ : __shared_ptr<_Tp>(__p, __d, std::move(__a)) { }
+# 187 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr.h" 3
+      template<typename _Deleter, typename _Alloc>
+ shared_ptr(nullptr_t __p, _Deleter __d, _Alloc __a)
+ : __shared_ptr<_Tp>(__p, __d, std::move(__a)) { }
+# 209 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr.h" 3
+      template<typename _Tp1>
+ shared_ptr(const shared_ptr<_Tp1>& __r, _Tp* __p) noexcept
+ : __shared_ptr<_Tp>(__r, __p) { }
+# 220 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr.h" 3
+      template<typename _Tp1, typename = _Convertible<_Tp1*>>
+ shared_ptr(const shared_ptr<_Tp1>& __r) noexcept
+        : __shared_ptr<_Tp>(__r) { }
+
+
+
+
+
+
+      shared_ptr(shared_ptr&& __r) noexcept
+      : __shared_ptr<_Tp>(std::move(__r)) { }
+
+
+
+
+
+
+      template<typename _Tp1, typename = _Convertible<_Tp1*>>
+ shared_ptr(shared_ptr<_Tp1>&& __r) noexcept
+ : __shared_ptr<_Tp>(std::move(__r)) { }
+# 249 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr.h" 3
+      template<typename _Tp1>
+ explicit shared_ptr(const weak_ptr<_Tp1>& __r)
+ : __shared_ptr<_Tp>(__r) { }
+
+
+      template<typename _Tp1>
+ shared_ptr(std::auto_ptr<_Tp1>&& __r);
+
+
+
+
+      template<typename _Tp1, typename _Del, typename
+        = _Convertible<typename unique_ptr<_Tp1, _Del>::pointer>>
+ shared_ptr(std::unique_ptr<_Tp1, _Del>&& __r)
+ : __shared_ptr<_Tp>(std::move(__r)) { }
+
+
+
+
+
+      constexpr shared_ptr(nullptr_t) noexcept : shared_ptr() { }
+
+      shared_ptr& operator=(const shared_ptr&) noexcept = default;
+
+      template<typename _Tp1>
+ shared_ptr&
+ operator=(const shared_ptr<_Tp1>& __r) noexcept
+ {
+   this->__shared_ptr<_Tp>::operator=(__r);
+   return *this;
+ }
+
+
+      template<typename _Tp1>
+ shared_ptr&
+ operator=(std::auto_ptr<_Tp1>&& __r)
+ {
+   this->__shared_ptr<_Tp>::operator=(std::move(__r));
+   return *this;
+ }
+
+
+      shared_ptr&
+      operator=(shared_ptr&& __r) noexcept
+      {
+ this->__shared_ptr<_Tp>::operator=(std::move(__r));
+ return *this;
+      }
+
+      template<class _Tp1>
+ shared_ptr&
+ operator=(shared_ptr<_Tp1>&& __r) noexcept
+ {
+   this->__shared_ptr<_Tp>::operator=(std::move(__r));
+   return *this;
+ }
+
+      template<typename _Tp1, typename _Del>
+ shared_ptr&
+ operator=(std::unique_ptr<_Tp1, _Del>&& __r)
+ {
+   this->__shared_ptr<_Tp>::operator=(std::move(__r));
+   return *this;
+ }
+
+    private:
+
+      template<typename _Alloc, typename... _Args>
+ shared_ptr(_Sp_make_shared_tag __tag, const _Alloc& __a,
+     _Args&&... __args)
+ : __shared_ptr<_Tp>(__tag, __a, std::forward<_Args>(__args)...)
+ { }
+
+      template<typename _Tp1, typename _Alloc, typename... _Args>
+ friend shared_ptr<_Tp1>
+ allocate_shared(const _Alloc& __a, _Args&&... __args);
+
+
+      shared_ptr(const weak_ptr<_Tp>& __r, std::nothrow_t)
+      : __shared_ptr<_Tp>(__r, std::nothrow) { }
+
+      friend class weak_ptr<_Tp>;
+    };
+
+
+  template<typename _Tp1, typename _Tp2>
+    inline bool
+    operator==(const shared_ptr<_Tp1>& __a,
+        const shared_ptr<_Tp2>& __b) noexcept
+    { return __a.get() == __b.get(); }
+
+  template<typename _Tp>
+    inline bool
+    operator==(const shared_ptr<_Tp>& __a, nullptr_t) noexcept
+    { return !__a; }
+
+  template<typename _Tp>
+    inline bool
+    operator==(nullptr_t, const shared_ptr<_Tp>& __a) noexcept
+    { return !__a; }
+
+  template<typename _Tp1, typename _Tp2>
+    inline bool
+    operator!=(const shared_ptr<_Tp1>& __a,
+        const shared_ptr<_Tp2>& __b) noexcept
+    { return __a.get() != __b.get(); }
+
+  template<typename _Tp>
+    inline bool
+    operator!=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept
+    { return (bool)__a; }
+
+  template<typename _Tp>
+    inline bool
+    operator!=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept
+    { return (bool)__a; }
+
+  template<typename _Tp1, typename _Tp2>
+    inline bool
+    operator<(const shared_ptr<_Tp1>& __a,
+       const shared_ptr<_Tp2>& __b) noexcept
+    {
+      typedef typename std::common_type<_Tp1*, _Tp2*>::type _CT;
+      return std::less<_CT>()(__a.get(), __b.get());
+    }
+
+  template<typename _Tp>
+    inline bool
+    operator<(const shared_ptr<_Tp>& __a, nullptr_t) noexcept
+    { return std::less<_Tp*>()(__a.get(), nullptr); }
+
+  template<typename _Tp>
+    inline bool
+    operator<(nullptr_t, const shared_ptr<_Tp>& __a) noexcept
+    { return std::less<_Tp*>()(nullptr, __a.get()); }
+
+  template<typename _Tp1, typename _Tp2>
+    inline bool
+    operator<=(const shared_ptr<_Tp1>& __a,
+        const shared_ptr<_Tp2>& __b) noexcept
+    { return !(__b < __a); }
+
+  template<typename _Tp>
+    inline bool
+    operator<=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept
+    { return !(nullptr < __a); }
+
+  template<typename _Tp>
+    inline bool
+    operator<=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept
+    { return !(__a < nullptr); }
+
+  template<typename _Tp1, typename _Tp2>
+    inline bool
+    operator>(const shared_ptr<_Tp1>& __a,
+       const shared_ptr<_Tp2>& __b) noexcept
+    { return (__b < __a); }
+
+  template<typename _Tp>
+    inline bool
+    operator>(const shared_ptr<_Tp>& __a, nullptr_t) noexcept
+    { return std::less<_Tp*>()(nullptr, __a.get()); }
+
+  template<typename _Tp>
+    inline bool
+    operator>(nullptr_t, const shared_ptr<_Tp>& __a) noexcept
+    { return std::less<_Tp*>()(__a.get(), nullptr); }
+
+  template<typename _Tp1, typename _Tp2>
+    inline bool
+    operator>=(const shared_ptr<_Tp1>& __a,
+        const shared_ptr<_Tp2>& __b) noexcept
+    { return !(__a < __b); }
+
+  template<typename _Tp>
+    inline bool
+    operator>=(const shared_ptr<_Tp>& __a, nullptr_t) noexcept
+    { return !(__a < nullptr); }
+
+  template<typename _Tp>
+    inline bool
+    operator>=(nullptr_t, const shared_ptr<_Tp>& __a) noexcept
+    { return !(nullptr < __a); }
+
+  template<typename _Tp>
+    struct less<shared_ptr<_Tp>> : public _Sp_less<shared_ptr<_Tp>>
+    { };
+
+
+  template<typename _Tp>
+    inline void
+    swap(shared_ptr<_Tp>& __a, shared_ptr<_Tp>& __b) noexcept
+    { __a.swap(__b); }
+
+
+  template<typename _Tp, typename _Tp1>
+    inline shared_ptr<_Tp>
+    static_pointer_cast(const shared_ptr<_Tp1>& __r) noexcept
+    { return shared_ptr<_Tp>(__r, static_cast<_Tp*>(__r.get())); }
+
+  template<typename _Tp, typename _Tp1>
+    inline shared_ptr<_Tp>
+    const_pointer_cast(const shared_ptr<_Tp1>& __r) noexcept
+    { return shared_ptr<_Tp>(__r, const_cast<_Tp*>(__r.get())); }
+
+  template<typename _Tp, typename _Tp1>
+    inline shared_ptr<_Tp>
+    dynamic_pointer_cast(const shared_ptr<_Tp1>& __r) noexcept
+    {
+      if (_Tp* __p = dynamic_cast<_Tp*>(__r.get()))
+ return shared_ptr<_Tp>(__r, __p);
+      return shared_ptr<_Tp>();
+    }
+
+
+
+
+
+
+
+  template<typename _Tp>
+    class weak_ptr : public __weak_ptr<_Tp>
+    {
+      template<typename _Ptr>
+ using _Convertible
+   = typename enable_if<is_convertible<_Ptr, _Tp*>::value>::type;
+
+    public:
+      constexpr weak_ptr() noexcept = default;
+
+      template<typename _Tp1, typename = _Convertible<_Tp1*>>
+ weak_ptr(const shared_ptr<_Tp1>& __r) noexcept
+ : __weak_ptr<_Tp>(__r) { }
+
+      weak_ptr(const weak_ptr&) noexcept = default;
+
+      template<typename _Tp1, typename = _Convertible<_Tp1*>>
+ weak_ptr(const weak_ptr<_Tp1>& __r) noexcept
+ : __weak_ptr<_Tp>(__r) { }
+
+      weak_ptr(weak_ptr&&) noexcept = default;
+
+      template<typename _Tp1, typename = _Convertible<_Tp1*>>
+ weak_ptr(weak_ptr<_Tp1>&& __r) noexcept
+ : __weak_ptr<_Tp>(std::move(__r)) { }
+
+      weak_ptr&
+      operator=(const weak_ptr& __r) noexcept = default;
+
+      template<typename _Tp1>
+ weak_ptr&
+ operator=(const weak_ptr<_Tp1>& __r) noexcept
+ {
+   this->__weak_ptr<_Tp>::operator=(__r);
+   return *this;
+ }
+
+      template<typename _Tp1>
+ weak_ptr&
+ operator=(const shared_ptr<_Tp1>& __r) noexcept
+ {
+   this->__weak_ptr<_Tp>::operator=(__r);
+   return *this;
+ }
+
+      weak_ptr&
+      operator=(weak_ptr&& __r) noexcept = default;
+
+      template<typename _Tp1>
+ weak_ptr&
+ operator=(weak_ptr<_Tp1>&& __r) noexcept
+ {
+   this->__weak_ptr<_Tp>::operator=(std::move(__r));
+   return *this;
+ }
+
+      shared_ptr<_Tp>
+      lock() const noexcept
+      { return shared_ptr<_Tp>(*this, std::nothrow); }
+    };
+
+
+  template<typename _Tp>
+    inline void
+    swap(weak_ptr<_Tp>& __a, weak_ptr<_Tp>& __b) noexcept
+    { __a.swap(__b); }
+
+
+
+  template<typename _Tp>
+    struct owner_less;
+
+
+  template<typename _Tp>
+    struct owner_less<shared_ptr<_Tp>>
+    : public _Sp_owner_less<shared_ptr<_Tp>, weak_ptr<_Tp>>
+    { };
+
+
+  template<typename _Tp>
+    struct owner_less<weak_ptr<_Tp>>
+    : public _Sp_owner_less<weak_ptr<_Tp>, shared_ptr<_Tp>>
+    { };
+
+
+
+
+  template<typename _Tp>
+    class enable_shared_from_this
+    {
+    protected:
+      constexpr enable_shared_from_this() noexcept { }
+
+      enable_shared_from_this(const enable_shared_from_this&) noexcept { }
+
+      enable_shared_from_this&
+      operator=(const enable_shared_from_this&) noexcept
+      { return *this; }
+
+      ~enable_shared_from_this() { }
+
+    public:
+      shared_ptr<_Tp>
+      shared_from_this()
+      { return shared_ptr<_Tp>(this->_M_weak_this); }
+
+      shared_ptr<const _Tp>
+      shared_from_this() const
+      { return shared_ptr<const _Tp>(this->_M_weak_this); }
+
+    private:
+      template<typename _Tp1>
+ void
+ _M_weak_assign(_Tp1* __p, const __shared_count<>& __n) const noexcept
+ { _M_weak_this._M_assign(__p, __n); }
+
+      template<typename _Tp1, typename _Tp2>
+ friend void
+ __enable_shared_from_this_helper(const __shared_count<>&,
+      const enable_shared_from_this<_Tp1>*,
+      const _Tp2*) noexcept;
+
+      mutable weak_ptr<_Tp> _M_weak_this;
+    };
+
+  template<typename _Tp1, typename _Tp2>
+    inline void
+    __enable_shared_from_this_helper(const __shared_count<>& __pn,
+         const enable_shared_from_this<_Tp1>*
+         __pe, const _Tp2* __px) noexcept
+    {
+      if (__pe != nullptr)
+ __pe->_M_weak_assign(const_cast<_Tp2*>(__px), __pn);
+    }
+# 615 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr.h" 3
+  template<typename _Tp, typename _Alloc, typename... _Args>
+    inline shared_ptr<_Tp>
+    allocate_shared(const _Alloc& __a, _Args&&... __args)
+    {
+      return shared_ptr<_Tp>(_Sp_make_shared_tag(), __a,
+        std::forward<_Args>(__args)...);
+    }
+# 630 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr.h" 3
+  template<typename _Tp, typename... _Args>
+    inline shared_ptr<_Tp>
+    make_shared(_Args&&... __args)
+    {
+      typedef typename std::remove_const<_Tp>::type _Tp_nc;
+      return std::allocate_shared<_Tp>(std::allocator<_Tp_nc>(),
+           std::forward<_Args>(__args)...);
+    }
+
+
+  template<typename _Tp>
+    struct hash<shared_ptr<_Tp>>
+    : public __hash_base<size_t, shared_ptr<_Tp>>
+    {
+      size_t
+      operator()(const shared_ptr<_Tp>& __s) const noexcept
+      { return std::hash<_Tp*>()(__s.get()); }
+    };
+
+
+
+
+}
+# 83 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/memory" 2 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr_atomic.h" 1 3
+# 33 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr_atomic.h" 3
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/atomic_base.h" 1 3
+# 34 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/atomic_base.h" 3
+
+
+# 1 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stdint.h" 1 3
+# 37 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/atomic_base.h" 2 3
+
+
+
+
+
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 55 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/atomic_base.h" 3
+  typedef enum memory_order
+    {
+      memory_order_relaxed,
+      memory_order_consume,
+      memory_order_acquire,
+      memory_order_release,
+      memory_order_acq_rel,
+      memory_order_seq_cst
+    } memory_order;
+
+  enum __memory_order_modifier
+    {
+      __memory_order_mask = 0x0ffff,
+      __memory_order_modifier_mask = 0xffff0000,
+      __memory_order_hle_acquire = 0x10000,
+      __memory_order_hle_release = 0x20000
+    };
+
+  constexpr memory_order
+  operator|(memory_order __m, __memory_order_modifier __mod)
+  {
+    return memory_order(__m | int(__mod));
+  }
+
+  constexpr memory_order
+  operator&(memory_order __m, __memory_order_modifier __mod)
+  {
+    return memory_order(__m & int(__mod));
+  }
+
+
+  constexpr memory_order
+  __cmpexch_failure_order2(memory_order __m) noexcept
+  {
+    return __m == memory_order_acq_rel ? memory_order_acquire
+      : __m == memory_order_release ? memory_order_relaxed : __m;
+  }
+
+  constexpr memory_order
+  __cmpexch_failure_order(memory_order __m) noexcept
+  {
+    return memory_order(__cmpexch_failure_order2(__m & __memory_order_mask)
+      | (__m & __memory_order_modifier_mask));
+  }
+
+  inline __attribute__((__always_inline__)) void
+  atomic_thread_fence(memory_order __m) noexcept
+  { __atomic_thread_fence(__m); }
+
+  inline __attribute__((__always_inline__)) void
+  atomic_signal_fence(memory_order __m) noexcept
+  { __atomic_signal_fence(__m); }
+
+
+  template<typename _Tp>
+    inline _Tp
+    kill_dependency(_Tp __y) noexcept
+    {
+      _Tp __ret(__y);
+      return __ret;
+    }
+
+
+
+  template<typename _IntTp>
+    struct __atomic_base;
+
+
+
+
+  template<typename _Tp>
+    struct atomic;
+
+  template<typename _Tp>
+    struct atomic<_Tp*>;
+
+
+
+    typedef bool __atomic_flag_data_type;
+# 148 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/atomic_base.h" 3
+  extern "C" {
+
+  struct __atomic_flag_base
+  {
+    __atomic_flag_data_type _M_i;
+  };
+
+  }
+
+
+
+
+  struct atomic_flag : public __atomic_flag_base
+  {
+    atomic_flag() noexcept = default;
+    ~atomic_flag() noexcept = default;
+    atomic_flag(const atomic_flag&) = delete;
+    atomic_flag& operator=(const atomic_flag&) = delete;
+    atomic_flag& operator=(const atomic_flag&) volatile = delete;
+
+
+    constexpr atomic_flag(bool __i) noexcept
+      : __atomic_flag_base{ _S_init(__i) }
+    { }
+
+    inline __attribute__((__always_inline__)) bool
+    test_and_set(memory_order __m = memory_order_seq_cst) noexcept
+    {
+      return __atomic_test_and_set (&_M_i, __m);
+    }
+
+    inline __attribute__((__always_inline__)) bool
+    test_and_set(memory_order __m = memory_order_seq_cst) volatile noexcept
+    {
+      return __atomic_test_and_set (&_M_i, __m);
+    }
+
+    inline __attribute__((__always_inline__)) void
+    clear(memory_order __m = memory_order_seq_cst) noexcept
+    {
+      memory_order __b = __m & __memory_order_mask;
+                                                   ;
+                                                   ;
+                                                   ;
+
+      __atomic_clear (&_M_i, __m);
+    }
+
+    inline __attribute__((__always_inline__)) void
+    clear(memory_order __m = memory_order_seq_cst) volatile noexcept
+    {
+      memory_order __b = __m & __memory_order_mask;
+                                                   ;
+                                                   ;
+                                                   ;
+
+      __atomic_clear (&_M_i, __m);
+    }
+
+  private:
+    static constexpr __atomic_flag_data_type
+    _S_init(bool __i)
+    { return __i ? 1 : 0; }
+  };
+# 237 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/atomic_base.h" 3
+  template<typename _ITp>
+    struct __atomic_base
+    {
+    private:
+      typedef _ITp __int_type;
+
+      static constexpr int _S_alignment =
+ sizeof(_ITp) > alignof(_ITp) ? sizeof(_ITp) : alignof(_ITp);
+
+      alignas(_S_alignment) __int_type _M_i;
+
+    public:
+      __atomic_base() noexcept = default;
+      ~__atomic_base() noexcept = default;
+      __atomic_base(const __atomic_base&) = delete;
+      __atomic_base& operator=(const __atomic_base&) = delete;
+      __atomic_base& operator=(const __atomic_base&) volatile = delete;
+
+
+      constexpr __atomic_base(__int_type __i) noexcept : _M_i (__i) { }
+
+      operator __int_type() const noexcept
+      { return load(); }
+
+      operator __int_type() const volatile noexcept
+      { return load(); }
+
+      __int_type
+      operator=(__int_type __i) noexcept
+      {
+ store(__i);
+ return __i;
+      }
+
+      __int_type
+      operator=(__int_type __i) volatile noexcept
+      {
+ store(__i);
+ return __i;
+      }
+
+      __int_type
+      operator++(int) noexcept
+      { return fetch_add(1); }
+
+      __int_type
+      operator++(int) volatile noexcept
+      { return fetch_add(1); }
+
+      __int_type
+      operator--(int) noexcept
+      { return fetch_sub(1); }
+
+      __int_type
+      operator--(int) volatile noexcept
+      { return fetch_sub(1); }
+
+      __int_type
+      operator++() noexcept
+      { return __atomic_add_fetch(&_M_i, 1, memory_order_seq_cst); }
+
+      __int_type
+      operator++() volatile noexcept
+      { return __atomic_add_fetch(&_M_i, 1, memory_order_seq_cst); }
+
+      __int_type
+      operator--() noexcept
+      { return __atomic_sub_fetch(&_M_i, 1, memory_order_seq_cst); }
+
+      __int_type
+      operator--() volatile noexcept
+      { return __atomic_sub_fetch(&_M_i, 1, memory_order_seq_cst); }
+
+      __int_type
+      operator+=(__int_type __i) noexcept
+      { return __atomic_add_fetch(&_M_i, __i, memory_order_seq_cst); }
+
+      __int_type
+      operator+=(__int_type __i) volatile noexcept
+      { return __atomic_add_fetch(&_M_i, __i, memory_order_seq_cst); }
+
+      __int_type
+      operator-=(__int_type __i) noexcept
+      { return __atomic_sub_fetch(&_M_i, __i, memory_order_seq_cst); }
+
+      __int_type
+      operator-=(__int_type __i) volatile noexcept
+      { return __atomic_sub_fetch(&_M_i, __i, memory_order_seq_cst); }
+
+      __int_type
+      operator&=(__int_type __i) noexcept
+      { return __atomic_and_fetch(&_M_i, __i, memory_order_seq_cst); }
+
+      __int_type
+      operator&=(__int_type __i) volatile noexcept
+      { return __atomic_and_fetch(&_M_i, __i, memory_order_seq_cst); }
+
+      __int_type
+      operator|=(__int_type __i) noexcept
+      { return __atomic_or_fetch(&_M_i, __i, memory_order_seq_cst); }
+
+      __int_type
+      operator|=(__int_type __i) volatile noexcept
+      { return __atomic_or_fetch(&_M_i, __i, memory_order_seq_cst); }
+
+      __int_type
+      operator^=(__int_type __i) noexcept
+      { return __atomic_xor_fetch(&_M_i, __i, memory_order_seq_cst); }
+
+      __int_type
+      operator^=(__int_type __i) volatile noexcept
+      { return __atomic_xor_fetch(&_M_i, __i, memory_order_seq_cst); }
+
+      bool
+      is_lock_free() const noexcept
+      {
+
+ return __atomic_is_lock_free(sizeof(_M_i),
+     reinterpret_cast<void *>(-__alignof(_M_i)));
+      }
+
+      bool
+      is_lock_free() const volatile noexcept
+      {
+
+ return __atomic_is_lock_free(sizeof(_M_i),
+     reinterpret_cast<void *>(-__alignof(_M_i)));
+      }
+
+      inline __attribute__((__always_inline__)) void
+      store(__int_type __i, memory_order __m = memory_order_seq_cst) noexcept
+      {
+        memory_order __b = __m & __memory_order_mask;
+                                              ;
+                                              ;
+                                              ;
+
+ __atomic_store_n(&_M_i, __i, __m);
+      }
+
+      inline __attribute__((__always_inline__)) void
+      store(__int_type __i,
+     memory_order __m = memory_order_seq_cst) volatile noexcept
+      {
+        memory_order __b = __m & __memory_order_mask;
+                                              ;
+                                              ;
+                                              ;
+
+ __atomic_store_n(&_M_i, __i, __m);
+      }
+
+      inline __attribute__((__always_inline__)) __int_type
+      load(memory_order __m = memory_order_seq_cst) const noexcept
+      {
+       memory_order __b = __m & __memory_order_mask;
+                                              ;
+                                              ;
+
+ return __atomic_load_n(&_M_i, __m);
+      }
+
+      inline __attribute__((__always_inline__)) __int_type
+      load(memory_order __m = memory_order_seq_cst) const volatile noexcept
+      {
+        memory_order __b = __m & __memory_order_mask;
+                                              ;
+                                              ;
+
+ return __atomic_load_n(&_M_i, __m);
+      }
+
+      inline __attribute__((__always_inline__)) __int_type
+      exchange(__int_type __i,
+        memory_order __m = memory_order_seq_cst) noexcept
+      {
+ return __atomic_exchange_n(&_M_i, __i, __m);
+      }
+
+
+      inline __attribute__((__always_inline__)) __int_type
+      exchange(__int_type __i,
+        memory_order __m = memory_order_seq_cst) volatile noexcept
+      {
+ return __atomic_exchange_n(&_M_i, __i, __m);
+      }
+
+      inline __attribute__((__always_inline__)) bool
+      compare_exchange_weak(__int_type& __i1, __int_type __i2,
+       memory_order __m1, memory_order __m2) noexcept
+      {
+       memory_order __b2 = __m2 & __memory_order_mask;
+       memory_order __b1 = __m1 & __memory_order_mask;
+                                               ;
+                                               ;
+                               ;
+
+ return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, __m1, __m2);
+      }
+
+      inline __attribute__((__always_inline__)) bool
+      compare_exchange_weak(__int_type& __i1, __int_type __i2,
+       memory_order __m1,
+       memory_order __m2) volatile noexcept
+      {
+       memory_order __b2 = __m2 & __memory_order_mask;
+       memory_order __b1 = __m1 & __memory_order_mask;
+                                               ;
+                                               ;
+                               ;
+
+ return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, __m1, __m2);
+      }
+
+      inline __attribute__((__always_inline__)) bool
+      compare_exchange_weak(__int_type& __i1, __int_type __i2,
+       memory_order __m = memory_order_seq_cst) noexcept
+      {
+ return compare_exchange_weak(__i1, __i2, __m,
+         __cmpexch_failure_order(__m));
+      }
+
+      inline __attribute__((__always_inline__)) bool
+      compare_exchange_weak(__int_type& __i1, __int_type __i2,
+     memory_order __m = memory_order_seq_cst) volatile noexcept
+      {
+ return compare_exchange_weak(__i1, __i2, __m,
+         __cmpexch_failure_order(__m));
+      }
+
+      inline __attribute__((__always_inline__)) bool
+      compare_exchange_strong(__int_type& __i1, __int_type __i2,
+         memory_order __m1, memory_order __m2) noexcept
+      {
+        memory_order __b2 = __m2 & __memory_order_mask;
+        memory_order __b1 = __m1 & __memory_order_mask;
+                                               ;
+                                               ;
+                               ;
+
+ return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2);
+      }
+
+      inline __attribute__((__always_inline__)) bool
+      compare_exchange_strong(__int_type& __i1, __int_type __i2,
+         memory_order __m1,
+         memory_order __m2) volatile noexcept
+      {
+        memory_order __b2 = __m2 & __memory_order_mask;
+        memory_order __b1 = __m1 & __memory_order_mask;
+
+                                               ;
+                                               ;
+                               ;
+
+ return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2);
+      }
+
+      inline __attribute__((__always_inline__)) bool
+      compare_exchange_strong(__int_type& __i1, __int_type __i2,
+         memory_order __m = memory_order_seq_cst) noexcept
+      {
+ return compare_exchange_strong(__i1, __i2, __m,
+           __cmpexch_failure_order(__m));
+      }
+
+      inline __attribute__((__always_inline__)) bool
+      compare_exchange_strong(__int_type& __i1, __int_type __i2,
+   memory_order __m = memory_order_seq_cst) volatile noexcept
+      {
+ return compare_exchange_strong(__i1, __i2, __m,
+           __cmpexch_failure_order(__m));
+      }
+
+      inline __attribute__((__always_inline__)) __int_type
+      fetch_add(__int_type __i,
+  memory_order __m = memory_order_seq_cst) noexcept
+      { return __atomic_fetch_add(&_M_i, __i, __m); }
+
+      inline __attribute__((__always_inline__)) __int_type
+      fetch_add(__int_type __i,
+  memory_order __m = memory_order_seq_cst) volatile noexcept
+      { return __atomic_fetch_add(&_M_i, __i, __m); }
+
+      inline __attribute__((__always_inline__)) __int_type
+      fetch_sub(__int_type __i,
+  memory_order __m = memory_order_seq_cst) noexcept
+      { return __atomic_fetch_sub(&_M_i, __i, __m); }
+
+      inline __attribute__((__always_inline__)) __int_type
+      fetch_sub(__int_type __i,
+  memory_order __m = memory_order_seq_cst) volatile noexcept
+      { return __atomic_fetch_sub(&_M_i, __i, __m); }
+
+      inline __attribute__((__always_inline__)) __int_type
+      fetch_and(__int_type __i,
+  memory_order __m = memory_order_seq_cst) noexcept
+      { return __atomic_fetch_and(&_M_i, __i, __m); }
+
+      inline __attribute__((__always_inline__)) __int_type
+      fetch_and(__int_type __i,
+  memory_order __m = memory_order_seq_cst) volatile noexcept
+      { return __atomic_fetch_and(&_M_i, __i, __m); }
+
+      inline __attribute__((__always_inline__)) __int_type
+      fetch_or(__int_type __i,
+        memory_order __m = memory_order_seq_cst) noexcept
+      { return __atomic_fetch_or(&_M_i, __i, __m); }
+
+      inline __attribute__((__always_inline__)) __int_type
+      fetch_or(__int_type __i,
+        memory_order __m = memory_order_seq_cst) volatile noexcept
+      { return __atomic_fetch_or(&_M_i, __i, __m); }
+
+      inline __attribute__((__always_inline__)) __int_type
+      fetch_xor(__int_type __i,
+  memory_order __m = memory_order_seq_cst) noexcept
+      { return __atomic_fetch_xor(&_M_i, __i, __m); }
+
+      inline __attribute__((__always_inline__)) __int_type
+      fetch_xor(__int_type __i,
+  memory_order __m = memory_order_seq_cst) volatile noexcept
+      { return __atomic_fetch_xor(&_M_i, __i, __m); }
+    };
+
+
+
+  template<typename _PTp>
+    struct __atomic_base<_PTp*>
+    {
+    private:
+      typedef _PTp* __pointer_type;
+
+      __pointer_type _M_p;
+
+
+      constexpr ptrdiff_t
+      _M_type_size(ptrdiff_t __d) const { return __d * sizeof(_PTp); }
+
+      constexpr ptrdiff_t
+      _M_type_size(ptrdiff_t __d) const volatile { return __d * sizeof(_PTp); }
+
+    public:
+      __atomic_base() noexcept = default;
+      ~__atomic_base() noexcept = default;
+      __atomic_base(const __atomic_base&) = delete;
+      __atomic_base& operator=(const __atomic_base&) = delete;
+      __atomic_base& operator=(const __atomic_base&) volatile = delete;
+
+
+      constexpr __atomic_base(__pointer_type __p) noexcept : _M_p (__p) { }
+
+      operator __pointer_type() const noexcept
+      { return load(); }
+
+      operator __pointer_type() const volatile noexcept
+      { return load(); }
+
+      __pointer_type
+      operator=(__pointer_type __p) noexcept
+      {
+ store(__p);
+ return __p;
+      }
+
+      __pointer_type
+      operator=(__pointer_type __p) volatile noexcept
+      {
+ store(__p);
+ return __p;
+      }
+
+      __pointer_type
+      operator++(int) noexcept
+      { return fetch_add(1); }
+
+      __pointer_type
+      operator++(int) volatile noexcept
+      { return fetch_add(1); }
+
+      __pointer_type
+      operator--(int) noexcept
+      { return fetch_sub(1); }
+
+      __pointer_type
+      operator--(int) volatile noexcept
+      { return fetch_sub(1); }
+
+      __pointer_type
+      operator++() noexcept
+      { return __atomic_add_fetch(&_M_p, _M_type_size(1),
+      memory_order_seq_cst); }
+
+      __pointer_type
+      operator++() volatile noexcept
+      { return __atomic_add_fetch(&_M_p, _M_type_size(1),
+      memory_order_seq_cst); }
+
+      __pointer_type
+      operator--() noexcept
+      { return __atomic_sub_fetch(&_M_p, _M_type_size(1),
+      memory_order_seq_cst); }
+
+      __pointer_type
+      operator--() volatile noexcept
+      { return __atomic_sub_fetch(&_M_p, _M_type_size(1),
+      memory_order_seq_cst); }
+
+      __pointer_type
+      operator+=(ptrdiff_t __d) noexcept
+      { return __atomic_add_fetch(&_M_p, _M_type_size(__d),
+      memory_order_seq_cst); }
+
+      __pointer_type
+      operator+=(ptrdiff_t __d) volatile noexcept
+      { return __atomic_add_fetch(&_M_p, _M_type_size(__d),
+      memory_order_seq_cst); }
+
+      __pointer_type
+      operator-=(ptrdiff_t __d) noexcept
+      { return __atomic_sub_fetch(&_M_p, _M_type_size(__d),
+      memory_order_seq_cst); }
+
+      __pointer_type
+      operator-=(ptrdiff_t __d) volatile noexcept
+      { return __atomic_sub_fetch(&_M_p, _M_type_size(__d),
+      memory_order_seq_cst); }
+
+      bool
+      is_lock_free() const noexcept
+      {
+
+ return __atomic_is_lock_free(sizeof(_M_p),
+     reinterpret_cast<void *>(-__alignof(_M_p)));
+      }
+
+      bool
+      is_lock_free() const volatile noexcept
+      {
+
+ return __atomic_is_lock_free(sizeof(_M_p),
+     reinterpret_cast<void *>(-__alignof(_M_p)));
+      }
+
+      inline __attribute__((__always_inline__)) void
+      store(__pointer_type __p,
+     memory_order __m = memory_order_seq_cst) noexcept
+      {
+        memory_order __b = __m & __memory_order_mask;
+
+                                              ;
+                                              ;
+                                              ;
+
+ __atomic_store_n(&_M_p, __p, __m);
+      }
+
+      inline __attribute__((__always_inline__)) void
+      store(__pointer_type __p,
+     memory_order __m = memory_order_seq_cst) volatile noexcept
+      {
+        memory_order __b = __m & __memory_order_mask;
+                                              ;
+                                              ;
+                                              ;
+
+ __atomic_store_n(&_M_p, __p, __m);
+      }
+
+      inline __attribute__((__always_inline__)) __pointer_type
+      load(memory_order __m = memory_order_seq_cst) const noexcept
+      {
+        memory_order __b = __m & __memory_order_mask;
+                                              ;
+                                              ;
+
+ return __atomic_load_n(&_M_p, __m);
+      }
+
+      inline __attribute__((__always_inline__)) __pointer_type
+      load(memory_order __m = memory_order_seq_cst) const volatile noexcept
+      {
+        memory_order __b = __m & __memory_order_mask;
+                                              ;
+                                              ;
+
+ return __atomic_load_n(&_M_p, __m);
+      }
+
+      inline __attribute__((__always_inline__)) __pointer_type
+      exchange(__pointer_type __p,
+        memory_order __m = memory_order_seq_cst) noexcept
+      {
+ return __atomic_exchange_n(&_M_p, __p, __m);
+      }
+
+
+      inline __attribute__((__always_inline__)) __pointer_type
+      exchange(__pointer_type __p,
+        memory_order __m = memory_order_seq_cst) volatile noexcept
+      {
+ return __atomic_exchange_n(&_M_p, __p, __m);
+      }
+
+      inline __attribute__((__always_inline__)) bool
+      compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
+         memory_order __m1,
+         memory_order __m2) noexcept
+      {
+        memory_order __b2 = __m2 & __memory_order_mask;
+        memory_order __b1 = __m1 & __memory_order_mask;
+                                               ;
+                                               ;
+                               ;
+
+ return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, __m1, __m2);
+      }
+
+      inline __attribute__((__always_inline__)) bool
+      compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
+         memory_order __m1,
+         memory_order __m2) volatile noexcept
+      {
+        memory_order __b2 = __m2 & __memory_order_mask;
+        memory_order __b1 = __m1 & __memory_order_mask;
+
+                                               ;
+                                               ;
+                               ;
+
+ return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, __m1, __m2);
+      }
+
+      inline __attribute__((__always_inline__)) __pointer_type
+      fetch_add(ptrdiff_t __d,
+  memory_order __m = memory_order_seq_cst) noexcept
+      { return __atomic_fetch_add(&_M_p, _M_type_size(__d), __m); }
+
+      inline __attribute__((__always_inline__)) __pointer_type
+      fetch_add(ptrdiff_t __d,
+  memory_order __m = memory_order_seq_cst) volatile noexcept
+      { return __atomic_fetch_add(&_M_p, _M_type_size(__d), __m); }
+
+      inline __attribute__((__always_inline__)) __pointer_type
+      fetch_sub(ptrdiff_t __d,
+  memory_order __m = memory_order_seq_cst) noexcept
+      { return __atomic_fetch_sub(&_M_p, _M_type_size(__d), __m); }
+
+      inline __attribute__((__always_inline__)) __pointer_type
+      fetch_sub(ptrdiff_t __d,
+  memory_order __m = memory_order_seq_cst) volatile noexcept
+      { return __atomic_fetch_sub(&_M_p, _M_type_size(__d), __m); }
+    };
+
+
+
+
+}
+# 34 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr_atomic.h" 2 3
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+
+
+
+
+
+
+
+  struct _Sp_locker
+  {
+    _Sp_locker(const _Sp_locker&) = delete;
+    _Sp_locker& operator=(const _Sp_locker&) = delete;
+
+
+    explicit
+    _Sp_locker(const void*) noexcept;
+    _Sp_locker(const void*, const void*) noexcept;
+    ~_Sp_locker();
+
+  private:
+    unsigned char _M_key1;
+    unsigned char _M_key2;
+
+
+
+  };
+
+
+
+
+
+
+
+  template<typename _Tp, _Lock_policy _Lp>
+    inline bool
+    atomic_is_lock_free(const __shared_ptr<_Tp, _Lp>* __p)
+    {
+
+      return __gthread_active_p() == 0;
+
+
+
+    }
+
+  template<typename _Tp>
+    inline bool
+    atomic_is_lock_free(const shared_ptr<_Tp>* __p)
+    { return std::atomic_is_lock_free<_Tp, __default_lock_policy>(__p); }
+# 96 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr_atomic.h" 3
+  template<typename _Tp>
+    inline shared_ptr<_Tp>
+    atomic_load_explicit(const shared_ptr<_Tp>* __p, memory_order)
+    {
+      _Sp_locker __lock{__p};
+      return *__p;
+    }
+
+  template<typename _Tp>
+    inline shared_ptr<_Tp>
+    atomic_load(const shared_ptr<_Tp>* __p)
+    { return std::atomic_load_explicit(__p, memory_order_seq_cst); }
+
+  template<typename _Tp, _Lock_policy _Lp>
+    inline __shared_ptr<_Tp, _Lp>
+    atomic_load_explicit(const __shared_ptr<_Tp, _Lp>* __p, memory_order)
+    {
+      _Sp_locker __lock{__p};
+      return *__p;
+    }
+
+  template<typename _Tp, _Lock_policy _Lp>
+    inline __shared_ptr<_Tp, _Lp>
+    atomic_load(const __shared_ptr<_Tp, _Lp>* __p)
+    { return std::atomic_load_explicit(__p, memory_order_seq_cst); }
+# 132 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr_atomic.h" 3
+  template<typename _Tp>
+    inline void
+    atomic_store_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r,
+     memory_order)
+    {
+      _Sp_locker __lock{__p};
+      __p->swap(__r);
+    }
+
+  template<typename _Tp>
+    inline void
+    atomic_store(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r)
+    { std::atomic_store_explicit(__p, std::move(__r), memory_order_seq_cst); }
+
+  template<typename _Tp, _Lock_policy _Lp>
+    inline void
+    atomic_store_explicit(__shared_ptr<_Tp, _Lp>* __p,
+     __shared_ptr<_Tp, _Lp> __r,
+     memory_order)
+    {
+      _Sp_locker __lock{__p};
+      __p->swap(__r);
+    }
+
+  template<typename _Tp, _Lock_policy _Lp>
+    inline void
+    atomic_store(__shared_ptr<_Tp, _Lp>* __p, __shared_ptr<_Tp, _Lp> __r)
+    { std::atomic_store_explicit(__p, std::move(__r), memory_order_seq_cst); }
+# 169 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr_atomic.h" 3
+  template<typename _Tp>
+    inline shared_ptr<_Tp>
+    atomic_exchange_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r,
+        memory_order)
+    {
+      _Sp_locker __lock{__p};
+      __p->swap(__r);
+      return __r;
+    }
+
+  template<typename _Tp>
+    inline shared_ptr<_Tp>
+    atomic_exchange(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r)
+    {
+      return std::atomic_exchange_explicit(__p, std::move(__r),
+        memory_order_seq_cst);
+    }
+
+  template<typename _Tp, _Lock_policy _Lp>
+    inline __shared_ptr<_Tp, _Lp>
+    atomic_exchange_explicit(__shared_ptr<_Tp, _Lp>* __p,
+        __shared_ptr<_Tp, _Lp> __r,
+        memory_order)
+    {
+      _Sp_locker __lock{__p};
+      __p->swap(__r);
+      return __r;
+    }
+
+  template<typename _Tp, _Lock_policy _Lp>
+    inline __shared_ptr<_Tp, _Lp>
+    atomic_exchange(__shared_ptr<_Tp, _Lp>* __p, __shared_ptr<_Tp, _Lp> __r)
+    {
+      return std::atomic_exchange_explicit(__p, std::move(__r),
+        memory_order_seq_cst);
+    }
+# 218 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/shared_ptr_atomic.h" 3
+  template<typename _Tp>
+    bool
+    atomic_compare_exchange_strong_explicit(shared_ptr<_Tp>* __p,
+         shared_ptr<_Tp>* __v,
+         shared_ptr<_Tp> __w,
+         memory_order,
+         memory_order)
+    {
+      shared_ptr<_Tp> __x;
+      _Sp_locker __lock{__p, __v};
+      owner_less<shared_ptr<_Tp>> __less;
+      if (*__p == *__v && !__less(*__p, *__v) && !__less(*__v, *__p))
+ {
+   __x = std::move(*__p);
+   *__p = std::move(__w);
+   return true;
+ }
+      __x = std::move(*__v);
+      *__v = *__p;
+      return false;
+    }
+
+  template<typename _Tp>
+    inline bool
+    atomic_compare_exchange_strong(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v,
+     shared_ptr<_Tp> __w)
+    {
+      return std::atomic_compare_exchange_strong_explicit(__p, __v,
+   std::move(__w), memory_order_seq_cst, memory_order_seq_cst);
+    }
+
+  template<typename _Tp>
+    inline bool
+    atomic_compare_exchange_weak_explicit(shared_ptr<_Tp>* __p,
+       shared_ptr<_Tp>* __v,
+       shared_ptr<_Tp> __w,
+       memory_order __success,
+       memory_order __failure)
+    {
+      return std::atomic_compare_exchange_strong_explicit(__p, __v,
+   std::move(__w), __success, __failure);
+    }
+
+  template<typename _Tp>
+    inline bool
+    atomic_compare_exchange_weak(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v,
+     shared_ptr<_Tp> __w)
+    {
+      return std::atomic_compare_exchange_weak_explicit(__p, __v,
+   std::move(__w), memory_order_seq_cst, memory_order_seq_cst);
+    }
+
+  template<typename _Tp, _Lock_policy _Lp>
+    bool
+    atomic_compare_exchange_strong_explicit(__shared_ptr<_Tp, _Lp>* __p,
+         __shared_ptr<_Tp, _Lp>* __v,
+         __shared_ptr<_Tp, _Lp> __w,
+         memory_order,
+         memory_order)
+    {
+      __shared_ptr<_Tp, _Lp> __x;
+      _Sp_locker __lock{__p, __v};
+      owner_less<__shared_ptr<_Tp, _Lp>> __less;
+      if (*__p == *__v && !__less(*__p, *__v) && !__less(*__v, *__p))
+ {
+   __x = std::move(*__p);
+   *__p = std::move(__w);
+   return true;
+ }
+      __x = std::move(*__v);
+      *__v = *__p;
+      return false;
+    }
+
+  template<typename _Tp, _Lock_policy _Lp>
+    inline bool
+    atomic_compare_exchange_strong(__shared_ptr<_Tp, _Lp>* __p,
+       __shared_ptr<_Tp, _Lp>* __v,
+       __shared_ptr<_Tp, _Lp> __w)
+    {
+      return std::atomic_compare_exchange_strong_explicit(__p, __v,
+   std::move(__w), memory_order_seq_cst, memory_order_seq_cst);
+    }
+
+  template<typename _Tp, _Lock_policy _Lp>
+    inline bool
+    atomic_compare_exchange_weak_explicit(__shared_ptr<_Tp, _Lp>* __p,
+       __shared_ptr<_Tp, _Lp>* __v,
+       __shared_ptr<_Tp, _Lp> __w,
+       memory_order __success,
+       memory_order __failure)
+    {
+      return std::atomic_compare_exchange_strong_explicit(__p, __v,
+   std::move(__w), __success, __failure);
+    }
+
+  template<typename _Tp, _Lock_policy _Lp>
+    inline bool
+    atomic_compare_exchange_weak(__shared_ptr<_Tp, _Lp>* __p,
+     __shared_ptr<_Tp, _Lp>* __v,
+     __shared_ptr<_Tp, _Lp> __w)
+    {
+      return std::atomic_compare_exchange_weak_explicit(__p, __v,
+   std::move(__w), memory_order_seq_cst, memory_order_seq_cst);
+    }
+
+
+
+
+
+}
+# 84 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/memory" 2 3
+
+# 1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/backward/auto_ptr.h" 1 3
+# 36 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/backward/auto_ptr.h" 3
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 47 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/backward/auto_ptr.h" 3
+  template<typename _Tp1>
+    struct auto_ptr_ref
+    {
+      _Tp1* _M_ptr;
+
+      explicit
+      auto_ptr_ref(_Tp1* __p): _M_ptr(__p) { }
+    } __attribute__ ((__deprecated__));
+# 86 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/backward/auto_ptr.h" 3
+  template<typename _Tp>
+    class auto_ptr
+    {
+    private:
+      _Tp* _M_ptr;
+
+    public:
+
+      typedef _Tp element_type;
+
+
+
+
+
+
+
+      explicit
+      auto_ptr(element_type* __p = 0) throw() : _M_ptr(__p) { }
+# 112 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/backward/auto_ptr.h" 3
+      auto_ptr(auto_ptr& __a) throw() : _M_ptr(__a.release()) { }
+# 124 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/backward/auto_ptr.h" 3
+      template<typename _Tp1>
+        auto_ptr(auto_ptr<_Tp1>& __a) throw() : _M_ptr(__a.release()) { }
+# 135 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/backward/auto_ptr.h" 3
+      auto_ptr&
+      operator=(auto_ptr& __a) throw()
+      {
+ reset(__a.release());
+ return *this;
+      }
+# 152 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/backward/auto_ptr.h" 3
+      template<typename _Tp1>
+        auto_ptr&
+        operator=(auto_ptr<_Tp1>& __a) throw()
+        {
+   reset(__a.release());
+   return *this;
+ }
+# 170 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/backward/auto_ptr.h" 3
+      ~auto_ptr() { delete _M_ptr; }
+# 180 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/backward/auto_ptr.h" 3
+      element_type&
+      operator*() const throw()
+      {
+                              ;
+ return *_M_ptr;
+      }
+
+
+
+
+
+
+
+      element_type*
+      operator->() const throw()
+      {
+                              ;
+ return _M_ptr;
+      }
+# 210 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/backward/auto_ptr.h" 3
+      element_type*
+      get() const throw() { return _M_ptr; }
+# 224 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/backward/auto_ptr.h" 3
+      element_type*
+      release() throw()
+      {
+ element_type* __tmp = _M_ptr;
+ _M_ptr = 0;
+ return __tmp;
+      }
+# 239 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/backward/auto_ptr.h" 3
+      void
+      reset(element_type* __p = 0) throw()
+      {
+ if (__p != _M_ptr)
+   {
+     delete _M_ptr;
+     _M_ptr = __p;
+   }
+      }
+# 260 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/backward/auto_ptr.h" 3
+      auto_ptr(auto_ptr_ref<element_type> __ref) throw()
+      : _M_ptr(__ref._M_ptr) { }
+
+      auto_ptr&
+      operator=(auto_ptr_ref<element_type> __ref) throw()
+      {
+ if (__ref._M_ptr != this->get())
+   {
+     delete _M_ptr;
+     _M_ptr = __ref._M_ptr;
+   }
+ return *this;
+      }
+
+      template<typename _Tp1>
+        operator auto_ptr_ref<_Tp1>() throw()
+        { return auto_ptr_ref<_Tp1>(this->release()); }
+
+      template<typename _Tp1>
+        operator auto_ptr<_Tp1>() throw()
+        { return auto_ptr<_Tp1>(this->release()); }
+    } __attribute__ ((__deprecated__));
+
+
+
+  template<>
+    class auto_ptr<void>
+    {
+    public:
+      typedef void element_type;
+    } __attribute__ ((__deprecated__));
+
+
+  template<_Lock_policy _Lp>
+  template<typename _Tp>
+    inline
+    __shared_count<_Lp>::__shared_count(std::auto_ptr<_Tp>&& __r)
+    : _M_pi(new _Sp_counted_ptr<_Tp*, _Lp>(__r.get()))
+    { __r.release(); }
+
+  template<typename _Tp, _Lock_policy _Lp>
+  template<typename _Tp1>
+    inline
+    __shared_ptr<_Tp, _Lp>::__shared_ptr(std::auto_ptr<_Tp1>&& __r)
+    : _M_ptr(__r.get()), _M_refcount()
+    {
+
+      static_assert( sizeof(_Tp1) > 0, "incomplete type" );
+      _Tp1* __tmp = __r.get();
+      _M_refcount = __shared_count<_Lp>(std::move(__r));
+      __enable_shared_from_this_helper(_M_refcount, __tmp, __tmp);
+    }
+
+  template<typename _Tp>
+  template<typename _Tp1>
+    inline
+    shared_ptr<_Tp>::shared_ptr(std::auto_ptr<_Tp1>&& __r)
+    : __shared_ptr<_Tp>(std::move(__r)) { }
+
+  template<typename _Tp, typename _Dp>
+  template<typename _Up, typename>
+    inline
+    unique_ptr<_Tp, _Dp>::unique_ptr(auto_ptr<_Up>&& __u) noexcept
+    : _M_t(__u.release(), deleter_type()) { }
+
+
+
+}
+# 86 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/memory" 2 3
+
+
+
+
+
+
+
+
+namespace std __attribute__ ((__visibility__ ("default")))
+{
+# 114 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/memory" 3
+inline void*
+align(size_t __align, size_t __size, void*& __ptr, size_t& __space) noexcept
+{
+  const auto __intptr = reinterpret_cast<uintptr_t>(__ptr);
+  const auto __aligned = (__intptr - 1u + __align) & -__align;
+  const auto __diff = __aligned - __intptr;
+  if ((__size + __diff) > __space)
+    return nullptr;
+  else
+    {
+      __space -= __diff;
+      return __ptr = reinterpret_cast<void*>(__aligned);
+    }
+}
+
+
+
+enum class pointer_safety { relaxed, preferred, strict };
+
+inline void
+declare_reachable(void*) { }
+
+template <typename _Tp>
+  inline _Tp*
+  undeclare_reachable(_Tp* __p) { return __p; }
+
+inline void
+declare_no_pointers(char*, size_t) { }
+
+inline void
+undeclare_no_pointers(char*, size_t) { }
+
+inline pointer_safety
+get_pointer_safety() noexcept { return pointer_safety::relaxed; }
+
+
+}
+# 6 "./libraries/Scope/Scope.h" 2
+
+
+
+
+
+
+class WSServer;
+class JSONValue;
+
+class AuxTaskRT;
+
+
+
+
+
+
+
+class Scope{
+    public:
+ typedef enum {
+  AUTO,
+  NORMAL,
+  CUSTOM,
+ } TriggerMode;
+ typedef enum {
+  POSITIVE,
+  NEGATIVE,
+  BOTH,
+ } TriggerSlope;
+
+        Scope();
+ Scope(unsigned int numChannels, float sampleRate);
+ ~Scope();
+# 51 "./libraries/Scope/Scope.h"
+        void setup(unsigned int numChannels, float sampleRate);
+
+ void cleanup();
+
+
+
+
+
+
+
+        void log(double chn1, ...);
+# 71 "./libraries/Scope/Scope.h"
+        void log(const float* values);
+
+
+
+
+
+
+
+        bool trigger();
+
+
+
+
+ void setTrigger(TriggerMode mode, unsigned int channel = 0, TriggerSlope dir = BOTH, float level = 0);
+
+    private:
+ typedef enum {
+  TIME_DOMAIN,
+  FREQ_DOMAIN,
+ } PlotMode;
+ void dealloc();
+        void start();
+        void stop();
+        void triggerTimeDomain();
+        void triggerFFT();
+        bool triggered();
+        bool prelog();
+        void postlog();
+        void setPlotMode();
+        void doFFT();
+        void setXParams();
+        void scope_control_connected();
+        void scope_control_data(const char* data);
+        void parse_settings(JSONValue* value);
+
+ bool volatile isUsingOutBuffer;
+ bool volatile isUsingBuffer;
+ bool volatile isResizing;
+
+
+        int numChannels;
+        float sampleRate;
+        int pixelWidth;
+        int frameWidth;
+        PlotMode plotMode = TIME_DOMAIN;
+        TriggerMode triggerMode;
+        unsigned int triggerChannel;
+        TriggerSlope triggerDir;
+        float triggerLevel;
+        int xOffset;
+        int xOffsetSamples;
+        int upSampling;
+        int downSampling;
+        float holdOff;
+
+        int logCount;
+
+        int channelWidth;
+        int downSampleCount;
+        int holdOffSamples;
+
+
+        std::vector<float> buffer;
+        std::vector<float> outBuffer;
+
+
+        int writePointer;
+        int readPointer;
+        int triggerPointer;
+        int customTriggerPointer;
+
+
+        bool triggerPrimed;
+        bool triggerCollecting;
+        bool triggerWaiting;
+        int triggerCount;
+        int autoTriggerCount;
+        bool started;
+        bool customTriggered;
+
+
+        int FFTLength;
+  int newFFTLength;
+        float FFTScale;
+  float FFTLogOffset;
+        int pointerFFT;
+        bool collectingFFT;
+        float *windowFFT;
+        int FFTXAxis;
+        int FFTYAxis;
+
+        ne10_fft_cpx_float32_t* inFFT;
+        ne10_fft_cpx_float32_t* outFFT;
+        ne10_fft_cfg_float32_t cfg;
+
+        std::unique_ptr<AuxTaskRT> scopeTriggerTask;
+        void triggerTask();
+
+  void setSetting(std::wstring setting, float value);
+
+        std::unique_ptr<WSServer> ws_server;
+
+  std::map<std::wstring, float> settings;
+};
+# 51 "/root/Bela/projects/my_ultrasonic_ranger2/render.cpp" 2
+# 1 "./libraries/PulseIn/PulseIn.h" 1
+# 12 "./libraries/PulseIn/PulseIn.h"
+class PulseIn {
+private:
+ std::vector<int> _array;
+ int _pulseOnState;
+ int _digitalInput;
+ bool _pulseIsOn;
+ uint64_t _pulseStart;
+ uint64_t _lastContext;
+public:
+ PulseIn(){
+  _digitalInput = -1;
+ };
+# 34 "./libraries/PulseIn/PulseIn.h"
+ PulseIn(BelaContext* context, unsigned int digitalInput, int direction=1){
+  setup(context, digitalInput, direction);
+ };
+# 49 "./libraries/PulseIn/PulseIn.h"
+ void setup(BelaContext* context, unsigned int digitalInput, int direction=1);
+# 61 "./libraries/PulseIn/PulseIn.h"
+ void check(BelaContext* context);
+# 70 "./libraries/PulseIn/PulseIn.h"
+ int hasPulsed(BelaContext* context, unsigned int frame){
+  if(_lastContext != context->audioFramesElapsed){
+   check(context);
+  }
+  return _array[frame];
+ }
+ void cleanup();
+ virtual ~PulseIn();
+};
+# 52 "/root/Bela/projects/my_ultrasonic_ranger2/render.cpp" 2
+
+PulseIn pulseIn;
+Scope scope;
+int gTriggerInterval = 2646;
+int gMinPulseLength = 7;
+float gRescale = 58;
+unsigned int gTrigDigitalOutPin = 7;
+unsigned int gEchoDigitalInPin = 7;
+int gTriggerCount = 0;
+int gPrintfCount = 0;
+
+bool setup(BelaContext *context, void *userData)
+{
+
+
+
+ pulseIn.setup(context, gEchoDigitalInPin, HIGH);
+ scope.setup(2, context->digitalSampleRate);
+ return true;
+}
+
+void render(BelaContext *context, void *userData)
+{
+ for(unsigned int n = 0; n < context->digitalFrames; ++n){
+  gTriggerCount++;
+  bool state;
+  if(gTriggerCount == gTriggerInterval){
+   pinMode(context, 0, gTrigDigitalOutPin, OUTPUT);
+   state = LOW;
+   digitalWriteOnce(context, n, gTrigDigitalOutPin, state);
+  } else if (gTriggerCount == gTriggerInterval+1) {
+   pinMode(context, 0, gTrigDigitalOutPin, OUTPUT);
+   state = HIGH;
+   digitalWriteOnce(context, n, gTrigDigitalOutPin, state);
+  } else if (gTriggerCount == gTriggerInterval+2) {
+   gTriggerCount = 0;
+   state = LOW;
+   digitalWriteOnce(context, n, gTrigDigitalOutPin, state);
+  } else {
+   pinMode(context, 0, gTrigDigitalOutPin, INPUT);
+  }
+
+  auto dRead = digitalRead(context, n, gEchoDigitalInPin);
+  int pulseLength = pulseIn.hasPulsed(context, n);
+
+  float duration = 1e6 * pulseLength / context->digitalSampleRate;
+
+  static float distance = 0;
+  if(pulseLength >= gMinPulseLength){
+
+   distance = duration / gRescale;
+  }
+  static int count = 0;
+  if(count > 5000){
+   rt_printf("pulseLength: %d, distance: %fcm\n", pulseLength, distance);
+   count = 0;
+  }
+  ++count;
+
+  scope.log(dRead * 0.5, distance/100);
+ }
+}
+
+void cleanup(BelaContext *context, void *userData)
+{
+}
diff --git a/ultrasonic-bela/build/render.s b/ultrasonic-bela/build/render.s
new file mode 100644
index 0000000..25c4ec6
--- /dev/null
+++ b/ultrasonic-bela/build/render.s
@@ -0,0 +1,20537 @@
+	.text
+	.syntax unified
+	.eabi_attribute	67, "2.09"	@ Tag_conformance
+	.cpu	cortex-a8
+	.eabi_attribute	6, 10	@ Tag_CPU_arch
+	.eabi_attribute	7, 65	@ Tag_CPU_arch_profile
+	.eabi_attribute	8, 1	@ Tag_ARM_ISA_use
+	.eabi_attribute	9, 2	@ Tag_THUMB_ISA_use
+	.fpu	neon
+	.eabi_attribute	17, 1	@ Tag_ABI_PCS_GOT_use
+	.eabi_attribute	20, 2	@ Tag_ABI_FP_denormal
+	.eabi_attribute	23, 1	@ Tag_ABI_FP_number_model
+	.eabi_attribute	34, 1	@ Tag_CPU_unaligned_access
+	.eabi_attribute	24, 1	@ Tag_ABI_align_needed
+	.eabi_attribute	25, 1	@ Tag_ABI_align_preserved
+	.eabi_attribute	28, 1	@ Tag_ABI_VFP_args
+	.eabi_attribute	38, 1	@ Tag_ABI_FP_16bit_format
+	.eabi_attribute	18, 4	@ Tag_ABI_PCS_wchar_t
+	.eabi_attribute	26, 2	@ Tag_ABI_enum_size
+	.eabi_attribute	14, 0	@ Tag_ABI_PCS_R9_use
+	.eabi_attribute	68, 1	@ Tag_Virtualization_use
+	.file	"/root/Bela/projects/my_ultrasonic_ranger2/build/render.bc"
+	.file	1 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits" "c++config.h"
+	.file	2 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits" "alloc_traits.h"
+	.file	3 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext" "new_allocator.h"
+	.file	4 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/arm-linux-gnueabihf/c++/6.3.0/bits" "c++allocator.h"
+	.file	5 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits" "allocator.h"
+	.file	6 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext" "alloc_traits.h"
+	.file	7 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits" "stl_vector.h"
+	.file	8 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0" "type_traits"
+	.file	9 "./libraries/PulseIn" "PulseIn.h"
+	.file	10 "/usr/include" "stdint.h"
+	.file	11 "./include" "Bela.h"
+	.file	12 "/root/Bela/projects/my_ultrasonic_ranger2" "render.cpp"
+	.file	13 "./libraries/Scope" "Scope.h"
+	.file	14 "/usr/include/ne10" "NE10_types.h"
+	.file	15 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits" "unique_ptr.h"
+	.file	16 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0" "tuple"
+	.file	17 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits" "uses_allocator.h"
+	.file	18 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits" "stl_tree.h"
+	.file	19 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits" "stl_function.h"
+	.file	20 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits" "stl_pair.h"
+	.file	21 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits" "stl_map.h"
+	.file	22 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits" "stringfwd.h"
+	.file	23 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/ext" "concurrence.h"
+	.file	24 "./include" "GPIOcontrol.h"
+	.file	25 "/usr/include" "stdlib.h"
+	.file	26 "/usr/include/arm-linux-gnueabihf/bits" "stdlib-float.h"
+	.file	27 "/usr/include/arm-linux-gnueabihf/bits" "stdlib-bsearch.h"
+	.file	28 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include" "stddef.h"
+	.file	29 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0" "cstdlib"
+	.file	30 "/root/Bela/projects/my_ultrasonic_ranger2/build" "render.cpp"
+	.file	31 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/debug" "debug.h"
+	.file	32 "/usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits" "exception_ptr.h"
+	.file	33 "/usr/include" "wchar.h"
+	.file	34 "/usr/include" "libio.h"
+	.file	35 "/usr/include/arm-linux-gnueabihf/bits" "types.h"
+	.file	36 "/usr/include" "stdio.h"
+	.file	37 "/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include" "stdarg.h"
+	.file	38 "/usr/include" "locale.h"
+	.file	39 "/usr/include" "ctype.h"
+	.file	40 "/usr/include" "_G_config.h"
+	.file	41 "/usr/include/arm-linux-gnueabihf/bits" "stdio.h"
+	.globl	setup
+	.p2align	2
+	.type	setup,%function
+setup:                                  @ @setup
+.Lfunc_begin0:
+	.loc	12 64 0                 @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:64:0
+	.fnstart
+	.cfi_startproc
+@ BB#0:
+	.save	{r4, r10, r11, lr}
+	push	{r4, r10, r11, lr}
+.Ltmp0:
+	.cfi_def_cfa_offset 16
+.Ltmp1:
+	.cfi_offset lr, -4
+.Ltmp2:
+	.cfi_offset r11, -8
+.Ltmp3:
+	.cfi_offset r10, -12
+.Ltmp4:
+	.cfi_offset r4, -16
+	.setfp	r11, sp, #8
+	add	r11, sp, #8
+.Ltmp5:
+	.cfi_def_cfa r11, 8
+	@DEBUG_VALUE: setup:context <- %R0
+	@DEBUG_VALUE: setup:userData <- %R1
+	mov	r4, r0
+.Ltmp6:
+	@DEBUG_VALUE: setup:context <- %R4
+	.loc	12 68 25 prologue_end   @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:68:25
+	movw	r0, :lower16:.L_MergedGlobals
+	movt	r0, :upper16:.L_MergedGlobals
+	.loc	12 68 10 is_stmt 0      @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:68:10
+	mov	r1, r4
+.Ltmp7:
+	.loc	12 68 25                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:68:25
+	ldr	r2, [r0, #16]
+	.loc	12 68 10                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:68:10
+	add	r0, r0, #24
+	mov	r3, #1
+	bl	_ZN7PulseIn5setupEP11BelaContextji
+	.loc	12 69 8 is_stmt 1       @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:69:8
+	movw	r0, :lower16:scope
+	.loc	12 69 26 is_stmt 0      @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:69:26
+	vldr	s0, [r4, #60]
+	.loc	12 69 8                 @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:69:8
+	movt	r0, :upper16:scope
+	mov	r1, #2
+	bl	_ZN5Scope5setupEjf
+	.loc	12 70 2 is_stmt 1       @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:70:2
+	mov	r0, #1
+	pop	{r4, r10, r11, pc}
+.Ltmp8:
+.Lfunc_end0:
+	.size	setup, .Lfunc_end0-setup
+	.cfi_endproc
+	.fnend
+
+	.globl	render
+	.p2align	3
+	.type	render,%function
+render:                                 @ @render
+.Lfunc_begin1:
+	.loc	12 74 0                 @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:74:0
+	.fnstart
+	.cfi_startproc
+@ BB#0:
+	.save	{r4, r5, r6, r7, r8, r9, r10, r11, lr}
+	push	{r4, r5, r6, r7, r8, r9, r10, r11, lr}
+.Ltmp9:
+	.cfi_def_cfa_offset 36
+.Ltmp10:
+	.cfi_offset lr, -4
+.Ltmp11:
+	.cfi_offset r11, -8
+.Ltmp12:
+	.cfi_offset r10, -12
+.Ltmp13:
+	.cfi_offset r9, -16
+.Ltmp14:
+	.cfi_offset r8, -20
+.Ltmp15:
+	.cfi_offset r7, -24
+.Ltmp16:
+	.cfi_offset r6, -28
+.Ltmp17:
+	.cfi_offset r5, -32
+.Ltmp18:
+	.cfi_offset r4, -36
+	.setfp	r11, sp, #28
+	add	r11, sp, #28
+.Ltmp19:
+	.cfi_def_cfa r11, 8
+	.pad	#4
+	sub	sp, sp, #4
+	.vsave	{d8, d9, d10}
+	vpush	{d8, d9, d10}
+.Ltmp20:
+	.cfi_offset d10, -48
+.Ltmp21:
+	.cfi_offset d9, -56
+.Ltmp22:
+	.cfi_offset d8, -64
+	.pad	#16
+	sub	sp, sp, #16
+	@DEBUG_VALUE: render:context <- %R0
+	@DEBUG_VALUE: render:userData <- %R1
+	mov	r4, r0
+.Ltmp23:
+	@DEBUG_VALUE: n <- 0
+	@DEBUG_VALUE: render:context <- %R4
+	.loc	12 75 39 prologue_end discriminator 1 @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:75:39
+	ldr	r0, [r4, #52]
+	.loc	12 75 2 is_stmt 0 discriminator 1 @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:75:2
+	cmp	r0, #0
+	beq	.LBB1_25
+.Ltmp24:
+@ BB#1:                                 @ %.lr.ph
+	@DEBUG_VALUE: render:context <- %R4
+	@DEBUG_VALUE: render:userData <- %R1
+	.loc	12 117 19 is_stmt 1     @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:117:19
+	vmov.f64	d8, #5.000000e-01
+	.loc	12 76 16                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:76:16
+	movw	r5, :lower16:.L_MergedGlobals
+.Ltmp25:
+	.loc	12 111 6                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:111:6
+	movw	r8, :lower16:.L_MergedGlobals.2
+.Ltmp26:
+	.loc	12 76 16                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:76:16
+	movt	r5, :upper16:.L_MergedGlobals
+.Ltmp27:
+	.loc	11 1536 32              @ ./include/Bela.h:1536:32
+	mov	r6, #1
+.Ltmp28:
+	.loc	12 111 6                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:111:6
+	movt	r8, :upper16:.L_MergedGlobals.2
+	mov	r9, #0
+.Ltmp29:
+	.loc	9 71 31                 @ ./libraries/PulseIn/PulseIn.h:71:31
+	add	r1, r4, #64
+.Ltmp30:
+	.loc	12 117 34               @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:117:34
+	vldr	s18, .LCPI1_1
+	.loc	12 99 24                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:99:24
+	vldr	d10, .LCPI1_0
+	str	r1, [sp, #12]           @ 4-byte Spill
+	b	.LBB1_5
+.Ltmp31:
+.LBB1_2:                                @   in Loop: Header=BB1_5 Depth=1
+	@DEBUG_VALUE: pinMode:frame <- 0
+	@DEBUG_VALUE: pinMode:f <- 0
+	.loc	11 1546 2 discriminator 1 @ ./include/Bela.h:1546:2
+	cmp	r0, #0
+	beq	.LBB1_18
+.Ltmp32:
+@ BB#3:                                 @ %.lr.ph.i32
+                                        @   in Loop: Header=BB1_5 Depth=1
+	.loc	12 91 24                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:91:24
+	ldr	r1, [r5, #12]
+	mov	r2, #0
+.Ltmp33:
+	.loc	11 1548 13              @ ./include/Bela.h:1548:13
+	ldr	r0, [r4, #16]
+	.loc	11 1548 30 is_stmt 0    @ ./include/Bela.h:1548:30
+	lsl	r1, r6, r1
+.LBB1_4:                                @ %.lr.ph.split.us.i
+                                        @   Parent Loop BB1_5 Depth=1
+                                        @ =>  This Inner Loop Header: Depth=2
+	.loc	11 1548 24              @ ./include/Bela.h:1548:24
+	ldr	r3, [r0, r2, lsl #2]
+	orr	r3, r3, r1
+	str	r3, [r0, r2, lsl #2]
+.Ltmp34:
+	.loc	11 1546 46 is_stmt 1 discriminator 2 @ ./include/Bela.h:1546:46
+	add	r2, r2, #1
+.Ltmp35:
+	@DEBUG_VALUE: pinMode:f <- %R2
+	.loc	11 1546 30 is_stmt 0 discriminator 1 @ ./include/Bela.h:1546:30
+	ldr	r3, [r4, #52]
+	.loc	11 1546 2 discriminator 1 @ ./include/Bela.h:1546:2
+	cmp	r2, r3
+	blo	.LBB1_4
+	b	.LBB1_18
+.Ltmp36:
+.LBB1_5:                                @ =>This Loop Header: Depth=1
+                                        @     Child Loop BB1_4 Depth 2
+                                        @     Child Loop BB1_12 Depth 2
+                                        @     Child Loop BB1_8 Depth 2
+	.loc	12 76 16 is_stmt 1      @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:76:16
+	ldr	r1, [r5, #20]
+	add	r3, r1, #1
+	str	r3, [r5, #20]
+.Ltmp37:
+	.loc	12 78 23                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:78:23
+	ldr	r2, [r5]
+.Ltmp38:
+	.loc	12 78 6 is_stmt 0       @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:78:6
+	cmp	r3, r2
+	bne	.LBB1_9
+@ BB#6:                                 @   in Loop: Header=BB1_5 Depth=1
+.Ltmp39:
+	@DEBUG_VALUE: pinMode:frame <- 0
+	@DEBUG_VALUE: pinMode:f <- 0
+	.loc	11 1546 2 is_stmt 1 discriminator 1 @ ./include/Bela.h:1546:2
+	cmp	r0, #0
+	beq	.LBB1_16
+.Ltmp40:
+@ BB#7:                                 @ %.lr.ph.i
+                                        @   in Loop: Header=BB1_5 Depth=1
+	.loc	12 79 24                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:79:24
+	ldr	r1, [r5, #12]
+	mov	r2, #0
+.Ltmp41:
+	.loc	11 1548 13              @ ./include/Bela.h:1548:13
+	ldr	r0, [r4, #16]
+	.loc	11 1550 27              @ ./include/Bela.h:1550:27
+	mvn	r1, r6, lsl r1
+.LBB1_8:                                @ %.lr.ph.split.i
+                                        @   Parent Loop BB1_5 Depth=1
+                                        @ =>  This Inner Loop Header: Depth=2
+	.loc	11 1550 24 is_stmt 0    @ ./include/Bela.h:1550:24
+	ldr	r3, [r0, r2, lsl #2]
+	and	r3, r3, r1
+	str	r3, [r0, r2, lsl #2]
+.Ltmp42:
+	.loc	11 1546 46 is_stmt 1 discriminator 2 @ ./include/Bela.h:1546:46
+	add	r2, r2, #1
+.Ltmp43:
+	@DEBUG_VALUE: pinMode:f <- %R2
+	.loc	11 1546 30 is_stmt 0 discriminator 1 @ ./include/Bela.h:1546:30
+	ldr	r3, [r4, #52]
+	.loc	11 1546 2 discriminator 1 @ ./include/Bela.h:1546:2
+	cmp	r2, r3
+	blo	.LBB1_8
+	b	.LBB1_16
+.Ltmp44:
+.LBB1_9:                                @   in Loop: Header=BB1_5 Depth=1
+	.loc	12 82 14 is_stmt 1 discriminator 1 @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:82:14
+	cmp	r1, r2
+	bne	.LBB1_14
+@ BB#10:                                @   in Loop: Header=BB1_5 Depth=1
+.Ltmp45:
+	@DEBUG_VALUE: pinMode:frame <- 0
+	@DEBUG_VALUE: pinMode:f <- 0
+	.loc	11 1546 2 discriminator 1 @ ./include/Bela.h:1546:2
+	cmp	r0, #0
+	beq	.LBB1_13
+.Ltmp46:
+@ BB#11:                                @ %.lr.ph.i35
+                                        @   in Loop: Header=BB1_5 Depth=1
+	.loc	12 83 24                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:83:24
+	ldr	r1, [r5, #12]
+	mov	r2, #0
+.Ltmp47:
+	.loc	11 1548 13              @ ./include/Bela.h:1548:13
+	ldr	r0, [r4, #16]
+	.loc	11 1550 27              @ ./include/Bela.h:1550:27
+	mvn	r1, r6, lsl r1
+.LBB1_12:                               @ %.lr.ph.split.i37
+                                        @   Parent Loop BB1_5 Depth=1
+                                        @ =>  This Inner Loop Header: Depth=2
+	.loc	11 1550 24 is_stmt 0    @ ./include/Bela.h:1550:24
+	ldr	r3, [r0, r2, lsl #2]
+	and	r3, r3, r1
+	str	r3, [r0, r2, lsl #2]
+.Ltmp48:
+	.loc	11 1546 46 is_stmt 1 discriminator 2 @ ./include/Bela.h:1546:46
+	add	r2, r2, #1
+.Ltmp49:
+	@DEBUG_VALUE: pinMode:f <- %R2
+	.loc	11 1546 30 is_stmt 0 discriminator 1 @ ./include/Bela.h:1546:30
+	ldr	r3, [r4, #52]
+	.loc	11 1546 2 discriminator 1 @ ./include/Bela.h:1546:2
+	cmp	r2, r3
+	blo	.LBB1_12
+.Ltmp50:
+.LBB1_13:                               @ %_ZL7pinModeP11BelaContextiii.exit38
+                                        @   in Loop: Header=BB1_5 Depth=1
+	@DEBUG_VALUE: state <- 1
+	.loc	11 1538 12 is_stmt 1    @ ./include/Bela.h:1538:12
+	ldr	r0, [r4, #16]
+.Ltmp51:
+	.loc	12 85 33                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:85:33
+	ldr	r1, [r5, #12]
+.Ltmp52:
+	@DEBUG_VALUE: digitalWriteOnce:channel <- %R1
+	.loc	11 1536 27              @ ./include/Bela.h:1536:27
+	ldr	r2, [r0, r9, lsl #2]
+.Ltmp53:
+	@DEBUG_VALUE: digitalWriteOnce:value <- 1
+	.loc	11 1536 44 is_stmt 0    @ ./include/Bela.h:1536:44
+	add	r1, r1, #16
+.Ltmp54:
+	.loc	11 1536 27              @ ./include/Bela.h:1536:27
+	orr	r1, r2, r6, lsl r1
+	b	.LBB1_17
+.Ltmp55:
+.LBB1_14:                               @   in Loop: Header=BB1_5 Depth=1
+	.loc	12 86 28 is_stmt 1 discriminator 1 @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:86:28
+	add	r2, r2, #1
+	.loc	12 86 14 is_stmt 0 discriminator 1 @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:86:14
+	cmp	r1, r2
+	bne	.LBB1_2
+@ BB#15:                                @   in Loop: Header=BB1_5 Depth=1
+	mov	r0, #0
+.Ltmp56:
+	.loc	12 87 18 is_stmt 1      @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:87:18
+	str	r0, [r5, #20]
+.Ltmp57:
+.LBB1_16:                               @ %_ZL7pinModeP11BelaContextiii.exit
+                                        @   in Loop: Header=BB1_5 Depth=1
+	@DEBUG_VALUE: state <- 0
+	.loc	11 1538 12              @ ./include/Bela.h:1538:12
+	ldr	r0, [r4, #16]
+.Ltmp58:
+	.loc	12 81 33                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:81:33
+	ldr	r1, [r5, #12]
+.Ltmp59:
+	@DEBUG_VALUE: digitalWriteOnce:channel <- %R1
+	.loc	11 1538 27              @ ./include/Bela.h:1538:27
+	ldr	r2, [r0, r9, lsl #2]
+.Ltmp60:
+	@DEBUG_VALUE: digitalWriteOnce:value <- 0
+	.loc	11 1536 44              @ ./include/Bela.h:1536:44
+	add	r1, r1, #16
+.Ltmp61:
+	.loc	11 1538 27              @ ./include/Bela.h:1538:27
+	bic	r1, r2, r6, lsl r1
+.LBB1_17:                               @ %_ZL7pinModeP11BelaContextiii.exit33
+                                        @   in Loop: Header=BB1_5 Depth=1
+	str	r1, [r0, r9, lsl #2]
+.Ltmp62:
+	@DEBUG_VALUE: digitalWriteOnce:context <- %R4
+.LBB1_18:                               @ %_ZL7pinModeP11BelaContextiii.exit33
+                                        @   in Loop: Header=BB1_5 Depth=1
+	.loc	9 71 31                 @ ./libraries/PulseIn/PulseIn.h:71:31
+	ldr	r0, [sp, #12]           @ 4-byte Reload
+	ldr	r6, [r0]
+	ldr	r1, [r0, #4]
+	ldr	r2, [r4, #16]
+.Ltmp63:
+	.loc	12 94 40                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:94:40
+	ldr	r7, [r5, #16]
+.Ltmp64:
+	.loc	9 71 6                  @ ./libraries/PulseIn/PulseIn.h:71:6
+	ldr	r0, [r5, #64]
+	ldr	r3, [r5, #68]
+.Ltmp65:
+	.loc	11 1515 12              @ ./include/Bela.h:1515:12
+	ldr	r10, [r2, r9, lsl #2]
+.Ltmp66:
+	.loc	9 71 19                 @ ./libraries/PulseIn/PulseIn.h:71:19
+	eor	r0, r0, r6
+	eor	r1, r3, r1
+	orrs	r0, r0, r1
+	beq	.LBB1_20
+@ BB#19:                                @   in Loop: Header=BB1_5 Depth=1
+.Ltmp67:
+	.loc	9 72 4                  @ ./libraries/PulseIn/PulseIn.h:72:4
+	add	r0, r5, #24
+.Ltmp68:
+	@DEBUG_VALUE: hasPulsed:this <- %R0
+	@DEBUG_VALUE: hasPulsed:context <- %R4
+	mov	r1, r4
+	bl	_ZN7PulseIn5checkEP11BelaContext
+.Ltmp69:
+.LBB1_20:                               @ %_ZN7PulseIn9hasPulsedEP11BelaContextj.exit
+                                        @   in Loop: Header=BB1_5 Depth=1
+	.loc	7 781 32                @ /usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h:781:32
+	ldr	r1, [r5, #28]
+.Ltmp70:
+	.loc	11 1515 49              @ ./include/Bela.h:1515:49
+	add	r0, r7, #16
+.Ltmp71:
+	.loc	12 104 21               @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:104:21
+	ldr	r2, [r5, #4]
+.Ltmp72:
+	.loc	11 1536 32              @ ./include/Bela.h:1536:32
+	mov	r6, #1
+.Ltmp73:
+	.loc	9 74 10                 @ ./libraries/PulseIn/PulseIn.h:74:10
+	ldr	r1, [r1, r9, lsl #2]
+.Ltmp74:
+	@DEBUG_VALUE: pulseLength <- %R1
+	.loc	12 104 6                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:104:6
+	cmp	r1, r2
+	blt	.LBB1_22
+.Ltmp75:
+@ BB#21:                                @   in Loop: Header=BB1_5 Depth=1
+	@DEBUG_VALUE: pulseLength <- %R1
+	.loc	12 99 26                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:99:26
+	vmov	s0, r1
+	vcvt.f64.s32	d16, s0
+	.loc	12 99 24 is_stmt 0      @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:99:24
+	vmul.f64	d16, d16, d10
+	.loc	12 99 49                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:99:49
+	vldr	s0, [r4, #60]
+.Ltmp76:
+	.loc	12 106 26 is_stmt 1     @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:106:26
+	vldr	s2, [r5, #8]
+.Ltmp77:
+	.loc	12 99 40                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:99:40
+	vcvt.f64.f32	d17, s0
+	.loc	12 99 38 is_stmt 0      @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:99:38
+	vdiv.f64	d16, d16, d17
+	.loc	12 99 20                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:99:20
+	vcvt.f32.f64	s0, d16
+.Ltmp78:
+	@DEBUG_VALUE: duration <- %S0
+	.loc	12 106 24 is_stmt 1     @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:106:24
+	vdiv.f32	s0, s0, s2
+.Ltmp79:
+	.loc	12 106 13 is_stmt 0     @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:106:13
+	vstr	s0, [r8]
+.Ltmp80:
+.LBB1_22:                               @   in Loop: Header=BB1_5 Depth=1
+	@DEBUG_VALUE: pulseLength <- %R1
+	.loc	11 1515 56 is_stmt 1    @ ./include/Bela.h:1515:56
+	and	r7, r6, r10, lsr r0
+.Ltmp81:
+	@DEBUG_VALUE: dRead <- %R7
+	.loc	12 111 6                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:111:6
+	ldr	r0, [r8, #4]
+.Ltmp82:
+	.loc	12 111 6 is_stmt 0      @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:111:6
+	movw	r2, #5001
+	cmp	r0, r2
+	blt	.LBB1_24
+.Ltmp83:
+@ BB#23:                                @   in Loop: Header=BB1_5 Depth=1
+	@DEBUG_VALUE: dRead <- %R7
+	@DEBUG_VALUE: pulseLength <- %R1
+	.loc	12 112 64 is_stmt 1     @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:112:64
+	vldr	s0, [r8]
+	.loc	12 112 4 is_stmt 0      @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:112:4
+	movw	r0, :lower16:.L.str
+	movt	r0, :upper16:.L.str
+	.loc	12 112 64               @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:112:64
+	vcvt.f64.f32	d16, s0
+	.loc	12 112 4                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:112:4
+	vmov	r2, r3, d16
+	bl	rt_printf
+.Ltmp84:
+	mov	r0, #0
+	.loc	12 113 10 is_stmt 1     @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:113:10
+	str	r0, [r8, #4]
+.Ltmp85:
+.LBB1_24:                               @   in Loop: Header=BB1_5 Depth=1
+	@DEBUG_VALUE: dRead <- %R7
+	.loc	12 117 13               @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:117:13
+	vmov	s0, r7
+	.loc	12 115 3                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:115:3
+	add	r0, r0, #1
+	.loc	12 117 13               @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:117:13
+	vcvt.f64.s32	d16, s0
+	.loc	12 115 3                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:115:3
+	str	r0, [r8, #4]
+	.loc	12 117 9                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:117:9
+	movw	r0, :lower16:scope
+	movt	r0, :upper16:scope
+	.loc	12 117 19 is_stmt 0     @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:117:19
+	vmul.f64	d16, d16, d8
+	.loc	12 117 9                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:117:9
+	vmov	r2, r3, d16
+	.loc	12 117 26               @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:117:26
+	vldr	s0, [r8]
+	.loc	12 117 34               @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:117:34
+	vmul.f32	d0, d0, d9
+	.loc	12 117 26               @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:117:26
+	vcvt.f64.f32	d16, s0
+	.loc	12 117 9                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:117:9
+	vstr	d16, [sp]
+	bl	_ZN5Scope3logEdz
+.Ltmp86:
+	.loc	12 75 39 is_stmt 1 discriminator 1 @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:75:39
+	ldr	r0, [r4, #52]
+	.loc	12 75 54 is_stmt 0 discriminator 3 @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:75:54
+	add	r9, r9, #1
+.Ltmp87:
+	@DEBUG_VALUE: n <- %R9
+	.loc	12 75 2 discriminator 1 @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:75:2
+	cmp	r9, r0
+	blo	.LBB1_5
+.Ltmp88:
+.LBB1_25:                               @ %._crit_edge
+	.loc	12 119 1 is_stmt 1      @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:119:1
+	sub	sp, r11, #56
+	vpop	{d8, d9, d10}
+	add	sp, sp, #4
+	pop	{r4, r5, r6, r7, r8, r9, r10, r11, pc}
+.Ltmp89:
+	.p2align	3
+@ BB#26:
+.LCPI1_0:
+	.long	0                       @ double 1.0E+6
+	.long	1093567616
+.LCPI1_1:
+	.long	1008981770              @ float 0.00999999977
+.Lfunc_end1:
+	.size	render, .Lfunc_end1-render
+	.cfi_endproc
+	.fnend
+
+	.globl	cleanup
+	.p2align	2
+	.type	cleanup,%function
+cleanup:                                @ @cleanup
+.Lfunc_begin2:
+	.loc	12 122 0                @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:122:0
+	.fnstart
+	.cfi_startproc
+@ BB#0:
+	@DEBUG_VALUE: cleanup:context <- %R0
+	@DEBUG_VALUE: cleanup:userData <- %R1
+	.loc	12 123 1 prologue_end   @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:123:1
+	bx	lr
+.Ltmp90:
+.Lfunc_end2:
+	.size	cleanup, .Lfunc_end2-cleanup
+	.cfi_endproc
+	.fnend
+
+	.section	.text.startup,"ax",%progbits
+	.p2align	2
+	.type	_GLOBAL__sub_I_render.ii,%function
+_GLOBAL__sub_I_render.ii:               @ @_GLOBAL__sub_I_render.ii
+.Lfunc_begin3:
+	.loc	30 0 0                  @ /root/Bela/projects/my_ultrasonic_ranger2/build/render.cpp:0:0
+	.fnstart
+	.cfi_startproc
+@ BB#0:
+	.save	{r4, r5, r11, lr}
+	push	{r4, r5, r11, lr}
+.Ltmp91:
+	.cfi_def_cfa_offset 16
+.Ltmp92:
+	.cfi_offset lr, -4
+.Ltmp93:
+	.cfi_offset r11, -8
+.Ltmp94:
+	.cfi_offset r5, -12
+.Ltmp95:
+	.cfi_offset r4, -16
+	.setfp	r11, sp, #8
+	add	r11, sp, #8
+.Ltmp96:
+	.cfi_def_cfa r11, 8
+.Ltmp97:
+	.loc	9 21 11 prologue_end    @ ./libraries/PulseIn/PulseIn.h:21:11
+	movw	r0, :lower16:_ZTV7PulseIn
+	movw	r1, :lower16:.L_MergedGlobals
+	movt	r0, :upper16:_ZTV7PulseIn
+	movt	r1, :upper16:.L_MergedGlobals
+	add	r0, r0, #8
+	str	r0, [r1, #24]!
+.Ltmp98:
+	@DEBUG_VALUE: PulseIn:this <- %R1
+	.loc	12 53 9 discriminator 1 @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:53:9
+	movw	r4, :lower16:__dso_handle
+.Ltmp99:
+	.loc	9 22 17                 @ ./libraries/PulseIn/PulseIn.h:22:17
+	mvn	r2, #0
+	mov	r0, #0
+	str	r2, [r1, #20]
+.Ltmp100:
+	.loc	7 87 22                 @ /usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h:87:22
+	str	r0, [r1, #4]
+.Ltmp101:
+	.loc	12 53 9 discriminator 1 @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:53:9
+	movt	r4, :upper16:__dso_handle
+.Ltmp102:
+	.loc	7 87 34                 @ /usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h:87:34
+	str	r0, [r1, #8]
+.Ltmp103:
+	.loc	12 53 9 discriminator 1 @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:53:9
+	mov	r2, r4
+.Ltmp104:
+	.loc	7 87 47                 @ /usr/bin/../lib/gcc/arm-linux-gnueabihf/6.3.0/../../../../include/c++/6.3.0/bits/stl_vector.h:87:47
+	str	r0, [r1, #12]
+.Ltmp105:
+	.loc	12 53 9 discriminator 1 @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:53:9
+	movw	r0, :lower16:_ZN7PulseInD1Ev
+	movt	r0, :upper16:_ZN7PulseInD1Ev
+	bl	__cxa_atexit
+.Ltmp106:
+	.loc	12 54 7                 @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:54:7
+	movw	r5, :lower16:scope
+	movt	r5, :upper16:scope
+	mov	r0, r5
+	bl	_ZN5ScopeC1Ev
+	.loc	12 54 7 is_stmt 0 discriminator 1 @ /root/Bela/projects/my_ultrasonic_ranger2/render.cpp:54:7
+	movw	r0, :lower16:_ZN5ScopeD1Ev
+	mov	r1, r5
+	movt	r0, :upper16:_ZN5ScopeD1Ev
+	mov	r2, r4
+	pop	{r4, r5, r11, lr}
+	b	__cxa_atexit
+.Ltmp107:
+.Lfunc_end3:
+	.size	_GLOBAL__sub_I_render.ii, .Lfunc_end3-_GLOBAL__sub_I_render.ii
+	.cfi_endproc
+	.fnend
+
+	.type	scope,%object           @ @scope
+	.bss
+	.globl	scope
+	.p2align	2
+scope:
+	.zero	212
+	.size	scope, 212
+
+	.type	gPrintfCount,%object    @ @gPrintfCount
+	.globl	gPrintfCount
+	.p2align	2
+gPrintfCount:
+	.long	0                       @ 0x0
+	.size	gPrintfCount, 4
+
+	.type	.L.str,%object          @ @.str
+	.section	.rodata.str1.1,"aMS",%progbits,1
+.L.str:
+	.asciz	"pulseLength: %d, distance: %fcm\n"
+	.size	.L.str, 33
+
+	.section	.init_array,"aw",%init_array
+	.p2align	2
+	.long	_GLOBAL__sub_I_render.ii(target1)
+	.type	.L_MergedGlobals,%object @ @_MergedGlobals
+	.data
+	.p2align	4
+.L_MergedGlobals:
+	.long	2646                    @ 0xa56
+	.long	7                       @ 0x7
+	.long	1114112000              @ float 58
+	.long	7                       @ 0x7
+	.long	7                       @ 0x7
+	.long	0                       @ 0x0
+	.zero	48
+	.size	.L_MergedGlobals, 72
+
+	.type	.L_MergedGlobals.2,%object @ @_MergedGlobals.2
+	.local	.L_MergedGlobals.2
+	.comm	.L_MergedGlobals.2,8,4
+	.section	.debug_str,"MS",%progbits,1
+.Linfo_string0:
+	.asciz	"clang version 3.9.1-9 (tags/RELEASE_391/rc2)" @ string offset=0
+.Linfo_string1:
+	.asciz	"/root/Bela/projects/my_ultrasonic_ranger2/build/render.cpp" @ string offset=45
+.Linfo_string2:
+	.asciz	"/root/Bela"            @ string offset=104
+.Linfo_string3:
+	.asciz	"pulseIn"               @ string offset=115
+.Linfo_string4:
+	.asciz	"_vptr$PulseIn"         @ string offset=123
+.Linfo_string5:
+	.asciz	"int"                   @ string offset=137
+.Linfo_string6:
+	.asciz	"__vtbl_ptr_type"       @ string offset=141
+.Linfo_string7:
+	.asciz	"_array"                @ string offset=157
+.Linfo_string8:
+	.asciz	"std"                   @ string offset=164
+.Linfo_string9:
+	.asciz	"_M_impl"               @ string offset=168
+.Linfo_string10:
+	.asciz	"__gnu_cxx"             @ string offset=176
+.Linfo_string11:
+	.asciz	"_ZNSt16allocator_traitsISaIiEE8allocateERS0_j" @ string offset=186
+.Linfo_string12:
+	.asciz	"allocate"              @ string offset=232
+.Linfo_string13:
+	.asciz	"pointer"               @ string offset=241
+.Linfo_string14:
+	.asciz	"new_allocator"         @ string offset=249
+.Linfo_string15:
+	.asciz	"~new_allocator"        @ string offset=263
+.Linfo_string16:
+	.asciz	"_ZNK9__gnu_cxx13new_allocatorIiE7addressERi" @ string offset=278
+.Linfo_string17:
+	.asciz	"address"               @ string offset=322
+.Linfo_string18:
+	.asciz	"reference"             @ string offset=330
+.Linfo_string19:
+	.asciz	"_ZNK9__gnu_cxx13new_allocatorIiE7addressERKi" @ string offset=340
+.Linfo_string20:
+	.asciz	"const_pointer"         @ string offset=385
+.Linfo_string21:
+	.asciz	"const_reference"       @ string offset=399
+.Linfo_string22:
+	.asciz	"_ZN9__gnu_cxx13new_allocatorIiE8allocateEjPKv" @ string offset=415
+.Linfo_string23:
+	.asciz	"unsigned int"          @ string offset=461
+.Linfo_string24:
+	.asciz	"size_t"                @ string offset=474
+.Linfo_string25:
+	.asciz	"size_type"             @ string offset=481
+.Linfo_string26:
+	.asciz	"_ZN9__gnu_cxx13new_allocatorIiE10deallocateEPij" @ string offset=491
+.Linfo_string27:
+	.asciz	"deallocate"            @ string offset=539
+.Linfo_string28:
+	.asciz	"_ZNK9__gnu_cxx13new_allocatorIiE8max_sizeEv" @ string offset=550
+.Linfo_string29:
+	.asciz	"max_size"              @ string offset=594
+.Linfo_string30:
+	.asciz	"_Tp"                   @ string offset=603
+.Linfo_string31:
+	.asciz	"new_allocator<int>"    @ string offset=607
+.Linfo_string32:
+	.asciz	"__allocator_base<int>" @ string offset=626
+.Linfo_string33:
+	.asciz	"allocator"             @ string offset=648
+.Linfo_string34:
+	.asciz	"~allocator"            @ string offset=658
+.Linfo_string35:
+	.asciz	"allocator<int>"        @ string offset=669
+.Linfo_string36:
+	.asciz	"allocator_type"        @ string offset=684
+.Linfo_string37:
+	.asciz	"_ZNSt16allocator_traitsISaIiEE8allocateERS0_jPKv" @ string offset=699
+.Linfo_string38:
+	.asciz	"const_void_pointer"    @ string offset=748
+.Linfo_string39:
+	.asciz	"_ZNSt16allocator_traitsISaIiEE10deallocateERS0_Pij" @ string offset=767
+.Linfo_string40:
+	.asciz	"_ZNSt16allocator_traitsISaIiEE8max_sizeERKS0_" @ string offset=818
+.Linfo_string41:
+	.asciz	"_ZNSt16allocator_traitsISaIiEE37select_on_container_copy_constructionERKS0_" @ string offset=864
+.Linfo_string42:
+	.asciz	"select_on_container_copy_construction" @ string offset=940
+.Linfo_string43:
+	.asciz	"_Alloc"                @ string offset=978
+.Linfo_string44:
+	.asciz	"allocator_traits<std::allocator<int> >" @ string offset=985
+.Linfo_string45:
+	.asciz	"_ZN9__gnu_cxx14__alloc_traitsISaIiEE17_S_select_on_copyERKS1_" @ string offset=1024
+.Linfo_string46:
+	.asciz	"_S_select_on_copy"     @ string offset=1086
+.Linfo_string47:
+	.asciz	"_ZN9__gnu_cxx14__alloc_traitsISaIiEE10_S_on_swapERS1_S3_" @ string offset=1104
+.Linfo_string48:
+	.asciz	"_S_on_swap"            @ string offset=1161
+.Linfo_string49:
+	.asciz	"_ZN9__gnu_cxx14__alloc_traitsISaIiEE27_S_propagate_on_copy_assignEv" @ string offset=1172
+.Linfo_string50:
+	.asciz	"_S_propagate_on_copy_assign" @ string offset=1240
+.Linfo_string51:
+	.asciz	"bool"                  @ string offset=1268
+.Linfo_string52:
+	.asciz	"_ZN9__gnu_cxx14__alloc_traitsISaIiEE27_S_propagate_on_move_assignEv" @ string offset=1273
+.Linfo_string53:
+	.asciz	"_S_propagate_on_move_assign" @ string offset=1341
+.Linfo_string54:
+	.asciz	"_ZN9__gnu_cxx14__alloc_traitsISaIiEE20_S_propagate_on_swapEv" @ string offset=1369
+.Linfo_string55:
+	.asciz	"_S_propagate_on_swap"  @ string offset=1430
+.Linfo_string56:
+	.asciz	"_ZN9__gnu_cxx14__alloc_traitsISaIiEE15_S_always_equalEv" @ string offset=1451
+.Linfo_string57:
+	.asciz	"_S_always_equal"       @ string offset=1507
+.Linfo_string58:
+	.asciz	"_ZN9__gnu_cxx14__alloc_traitsISaIiEE15_S_nothrow_moveEv" @ string offset=1523
+.Linfo_string59:
+	.asciz	"_S_nothrow_move"       @ string offset=1579
+.Linfo_string60:
+	.asciz	"__alloc_traits<std::allocator<int> >" @ string offset=1595
+.Linfo_string61:
+	.asciz	"rebind<int>"           @ string offset=1632
+.Linfo_string62:
+	.asciz	"rebind_alloc<int>"     @ string offset=1644
+.Linfo_string63:
+	.asciz	"other"                 @ string offset=1662
+.Linfo_string64:
+	.asciz	"_Tp_alloc_type"        @ string offset=1668
+.Linfo_string65:
+	.asciz	"_M_start"              @ string offset=1683
+.Linfo_string66:
+	.asciz	"_M_finish"             @ string offset=1692
+.Linfo_string67:
+	.asciz	"_M_end_of_storage"     @ string offset=1702
+.Linfo_string68:
+	.asciz	"_Vector_impl"          @ string offset=1720
+.Linfo_string69:
+	.asciz	"_ZNSt12_Vector_baseIiSaIiEE12_Vector_impl12_M_swap_dataERS2_" @ string offset=1733
+.Linfo_string70:
+	.asciz	"_M_swap_data"          @ string offset=1794
+.Linfo_string71:
+	.asciz	"_ZNSt12_Vector_baseIiSaIiEE19_M_get_Tp_allocatorEv" @ string offset=1807
+.Linfo_string72:
+	.asciz	"_M_get_Tp_allocator"   @ string offset=1858
+.Linfo_string73:
+	.asciz	"_ZNKSt12_Vector_baseIiSaIiEE19_M_get_Tp_allocatorEv" @ string offset=1878
+.Linfo_string74:
+	.asciz	"_ZNKSt12_Vector_baseIiSaIiEE13get_allocatorEv" @ string offset=1930
+.Linfo_string75:
+	.asciz	"get_allocator"         @ string offset=1976
+.Linfo_string76:
+	.asciz	"_Vector_base"          @ string offset=1990
+.Linfo_string77:
+	.asciz	"~_Vector_base"         @ string offset=2003
+.Linfo_string78:
+	.asciz	"_ZNSt12_Vector_baseIiSaIiEE11_M_allocateEj" @ string offset=2017
+.Linfo_string79:
+	.asciz	"_M_allocate"           @ string offset=2060
+.Linfo_string80:
+	.asciz	"_ZNSt12_Vector_baseIiSaIiEE13_M_deallocateEPij" @ string offset=2072
+.Linfo_string81:
+	.asciz	"_M_deallocate"         @ string offset=2119
+.Linfo_string82:
+	.asciz	"_ZNSt12_Vector_baseIiSaIiEE17_M_create_storageEj" @ string offset=2133
+.Linfo_string83:
+	.asciz	"_M_create_storage"     @ string offset=2182
+.Linfo_string84:
+	.asciz	"_Vector_base<int, std::allocator<int> >" @ string offset=2200
+.Linfo_string85:
+	.asciz	"vector"                @ string offset=2240
+.Linfo_string86:
+	.asciz	"value_type"            @ string offset=2247
+.Linfo_string87:
+	.asciz	"initializer_list<int>" @ string offset=2258
+.Linfo_string88:
+	.asciz	"~vector"               @ string offset=2280
+.Linfo_string89:
+	.asciz	"_ZNSt6vectorIiSaIiEEaSERKS1_" @ string offset=2288
+.Linfo_string90:
+	.asciz	"operator="             @ string offset=2317
+.Linfo_string91:
+	.asciz	"_ZNSt6vectorIiSaIiEEaSEOS1_" @ string offset=2327
+.Linfo_string92:
+	.asciz	"_ZNSt6vectorIiSaIiEEaSESt16initializer_listIiE" @ string offset=2355
+.Linfo_string93:
+	.asciz	"_ZNSt6vectorIiSaIiEE6assignEjRKi" @ string offset=2402
+.Linfo_string94:
+	.asciz	"assign"                @ string offset=2435
+.Linfo_string95:
+	.asciz	"_ZNSt6vectorIiSaIiEE6assignESt16initializer_listIiE" @ string offset=2442
+.Linfo_string96:
+	.asciz	"_ZNSt6vectorIiSaIiEE5beginEv" @ string offset=2494
+.Linfo_string97:
+	.asciz	"begin"                 @ string offset=2523
+.Linfo_string98:
+	.asciz	"__normal_iterator<int *, std::vector<int, std::allocator<int> > >" @ string offset=2529
+.Linfo_string99:
+	.asciz	"iterator"              @ string offset=2595
+.Linfo_string100:
+	.asciz	"_ZNKSt6vectorIiSaIiEE5beginEv" @ string offset=2604
+.Linfo_string101:
+	.asciz	"__normal_iterator<const int *, std::vector<int, std::allocator<int> > >" @ string offset=2634
+.Linfo_string102:
+	.asciz	"const_iterator"        @ string offset=2706
+.Linfo_string103:
+	.asciz	"_ZNSt6vectorIiSaIiEE3endEv" @ string offset=2721
+.Linfo_string104:
+	.asciz	"end"                   @ string offset=2748
+.Linfo_string105:
+	.asciz	"_ZNKSt6vectorIiSaIiEE3endEv" @ string offset=2752
+.Linfo_string106:
+	.asciz	"_ZNSt6vectorIiSaIiEE6rbeginEv" @ string offset=2780
+.Linfo_string107:
+	.asciz	"rbegin"                @ string offset=2810
+.Linfo_string108:
+	.asciz	"reverse_iterator<__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int> > > >" @ string offset=2817
+.Linfo_string109:
+	.asciz	"reverse_iterator"      @ string offset=2913
+.Linfo_string110:
+	.asciz	"_ZNKSt6vectorIiSaIiEE6rbeginEv" @ string offset=2930
+.Linfo_string111:
+	.asciz	"reverse_iterator<__gnu_cxx::__normal_iterator<const int *, std::vector<int, std::allocator<int> > > >" @ string offset=2961
+.Linfo_string112:
+	.asciz	"const_reverse_iterator" @ string offset=3063
+.Linfo_string113:
+	.asciz	"_ZNSt6vectorIiSaIiEE4rendEv" @ string offset=3086
+.Linfo_string114:
+	.asciz	"rend"                  @ string offset=3114
+.Linfo_string115:
+	.asciz	"_ZNKSt6vectorIiSaIiEE4rendEv" @ string offset=3119
+.Linfo_string116:
+	.asciz	"_ZNKSt6vectorIiSaIiEE6cbeginEv" @ string offset=3148
+.Linfo_string117:
+	.asciz	"cbegin"                @ string offset=3179
+.Linfo_string118:
+	.asciz	"_ZNKSt6vectorIiSaIiEE4cendEv" @ string offset=3186
+.Linfo_string119:
+	.asciz	"cend"                  @ string offset=3215
+.Linfo_string120:
+	.asciz	"_ZNKSt6vectorIiSaIiEE7crbeginEv" @ string offset=3220
+.Linfo_string121:
+	.asciz	"crbegin"               @ string offset=3252
+.Linfo_string122:
+	.asciz	"_ZNKSt6vectorIiSaIiEE5crendEv" @ string offset=3260
+.Linfo_string123:
+	.asciz	"crend"                 @ string offset=3290
+.Linfo_string124:
+	.asciz	"_ZNKSt6vectorIiSaIiEE4sizeEv" @ string offset=3296
+.Linfo_string125:
+	.asciz	"size"                  @ string offset=3325
+.Linfo_string126:
+	.asciz	"_ZNKSt6vectorIiSaIiEE8max_sizeEv" @ string offset=3330
+.Linfo_string127:
+	.asciz	"_ZNSt6vectorIiSaIiEE6resizeEj" @ string offset=3363
+.Linfo_string128:
+	.asciz	"resize"                @ string offset=3393
+.Linfo_string129:
+	.asciz	"_ZNSt6vectorIiSaIiEE6resizeEjRKi" @ string offset=3400
+.Linfo_string130:
+	.asciz	"_ZNSt6vectorIiSaIiEE13shrink_to_fitEv" @ string offset=3433
+.Linfo_string131:
+	.asciz	"shrink_to_fit"         @ string offset=3471
+.Linfo_string132:
+	.asciz	"_ZNKSt6vectorIiSaIiEE8capacityEv" @ string offset=3485
+.Linfo_string133:
+	.asciz	"capacity"              @ string offset=3518
+.Linfo_string134:
+	.asciz	"_ZNKSt6vectorIiSaIiEE5emptyEv" @ string offset=3527
+.Linfo_string135:
+	.asciz	"empty"                 @ string offset=3557
+.Linfo_string136:
+	.asciz	"_ZNSt6vectorIiSaIiEE7reserveEj" @ string offset=3563
+.Linfo_string137:
+	.asciz	"reserve"               @ string offset=3594
+.Linfo_string138:
+	.asciz	"_ZNSt6vectorIiSaIiEEixEj" @ string offset=3602
+.Linfo_string139:
+	.asciz	"operator[]"            @ string offset=3627
+.Linfo_string140:
+	.asciz	"_ZNKSt6vectorIiSaIiEEixEj" @ string offset=3638
+.Linfo_string141:
+	.asciz	"_ZNKSt6vectorIiSaIiEE14_M_range_checkEj" @ string offset=3664
+.Linfo_string142:
+	.asciz	"_M_range_check"        @ string offset=3704
+.Linfo_string143:
+	.asciz	"_ZNSt6vectorIiSaIiEE2atEj" @ string offset=3719
+.Linfo_string144:
+	.asciz	"at"                    @ string offset=3745
+.Linfo_string145:
+	.asciz	"_ZNKSt6vectorIiSaIiEE2atEj" @ string offset=3748
+.Linfo_string146:
+	.asciz	"_ZNSt6vectorIiSaIiEE5frontEv" @ string offset=3775
+.Linfo_string147:
+	.asciz	"front"                 @ string offset=3804
+.Linfo_string148:
+	.asciz	"_ZNKSt6vectorIiSaIiEE5frontEv" @ string offset=3810
+.Linfo_string149:
+	.asciz	"_ZNSt6vectorIiSaIiEE4backEv" @ string offset=3840
+.Linfo_string150:
+	.asciz	"back"                  @ string offset=3868
+.Linfo_string151:
+	.asciz	"_ZNKSt6vectorIiSaIiEE4backEv" @ string offset=3873
+.Linfo_string152:
+	.asciz	"_ZNSt6vectorIiSaIiEE4dataEv" @ string offset=3902
+.Linfo_string153:
+	.asciz	"data"                  @ string offset=3930
+.Linfo_string154:
+	.asciz	"_ZNKSt6vectorIiSaIiEE4dataEv" @ string offset=3935
+.Linfo_string155:
+	.asciz	"_ZNSt6vectorIiSaIiEE9push_backERKi" @ string offset=3964
+.Linfo_string156:
+	.asciz	"push_back"             @ string offset=3999
+.Linfo_string157:
+	.asciz	"_ZNSt6vectorIiSaIiEE9push_backEOi" @ string offset=4009
+.Linfo_string158:
+	.asciz	"_ZNSt6vectorIiSaIiEE8pop_backEv" @ string offset=4043
+.Linfo_string159:
+	.asciz	"pop_back"              @ string offset=4075
+.Linfo_string160:
+	.asciz	"_ZNSt6vectorIiSaIiEE6insertEN9__gnu_cxx17__normal_iteratorIPKiS1_EERS4_" @ string offset=4084
+.Linfo_string161:
+	.asciz	"insert"                @ string offset=4156
+.Linfo_string162:
+	.asciz	"_ZNSt6vectorIiSaIiEE6insertEN9__gnu_cxx17__normal_iteratorIPKiS1_EEOi" @ string offset=4163
+.Linfo_string163:
+	.asciz	"_ZNSt6vectorIiSaIiEE6insertEN9__gnu_cxx17__normal_iteratorIPKiS1_EESt16initializer_listIiE" @ string offset=4233
+.Linfo_string164:
+	.asciz	"_ZNSt6vectorIiSaIiEE6insertEN9__gnu_cxx17__normal_iteratorIPKiS1_EEjRS4_" @ string offset=4324
+.Linfo_string165:
+	.asciz	"_ZNSt6vectorIiSaIiEE5eraseEN9__gnu_cxx17__normal_iteratorIPKiS1_EE" @ string offset=4397
+.Linfo_string166:
+	.asciz	"erase"                 @ string offset=4464
+.Linfo_string167:
+	.asciz	"_ZNSt6vectorIiSaIiEE5eraseEN9__gnu_cxx17__normal_iteratorIPKiS1_EES6_" @ string offset=4470
+.Linfo_string168:
+	.asciz	"_ZNSt6vectorIiSaIiEE4swapERS1_" @ string offset=4540
+.Linfo_string169:
+	.asciz	"swap"                  @ string offset=4571
+.Linfo_string170:
+	.asciz	"_ZNSt6vectorIiSaIiEE5clearEv" @ string offset=4576
+.Linfo_string171:
+	.asciz	"clear"                 @ string offset=4605
+.Linfo_string172:
+	.asciz	"_ZNSt6vectorIiSaIiEE18_M_fill_initializeEjRKi" @ string offset=4611
+.Linfo_string173:
+	.asciz	"_M_fill_initialize"    @ string offset=4657
+.Linfo_string174:
+	.asciz	"_ZNSt6vectorIiSaIiEE21_M_default_initializeEj" @ string offset=4676
+.Linfo_string175:
+	.asciz	"_M_default_initialize" @ string offset=4722
+.Linfo_string176:
+	.asciz	"_ZNSt6vectorIiSaIiEE14_M_fill_assignEjRKi" @ string offset=4744
+.Linfo_string177:
+	.asciz	"_M_fill_assign"        @ string offset=4786
+.Linfo_string178:
+	.asciz	"_ZNSt6vectorIiSaIiEE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPiS1_EEjRKi" @ string offset=4801
+.Linfo_string179:
+	.asciz	"_M_fill_insert"        @ string offset=4881
+.Linfo_string180:
+	.asciz	"_ZNSt6vectorIiSaIiEE17_M_default_appendEj" @ string offset=4896
+.Linfo_string181:
+	.asciz	"_M_default_append"     @ string offset=4938
+.Linfo_string182:
+	.asciz	"_ZNSt6vectorIiSaIiEE16_M_shrink_to_fitEv" @ string offset=4956
+.Linfo_string183:
+	.asciz	"_M_shrink_to_fit"      @ string offset=4997
+.Linfo_string184:
+	.asciz	"_ZNKSt6vectorIiSaIiEE12_M_check_lenEjPKc" @ string offset=5014
+.Linfo_string185:
+	.asciz	"_M_check_len"          @ string offset=5055
+.Linfo_string186:
+	.asciz	"char"                  @ string offset=5068
+.Linfo_string187:
+	.asciz	"_ZNSt6vectorIiSaIiEE15_M_erase_at_endEPi" @ string offset=5073
+.Linfo_string188:
+	.asciz	"_M_erase_at_end"       @ string offset=5114
+.Linfo_string189:
+	.asciz	"_ZNSt6vectorIiSaIiEE8_M_eraseEN9__gnu_cxx17__normal_iteratorIPiS1_EE" @ string offset=5130
+.Linfo_string190:
+	.asciz	"_M_erase"              @ string offset=5199
+.Linfo_string191:
+	.asciz	"_ZNSt6vectorIiSaIiEE8_M_eraseEN9__gnu_cxx17__normal_iteratorIPiS1_EES5_" @ string offset=5208
+.Linfo_string192:
+	.asciz	"_ZNSt6vectorIiSaIiEE14_M_move_assignEOS1_St17integral_constantIbLb1EE" @ string offset=5280
+.Linfo_string193:
+	.asciz	"_M_move_assign"        @ string offset=5350
+.Linfo_string194:
+	.asciz	"value"                 @ string offset=5365
+.Linfo_string195:
+	.asciz	"_ZNKSt17integral_constantIbLb1EEcvbEv" @ string offset=5371
+.Linfo_string196:
+	.asciz	"operator bool"         @ string offset=5409
+.Linfo_string197:
+	.asciz	"__v"                   @ string offset=5423
+.Linfo_string198:
+	.asciz	"integral_constant<bool, true>" @ string offset=5427
+.Linfo_string199:
+	.asciz	"true_type"             @ string offset=5457
+.Linfo_string200:
+	.asciz	"_ZNSt6vectorIiSaIiEE14_M_move_assignEOS1_St17integral_constantIbLb0EE" @ string offset=5467
+.Linfo_string201:
+	.asciz	"_ZNKSt17integral_constantIbLb0EEcvbEv" @ string offset=5537
+.Linfo_string202:
+	.asciz	"integral_constant<bool, false>" @ string offset=5575
+.Linfo_string203:
+	.asciz	"false_type"            @ string offset=5606
+.Linfo_string204:
+	.asciz	"vector<int, std::allocator<int> >" @ string offset=5617
+.Linfo_string205:
+	.asciz	"_pulseOnState"         @ string offset=5651
+.Linfo_string206:
+	.asciz	"_digitalInput"         @ string offset=5665
+.Linfo_string207:
+	.asciz	"_pulseIsOn"            @ string offset=5679
+.Linfo_string208:
+	.asciz	"_pulseStart"           @ string offset=5690
+.Linfo_string209:
+	.asciz	"long long unsigned int" @ string offset=5702
+.Linfo_string210:
+	.asciz	"uint64_t"              @ string offset=5725
+.Linfo_string211:
+	.asciz	"_lastContext"          @ string offset=5734
+.Linfo_string212:
+	.asciz	"PulseIn"               @ string offset=5747
+.Linfo_string213:
+	.asciz	"audioIn"               @ string offset=5755
+.Linfo_string214:
+	.asciz	"float"                 @ string offset=5763
+.Linfo_string215:
+	.asciz	"audioOut"              @ string offset=5769
+.Linfo_string216:
+	.asciz	"analogIn"              @ string offset=5778
+.Linfo_string217:
+	.asciz	"analogOut"             @ string offset=5787
+.Linfo_string218:
+	.asciz	"digital"               @ string offset=5797
+.Linfo_string219:
+	.asciz	"uint32_t"              @ string offset=5805
+.Linfo_string220:
+	.asciz	"audioFrames"           @ string offset=5814
+.Linfo_string221:
+	.asciz	"audioInChannels"       @ string offset=5826
+.Linfo_string222:
+	.asciz	"audioOutChannels"      @ string offset=5842
+.Linfo_string223:
+	.asciz	"audioSampleRate"       @ string offset=5859
+.Linfo_string224:
+	.asciz	"analogFrames"          @ string offset=5875
+.Linfo_string225:
+	.asciz	"analogInChannels"      @ string offset=5888
+.Linfo_string226:
+	.asciz	"analogOutChannels"     @ string offset=5905
+.Linfo_string227:
+	.asciz	"analogSampleRate"      @ string offset=5923
+.Linfo_string228:
+	.asciz	"digitalFrames"         @ string offset=5940
+.Linfo_string229:
+	.asciz	"digitalChannels"       @ string offset=5954
+.Linfo_string230:
+	.asciz	"digitalSampleRate"     @ string offset=5970
+.Linfo_string231:
+	.asciz	"audioFramesElapsed"    @ string offset=5988
+.Linfo_string232:
+	.asciz	"multiplexerChannels"   @ string offset=6007
+.Linfo_string233:
+	.asciz	"multiplexerStartingChannel" @ string offset=6027
+.Linfo_string234:
+	.asciz	"multiplexerAnalogIn"   @ string offset=6054
+.Linfo_string235:
+	.asciz	"audioExpanderEnabled"  @ string offset=6074
+.Linfo_string236:
+	.asciz	"flags"                 @ string offset=6095
+.Linfo_string237:
+	.asciz	"projectName"           @ string offset=6101
+.Linfo_string238:
+	.asciz	"sizetype"              @ string offset=6113
+.Linfo_string239:
+	.asciz	"underrunCount"         @ string offset=6122
+.Linfo_string240:
+	.asciz	"BelaContext"           @ string offset=6136
+.Linfo_string241:
+	.asciz	"_ZN7PulseIn5setupEP11BelaContextji" @ string offset=6148
+.Linfo_string242:
+	.asciz	"setup"                 @ string offset=6183
+.Linfo_string243:
+	.asciz	"_ZN7PulseIn5checkEP11BelaContext" @ string offset=6189
+.Linfo_string244:
+	.asciz	"check"                 @ string offset=6222
+.Linfo_string245:
+	.asciz	"_ZN7PulseIn9hasPulsedEP11BelaContextj" @ string offset=6228
+.Linfo_string246:
+	.asciz	"hasPulsed"             @ string offset=6266
+.Linfo_string247:
+	.asciz	"_ZN7PulseIn7cleanupEv" @ string offset=6276
+.Linfo_string248:
+	.asciz	"cleanup"               @ string offset=6298
+.Linfo_string249:
+	.asciz	"~PulseIn"              @ string offset=6306
+.Linfo_string250:
+	.asciz	"scope"                 @ string offset=6315
+.Linfo_string251:
+	.asciz	"isUsingOutBuffer"      @ string offset=6321
+.Linfo_string252:
+	.asciz	"isUsingBuffer"         @ string offset=6338
+.Linfo_string253:
+	.asciz	"isResizing"            @ string offset=6352
+.Linfo_string254:
+	.asciz	"numChannels"           @ string offset=6363
+.Linfo_string255:
+	.asciz	"sampleRate"            @ string offset=6375
+.Linfo_string256:
+	.asciz	"pixelWidth"            @ string offset=6386
+.Linfo_string257:
+	.asciz	"frameWidth"            @ string offset=6397
+.Linfo_string258:
+	.asciz	"plotMode"              @ string offset=6408
+.Linfo_string259:
+	.asciz	"TIME_DOMAIN"           @ string offset=6417
+.Linfo_string260:
+	.asciz	"FREQ_DOMAIN"           @ string offset=6429
+.Linfo_string261:
+	.asciz	"PlotMode"              @ string offset=6441
+.Linfo_string262:
+	.asciz	"triggerMode"           @ string offset=6450
+.Linfo_string263:
+	.asciz	"AUTO"                  @ string offset=6462
+.Linfo_string264:
+	.asciz	"NORMAL"                @ string offset=6467
+.Linfo_string265:
+	.asciz	"CUSTOM"                @ string offset=6474
+.Linfo_string266:
+	.asciz	"TriggerMode"           @ string offset=6481
+.Linfo_string267:
+	.asciz	"triggerChannel"        @ string offset=6493
+.Linfo_string268:
+	.asciz	"triggerDir"            @ string offset=6508
+.Linfo_string269:
+	.asciz	"POSITIVE"              @ string offset=6519
+.Linfo_string270:
+	.asciz	"NEGATIVE"              @ string offset=6528
+.Linfo_string271:
+	.asciz	"BOTH"                  @ string offset=6537
+.Linfo_string272:
+	.asciz	"TriggerSlope"          @ string offset=6542
+.Linfo_string273:
+	.asciz	"triggerLevel"          @ string offset=6555
+.Linfo_string274:
+	.asciz	"xOffset"               @ string offset=6568
+.Linfo_string275:
+	.asciz	"xOffsetSamples"        @ string offset=6576
+.Linfo_string276:
+	.asciz	"upSampling"            @ string offset=6591
+.Linfo_string277:
+	.asciz	"downSampling"          @ string offset=6602
+.Linfo_string278:
+	.asciz	"holdOff"               @ string offset=6615
+.Linfo_string279:
+	.asciz	"logCount"              @ string offset=6623
+.Linfo_string280:
+	.asciz	"channelWidth"          @ string offset=6632
+.Linfo_string281:
+	.asciz	"downSampleCount"       @ string offset=6645
+.Linfo_string282:
+	.asciz	"holdOffSamples"        @ string offset=6661
+.Linfo_string283:
+	.asciz	"buffer"                @ string offset=6676
+.Linfo_string284:
+	.asciz	"_ZNSt16allocator_traitsISaIfEE8allocateERS0_j" @ string offset=6683
+.Linfo_string285:
+	.asciz	"_ZNK9__gnu_cxx13new_allocatorIfE7addressERf" @ string offset=6729
+.Linfo_string286:
+	.asciz	"_ZNK9__gnu_cxx13new_allocatorIfE7addressERKf" @ string offset=6773
+.Linfo_string287:
+	.asciz	"_ZN9__gnu_cxx13new_allocatorIfE8allocateEjPKv" @ string offset=6818
+.Linfo_string288:
+	.asciz	"_ZN9__gnu_cxx13new_allocatorIfE10deallocateEPfj" @ string offset=6864
+.Linfo_string289:
+	.asciz	"_ZNK9__gnu_cxx13new_allocatorIfE8max_sizeEv" @ string offset=6912
+.Linfo_string290:
+	.asciz	"new_allocator<float>"  @ string offset=6956
+.Linfo_string291:
+	.asciz	"__allocator_base<float>" @ string offset=6977
+.Linfo_string292:
+	.asciz	"allocator<float>"      @ string offset=7001
+.Linfo_string293:
+	.asciz	"_ZNSt16allocator_traitsISaIfEE8allocateERS0_jPKv" @ string offset=7018
+.Linfo_string294:
+	.asciz	"_ZNSt16allocator_traitsISaIfEE10deallocateERS0_Pfj" @ string offset=7067
+.Linfo_string295:
+	.asciz	"_ZNSt16allocator_traitsISaIfEE8max_sizeERKS0_" @ string offset=7118
+.Linfo_string296:
+	.asciz	"_ZNSt16allocator_traitsISaIfEE37select_on_container_copy_constructionERKS0_" @ string offset=7164
+.Linfo_string297:
+	.asciz	"allocator_traits<std::allocator<float> >" @ string offset=7240
+.Linfo_string298:
+	.asciz	"_ZN9__gnu_cxx14__alloc_traitsISaIfEE17_S_select_on_copyERKS1_" @ string offset=7281
+.Linfo_string299:
+	.asciz	"_ZN9__gnu_cxx14__alloc_traitsISaIfEE10_S_on_swapERS1_S3_" @ string offset=7343
+.Linfo_string300:
+	.asciz	"_ZN9__gnu_cxx14__alloc_traitsISaIfEE27_S_propagate_on_copy_assignEv" @ string offset=7400
+.Linfo_string301:
+	.asciz	"_ZN9__gnu_cxx14__alloc_traitsISaIfEE27_S_propagate_on_move_assignEv" @ string offset=7468
+.Linfo_string302:
+	.asciz	"_ZN9__gnu_cxx14__alloc_traitsISaIfEE20_S_propagate_on_swapEv" @ string offset=7536
+.Linfo_string303:
+	.asciz	"_ZN9__gnu_cxx14__alloc_traitsISaIfEE15_S_always_equalEv" @ string offset=7597
+.Linfo_string304:
+	.asciz	"_ZN9__gnu_cxx14__alloc_traitsISaIfEE15_S_nothrow_moveEv" @ string offset=7653
+.Linfo_string305:
+	.asciz	"__alloc_traits<std::allocator<float> >" @ string offset=7709
+.Linfo_string306:
+	.asciz	"rebind<float>"         @ string offset=7748
+.Linfo_string307:
+	.asciz	"rebind_alloc<float>"   @ string offset=7762
+.Linfo_string308:
+	.asciz	"_ZNSt12_Vector_baseIfSaIfEE12_Vector_impl12_M_swap_dataERS2_" @ string offset=7782
+.Linfo_string309:
+	.asciz	"_ZNSt12_Vector_baseIfSaIfEE19_M_get_Tp_allocatorEv" @ string offset=7843
+.Linfo_string310:
+	.asciz	"_ZNKSt12_Vector_baseIfSaIfEE19_M_get_Tp_allocatorEv" @ string offset=7894
+.Linfo_string311:
+	.asciz	"_ZNKSt12_Vector_baseIfSaIfEE13get_allocatorEv" @ string offset=7946
+.Linfo_string312:
+	.asciz	"_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEj" @ string offset=7992
+.Linfo_string313:
+	.asciz	"_ZNSt12_Vector_baseIfSaIfEE13_M_deallocateEPfj" @ string offset=8035
+.Linfo_string314:
+	.asciz	"_ZNSt12_Vector_baseIfSaIfEE17_M_create_storageEj" @ string offset=8082
+.Linfo_string315:
+	.asciz	"_Vector_base<float, std::allocator<float> >" @ string offset=8131
+.Linfo_string316:
+	.asciz	"initializer_list<float>" @ string offset=8175
+.Linfo_string317:
+	.asciz	"_ZNSt6vectorIfSaIfEEaSERKS1_" @ string offset=8199
+.Linfo_string318:
+	.asciz	"_ZNSt6vectorIfSaIfEEaSEOS1_" @ string offset=8228
+.Linfo_string319:
+	.asciz	"_ZNSt6vectorIfSaIfEEaSESt16initializer_listIfE" @ string offset=8256
+.Linfo_string320:
+	.asciz	"_ZNSt6vectorIfSaIfEE6assignEjRKf" @ string offset=8303
+.Linfo_string321:
+	.asciz	"_ZNSt6vectorIfSaIfEE6assignESt16initializer_listIfE" @ string offset=8336
+.Linfo_string322:
+	.asciz	"_ZNSt6vectorIfSaIfEE5beginEv" @ string offset=8388
+.Linfo_string323:
+	.asciz	"__normal_iterator<float *, std::vector<float, std::allocator<float> > >" @ string offset=8417
+.Linfo_string324:
+	.asciz	"_ZNKSt6vectorIfSaIfEE5beginEv" @ string offset=8489
+.Linfo_string325:
+	.asciz	"__normal_iterator<const float *, std::vector<float, std::allocator<float> > >" @ string offset=8519
+.Linfo_string326:
+	.asciz	"_ZNSt6vectorIfSaIfEE3endEv" @ string offset=8597
+.Linfo_string327:
+	.asciz	"_ZNKSt6vectorIfSaIfEE3endEv" @ string offset=8624
+.Linfo_string328:
+	.asciz	"_ZNSt6vectorIfSaIfEE6rbeginEv" @ string offset=8652
+.Linfo_string329:
+	.asciz	"reverse_iterator<__gnu_cxx::__normal_iterator<float *, std::vector<float, std::allocator<float> > > >" @ string offset=8682
+.Linfo_string330:
+	.asciz	"_ZNKSt6vectorIfSaIfEE6rbeginEv" @ string offset=8784
+.Linfo_string331:
+	.asciz	"reverse_iterator<__gnu_cxx::__normal_iterator<const float *, std::vector<float, std::allocator<float> > > >" @ string offset=8815
+.Linfo_string332:
+	.asciz	"_ZNSt6vectorIfSaIfEE4rendEv" @ string offset=8923
+.Linfo_string333:
+	.asciz	"_ZNKSt6vectorIfSaIfEE4rendEv" @ string offset=8951
+.Linfo_string334:
+	.asciz	"_ZNKSt6vectorIfSaIfEE6cbeginEv" @ string offset=8980
+.Linfo_string335:
+	.asciz	"_ZNKSt6vectorIfSaIfEE4cendEv" @ string offset=9011
+.Linfo_string336:
+	.asciz	"_ZNKSt6vectorIfSaIfEE7crbeginEv" @ string offset=9040
+.Linfo_string337:
+	.asciz	"_ZNKSt6vectorIfSaIfEE5crendEv" @ string offset=9072
+.Linfo_string338:
+	.asciz	"_ZNKSt6vectorIfSaIfEE4sizeEv" @ string offset=9102
+.Linfo_string339:
+	.asciz	"_ZNKSt6vectorIfSaIfEE8max_sizeEv" @ string offset=9131
+.Linfo_string340:
+	.asciz	"_ZNSt6vectorIfSaIfEE6resizeEj" @ string offset=9164
+.Linfo_string341:
+	.asciz	"_ZNSt6vectorIfSaIfEE6resizeEjRKf" @ string offset=9194
+.Linfo_string342:
+	.asciz	"_ZNSt6vectorIfSaIfEE13shrink_to_fitEv" @ string offset=9227
+.Linfo_string343:
+	.asciz	"_ZNKSt6vectorIfSaIfEE8capacityEv" @ string offset=9265
+.Linfo_string344:
+	.asciz	"_ZNKSt6vectorIfSaIfEE5emptyEv" @ string offset=9298
+.Linfo_string345:
+	.asciz	"_ZNSt6vectorIfSaIfEE7reserveEj" @ string offset=9328
+.Linfo_string346:
+	.asciz	"_ZNSt6vectorIfSaIfEEixEj" @ string offset=9359
+.Linfo_string347:
+	.asciz	"_ZNKSt6vectorIfSaIfEEixEj" @ string offset=9384
+.Linfo_string348:
+	.asciz	"_ZNKSt6vectorIfSaIfEE14_M_range_checkEj" @ string offset=9410
+.Linfo_string349:
+	.asciz	"_ZNSt6vectorIfSaIfEE2atEj" @ string offset=9450
+.Linfo_string350:
+	.asciz	"_ZNKSt6vectorIfSaIfEE2atEj" @ string offset=9476
+.Linfo_string351:
+	.asciz	"_ZNSt6vectorIfSaIfEE5frontEv" @ string offset=9503
+.Linfo_string352:
+	.asciz	"_ZNKSt6vectorIfSaIfEE5frontEv" @ string offset=9532
+.Linfo_string353:
+	.asciz	"_ZNSt6vectorIfSaIfEE4backEv" @ string offset=9562
+.Linfo_string354:
+	.asciz	"_ZNKSt6vectorIfSaIfEE4backEv" @ string offset=9590
+.Linfo_string355:
+	.asciz	"_ZNSt6vectorIfSaIfEE4dataEv" @ string offset=9619
+.Linfo_string356:
+	.asciz	"_ZNKSt6vectorIfSaIfEE4dataEv" @ string offset=9647
+.Linfo_string357:
+	.asciz	"_ZNSt6vectorIfSaIfEE9push_backERKf" @ string offset=9676
+.Linfo_string358:
+	.asciz	"_ZNSt6vectorIfSaIfEE9push_backEOf" @ string offset=9711
+.Linfo_string359:
+	.asciz	"_ZNSt6vectorIfSaIfEE8pop_backEv" @ string offset=9745
+.Linfo_string360:
+	.asciz	"_ZNSt6vectorIfSaIfEE6insertEN9__gnu_cxx17__normal_iteratorIPKfS1_EERS4_" @ string offset=9777
+.Linfo_string361:
+	.asciz	"_ZNSt6vectorIfSaIfEE6insertEN9__gnu_cxx17__normal_iteratorIPKfS1_EEOf" @ string offset=9849
+.Linfo_string362:
+	.asciz	"_ZNSt6vectorIfSaIfEE6insertEN9__gnu_cxx17__normal_iteratorIPKfS1_EESt16initializer_listIfE" @ string offset=9919
+.Linfo_string363:
+	.asciz	"_ZNSt6vectorIfSaIfEE6insertEN9__gnu_cxx17__normal_iteratorIPKfS1_EEjRS4_" @ string offset=10010
+.Linfo_string364:
+	.asciz	"_ZNSt6vectorIfSaIfEE5eraseEN9__gnu_cxx17__normal_iteratorIPKfS1_EE" @ string offset=10083
+.Linfo_string365:
+	.asciz	"_ZNSt6vectorIfSaIfEE5eraseEN9__gnu_cxx17__normal_iteratorIPKfS1_EES6_" @ string offset=10150
+.Linfo_string366:
+	.asciz	"_ZNSt6vectorIfSaIfEE4swapERS1_" @ string offset=10220
+.Linfo_string367:
+	.asciz	"_ZNSt6vectorIfSaIfEE5clearEv" @ string offset=10251
+.Linfo_string368:
+	.asciz	"_ZNSt6vectorIfSaIfEE18_M_fill_initializeEjRKf" @ string offset=10280
+.Linfo_string369:
+	.asciz	"_ZNSt6vectorIfSaIfEE21_M_default_initializeEj" @ string offset=10326
+.Linfo_string370:
+	.asciz	"_ZNSt6vectorIfSaIfEE14_M_fill_assignEjRKf" @ string offset=10372
+.Linfo_string371:
+	.asciz	"_ZNSt6vectorIfSaIfEE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPfS1_EEjRKf" @ string offset=10414
+.Linfo_string372:
+	.asciz	"_ZNSt6vectorIfSaIfEE17_M_default_appendEj" @ string offset=10494
+.Linfo_string373:
+	.asciz	"_ZNSt6vectorIfSaIfEE16_M_shrink_to_fitEv" @ string offset=10536
+.Linfo_string374:
+	.asciz	"_ZNKSt6vectorIfSaIfEE12_M_check_lenEjPKc" @ string offset=10577
+.Linfo_string375:
+	.asciz	"_ZNSt6vectorIfSaIfEE15_M_erase_at_endEPf" @ string offset=10618
+.Linfo_string376:
+	.asciz	"_ZNSt6vectorIfSaIfEE8_M_eraseEN9__gnu_cxx17__normal_iteratorIPfS1_EE" @ string offset=10659
+.Linfo_string377:
+	.asciz	"_ZNSt6vectorIfSaIfEE8_M_eraseEN9__gnu_cxx17__normal_iteratorIPfS1_EES5_" @ string offset=10728
+.Linfo_string378:
+	.asciz	"_ZNSt6vectorIfSaIfEE14_M_move_assignEOS1_St17integral_constantIbLb1EE" @ string offset=10800
+.Linfo_string379:
+	.asciz	"_ZNSt6vectorIfSaIfEE14_M_move_assignEOS1_St17integral_constantIbLb0EE" @ string offset=10870
+.Linfo_string380:
+	.asciz	"vector<float, std::allocator<float> >" @ string offset=10940
+.Linfo_string381:
+	.asciz	"outBuffer"             @ string offset=10978
+.Linfo_string382:
+	.asciz	"writePointer"          @ string offset=10988
+.Linfo_string383:
+	.asciz	"readPointer"           @ string offset=11001
+.Linfo_string384:
+	.asciz	"triggerPointer"        @ string offset=11013
+.Linfo_string385:
+	.asciz	"customTriggerPointer"  @ string offset=11028
+.Linfo_string386:
+	.asciz	"triggerPrimed"         @ string offset=11049
+.Linfo_string387:
+	.asciz	"triggerCollecting"     @ string offset=11063
+.Linfo_string388:
+	.asciz	"triggerWaiting"        @ string offset=11081
+.Linfo_string389:
+	.asciz	"triggerCount"          @ string offset=11096
+.Linfo_string390:
+	.asciz	"autoTriggerCount"      @ string offset=11109
+.Linfo_string391:
+	.asciz	"started"               @ string offset=11126
+.Linfo_string392:
+	.asciz	"customTriggered"       @ string offset=11134
+.Linfo_string393:
+	.asciz	"FFTLength"             @ string offset=11150
+.Linfo_string394:
+	.asciz	"newFFTLength"          @ string offset=11160
+.Linfo_string395:
+	.asciz	"FFTScale"              @ string offset=11173
+.Linfo_string396:
+	.asciz	"FFTLogOffset"          @ string offset=11182
+.Linfo_string397:
+	.asciz	"pointerFFT"            @ string offset=11195
+.Linfo_string398:
+	.asciz	"collectingFFT"         @ string offset=11206
+.Linfo_string399:
+	.asciz	"windowFFT"             @ string offset=11220
+.Linfo_string400:
+	.asciz	"FFTXAxis"              @ string offset=11230
+.Linfo_string401:
+	.asciz	"FFTYAxis"              @ string offset=11239
+.Linfo_string402:
+	.asciz	"inFFT"                 @ string offset=11248
+.Linfo_string403:
+	.asciz	"ne10_fft_cpx_float32_t" @ string offset=11254
+.Linfo_string404:
+	.asciz	"outFFT"                @ string offset=11277
+.Linfo_string405:
+	.asciz	"cfg"                   @ string offset=11284
+.Linfo_string406:
+	.asciz	"ne10_fft_state_float32_t" @ string offset=11288
+.Linfo_string407:
+	.asciz	"ne10_fft_cfg_float32_t" @ string offset=11313
+.Linfo_string408:
+	.asciz	"scopeTriggerTask"      @ string offset=11336
+.Linfo_string409:
+	.asciz	"_M_t"                  @ string offset=11353
+.Linfo_string410:
+	.asciz	"default_delete"        @ string offset=11358
+.Linfo_string411:
+	.asciz	"_ZNKSt14default_deleteI9AuxTaskRTEclEPS0_" @ string offset=11373
+.Linfo_string412:
+	.asciz	"operator()"            @ string offset=11415
+.Linfo_string413:
+	.asciz	"AuxTaskRT"             @ string offset=11426
+.Linfo_string414:
+	.asciz	"default_delete<AuxTaskRT>" @ string offset=11436
+.Linfo_string415:
+	.asciz	"_Head_base"            @ string offset=11462
+.Linfo_string416:
+	.asciz	"allocator_arg_t"       @ string offset=11473
+.Linfo_string417:
+	.asciz	"__uses_alloc_base"     @ string offset=11489
+.Linfo_string418:
+	.asciz	"_M_a"                  @ string offset=11507
+.Linfo_string419:
+	.asciz	"_ZNSt13__uses_alloc05_SinkaSEPKv" @ string offset=11512
+.Linfo_string420:
+	.asciz	"_Sink"                 @ string offset=11545
+.Linfo_string421:
+	.asciz	"__uses_alloc0"         @ string offset=11551
+.Linfo_string422:
+	.asciz	"_ZNSt10_Head_baseILj1ESt14default_deleteI9AuxTaskRTELb1EE7_M_headERS3_" @ string offset=11565
+.Linfo_string423:
+	.asciz	"_M_head"               @ string offset=11636
+.Linfo_string424:
+	.asciz	"_ZNSt10_Head_baseILj1ESt14default_deleteI9AuxTaskRTELb1EE7_M_headERKS3_" @ string offset=11644
+.Linfo_string425:
+	.asciz	"_Idx"                  @ string offset=11716
+.Linfo_string426:
+	.asciz	"_Head"                 @ string offset=11721
+.Linfo_string427:
+	.asciz	"_IsEmptyNotFinal"      @ string offset=11727
+.Linfo_string428:
+	.asciz	"_Head_base<1, std::default_delete<AuxTaskRT>, true>" @ string offset=11744
+.Linfo_string429:
+	.asciz	"_ZNSt11_Tuple_implILj1EJSt14default_deleteI9AuxTaskRTEEE7_M_headERS3_" @ string offset=11796
+.Linfo_string430:
+	.asciz	"_ZNSt11_Tuple_implILj1EJSt14default_deleteI9AuxTaskRTEEE7_M_headERKS3_" @ string offset=11866
+.Linfo_string431:
+	.asciz	"_Tuple_impl"           @ string offset=11937
+.Linfo_string432:
+	.asciz	"_ZNSt11_Tuple_implILj1EJSt14default_deleteI9AuxTaskRTEEEaSERKS3_" @ string offset=11949
+.Linfo_string433:
+	.asciz	"_ZNSt11_Tuple_implILj1EJSt14default_deleteI9AuxTaskRTEEEaSEOS3_" @ string offset=12014
+.Linfo_string434:
+	.asciz	"_ZNSt11_Tuple_implILj1EJSt14default_deleteI9AuxTaskRTEEE7_M_swapERS3_" @ string offset=12078
+.Linfo_string435:
+	.asciz	"_M_swap"               @ string offset=12148
+.Linfo_string436:
+	.asciz	"_Elements"             @ string offset=12156
+.Linfo_string437:
+	.asciz	"_Tuple_impl<1, std::default_delete<AuxTaskRT> >" @ string offset=12166
+.Linfo_string438:
+	.asciz	"_M_head_impl"          @ string offset=12214
+.Linfo_string439:
+	.asciz	"_ZNSt10_Head_baseILj0EP9AuxTaskRTLb0EE7_M_headERS2_" @ string offset=12227
+.Linfo_string440:
+	.asciz	"_ZNSt10_Head_baseILj0EP9AuxTaskRTLb0EE7_M_headERKS2_" @ string offset=12279
+.Linfo_string441:
+	.asciz	"_Head_base<0, AuxTaskRT *, false>" @ string offset=12332
+.Linfo_string442:
+	.asciz	"_ZNSt11_Tuple_implILj0EJP9AuxTaskRTSt14default_deleteIS0_EEE7_M_headERS4_" @ string offset=12366
+.Linfo_string443:
+	.asciz	"_ZNSt11_Tuple_implILj0EJP9AuxTaskRTSt14default_deleteIS0_EEE7_M_headERKS4_" @ string offset=12440
+.Linfo_string444:
+	.asciz	"_ZNSt11_Tuple_implILj0EJP9AuxTaskRTSt14default_deleteIS0_EEE7_M_tailERS4_" @ string offset=12515
+.Linfo_string445:
+	.asciz	"_M_tail"               @ string offset=12589
+.Linfo_string446:
+	.asciz	"_Inherited"            @ string offset=12597
+.Linfo_string447:
+	.asciz	"_ZNSt11_Tuple_implILj0EJP9AuxTaskRTSt14default_deleteIS0_EEE7_M_tailERKS4_" @ string offset=12608
+.Linfo_string448:
+	.asciz	"_ZNSt11_Tuple_implILj0EJP9AuxTaskRTSt14default_deleteIS0_EEEaSERKS4_" @ string offset=12683
+.Linfo_string449:
+	.asciz	"_ZNSt11_Tuple_implILj0EJP9AuxTaskRTSt14default_deleteIS0_EEEaSEOS4_" @ string offset=12752
+.Linfo_string450:
+	.asciz	"_ZNSt11_Tuple_implILj0EJP9AuxTaskRTSt14default_deleteIS0_EEE7_M_swapERS4_" @ string offset=12820
+.Linfo_string451:
+	.asciz	"_Tuple_impl<0, AuxTaskRT *, std::default_delete<AuxTaskRT> >" @ string offset=12894
+.Linfo_string452:
+	.asciz	"tuple"                 @ string offset=12955
+.Linfo_string453:
+	.asciz	"_ZNSt5tupleIJP9AuxTaskRTSt14default_deleteIS0_EEEaSERKS4_" @ string offset=12961
+.Linfo_string454:
+	.asciz	"_ZNSt5tupleIJP9AuxTaskRTSt14default_deleteIS0_EEEaSEOS4_" @ string offset=13019
+.Linfo_string455:
+	.asciz	"_ZNSt5tupleIJP9AuxTaskRTSt14default_deleteIS0_EEE4swapERS4_" @ string offset=13076
+.Linfo_string456:
+	.asciz	"tuple<AuxTaskRT *, std::default_delete<AuxTaskRT> >" @ string offset=13136
+.Linfo_string457:
+	.asciz	"__tuple_type"          @ string offset=13188
+.Linfo_string458:
+	.asciz	"unique_ptr"            @ string offset=13201
+.Linfo_string459:
+	.asciz	"_Pointer"              @ string offset=13212
+.Linfo_string460:
+	.asciz	"type"                  @ string offset=13221
+.Linfo_string461:
+	.asciz	"_Cond"                 @ string offset=13226
+.Linfo_string462:
+	.asciz	"_Iftrue"               @ string offset=13232
+.Linfo_string463:
+	.asciz	"_Iffalse"              @ string offset=13240
+.Linfo_string464:
+	.asciz	"conditional<false, std::default_delete<AuxTaskRT>, const std::default_delete<AuxTaskRT> &>" @ string offset=13249
+.Linfo_string465:
+	.asciz	"remove_reference<std::default_delete<AuxTaskRT> >" @ string offset=13340
+.Linfo_string466:
+	.asciz	"decltype(nullptr)"     @ string offset=13390
+.Linfo_string467:
+	.asciz	"nullptr_t"             @ string offset=13408
+.Linfo_string468:
+	.asciz	"~unique_ptr"           @ string offset=13418
+.Linfo_string469:
+	.asciz	"_ZNSt10unique_ptrI9AuxTaskRTSt14default_deleteIS0_EEaSEOS3_" @ string offset=13430
+.Linfo_string470:
+	.asciz	"_ZNSt10unique_ptrI9AuxTaskRTSt14default_deleteIS0_EEaSEDn" @ string offset=13490
+.Linfo_string471:
+	.asciz	"_ZNKSt10unique_ptrI9AuxTaskRTSt14default_deleteIS0_EEdeEv" @ string offset=13548
+.Linfo_string472:
+	.asciz	"operator*"             @ string offset=13606
+.Linfo_string473:
+	.asciz	"__add_lvalue_reference_helper<AuxTaskRT, true>" @ string offset=13616
+.Linfo_string474:
+	.asciz	"_ZNKSt10unique_ptrI9AuxTaskRTSt14default_deleteIS0_EEptEv" @ string offset=13663
+.Linfo_string475:
+	.asciz	"operator->"            @ string offset=13721
+.Linfo_string476:
+	.asciz	"_ZNKSt10unique_ptrI9AuxTaskRTSt14default_deleteIS0_EE3getEv" @ string offset=13732
+.Linfo_string477:
+	.asciz	"get"                   @ string offset=13792
+.Linfo_string478:
+	.asciz	"_ZNSt10unique_ptrI9AuxTaskRTSt14default_deleteIS0_EE11get_deleterEv" @ string offset=13796
+.Linfo_string479:
+	.asciz	"get_deleter"           @ string offset=13864
+.Linfo_string480:
+	.asciz	"deleter_type"          @ string offset=13876
+.Linfo_string481:
+	.asciz	"_ZNKSt10unique_ptrI9AuxTaskRTSt14default_deleteIS0_EE11get_deleterEv" @ string offset=13889
+.Linfo_string482:
+	.asciz	"_ZNKSt10unique_ptrI9AuxTaskRTSt14default_deleteIS0_EEcvbEv" @ string offset=13958
+.Linfo_string483:
+	.asciz	"_ZNSt10unique_ptrI9AuxTaskRTSt14default_deleteIS0_EE7releaseEv" @ string offset=14017
+.Linfo_string484:
+	.asciz	"release"               @ string offset=14080
+.Linfo_string485:
+	.asciz	"_ZNSt10unique_ptrI9AuxTaskRTSt14default_deleteIS0_EE5resetEPS0_" @ string offset=14088
+.Linfo_string486:
+	.asciz	"reset"                 @ string offset=14152
+.Linfo_string487:
+	.asciz	"_ZNSt10unique_ptrI9AuxTaskRTSt14default_deleteIS0_EE4swapERS3_" @ string offset=14158
+.Linfo_string488:
+	.asciz	"_ZNSt10unique_ptrI9AuxTaskRTSt14default_deleteIS0_EEaSERKS3_" @ string offset=14221
+.Linfo_string489:
+	.asciz	"_Dp"                   @ string offset=14282
+.Linfo_string490:
+	.asciz	"unique_ptr<AuxTaskRT, std::default_delete<AuxTaskRT> >" @ string offset=14286
+.Linfo_string491:
+	.asciz	"ws_server"             @ string offset=14341
+.Linfo_string492:
+	.asciz	"_ZNKSt14default_deleteI8WSServerEclEPS0_" @ string offset=14351
+.Linfo_string493:
+	.asciz	"WSServer"              @ string offset=14392
+.Linfo_string494:
+	.asciz	"default_delete<WSServer>" @ string offset=14401
+.Linfo_string495:
+	.asciz	"_ZNSt10_Head_baseILj1ESt14default_deleteI8WSServerELb1EE7_M_headERS3_" @ string offset=14426
+.Linfo_string496:
+	.asciz	"_ZNSt10_Head_baseILj1ESt14default_deleteI8WSServerELb1EE7_M_headERKS3_" @ string offset=14496
+.Linfo_string497:
+	.asciz	"_Head_base<1, std::default_delete<WSServer>, true>" @ string offset=14567
+.Linfo_string498:
+	.asciz	"_ZNSt11_Tuple_implILj1EJSt14default_deleteI8WSServerEEE7_M_headERS3_" @ string offset=14618
+.Linfo_string499:
+	.asciz	"_ZNSt11_Tuple_implILj1EJSt14default_deleteI8WSServerEEE7_M_headERKS3_" @ string offset=14687
+.Linfo_string500:
+	.asciz	"_ZNSt11_Tuple_implILj1EJSt14default_deleteI8WSServerEEEaSERKS3_" @ string offset=14757
+.Linfo_string501:
+	.asciz	"_ZNSt11_Tuple_implILj1EJSt14default_deleteI8WSServerEEEaSEOS3_" @ string offset=14821
+.Linfo_string502:
+	.asciz	"_ZNSt11_Tuple_implILj1EJSt14default_deleteI8WSServerEEE7_M_swapERS3_" @ string offset=14884
+.Linfo_string503:
+	.asciz	"_Tuple_impl<1, std::default_delete<WSServer> >" @ string offset=14953
+.Linfo_string504:
+	.asciz	"_ZNSt10_Head_baseILj0EP8WSServerLb0EE7_M_headERS2_" @ string offset=15000
+.Linfo_string505:
+	.asciz	"_ZNSt10_Head_baseILj0EP8WSServerLb0EE7_M_headERKS2_" @ string offset=15051
+.Linfo_string506:
+	.asciz	"_Head_base<0, WSServer *, false>" @ string offset=15103
+.Linfo_string507:
+	.asciz	"_ZNSt11_Tuple_implILj0EJP8WSServerSt14default_deleteIS0_EEE7_M_headERS4_" @ string offset=15136
+.Linfo_string508:
+	.asciz	"_ZNSt11_Tuple_implILj0EJP8WSServerSt14default_deleteIS0_EEE7_M_headERKS4_" @ string offset=15209
+.Linfo_string509:
+	.asciz	"_ZNSt11_Tuple_implILj0EJP8WSServerSt14default_deleteIS0_EEE7_M_tailERS4_" @ string offset=15283
+.Linfo_string510:
+	.asciz	"_ZNSt11_Tuple_implILj0EJP8WSServerSt14default_deleteIS0_EEE7_M_tailERKS4_" @ string offset=15356
+.Linfo_string511:
+	.asciz	"_ZNSt11_Tuple_implILj0EJP8WSServerSt14default_deleteIS0_EEEaSERKS4_" @ string offset=15430
+.Linfo_string512:
+	.asciz	"_ZNSt11_Tuple_implILj0EJP8WSServerSt14default_deleteIS0_EEEaSEOS4_" @ string offset=15498
+.Linfo_string513:
+	.asciz	"_ZNSt11_Tuple_implILj0EJP8WSServerSt14default_deleteIS0_EEE7_M_swapERS4_" @ string offset=15565
+.Linfo_string514:
+	.asciz	"_Tuple_impl<0, WSServer *, std::default_delete<WSServer> >" @ string offset=15638
+.Linfo_string515:
+	.asciz	"_ZNSt5tupleIJP8WSServerSt14default_deleteIS0_EEEaSERKS4_" @ string offset=15697
+.Linfo_string516:
+	.asciz	"_ZNSt5tupleIJP8WSServerSt14default_deleteIS0_EEEaSEOS4_" @ string offset=15754
+.Linfo_string517:
+	.asciz	"_ZNSt5tupleIJP8WSServerSt14default_deleteIS0_EEE4swapERS4_" @ string offset=15810
+.Linfo_string518:
+	.asciz	"tuple<WSServer *, std::default_delete<WSServer> >" @ string offset=15869
+.Linfo_string519:
+	.asciz	"conditional<false, std::default_delete<WSServer>, const std::default_delete<WSServer> &>" @ string offset=15919
+.Linfo_string520:
+	.asciz	"remove_reference<std::default_delete<WSServer> >" @ string offset=16008
+.Linfo_string521:
+	.asciz	"_ZNSt10unique_ptrI8WSServerSt14default_deleteIS0_EEaSEOS3_" @ string offset=16057
+.Linfo_string522:
+	.asciz	"_ZNSt10unique_ptrI8WSServerSt14default_deleteIS0_EEaSEDn" @ string offset=16116
+.Linfo_string523:
+	.asciz	"_ZNKSt10unique_ptrI8WSServerSt14default_deleteIS0_EEdeEv" @ string offset=16173
+.Linfo_string524:
+	.asciz	"__add_lvalue_reference_helper<WSServer, true>" @ string offset=16230
+.Linfo_string525:
+	.asciz	"_ZNKSt10unique_ptrI8WSServerSt14default_deleteIS0_EEptEv" @ string offset=16276
+.Linfo_string526:
+	.asciz	"_ZNKSt10unique_ptrI8WSServerSt14default_deleteIS0_EE3getEv" @ string offset=16333
+.Linfo_string527:
+	.asciz	"_ZNSt10unique_ptrI8WSServerSt14default_deleteIS0_EE11get_deleterEv" @ string offset=16392
+.Linfo_string528:
+	.asciz	"_ZNKSt10unique_ptrI8WSServerSt14default_deleteIS0_EE11get_deleterEv" @ string offset=16459
+.Linfo_string529:
+	.asciz	"_ZNKSt10unique_ptrI8WSServerSt14default_deleteIS0_EEcvbEv" @ string offset=16527
+.Linfo_string530:
+	.asciz	"_ZNSt10unique_ptrI8WSServerSt14default_deleteIS0_EE7releaseEv" @ string offset=16585
+.Linfo_string531:
+	.asciz	"_ZNSt10unique_ptrI8WSServerSt14default_deleteIS0_EE5resetEPS0_" @ string offset=16647
+.Linfo_string532:
+	.asciz	"_ZNSt10unique_ptrI8WSServerSt14default_deleteIS0_EE4swapERS3_" @ string offset=16710
+.Linfo_string533:
+	.asciz	"_ZNSt10unique_ptrI8WSServerSt14default_deleteIS0_EEaSERKS3_" @ string offset=16772
+.Linfo_string534:
+	.asciz	"unique_ptr<WSServer, std::default_delete<WSServer> >" @ string offset=16832
+.Linfo_string535:
+	.asciz	"settings"              @ string offset=16885
+.Linfo_string536:
+	.asciz	"_ZNSt16allocator_traitsISaISt4pairIKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfEEE8allocateERS9_j" @ string offset=16894
+.Linfo_string537:
+	.asciz	"pair<const std::__cxx11::basic_string<wchar_t>, float>" @ string offset=17002
+.Linfo_string538:
+	.asciz	"_ZNK9__gnu_cxx13new_allocatorISt4pairIKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfEE7addressERS9_" @ string offset=17057
+.Linfo_string539:
+	.asciz	"_ZNK9__gnu_cxx13new_allocatorISt4pairIKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfEE7addressERKS9_" @ string offset=17165
+.Linfo_string540:
+	.asciz	"_ZN9__gnu_cxx13new_allocatorISt4pairIKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfEE8allocateEjPKv" @ string offset=17274
+.Linfo_string541:
+	.asciz	"_ZN9__gnu_cxx13new_allocatorISt4pairIKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfEE10deallocateEPS9_j" @ string offset=17382
+.Linfo_string542:
+	.asciz	"_ZNK9__gnu_cxx13new_allocatorISt4pairIKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfEE8max_sizeEv" @ string offset=17494
+.Linfo_string543:
+	.asciz	"new_allocator<std::pair<const std::__cxx11::basic_string<wchar_t>, float> >" @ string offset=17600
+.Linfo_string544:
+	.asciz	"__allocator_base<std::pair<const std::__cxx11::basic_string<wchar_t>, float> >" @ string offset=17676
+.Linfo_string545:
+	.asciz	"allocator<std::pair<const std::__cxx11::basic_string<wchar_t>, float> >" @ string offset=17755
+.Linfo_string546:
+	.asciz	"_ZNSt16allocator_traitsISaISt4pairIKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfEEE8allocateERS9_jPKv" @ string offset=17827
+.Linfo_string547:
+	.asciz	"_ZNSt16allocator_traitsISaISt4pairIKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfEEE10deallocateERS9_PS8_j" @ string offset=17938
+.Linfo_string548:
+	.asciz	"_ZNSt16allocator_traitsISaISt4pairIKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfEEE8max_sizeERKS9_" @ string offset=18053
+.Linfo_string549:
+	.asciz	"_ZNSt16allocator_traitsISaISt4pairIKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfEEE37select_on_container_copy_constructionERKS9_" @ string offset=18161
+.Linfo_string550:
+	.asciz	"allocator_traits<std::allocator<std::pair<const std::__cxx11::basic_string<wchar_t>, float> > >" @ string offset=18299
+.Linfo_string551:
+	.asciz	"_ZN9__gnu_cxx14__alloc_traitsISaISt4pairIKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfEEE17_S_select_on_copyERKSA_" @ string offset=18395
+.Linfo_string552:
+	.asciz	"_ZN9__gnu_cxx14__alloc_traitsISaISt4pairIKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfEEE10_S_on_swapERSA_SC_" @ string offset=18519
+.Linfo_string553:
+	.asciz	"_ZN9__gnu_cxx14__alloc_traitsISaISt4pairIKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfEEE27_S_propagate_on_copy_assignEv" @ string offset=18638
+.Linfo_string554:
+	.asciz	"_ZN9__gnu_cxx14__alloc_traitsISaISt4pairIKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfEEE27_S_propagate_on_move_assignEv" @ string offset=18768
+.Linfo_string555:
+	.asciz	"_ZN9__gnu_cxx14__alloc_traitsISaISt4pairIKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfEEE20_S_propagate_on_swapEv" @ string offset=18898
+.Linfo_string556:
+	.asciz	"_ZN9__gnu_cxx14__alloc_traitsISaISt4pairIKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfEEE15_S_always_equalEv" @ string offset=19021
+.Linfo_string557:
+	.asciz	"_ZN9__gnu_cxx14__alloc_traitsISaISt4pairIKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfEEE15_S_nothrow_moveEv" @ string offset=19139
+.Linfo_string558:
+	.asciz	"__alloc_traits<std::allocator<std::pair<const std::__cxx11::basic_string<wchar_t>, float> > >" @ string offset=19257
+.Linfo_string559:
+	.asciz	"_Rb_tree_node<std::pair<const std::__cxx11::basic_string<wchar_t>, float> >" @ string offset=19351
+.Linfo_string560:
+	.asciz	"rebind<std::_Rb_tree_node<std::pair<const std::__cxx11::basic_string<wchar_t>, float> > >" @ string offset=19427
+.Linfo_string561:
+	.asciz	"_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfEEE7addressERSB_" @ string offset=19517
+.Linfo_string562:
+	.asciz	"_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfEEE7addressERKSB_" @ string offset=19644
+.Linfo_string563:
+	.asciz	"_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfEEE8allocateEjPKv" @ string offset=19772
+.Linfo_string564:
+	.asciz	"_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfEEE10deallocateEPSB_j" @ string offset=19899
+.Linfo_string565:
+	.asciz	"_ZNK9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfEEE8max_sizeEv" @ string offset=20030
+.Linfo_string566:
+	.asciz	"new_allocator<std::_Rb_tree_node<std::pair<const std::__cxx11::basic_string<wchar_t>, float> > >" @ string offset=20155
+.Linfo_string567:
+	.asciz	"__allocator_base<std::_Rb_tree_node<std::pair<const std::__cxx11::basic_string<wchar_t>, float> > >" @ string offset=20252
+.Linfo_string568:
+	.asciz	"allocator<std::_Rb_tree_node<std::pair<const std::__cxx11::basic_string<wchar_t>, float> > >" @ string offset=20352
+.Linfo_string569:
+	.asciz	"rebind_alloc<std::_Rb_tree_node<std::pair<const std::__cxx11::basic_string<wchar_t>, float> > >" @ string offset=20445
+.Linfo_string570:
+	.asciz	"_Node_allocator"       @ string offset=20541
+.Linfo_string571:
+	.asciz	"_M_key_compare"        @ string offset=20557
+.Linfo_string572:
+	.asciz	"__cxx11"               @ string offset=20572
+.Linfo_string573:
+	.asciz	"basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >" @ string offset=20580
+.Linfo_string574:
+	.asciz	"_Arg1"                 @ string offset=20655
+.Linfo_string575:
+	.asciz	"_Arg2"                 @ string offset=20661
+.Linfo_string576:
+	.asciz	"_Result"               @ string offset=20667
+.Linfo_string577:
+	.asciz	"binary_function<std::__cxx11::basic_string<wchar_t>, std::__cxx11::basic_string<wchar_t>, bool>" @ string offset=20675
+.Linfo_string578:
+	.asciz	"_ZNKSt4lessINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEEclERKS5_S8_" @ string offset=20771
+.Linfo_string579:
+	.asciz	"less<std::__cxx11::basic_string<wchar_t> >" @ string offset=20848
+.Linfo_string580:
+	.asciz	"_M_header"             @ string offset=20891
+.Linfo_string581:
+	.asciz	"_M_color"              @ string offset=20901
+.Linfo_string582:
+	.asciz	"_S_red"                @ string offset=20910
+.Linfo_string583:
+	.asciz	"_S_black"              @ string offset=20917
+.Linfo_string584:
+	.asciz	"_Rb_tree_color"        @ string offset=20926
+.Linfo_string585:
+	.asciz	"_M_parent"             @ string offset=20941
+.Linfo_string586:
+	.asciz	"_Base_ptr"             @ string offset=20951
+.Linfo_string587:
+	.asciz	"_M_left"               @ string offset=20961
+.Linfo_string588:
+	.asciz	"_M_right"              @ string offset=20969
+.Linfo_string589:
+	.asciz	"_ZNSt18_Rb_tree_node_base10_S_minimumEPS_" @ string offset=20978
+.Linfo_string590:
+	.asciz	"_S_minimum"            @ string offset=21020
+.Linfo_string591:
+	.asciz	"_ZNSt18_Rb_tree_node_base10_S_minimumEPKS_" @ string offset=21031
+.Linfo_string592:
+	.asciz	"_Const_Base_ptr"       @ string offset=21074
+.Linfo_string593:
+	.asciz	"_ZNSt18_Rb_tree_node_base10_S_maximumEPS_" @ string offset=21090
+.Linfo_string594:
+	.asciz	"_S_maximum"            @ string offset=21132
+.Linfo_string595:
+	.asciz	"_ZNSt18_Rb_tree_node_base10_S_maximumEPKS_" @ string offset=21143
+.Linfo_string596:
+	.asciz	"_Rb_tree_node_base"    @ string offset=21186
+.Linfo_string597:
+	.asciz	"_M_node_count"         @ string offset=21205
+.Linfo_string598:
+	.asciz	"_Rb_tree_impl"         @ string offset=21219
+.Linfo_string599:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EE8_M_resetEv" @ string offset=21233
+.Linfo_string600:
+	.asciz	"_M_reset"              @ string offset=21389
+.Linfo_string601:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EE13_M_initializeEv" @ string offset=21398
+.Linfo_string602:
+	.asciz	"_M_initialize"         @ string offset=21560
+.Linfo_string603:
+	.asciz	"_Key_compare"          @ string offset=21574
+.Linfo_string604:
+	.asciz	"_Rb_tree_impl<std::less<std::__cxx11::basic_string<wchar_t> >, true>" @ string offset=21587
+.Linfo_string605:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE21_M_get_Node_allocatorEv" @ string offset=21656
+.Linfo_string606:
+	.asciz	"_M_get_Node_allocator" @ string offset=21802
+.Linfo_string607:
+	.asciz	"_ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE21_M_get_Node_allocatorEv" @ string offset=21824
+.Linfo_string608:
+	.asciz	"_ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13get_allocatorEv" @ string offset=21971
+.Linfo_string609:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE11_M_get_nodeEv" @ string offset=22110
+.Linfo_string610:
+	.asciz	"_M_get_node"           @ string offset=22246
+.Linfo_string611:
+	.asciz	"_Link_type"            @ string offset=22258
+.Linfo_string612:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE11_M_put_nodeEPSt13_Rb_tree_nodeIS8_E" @ string offset=22269
+.Linfo_string613:
+	.asciz	"_M_put_node"           @ string offset=22427
+.Linfo_string614:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE15_M_destroy_nodeEPSt13_Rb_tree_nodeIS8_E" @ string offset=22439
+.Linfo_string615:
+	.asciz	"_M_destroy_node"       @ string offset=22601
+.Linfo_string616:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE12_M_drop_nodeEPSt13_Rb_tree_nodeIS8_E" @ string offset=22617
+.Linfo_string617:
+	.asciz	"_M_drop_node"          @ string offset=22776
+.Linfo_string618:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE7_M_rootEv" @ string offset=22789
+.Linfo_string619:
+	.asciz	"_M_root"               @ string offset=22920
+.Linfo_string620:
+	.asciz	"_ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE7_M_rootEv" @ string offset=22928
+.Linfo_string621:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE11_M_leftmostEv" @ string offset=23060
+.Linfo_string622:
+	.asciz	"_M_leftmost"           @ string offset=23196
+.Linfo_string623:
+	.asciz	"_ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE11_M_leftmostEv" @ string offset=23208
+.Linfo_string624:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE12_M_rightmostEv" @ string offset=23345
+.Linfo_string625:
+	.asciz	"_M_rightmost"          @ string offset=23482
+.Linfo_string626:
+	.asciz	"_ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE12_M_rightmostEv" @ string offset=23495
+.Linfo_string627:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE8_M_beginEv" @ string offset=23633
+.Linfo_string628:
+	.asciz	"_M_begin"              @ string offset=23765
+.Linfo_string629:
+	.asciz	"_ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE8_M_beginEv" @ string offset=23774
+.Linfo_string630:
+	.asciz	"_Const_Link_type"      @ string offset=23907
+.Linfo_string631:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE6_M_endEv" @ string offset=23924
+.Linfo_string632:
+	.asciz	"_M_end"                @ string offset=24054
+.Linfo_string633:
+	.asciz	"_ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE6_M_endEv" @ string offset=24061
+.Linfo_string634:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE8_S_valueEPKSt13_Rb_tree_nodeIS8_E" @ string offset=24192
+.Linfo_string635:
+	.asciz	"_S_value"              @ string offset=24347
+.Linfo_string636:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE6_S_keyEPKSt13_Rb_tree_nodeIS8_E" @ string offset=24356
+.Linfo_string637:
+	.asciz	"_S_key"                @ string offset=24509
+.Linfo_string638:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE7_S_leftEPSt18_Rb_tree_node_base" @ string offset=24516
+.Linfo_string639:
+	.asciz	"_S_left"               @ string offset=24669
+.Linfo_string640:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE7_S_leftEPKSt18_Rb_tree_node_base" @ string offset=24677
+.Linfo_string641:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE8_S_rightEPSt18_Rb_tree_node_base" @ string offset=24831
+.Linfo_string642:
+	.asciz	"_S_right"              @ string offset=24985
+.Linfo_string643:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE8_S_rightEPKSt18_Rb_tree_node_base" @ string offset=24994
+.Linfo_string644:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE8_S_valueEPKSt18_Rb_tree_node_base" @ string offset=25149
+.Linfo_string645:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE6_S_keyEPKSt18_Rb_tree_node_base" @ string offset=25304
+.Linfo_string646:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE10_S_minimumEPSt18_Rb_tree_node_base" @ string offset=25457
+.Linfo_string647:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE10_S_minimumEPKSt18_Rb_tree_node_base" @ string offset=25614
+.Linfo_string648:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE10_S_maximumEPSt18_Rb_tree_node_base" @ string offset=25772
+.Linfo_string649:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE10_S_maximumEPKSt18_Rb_tree_node_base" @ string offset=25929
+.Linfo_string650:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE24_M_get_insert_unique_posERS7_" @ string offset=26087
+.Linfo_string651:
+	.asciz	"_M_get_insert_unique_pos" @ string offset=26239
+.Linfo_string652:
+	.asciz	"first"                 @ string offset=26264
+.Linfo_string653:
+	.asciz	"second"                @ string offset=26270
+.Linfo_string654:
+	.asciz	"pair"                  @ string offset=26277
+.Linfo_string655:
+	.asciz	"_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EaSERKS2_" @ string offset=26282
+.Linfo_string656:
+	.asciz	"__wrap_nonesuch"       @ string offset=26329
+.Linfo_string657:
+	.asciz	"conditional<true, const std::pair<std::_Rb_tree_node_base *, std::_Rb_tree_node_base *> &, const std::__wrap_nonesuch &>" @ string offset=26345
+.Linfo_string658:
+	.asciz	"_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EaSERKSt15__wrap_nonesuch" @ string offset=26466
+.Linfo_string659:
+	.asciz	"conditional<false, const std::pair<std::_Rb_tree_node_base *, std::_Rb_tree_node_base *> &, const std::__wrap_nonesuch &>" @ string offset=26529
+.Linfo_string660:
+	.asciz	"_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EaSEOS2_" @ string offset=26651
+.Linfo_string661:
+	.asciz	"conditional<true, std::pair<std::_Rb_tree_node_base *, std::_Rb_tree_node_base *> &&, std::__wrap_nonesuch &&>" @ string offset=26697
+.Linfo_string662:
+	.asciz	"_ZNSt4pairIPSt18_Rb_tree_node_baseS1_E4swapERS2_" @ string offset=26808
+.Linfo_string663:
+	.asciz	"_T1"                   @ string offset=26857
+.Linfo_string664:
+	.asciz	"_T2"                   @ string offset=26861
+.Linfo_string665:
+	.asciz	"pair<std::_Rb_tree_node_base *, std::_Rb_tree_node_base *>" @ string offset=26865
+.Linfo_string666:
+	.asciz	"key_type"              @ string offset=26924
+.Linfo_string667:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE23_M_get_insert_equal_posERS7_" @ string offset=26933
+.Linfo_string668:
+	.asciz	"_M_get_insert_equal_pos" @ string offset=27084
+.Linfo_string669:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS8_ERS7_" @ string offset=27108
+.Linfo_string670:
+	.asciz	"_M_get_insert_hint_unique_pos" @ string offset=27297
+.Linfo_string671:
+	.asciz	"_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<wchar_t>, float> >" @ string offset=27327
+.Linfo_string672:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE28_M_get_insert_hint_equal_posESt23_Rb_tree_const_iteratorIS8_ERS7_" @ string offset=27413
+.Linfo_string673:
+	.asciz	"_M_get_insert_hint_equal_pos" @ string offset=27601
+.Linfo_string674:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSG_PSt13_Rb_tree_nodeIS8_E" @ string offset=27630
+.Linfo_string675:
+	.asciz	"_M_insert_node"        @ string offset=27817
+.Linfo_string676:
+	.asciz	"_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<wchar_t>, float> >" @ string offset=27832
+.Linfo_string677:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE20_M_insert_lower_nodeEPSt18_Rb_tree_node_basePSt13_Rb_tree_nodeIS8_E" @ string offset=27912
+.Linfo_string678:
+	.asciz	"_M_insert_lower_node"  @ string offset=28102
+.Linfo_string679:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE26_M_insert_equal_lower_nodeEPSt13_Rb_tree_nodeIS8_E" @ string offset=28123
+.Linfo_string680:
+	.asciz	"_M_insert_equal_lower_node" @ string offset=28296
+.Linfo_string681:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE7_M_copyEPKSt13_Rb_tree_nodeIS8_EPSt18_Rb_tree_node_base" @ string offset=28323
+.Linfo_string682:
+	.asciz	"_M_copy"               @ string offset=28500
+.Linfo_string683:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E" @ string offset=28508
+.Linfo_string684:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS8_EPSt18_Rb_tree_node_baseRS7_" @ string offset=28662
+.Linfo_string685:
+	.asciz	"_M_lower_bound"        @ string offset=28850
+.Linfo_string686:
+	.asciz	"_ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE14_M_lower_boundEPKSt13_Rb_tree_nodeIS8_EPKSt18_Rb_tree_node_baseRS7_" @ string offset=28865
+.Linfo_string687:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE14_M_upper_boundEPSt13_Rb_tree_nodeIS8_EPSt18_Rb_tree_node_baseRS7_" @ string offset=29056
+.Linfo_string688:
+	.asciz	"_M_upper_bound"        @ string offset=29244
+.Linfo_string689:
+	.asciz	"_ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE14_M_upper_boundEPKSt13_Rb_tree_nodeIS8_EPKSt18_Rb_tree_node_baseRS7_" @ string offset=29259
+.Linfo_string690:
+	.asciz	"_Rb_tree"              @ string offset=29450
+.Linfo_string691:
+	.asciz	"~_Rb_tree"             @ string offset=29459
+.Linfo_string692:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EEaSERKSE_" @ string offset=29469
+.Linfo_string693:
+	.asciz	"_ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE8key_compEv" @ string offset=29598
+.Linfo_string694:
+	.asciz	"key_comp"              @ string offset=29731
+.Linfo_string695:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE5beginEv" @ string offset=29740
+.Linfo_string696:
+	.asciz	"_ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE5beginEv" @ string offset=29869
+.Linfo_string697:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE3endEv" @ string offset=29999
+.Linfo_string698:
+	.asciz	"_ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE3endEv" @ string offset=30126
+.Linfo_string699:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE6rbeginEv" @ string offset=30254
+.Linfo_string700:
+	.asciz	"reverse_iterator<std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<wchar_t>, float> > >" @ string offset=30384
+.Linfo_string701:
+	.asciz	"_ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE6rbeginEv" @ string offset=30488
+.Linfo_string702:
+	.asciz	"reverse_iterator<std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<wchar_t>, float> > >" @ string offset=30619
+.Linfo_string703:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE4rendEv" @ string offset=30729
+.Linfo_string704:
+	.asciz	"_ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE4rendEv" @ string offset=30857
+.Linfo_string705:
+	.asciz	"_ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE5emptyEv" @ string offset=30986
+.Linfo_string706:
+	.asciz	"_ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE4sizeEv" @ string offset=31116
+.Linfo_string707:
+	.asciz	"_ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE8max_sizeEv" @ string offset=31245
+.Linfo_string708:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE4swapERSE_" @ string offset=31378
+.Linfo_string709:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS8_E" @ string offset=31509
+.Linfo_string710:
+	.asciz	"_M_erase_aux"          @ string offset=31677
+.Linfo_string711:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE12_M_erase_auxESt23_Rb_tree_const_iteratorIS8_ESG_" @ string offset=31690
+.Linfo_string712:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE5eraseB5cxx11ESt23_Rb_tree_const_iteratorIS8_E" @ string offset=31861
+.Linfo_string713:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE5eraseB5cxx11ESt17_Rb_tree_iteratorIS8_E" @ string offset=32028
+.Linfo_string714:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE5eraseERS7_" @ string offset=32189
+.Linfo_string715:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE5eraseB5cxx11ESt23_Rb_tree_const_iteratorIS8_ESG_" @ string offset=32321
+.Linfo_string716:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE5eraseEPS7_SF_" @ string offset=32491
+.Linfo_string717:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE5clearEv" @ string offset=32626
+.Linfo_string718:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE4findERS7_" @ string offset=32755
+.Linfo_string719:
+	.asciz	"find"                  @ string offset=32886
+.Linfo_string720:
+	.asciz	"_ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE4findERS7_" @ string offset=32891
+.Linfo_string721:
+	.asciz	"_ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE5countERS7_" @ string offset=33023
+.Linfo_string722:
+	.asciz	"count"                 @ string offset=33156
+.Linfo_string723:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE11lower_boundERS7_" @ string offset=33162
+.Linfo_string724:
+	.asciz	"lower_bound"           @ string offset=33301
+.Linfo_string725:
+	.asciz	"_ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE11lower_boundERS7_" @ string offset=33313
+.Linfo_string726:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE11upper_boundERS7_" @ string offset=33453
+.Linfo_string727:
+	.asciz	"upper_bound"           @ string offset=33592
+.Linfo_string728:
+	.asciz	"_ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE11upper_boundERS7_" @ string offset=33604
+.Linfo_string729:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE11equal_rangeERS7_" @ string offset=33744
+.Linfo_string730:
+	.asciz	"equal_range"           @ string offset=33883
+.Linfo_string731:
+	.asciz	"pair<std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<wchar_t>, float> >, std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<wchar_t>, float> > >" @ string offset=33895
+.Linfo_string732:
+	.asciz	"_ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE11equal_rangeERS7_" @ string offset=34073
+.Linfo_string733:
+	.asciz	"pair<std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<wchar_t>, float> >, std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<wchar_t>, float> > >" @ string offset=34213
+.Linfo_string734:
+	.asciz	"_ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE11__rb_verifyEv" @ string offset=34403
+.Linfo_string735:
+	.asciz	"__rb_verify"           @ string offset=34540
+.Linfo_string736:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EEaSEOSE_" @ string offset=34552
+.Linfo_string737:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE12_M_move_dataERSE_St17integral_constantIbLb1EE" @ string offset=34680
+.Linfo_string738:
+	.asciz	"_M_move_data"          @ string offset=34848
+.Linfo_string739:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE12_M_move_dataERSE_St17integral_constantIbLb0EE" @ string offset=34861
+.Linfo_string740:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE14_M_move_assignERSE_St17integral_constantIbLb1EE" @ string offset=35029
+.Linfo_string741:
+	.asciz	"_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEESt4pairIKS5_fESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE14_M_move_assignERSE_St17integral_constantIbLb0EE" @ string offset=35199
+.Linfo_string742:
+	.asciz	"_Key"                  @ string offset=35369
+.Linfo_string743:
+	.asciz	"_Val"                  @ string offset=35374
+.Linfo_string744:
+	.asciz	"_Select1st<std::pair<const std::__cxx11::basic_string<wchar_t>, float> >" @ string offset=35379
+.Linfo_string745:
+	.asciz	"_KeyOfValue"           @ string offset=35452
+.Linfo_string746:
+	.asciz	"_Compare"              @ string offset=35464
+.Linfo_string747:
+	.asciz	"_Rb_tree<std::__cxx11::basic_string<wchar_t>, std::pair<const std::__cxx11::basic_string<wchar_t>, float>, std::_Select1st<std::pair<const std::__cxx11::basic_string<wchar_t>, float> >, std::less<std::__cxx11::basic_string<wchar_t> >, std::allocator<std::pair<const std::__cxx11::basic_string<wchar_t>, float> > >" @ string offset=35473
+.Linfo_string748:
+	.asciz	"_Rep_type"             @ string offset=35787
+.Linfo_string749:
+	.asciz	"map"                   @ string offset=35797
+.Linfo_string750:
+	.asciz	"initializer_list<std::pair<const std::__cxx11::basic_string<wchar_t>, float> >" @ string offset=35801
+.Linfo_string751:
+	.asciz	"_ZNSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEEaSERKSC_" @ string offset=35880
+.Linfo_string752:
+	.asciz	"_ZNSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEEaSEOSC_" @ string offset=35983
+.Linfo_string753:
+	.asciz	"_ZNSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEEaSESt16initializer_listISA_E" @ string offset=36085
+.Linfo_string754:
+	.asciz	"_ZNKSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE13get_allocatorEv" @ string offset=36208
+.Linfo_string755:
+	.asciz	"_ZNSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE5beginEv" @ string offset=36321
+.Linfo_string756:
+	.asciz	"_ZNKSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE5beginEv" @ string offset=36424
+.Linfo_string757:
+	.asciz	"_ZNSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE3endEv" @ string offset=36528
+.Linfo_string758:
+	.asciz	"_ZNKSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE3endEv" @ string offset=36629
+.Linfo_string759:
+	.asciz	"_ZNSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE6rbeginEv" @ string offset=36731
+.Linfo_string760:
+	.asciz	"_ZNKSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE6rbeginEv" @ string offset=36835
+.Linfo_string761:
+	.asciz	"_ZNSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE4rendEv" @ string offset=36940
+.Linfo_string762:
+	.asciz	"_ZNKSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE4rendEv" @ string offset=37042
+.Linfo_string763:
+	.asciz	"_ZNKSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE6cbeginEv" @ string offset=37145
+.Linfo_string764:
+	.asciz	"_ZNKSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE4cendEv" @ string offset=37250
+.Linfo_string765:
+	.asciz	"_ZNKSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE7crbeginEv" @ string offset=37353
+.Linfo_string766:
+	.asciz	"_ZNKSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE5crendEv" @ string offset=37459
+.Linfo_string767:
+	.asciz	"_ZNKSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE5emptyEv" @ string offset=37563
+.Linfo_string768:
+	.asciz	"_ZNKSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE4sizeEv" @ string offset=37667
+.Linfo_string769:
+	.asciz	"_ZNKSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE8max_sizeEv" @ string offset=37770
+.Linfo_string770:
+	.asciz	"_ZNSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEEixERS9_" @ string offset=37877
+.Linfo_string771:
+	.asciz	"mapped_type"           @ string offset=37979
+.Linfo_string772:
+	.asciz	"_ZNSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEEixEOS5_" @ string offset=37991
+.Linfo_string773:
+	.asciz	"_ZNSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE2atERS9_" @ string offset=38093
+.Linfo_string774:
+	.asciz	"_ZNKSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE2atERS9_" @ string offset=38196
+.Linfo_string775:
+	.asciz	"_ZNSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE6insertERKSA_" @ string offset=38300
+.Linfo_string776:
+	.asciz	"pair<std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<wchar_t>, float> >, bool>" @ string offset=38408
+.Linfo_string777:
+	.asciz	"_ZNSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE6insertESt16initializer_listISA_E" @ string offset=38505
+.Linfo_string778:
+	.asciz	"_ZNSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE6insertESt23_Rb_tree_const_iteratorISA_ERKSA_" @ string offset=38633
+.Linfo_string779:
+	.asciz	"_ZNSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE5eraseESt23_Rb_tree_const_iteratorISA_E" @ string offset=38773
+.Linfo_string780:
+	.asciz	"_ZNSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE5eraseB5cxx11ESt17_Rb_tree_iteratorISA_E" @ string offset=38907
+.Linfo_string781:
+	.asciz	"_ZNSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE5eraseERS9_" @ string offset=39042
+.Linfo_string782:
+	.asciz	"_ZNSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE5eraseESt23_Rb_tree_const_iteratorISA_ESE_" @ string offset=39148
+.Linfo_string783:
+	.asciz	"_ZNSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE4swapERSC_" @ string offset=39285
+.Linfo_string784:
+	.asciz	"_ZNSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE5clearEv" @ string offset=39390
+.Linfo_string785:
+	.asciz	"_ZNKSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE8key_compEv" @ string offset=39493
+.Linfo_string786:
+	.asciz	"key_compare"           @ string offset=39600
+.Linfo_string787:
+	.asciz	"_ZNKSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE10value_compEv" @ string offset=39612
+.Linfo_string788:
+	.asciz	"value_comp"            @ string offset=39722
+.Linfo_string789:
+	.asciz	"value_compare"         @ string offset=39733
+.Linfo_string790:
+	.asciz	"_ZNSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE4findERS9_" @ string offset=39747
+.Linfo_string791:
+	.asciz	"_ZNKSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE4findERS9_" @ string offset=39852
+.Linfo_string792:
+	.asciz	"_ZNKSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE5countERS9_" @ string offset=39958
+.Linfo_string793:
+	.asciz	"_ZNSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE11lower_boundERS9_" @ string offset=40065
+.Linfo_string794:
+	.asciz	"_ZNKSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE11lower_boundERS9_" @ string offset=40178
+.Linfo_string795:
+	.asciz	"_ZNSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE11upper_boundERS9_" @ string offset=40292
+.Linfo_string796:
+	.asciz	"_ZNKSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE11upper_boundERS9_" @ string offset=40405
+.Linfo_string797:
+	.asciz	"_ZNSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE11equal_rangeERS9_" @ string offset=40519
+.Linfo_string798:
+	.asciz	"_ZNKSt3mapINSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEfSt4lessIS5_ESaISt4pairIKS5_fEEE11equal_rangeERS9_" @ string offset=40632
+.Linfo_string799:
+	.asciz	"map<std::__cxx11::basic_string<wchar_t>, float, std::less<std::__cxx11::basic_string<wchar_t> >, std::allocator<std::pair<const std::__cxx11::basic_string<wchar_t>, float> > >" @ string offset=40746
+.Linfo_string800:
+	.asciz	"Scope"                 @ string offset=40922
+.Linfo_string801:
+	.asciz	"~Scope"                @ string offset=40928
+.Linfo_string802:
+	.asciz	"_ZN5Scope5setupEjf"    @ string offset=40935
+.Linfo_string803:
+	.asciz	"_ZN5Scope7cleanupEv"   @ string offset=40954
+.Linfo_string804:
+	.asciz	"_ZN5Scope3logEdz"      @ string offset=40974
+.Linfo_string805:
+	.asciz	"log"                   @ string offset=40991
+.Linfo_string806:
+	.asciz	"double"                @ string offset=40995
+.Linfo_string807:
+	.asciz	"_ZN5Scope3logEPKf"     @ string offset=41002
+.Linfo_string808:
+	.asciz	"_ZN5Scope7triggerEv"   @ string offset=41020
+.Linfo_string809:
+	.asciz	"trigger"               @ string offset=41040
+.Linfo_string810:
+	.asciz	"_ZN5Scope10setTriggerENS_11TriggerModeEjNS_12TriggerSlopeEf" @ string offset=41048
+.Linfo_string811:
+	.asciz	"setTrigger"            @ string offset=41108
+.Linfo_string812:
+	.asciz	"_ZN5Scope7deallocEv"   @ string offset=41119
+.Linfo_string813:
+	.asciz	"dealloc"               @ string offset=41139
+.Linfo_string814:
+	.asciz	"_ZN5Scope5startEv"     @ string offset=41147
+.Linfo_string815:
+	.asciz	"start"                 @ string offset=41165
+.Linfo_string816:
+	.asciz	"_ZN5Scope4stopEv"      @ string offset=41171
+.Linfo_string817:
+	.asciz	"stop"                  @ string offset=41188
+.Linfo_string818:
+	.asciz	"_ZN5Scope17triggerTimeDomainEv" @ string offset=41193
+.Linfo_string819:
+	.asciz	"triggerTimeDomain"     @ string offset=41224
+.Linfo_string820:
+	.asciz	"_ZN5Scope10triggerFFTEv" @ string offset=41242
+.Linfo_string821:
+	.asciz	"triggerFFT"            @ string offset=41266
+.Linfo_string822:
+	.asciz	"_ZN5Scope9triggeredEv" @ string offset=41277
+.Linfo_string823:
+	.asciz	"triggered"             @ string offset=41299
+.Linfo_string824:
+	.asciz	"_ZN5Scope6prelogEv"    @ string offset=41309
+.Linfo_string825:
+	.asciz	"prelog"                @ string offset=41328
+.Linfo_string826:
+	.asciz	"_ZN5Scope7postlogEv"   @ string offset=41335
+.Linfo_string827:
+	.asciz	"postlog"               @ string offset=41355
+.Linfo_string828:
+	.asciz	"_ZN5Scope11setPlotModeEv" @ string offset=41363
+.Linfo_string829:
+	.asciz	"setPlotMode"           @ string offset=41388
+.Linfo_string830:
+	.asciz	"_ZN5Scope5doFFTEv"     @ string offset=41400
+.Linfo_string831:
+	.asciz	"doFFT"                 @ string offset=41418
+.Linfo_string832:
+	.asciz	"_ZN5Scope10setXParamsEv" @ string offset=41424
+.Linfo_string833:
+	.asciz	"setXParams"            @ string offset=41448
+.Linfo_string834:
+	.asciz	"_ZN5Scope23scope_control_connectedEv" @ string offset=41459
+.Linfo_string835:
+	.asciz	"scope_control_connected" @ string offset=41496
+.Linfo_string836:
+	.asciz	"_ZN5Scope18scope_control_dataEPKc" @ string offset=41520
+.Linfo_string837:
+	.asciz	"scope_control_data"    @ string offset=41554
+.Linfo_string838:
+	.asciz	"_ZN5Scope14parse_settingsEP9JSONValue" @ string offset=41573
+.Linfo_string839:
+	.asciz	"parse_settings"        @ string offset=41611
+.Linfo_string840:
+	.asciz	"JSONValue"             @ string offset=41626
+.Linfo_string841:
+	.asciz	"_ZN5Scope11triggerTaskEv" @ string offset=41636
+.Linfo_string842:
+	.asciz	"triggerTask"           @ string offset=41661
+.Linfo_string843:
+	.asciz	"_ZN5Scope10setSettingENSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEf" @ string offset=41673
+.Linfo_string844:
+	.asciz	"setSetting"            @ string offset=41749
+.Linfo_string845:
+	.asciz	"wstring"               @ string offset=41760
+.Linfo_string846:
+	.asciz	"gTriggerInterval"      @ string offset=41768
+.Linfo_string847:
+	.asciz	"gMinPulseLength"       @ string offset=41785
+.Linfo_string848:
+	.asciz	"gRescale"              @ string offset=41801
+.Linfo_string849:
+	.asciz	"gTrigDigitalOutPin"    @ string offset=41810
+.Linfo_string850:
+	.asciz	"gEchoDigitalInPin"     @ string offset=41829
+.Linfo_string851:
+	.asciz	"gTriggerCount"         @ string offset=41847
+.Linfo_string852:
+	.asciz	"gPrintfCount"          @ string offset=41861
+.Linfo_string853:
+	.asciz	"distance"              @ string offset=41874
+.Linfo_string854:
+	.asciz	"_S_single"             @ string offset=41883
+.Linfo_string855:
+	.asciz	"_S_mutex"              @ string offset=41893
+.Linfo_string856:
+	.asciz	"_S_atomic"             @ string offset=41902
+.Linfo_string857:
+	.asciz	"_Lock_policy"          @ string offset=41912
+.Linfo_string858:
+	.asciz	"LOW"                   @ string offset=41925
+.Linfo_string859:
+	.asciz	"HIGH"                  @ string offset=41929
+.Linfo_string860:
+	.asciz	"PIN_VALUE"             @ string offset=41934
+.Linfo_string861:
+	.asciz	"INPUT"                 @ string offset=41944
+.Linfo_string862:
+	.asciz	"OUTPUT"                @ string offset=41950
+.Linfo_string863:
+	.asciz	"div_t"                 @ string offset=41957
+.Linfo_string864:
+	.asciz	"quot"                  @ string offset=41963
+.Linfo_string865:
+	.asciz	"long int"              @ string offset=41968
+.Linfo_string866:
+	.asciz	"rem"                   @ string offset=41977
+.Linfo_string867:
+	.asciz	"ldiv_t"                @ string offset=41981
+.Linfo_string868:
+	.asciz	"abort"                 @ string offset=41988
+.Linfo_string869:
+	.asciz	"abs"                   @ string offset=41994
+.Linfo_string870:
+	.asciz	"atexit"                @ string offset=41998
+.Linfo_string871:
+	.asciz	"at_quick_exit"         @ string offset=42005
+.Linfo_string872:
+	.asciz	"atof"                  @ string offset=42019
+.Linfo_string873:
+	.asciz	"atoi"                  @ string offset=42024
+.Linfo_string874:
+	.asciz	"atol"                  @ string offset=42029
+.Linfo_string875:
+	.asciz	"bsearch"               @ string offset=42034
+.Linfo_string876:
+	.asciz	"__compar_fn_t"         @ string offset=42042
+.Linfo_string877:
+	.asciz	"calloc"                @ string offset=42056
+.Linfo_string878:
+	.asciz	"div"                   @ string offset=42063
+.Linfo_string879:
+	.asciz	"exit"                  @ string offset=42067
+.Linfo_string880:
+	.asciz	"free"                  @ string offset=42072
+.Linfo_string881:
+	.asciz	"getenv"                @ string offset=42077
+.Linfo_string882:
+	.asciz	"labs"                  @ string offset=42084
+.Linfo_string883:
+	.asciz	"ldiv"                  @ string offset=42089
+.Linfo_string884:
+	.asciz	"malloc"                @ string offset=42094
+.Linfo_string885:
+	.asciz	"mblen"                 @ string offset=42101
+.Linfo_string886:
+	.asciz	"mbstowcs"              @ string offset=42107
+.Linfo_string887:
+	.asciz	"wchar_t"               @ string offset=42116
+.Linfo_string888:
+	.asciz	"mbtowc"                @ string offset=42124
+.Linfo_string889:
+	.asciz	"qsort"                 @ string offset=42131
+.Linfo_string890:
+	.asciz	"quick_exit"            @ string offset=42137
+.Linfo_string891:
+	.asciz	"rand"                  @ string offset=42148
+.Linfo_string892:
+	.asciz	"realloc"               @ string offset=42153
+.Linfo_string893:
+	.asciz	"srand"                 @ string offset=42161
+.Linfo_string894:
+	.asciz	"strtod"                @ string offset=42167
+.Linfo_string895:
+	.asciz	"strtol"                @ string offset=42174
+.Linfo_string896:
+	.asciz	"strtoul"               @ string offset=42181
+.Linfo_string897:
+	.asciz	"long unsigned int"     @ string offset=42189
+.Linfo_string898:
+	.asciz	"system"                @ string offset=42207
+.Linfo_string899:
+	.asciz	"wcstombs"              @ string offset=42214
+.Linfo_string900:
+	.asciz	"wctomb"                @ string offset=42223
+.Linfo_string901:
+	.asciz	"long long int"         @ string offset=42230
+.Linfo_string902:
+	.asciz	"lldiv_t"               @ string offset=42244
+.Linfo_string903:
+	.asciz	"_Exit"                 @ string offset=42252
+.Linfo_string904:
+	.asciz	"llabs"                 @ string offset=42258
+.Linfo_string905:
+	.asciz	"lldiv"                 @ string offset=42264
+.Linfo_string906:
+	.asciz	"atoll"                 @ string offset=42270
+.Linfo_string907:
+	.asciz	"strtoll"               @ string offset=42276
+.Linfo_string908:
+	.asciz	"strtoull"              @ string offset=42284
+.Linfo_string909:
+	.asciz	"strtof"                @ string offset=42293
+.Linfo_string910:
+	.asciz	"strtold"               @ string offset=42300
+.Linfo_string911:
+	.asciz	"long double"           @ string offset=42308
+.Linfo_string912:
+	.asciz	"_ZN9__gnu_cxx3divExx"  @ string offset=42320
+.Linfo_string913:
+	.asciz	"_ZSt3absx"             @ string offset=42341
+.Linfo_string914:
+	.asciz	"__gnu_debug"           @ string offset=42351
+.Linfo_string915:
+	.asciz	"__debug"               @ string offset=42363
+.Linfo_string916:
+	.asciz	"__exception_ptr"       @ string offset=42371
+.Linfo_string917:
+	.asciz	"_M_exception_object"   @ string offset=42387
+.Linfo_string918:
+	.asciz	"exception_ptr"         @ string offset=42407
+.Linfo_string919:
+	.asciz	"_ZNSt15__exception_ptr13exception_ptr9_M_addrefEv" @ string offset=42421
+.Linfo_string920:
+	.asciz	"_M_addref"             @ string offset=42471
+.Linfo_string921:
+	.asciz	"_ZNSt15__exception_ptr13exception_ptr10_M_releaseEv" @ string offset=42481
+.Linfo_string922:
+	.asciz	"_M_release"            @ string offset=42533
+.Linfo_string923:
+	.asciz	"_ZNKSt15__exception_ptr13exception_ptr6_M_getEv" @ string offset=42544
+.Linfo_string924:
+	.asciz	"_M_get"                @ string offset=42592
+.Linfo_string925:
+	.asciz	"_ZNSt15__exception_ptr13exception_ptraSERKS0_" @ string offset=42599
+.Linfo_string926:
+	.asciz	"_ZNSt15__exception_ptr13exception_ptraSEOS0_" @ string offset=42645
+.Linfo_string927:
+	.asciz	"~exception_ptr"        @ string offset=42690
+.Linfo_string928:
+	.asciz	"_ZNSt15__exception_ptr13exception_ptr4swapERS0_" @ string offset=42705
+.Linfo_string929:
+	.asciz	"_ZNKSt15__exception_ptr13exception_ptrcvbEv" @ string offset=42753
+.Linfo_string930:
+	.asciz	"_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv" @ string offset=42797
+.Linfo_string931:
+	.asciz	"__cxa_exception_type"  @ string offset=42860
+.Linfo_string932:
+	.asciz	"type_info"             @ string offset=42881
+.Linfo_string933:
+	.asciz	"_ZSt17rethrow_exceptionNSt15__exception_ptr13exception_ptrE" @ string offset=42891
+.Linfo_string934:
+	.asciz	"rethrow_exception"     @ string offset=42951
+.Linfo_string935:
+	.asciz	"ptrdiff_t"             @ string offset=42969
+.Linfo_string936:
+	.asciz	"__count"               @ string offset=42979
+.Linfo_string937:
+	.asciz	"__value"               @ string offset=42987
+.Linfo_string938:
+	.asciz	"__wch"                 @ string offset=42995
+.Linfo_string939:
+	.asciz	"__wchb"                @ string offset=43001
+.Linfo_string940:
+	.asciz	"__mbstate_t"           @ string offset=43008
+.Linfo_string941:
+	.asciz	"mbstate_t"             @ string offset=43020
+.Linfo_string942:
+	.asciz	"wint_t"                @ string offset=43030
+.Linfo_string943:
+	.asciz	"btowc"                 @ string offset=43037
+.Linfo_string944:
+	.asciz	"fgetwc"                @ string offset=43043
+.Linfo_string945:
+	.asciz	"_flags"                @ string offset=43050
+.Linfo_string946:
+	.asciz	"_IO_read_ptr"          @ string offset=43057
+.Linfo_string947:
+	.asciz	"_IO_read_end"          @ string offset=43070
+.Linfo_string948:
+	.asciz	"_IO_read_base"         @ string offset=43083
+.Linfo_string949:
+	.asciz	"_IO_write_base"        @ string offset=43097
+.Linfo_string950:
+	.asciz	"_IO_write_ptr"         @ string offset=43112
+.Linfo_string951:
+	.asciz	"_IO_write_end"         @ string offset=43126
+.Linfo_string952:
+	.asciz	"_IO_buf_base"          @ string offset=43140
+.Linfo_string953:
+	.asciz	"_IO_buf_end"           @ string offset=43153
+.Linfo_string954:
+	.asciz	"_IO_save_base"         @ string offset=43165
+.Linfo_string955:
+	.asciz	"_IO_backup_base"       @ string offset=43179
+.Linfo_string956:
+	.asciz	"_IO_save_end"          @ string offset=43195
+.Linfo_string957:
+	.asciz	"_markers"              @ string offset=43208
+.Linfo_string958:
+	.asciz	"_IO_marker"            @ string offset=43217
+.Linfo_string959:
+	.asciz	"_chain"                @ string offset=43228
+.Linfo_string960:
+	.asciz	"_fileno"               @ string offset=43235
+.Linfo_string961:
+	.asciz	"_flags2"               @ string offset=43243
+.Linfo_string962:
+	.asciz	"_old_offset"           @ string offset=43251
+.Linfo_string963:
+	.asciz	"__off_t"               @ string offset=43263
+.Linfo_string964:
+	.asciz	"_cur_column"           @ string offset=43271
+.Linfo_string965:
+	.asciz	"unsigned short"        @ string offset=43283
+.Linfo_string966:
+	.asciz	"_vtable_offset"        @ string offset=43298
+.Linfo_string967:
+	.asciz	"signed char"           @ string offset=43313
+.Linfo_string968:
+	.asciz	"_shortbuf"             @ string offset=43325
+.Linfo_string969:
+	.asciz	"_lock"                 @ string offset=43335
+.Linfo_string970:
+	.asciz	"_IO_lock_t"            @ string offset=43341
+.Linfo_string971:
+	.asciz	"_offset"               @ string offset=43352
+.Linfo_string972:
+	.asciz	"__quad_t"              @ string offset=43360
+.Linfo_string973:
+	.asciz	"__off64_t"             @ string offset=43369
+.Linfo_string974:
+	.asciz	"__pad1"                @ string offset=43379
+.Linfo_string975:
+	.asciz	"__pad2"                @ string offset=43386
+.Linfo_string976:
+	.asciz	"__pad3"                @ string offset=43393
+.Linfo_string977:
+	.asciz	"__pad4"                @ string offset=43400
+.Linfo_string978:
+	.asciz	"__pad5"                @ string offset=43407
+.Linfo_string979:
+	.asciz	"_mode"                 @ string offset=43414
+.Linfo_string980:
+	.asciz	"_unused2"              @ string offset=43420
+.Linfo_string981:
+	.asciz	"_IO_FILE"              @ string offset=43429
+.Linfo_string982:
+	.asciz	"__FILE"                @ string offset=43438
+.Linfo_string983:
+	.asciz	"fgetws"                @ string offset=43445
+.Linfo_string984:
+	.asciz	"fputwc"                @ string offset=43452
+.Linfo_string985:
+	.asciz	"fputws"                @ string offset=43459
+.Linfo_string986:
+	.asciz	"fwide"                 @ string offset=43466
+.Linfo_string987:
+	.asciz	"fwprintf"              @ string offset=43472
+.Linfo_string988:
+	.asciz	"fwscanf"               @ string offset=43481
+.Linfo_string989:
+	.asciz	"getwc"                 @ string offset=43489
+.Linfo_string990:
+	.asciz	"getwchar"              @ string offset=43495
+.Linfo_string991:
+	.asciz	"mbrlen"                @ string offset=43504
+.Linfo_string992:
+	.asciz	"mbrtowc"               @ string offset=43511
+.Linfo_string993:
+	.asciz	"mbsinit"               @ string offset=43519
+.Linfo_string994:
+	.asciz	"mbsrtowcs"             @ string offset=43527
+.Linfo_string995:
+	.asciz	"putwc"                 @ string offset=43537
+.Linfo_string996:
+	.asciz	"putwchar"              @ string offset=43543
+.Linfo_string997:
+	.asciz	"swprintf"              @ string offset=43552
+.Linfo_string998:
+	.asciz	"swscanf"               @ string offset=43561
+.Linfo_string999:
+	.asciz	"ungetwc"               @ string offset=43569
+.Linfo_string1000:
+	.asciz	"vfwprintf"             @ string offset=43577
+.Linfo_string1001:
+	.asciz	"__ap"                  @ string offset=43587
+.Linfo_string1002:
+	.asciz	"__va_list"             @ string offset=43592
+.Linfo_string1003:
+	.asciz	"__builtin_va_list"     @ string offset=43602
+.Linfo_string1004:
+	.asciz	"__gnuc_va_list"        @ string offset=43620
+.Linfo_string1005:
+	.asciz	"vfwscanf"              @ string offset=43635
+.Linfo_string1006:
+	.asciz	"vswprintf"             @ string offset=43644
+.Linfo_string1007:
+	.asciz	"vswscanf"              @ string offset=43654
+.Linfo_string1008:
+	.asciz	"vwprintf"              @ string offset=43663
+.Linfo_string1009:
+	.asciz	"vwscanf"               @ string offset=43672
+.Linfo_string1010:
+	.asciz	"wcrtomb"               @ string offset=43680
+.Linfo_string1011:
+	.asciz	"wcscat"                @ string offset=43688
+.Linfo_string1012:
+	.asciz	"wcscmp"                @ string offset=43695
+.Linfo_string1013:
+	.asciz	"wcscoll"               @ string offset=43702
+.Linfo_string1014:
+	.asciz	"wcscpy"                @ string offset=43710
+.Linfo_string1015:
+	.asciz	"wcscspn"               @ string offset=43717
+.Linfo_string1016:
+	.asciz	"wcsftime"              @ string offset=43725
+.Linfo_string1017:
+	.asciz	"tm"                    @ string offset=43734
+.Linfo_string1018:
+	.asciz	"wcslen"                @ string offset=43737
+.Linfo_string1019:
+	.asciz	"wcsncat"               @ string offset=43744
+.Linfo_string1020:
+	.asciz	"wcsncmp"               @ string offset=43752
+.Linfo_string1021:
+	.asciz	"wcsncpy"               @ string offset=43760
+.Linfo_string1022:
+	.asciz	"wcsrtombs"             @ string offset=43768
+.Linfo_string1023:
+	.asciz	"wcsspn"                @ string offset=43778
+.Linfo_string1024:
+	.asciz	"wcstod"                @ string offset=43785
+.Linfo_string1025:
+	.asciz	"wcstof"                @ string offset=43792
+.Linfo_string1026:
+	.asciz	"wcstok"                @ string offset=43799
+.Linfo_string1027:
+	.asciz	"wcstol"                @ string offset=43806
+.Linfo_string1028:
+	.asciz	"wcstoul"               @ string offset=43813
+.Linfo_string1029:
+	.asciz	"wcsxfrm"               @ string offset=43821
+.Linfo_string1030:
+	.asciz	"wctob"                 @ string offset=43829
+.Linfo_string1031:
+	.asciz	"wmemcmp"               @ string offset=43835
+.Linfo_string1032:
+	.asciz	"wmemcpy"               @ string offset=43843
+.Linfo_string1033:
+	.asciz	"wmemmove"              @ string offset=43851
+.Linfo_string1034:
+	.asciz	"wmemset"               @ string offset=43860
+.Linfo_string1035:
+	.asciz	"wprintf"               @ string offset=43868
+.Linfo_string1036:
+	.asciz	"wscanf"                @ string offset=43876
+.Linfo_string1037:
+	.asciz	"wcschr"                @ string offset=43883
+.Linfo_string1038:
+	.asciz	"wcspbrk"               @ string offset=43890
+.Linfo_string1039:
+	.asciz	"wcsrchr"               @ string offset=43898
+.Linfo_string1040:
+	.asciz	"wcsstr"                @ string offset=43906
+.Linfo_string1041:
+	.asciz	"wmemchr"               @ string offset=43913
+.Linfo_string1042:
+	.asciz	"wcstold"               @ string offset=43921
+.Linfo_string1043:
+	.asciz	"wcstoll"               @ string offset=43929
+.Linfo_string1044:
+	.asciz	"wcstoull"              @ string offset=43937
+.Linfo_string1045:
+	.asciz	"int8_t"                @ string offset=43946
+.Linfo_string1046:
+	.asciz	"short"                 @ string offset=43953
+.Linfo_string1047:
+	.asciz	"int16_t"               @ string offset=43959
+.Linfo_string1048:
+	.asciz	"int32_t"               @ string offset=43967
+.Linfo_string1049:
+	.asciz	"int64_t"               @ string offset=43975
+.Linfo_string1050:
+	.asciz	"int_fast8_t"           @ string offset=43983
+.Linfo_string1051:
+	.asciz	"int_fast16_t"          @ string offset=43995
+.Linfo_string1052:
+	.asciz	"int_fast32_t"          @ string offset=44008
+.Linfo_string1053:
+	.asciz	"int_fast64_t"          @ string offset=44021
+.Linfo_string1054:
+	.asciz	"int_least8_t"          @ string offset=44034
+.Linfo_string1055:
+	.asciz	"int_least16_t"         @ string offset=44047
+.Linfo_string1056:
+	.asciz	"int_least32_t"         @ string offset=44061
+.Linfo_string1057:
+	.asciz	"int_least64_t"         @ string offset=44075
+.Linfo_string1058:
+	.asciz	"intmax_t"              @ string offset=44089
+.Linfo_string1059:
+	.asciz	"intptr_t"              @ string offset=44098
+.Linfo_string1060:
+	.asciz	"unsigned char"         @ string offset=44107
+.Linfo_string1061:
+	.asciz	"uint8_t"               @ string offset=44121
+.Linfo_string1062:
+	.asciz	"uint16_t"              @ string offset=44129
+.Linfo_string1063:
+	.asciz	"uint_fast8_t"          @ string offset=44138
+.Linfo_string1064:
+	.asciz	"uint_fast16_t"         @ string offset=44151
+.Linfo_string1065:
+	.asciz	"uint_fast32_t"         @ string offset=44165
+.Linfo_string1066:
+	.asciz	"uint_fast64_t"         @ string offset=44179
+.Linfo_string1067:
+	.asciz	"uint_least8_t"         @ string offset=44193
+.Linfo_string1068:
+	.asciz	"uint_least16_t"        @ string offset=44207
+.Linfo_string1069:
+	.asciz	"uint_least32_t"        @ string offset=44222
+.Linfo_string1070:
+	.asciz	"uint_least64_t"        @ string offset=44237
+.Linfo_string1071:
+	.asciz	"uintmax_t"             @ string offset=44252
+.Linfo_string1072:
+	.asciz	"uintptr_t"             @ string offset=44262
+.Linfo_string1073:
+	.asciz	"lconv"                 @ string offset=44272
+.Linfo_string1074:
+	.asciz	"setlocale"             @ string offset=44278
+.Linfo_string1075:
+	.asciz	"localeconv"            @ string offset=44288
+.Linfo_string1076:
+	.asciz	"isalnum"               @ string offset=44299
+.Linfo_string1077:
+	.asciz	"isalpha"               @ string offset=44307
+.Linfo_string1078:
+	.asciz	"iscntrl"               @ string offset=44315
+.Linfo_string1079:
+	.asciz	"isdigit"               @ string offset=44323
+.Linfo_string1080:
+	.asciz	"isgraph"               @ string offset=44331
+.Linfo_string1081:
+	.asciz	"islower"               @ string offset=44339
+.Linfo_string1082:
+	.asciz	"isprint"               @ string offset=44347
+.Linfo_string1083:
+	.asciz	"ispunct"               @ string offset=44355
+.Linfo_string1084:
+	.asciz	"isspace"               @ string offset=44363
+.Linfo_string1085:
+	.asciz	"isupper"               @ string offset=44371
+.Linfo_string1086:
+	.asciz	"isxdigit"              @ string offset=44379
+.Linfo_string1087:
+	.asciz	"tolower"               @ string offset=44388
+.Linfo_string1088:
+	.asciz	"toupper"               @ string offset=44396
+.Linfo_string1089:
+	.asciz	"isblank"               @ string offset=44404
+.Linfo_string1090:
+	.asciz	"FILE"                  @ string offset=44412
+.Linfo_string1091:
+	.asciz	"_G_fpos_t"             @ string offset=44417
+.Linfo_string1092:
+	.asciz	"fpos_t"                @ string offset=44427
+.Linfo_string1093:
+	.asciz	"clearerr"              @ string offset=44434
+.Linfo_string1094:
+	.asciz	"fclose"                @ string offset=44443
+.Linfo_string1095:
+	.asciz	"feof"                  @ string offset=44450
+.Linfo_string1096:
+	.asciz	"ferror"                @ string offset=44455
+.Linfo_string1097:
+	.asciz	"fflush"                @ string offset=44462
+.Linfo_string1098:
+	.asciz	"fgetc"                 @ string offset=44469
+.Linfo_string1099:
+	.asciz	"fgetpos"               @ string offset=44475
+.Linfo_string1100:
+	.asciz	"fgets"                 @ string offset=44483
+.Linfo_string1101:
+	.asciz	"fopen"                 @ string offset=44489
+.Linfo_string1102:
+	.asciz	"fprintf"               @ string offset=44495
+.Linfo_string1103:
+	.asciz	"fputc"                 @ string offset=44503
+.Linfo_string1104:
+	.asciz	"fputs"                 @ string offset=44509
+.Linfo_string1105:
+	.asciz	"fread"                 @ string offset=44515
+.Linfo_string1106:
+	.asciz	"freopen"               @ string offset=44521
+.Linfo_string1107:
+	.asciz	"fscanf"                @ string offset=44529
+.Linfo_string1108:
+	.asciz	"fseek"                 @ string offset=44536
+.Linfo_string1109:
+	.asciz	"fsetpos"               @ string offset=44542
+.Linfo_string1110:
+	.asciz	"ftell"                 @ string offset=44550
+.Linfo_string1111:
+	.asciz	"fwrite"                @ string offset=44556
+.Linfo_string1112:
+	.asciz	"getc"                  @ string offset=44563
+.Linfo_string1113:
+	.asciz	"getchar"               @ string offset=44568
+.Linfo_string1114:
+	.asciz	"gets"                  @ string offset=44576
+.Linfo_string1115:
+	.asciz	"perror"                @ string offset=44581
+.Linfo_string1116:
+	.asciz	"printf"                @ string offset=44588
+.Linfo_string1117:
+	.asciz	"putc"                  @ string offset=44595
+.Linfo_string1118:
+	.asciz	"putchar"               @ string offset=44600
+.Linfo_string1119:
+	.asciz	"puts"                  @ string offset=44608
+.Linfo_string1120:
+	.asciz	"remove"                @ string offset=44613
+.Linfo_string1121:
+	.asciz	"rename"                @ string offset=44620
+.Linfo_string1122:
+	.asciz	"rewind"                @ string offset=44627
+.Linfo_string1123:
+	.asciz	"scanf"                 @ string offset=44634
+.Linfo_string1124:
+	.asciz	"setbuf"                @ string offset=44640
+.Linfo_string1125:
+	.asciz	"setvbuf"               @ string offset=44647
+.Linfo_string1126:
+	.asciz	"sprintf"               @ string offset=44655
+.Linfo_string1127:
+	.asciz	"sscanf"                @ string offset=44663
+.Linfo_string1128:
+	.asciz	"tmpfile"               @ string offset=44670
+.Linfo_string1129:
+	.asciz	"tmpnam"                @ string offset=44678
+.Linfo_string1130:
+	.asciz	"ungetc"                @ string offset=44685
+.Linfo_string1131:
+	.asciz	"vfprintf"              @ string offset=44692
+.Linfo_string1132:
+	.asciz	"vprintf"               @ string offset=44701
+.Linfo_string1133:
+	.asciz	"vsprintf"              @ string offset=44709
+.Linfo_string1134:
+	.asciz	"snprintf"              @ string offset=44718
+.Linfo_string1135:
+	.asciz	"vfscanf"               @ string offset=44727
+.Linfo_string1136:
+	.asciz	"vscanf"                @ string offset=44735
+.Linfo_string1137:
+	.asciz	"vsnprintf"             @ string offset=44742
+.Linfo_string1138:
+	.asciz	"vsscanf"               @ string offset=44752
+.Linfo_string1139:
+	.asciz	"__default_lock_policy" @ string offset=44760
+.Linfo_string1140:
+	.asciz	"_ZL16digitalWriteOnceP11BelaContextiii" @ string offset=44782
+.Linfo_string1141:
+	.asciz	"digitalWriteOnce"      @ string offset=44821
+.Linfo_string1142:
+	.asciz	"context"               @ string offset=44838
+.Linfo_string1143:
+	.asciz	"frame"                 @ string offset=44846
+.Linfo_string1144:
+	.asciz	"channel"               @ string offset=44852
+.Linfo_string1145:
+	.asciz	"this"                  @ string offset=44860
+.Linfo_string1146:
+	.asciz	"_ZL7pinModeP11BelaContextiii" @ string offset=44865
+.Linfo_string1147:
+	.asciz	"pinMode"               @ string offset=44894
+.Linfo_string1148:
+	.asciz	"mode"                  @ string offset=44902
+.Linfo_string1149:
+	.asciz	"f"                     @ string offset=44907
+.Linfo_string1150:
+	.asciz	"_ZL11digitalReadP11BelaContextii" @ string offset=44909
+.Linfo_string1151:
+	.asciz	"digitalRead"           @ string offset=44942
+.Linfo_string1152:
+	.asciz	"__n"                   @ string offset=44954
+.Linfo_string1153:
+	.asciz	"_ZN7PulseInC2Ev"       @ string offset=44958
+.Linfo_string1154:
+	.asciz	"__cxx_global_var_init" @ string offset=44974
+.Linfo_string1155:
+	.asciz	"_ZNSt12_Vector_baseIiSaIiEE12_Vector_implC2Ev" @ string offset=44996
+.Linfo_string1156:
+	.asciz	"_ZNSt12_Vector_baseIiSaIiEEC2Ev" @ string offset=45042
+.Linfo_string1157:
+	.asciz	"_ZNSt6vectorIiSaIiEEC2Ev" @ string offset=45074
+.Linfo_string1158:
+	.asciz	"__cxx_global_var_init.1" @ string offset=45099
+.Linfo_string1159:
+	.asciz	"render"                @ string offset=45123
+.Linfo_string1160:
+	.asciz	"_GLOBAL__sub_I_render.ii" @ string offset=45130
+.Linfo_string1161:
+	.asciz	"userData"              @ string offset=45155
+.Linfo_string1162:
+	.asciz	"n"                     @ string offset=45164
+.Linfo_string1163:
+	.asciz	"state"                 @ string offset=45166
+.Linfo_string1164:
+	.asciz	"pulseLength"           @ string offset=45172
+.Linfo_string1165:
+	.asciz	"duration"              @ string offset=45184
+.Linfo_string1166:
+	.asciz	"dRead"                 @ string offset=45193
+	.section	.debug_loc,"",%progbits
+.Ldebug_loc0:
+	.long	.Lfunc_begin0
+	.long	.Ltmp6
+	.short	1                       @ Loc expr size
+	.byte	80                      @ DW_OP_reg0
+	.long	.Ltmp6
+	.long	.Ltmp8
+	.short	1                       @ Loc expr size
+	.byte	84                      @ DW_OP_reg4
+	.long	0
+	.long	0
+.Ldebug_loc1:
+	.long	.Lfunc_begin0
+	.long	.Ltmp7
+	.short	1                       @ Loc expr size
+	.byte	81                      @ DW_OP_reg1
+	.long	0
+	.long	0
+.Ldebug_loc2:
+	.long	.Lfunc_begin1
+	.long	.Ltmp23
+	.short	1                       @ Loc expr size
+	.byte	80                      @ DW_OP_reg0
+	.long	.Ltmp23
+	.long	.Ltmp31
+	.short	1                       @ Loc expr size
+	.byte	84                      @ DW_OP_reg4
+	.long	0
+	.long	0
+.Ldebug_loc3:
+	.long	.Lfunc_begin1
+	.long	.Ltmp30
+	.short	1                       @ Loc expr size
+	.byte	81                      @ DW_OP_reg1
+	.long	0
+	.long	0
+.Ldebug_loc4:
+	.long	.Ltmp23
+	.long	.Ltmp87
+	.short	3                       @ Loc expr size
+	.byte	16                      @ DW_OP_constu
+	.byte	0                       @ 0
+	.byte	159                     @ DW_OP_stack_value
+	.long	.Ltmp87
+	.long	.Ltmp88
+	.short	1                       @ Loc expr size
+	.byte	89                      @ DW_OP_reg9
+	.long	0
+	.long	0
+.Ldebug_loc5:
+	.long	.Ltmp31
+	.long	.Ltmp35
+	.short	3                       @ Loc expr size
+	.byte	16                      @ DW_OP_constu
+	.byte	0                       @ 0
+	.byte	159                     @ DW_OP_stack_value
+	.long	.Ltmp35
+	.long	.Ltmp36
+	.short	1                       @ Loc expr size
+	.byte	82                      @ DW_OP_reg2
+	.long	0
+	.long	0
+.Ldebug_loc6:
+	.long	.Ltmp39
+	.long	.Ltmp43
+	.short	3                       @ Loc expr size
+	.byte	16                      @ DW_OP_constu
+	.byte	0                       @ 0
+	.byte	159                     @ DW_OP_stack_value
+	.long	.Ltmp43
+	.long	.Ltmp44
+	.short	1                       @ Loc expr size
+	.byte	82                      @ DW_OP_reg2
+	.long	0
+	.long	0
+.Ldebug_loc7:
+	.long	.Ltmp45
+	.long	.Ltmp49
+	.short	3                       @ Loc expr size
+	.byte	16                      @ DW_OP_constu
+	.byte	0                       @ 0
+	.byte	159                     @ DW_OP_stack_value
+	.long	.Ltmp49
+	.long	.Ltmp50
+	.short	1                       @ Loc expr size
+	.byte	82                      @ DW_OP_reg2
+	.long	0
+	.long	0
+.Ldebug_loc8:
+	.long	.Ltmp50
+	.long	.Ltmp57
+	.short	3                       @ Loc expr size
+	.byte	16                      @ DW_OP_constu
+	.byte	1                       @ 1
+	.byte	159                     @ DW_OP_stack_value
+	.long	.Ltmp57
+	.long	.Lfunc_end1
+	.short	3                       @ Loc expr size
+	.byte	16                      @ DW_OP_constu
+	.byte	0                       @ 0
+	.byte	159                     @ DW_OP_stack_value
+	.long	0
+	.long	0
+.Ldebug_loc9:
+	.long	.Ltmp52
+	.long	.Ltmp54
+	.short	1                       @ Loc expr size
+	.byte	81                      @ DW_OP_reg1
+	.long	0
+	.long	0
+.Ldebug_loc10:
+	.long	.Ltmp59
+	.long	.Ltmp61
+	.short	1                       @ Loc expr size
+	.byte	81                      @ DW_OP_reg1
+	.long	0
+	.long	0
+.Ldebug_loc11:
+	.long	.Ltmp62
+	.long	.Ltmp62
+	.short	1                       @ Loc expr size
+	.byte	84                      @ DW_OP_reg4
+	.long	0
+	.long	0
+.Ldebug_loc12:
+	.long	.Ltmp68
+	.long	.Ltmp69
+	.short	1                       @ Loc expr size
+	.byte	80                      @ DW_OP_reg0
+	.long	0
+	.long	0
+.Ldebug_loc13:
+	.long	.Ltmp68
+	.long	.Ltmp69
+	.short	1                       @ Loc expr size
+	.byte	84                      @ DW_OP_reg4
+	.long	0
+	.long	0
+.Ldebug_loc14:
+	.long	.Ltmp74
+	.long	.Ltmp84
+	.short	1                       @ Loc expr size
+	.byte	81                      @ DW_OP_reg1
+	.long	0
+	.long	0
+.Ldebug_loc15:
+	.long	.Ltmp78
+	.long	.Ltmp79
+	.short	5                       @ Loc expr size
+	.byte	144                     @ super-register DW_OP_regx
+	.byte	128                     @ 256
+	.byte	2                       @ DW_OP_piece
+	.byte	147                     @ 4
+	.byte	4                       @ 
+	.long	0
+	.long	0
+.Ldebug_loc16:
+	.long	.Ltmp81
+	.long	.Ltmp88
+	.short	1                       @ Loc expr size
+	.byte	87                      @ DW_OP_reg7
+	.long	0
+	.long	0
+.Ldebug_loc17:
+	.long	.Ltmp98
+	.long	.Ltmp106
+	.short	1                       @ Loc expr size
+	.byte	81                      @ DW_OP_reg1
+	.long	0
+	.long	0
+	.section	.debug_abbrev,"",%progbits
+.Lsection_abbrev:
+	.byte	1                       @ Abbreviation Code
+	.byte	17                      @ DW_TAG_compile_unit
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	37                      @ DW_AT_producer
+	.byte	14                      @ DW_FORM_strp
+	.byte	19                      @ DW_AT_language
+	.byte	5                       @ DW_FORM_data2
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	16                      @ DW_AT_stmt_list
+	.byte	23                      @ DW_FORM_sec_offset
+	.byte	27                      @ DW_AT_comp_dir
+	.byte	14                      @ DW_FORM_strp
+	.byte	17                      @ DW_AT_low_pc
+	.byte	1                       @ DW_FORM_addr
+	.byte	85                      @ DW_AT_ranges
+	.byte	23                      @ DW_FORM_sec_offset
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	2                       @ Abbreviation Code
+	.byte	52                      @ DW_TAG_variable
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	2                       @ DW_AT_location
+	.byte	24                      @ DW_FORM_exprloc
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	3                       @ Abbreviation Code
+	.byte	2                       @ DW_TAG_class_type
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	29                      @ DW_AT_containing_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	11                      @ DW_AT_byte_size
+	.byte	11                      @ DW_FORM_data1
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	4                       @ Abbreviation Code
+	.byte	13                      @ DW_TAG_member
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	56                      @ DW_AT_data_member_location
+	.byte	11                      @ DW_FORM_data1
+	.byte	52                      @ DW_AT_artificial
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	5                       @ Abbreviation Code
+	.byte	13                      @ DW_TAG_member
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	56                      @ DW_AT_data_member_location
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	6                       @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	50                      @ DW_AT_accessibility
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	7                       @ Abbreviation Code
+	.byte	5                       @ DW_TAG_formal_parameter
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	52                      @ DW_AT_artificial
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	8                       @ Abbreviation Code
+	.byte	5                       @ DW_TAG_formal_parameter
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	9                       @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	110                     @ DW_AT_linkage_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	50                      @ DW_AT_accessibility
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	10                      @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	110                     @ DW_AT_linkage_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	50                      @ DW_AT_accessibility
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	11                      @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	76                      @ DW_AT_virtuality
+	.byte	11                      @ DW_FORM_data1
+	.byte	77                      @ DW_AT_vtable_elem_location
+	.byte	24                      @ DW_FORM_exprloc
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	50                      @ DW_AT_accessibility
+	.byte	11                      @ DW_FORM_data1
+	.byte	29                      @ DW_AT_containing_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	12                      @ Abbreviation Code
+	.byte	15                      @ DW_TAG_pointer_type
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	13                      @ Abbreviation Code
+	.byte	15                      @ DW_TAG_pointer_type
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	14                      @ Abbreviation Code
+	.byte	21                      @ DW_TAG_subroutine_type
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	15                      @ Abbreviation Code
+	.byte	36                      @ DW_TAG_base_type
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	62                      @ DW_AT_encoding
+	.byte	11                      @ DW_FORM_data1
+	.byte	11                      @ DW_AT_byte_size
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	16                      @ Abbreviation Code
+	.byte	57                      @ DW_TAG_namespace
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	17                      @ Abbreviation Code
+	.byte	2                       @ DW_TAG_class_type
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	11                      @ DW_AT_byte_size
+	.byte	11                      @ DW_FORM_data1
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	18                      @ Abbreviation Code
+	.byte	28                      @ DW_TAG_inheritance
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	56                      @ DW_AT_data_member_location
+	.byte	11                      @ DW_FORM_data1
+	.byte	50                      @ DW_AT_accessibility
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	19                      @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	5                       @ DW_FORM_data2
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	50                      @ DW_AT_accessibility
+	.byte	11                      @ DW_FORM_data1
+	.byte	99                      @ DW_AT_explicit
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	20                      @ Abbreviation Code
+	.byte	22                      @ DW_TAG_typedef
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	21                      @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	5                       @ DW_FORM_data2
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	50                      @ DW_AT_accessibility
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	22                      @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	110                     @ DW_AT_linkage_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	5                       @ DW_FORM_data2
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	50                      @ DW_AT_accessibility
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	23                      @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	110                     @ DW_AT_linkage_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	5                       @ DW_FORM_data2
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	50                      @ DW_AT_accessibility
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	24                      @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	110                     @ DW_AT_linkage_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	5                       @ DW_FORM_data2
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	25                      @ Abbreviation Code
+	.byte	47                      @ DW_TAG_template_type_parameter
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	26                      @ Abbreviation Code
+	.byte	19                      @ DW_TAG_structure_type
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	11                      @ DW_AT_byte_size
+	.byte	11                      @ DW_FORM_data1
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	27                      @ Abbreviation Code
+	.byte	28                      @ DW_TAG_inheritance
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	56                      @ DW_AT_data_member_location
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	28                      @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	29                      @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	110                     @ DW_AT_linkage_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	30                      @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	110                     @ DW_AT_linkage_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	31                      @ Abbreviation Code
+	.byte	19                      @ DW_TAG_structure_type
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	11                      @ DW_AT_byte_size
+	.byte	11                      @ DW_FORM_data1
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	5                       @ DW_FORM_data2
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	32                      @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	110                     @ DW_AT_linkage_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	5                       @ DW_FORM_data2
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	33                      @ Abbreviation Code
+	.byte	22                      @ DW_TAG_typedef
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	5                       @ DW_FORM_data2
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	34                      @ Abbreviation Code
+	.byte	2                       @ DW_TAG_class_type
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	35                      @ Abbreviation Code
+	.byte	13                      @ DW_TAG_member
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	28                      @ DW_AT_const_value
+	.byte	15                      @ DW_FORM_udata
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	36                      @ Abbreviation Code
+	.byte	48                      @ DW_TAG_template_value_parameter
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	28                      @ DW_AT_const_value
+	.byte	15                      @ DW_FORM_udata
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	37                      @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	50                      @ DW_AT_accessibility
+	.byte	11                      @ DW_FORM_data1
+	.byte	99                      @ DW_AT_explicit
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	38                      @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	110                     @ DW_AT_linkage_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	5                       @ DW_FORM_data2
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	50                      @ DW_AT_accessibility
+	.byte	11                      @ DW_FORM_data1
+	.byte	99                      @ DW_AT_explicit
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	39                      @ Abbreviation Code
+	.byte	2                       @ DW_TAG_class_type
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	11                      @ DW_AT_byte_size
+	.byte	11                      @ DW_FORM_data1
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	5                       @ DW_FORM_data2
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	40                      @ Abbreviation Code
+	.ascii	"\207\202\001"          @ DW_TAG_GNU_template_parameter_pack
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	41                      @ Abbreviation Code
+	.byte	47                      @ DW_TAG_template_type_parameter
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	42                      @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	99                      @ DW_AT_explicit
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	43                      @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	5                       @ DW_FORM_data2
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	44                      @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	5                       @ DW_FORM_data2
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	99                      @ DW_AT_explicit
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	45                      @ Abbreviation Code
+	.byte	19                      @ DW_TAG_structure_type
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	11                      @ DW_AT_byte_size
+	.byte	11                      @ DW_FORM_data1
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	46                      @ Abbreviation Code
+	.byte	48                      @ DW_TAG_template_value_parameter
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	28                      @ DW_AT_const_value
+	.byte	15                      @ DW_FORM_udata
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	47                      @ Abbreviation Code
+	.byte	13                      @ DW_TAG_member
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	5                       @ DW_FORM_data2
+	.byte	56                      @ DW_AT_data_member_location
+	.byte	11                      @ DW_FORM_data1
+	.byte	50                      @ DW_AT_accessibility
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	48                      @ Abbreviation Code
+	.byte	13                      @ DW_TAG_member
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	5                       @ DW_FORM_data2
+	.byte	56                      @ DW_AT_data_member_location
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	49                      @ Abbreviation Code
+	.byte	19                      @ DW_TAG_structure_type
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	50                      @ Abbreviation Code
+	.byte	2                       @ DW_TAG_class_type
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	11                      @ DW_AT_byte_size
+	.byte	11                      @ DW_FORM_data1
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	51                      @ Abbreviation Code
+	.byte	4                       @ DW_TAG_enumeration_type
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	11                      @ DW_AT_byte_size
+	.byte	11                      @ DW_FORM_data1
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	52                      @ Abbreviation Code
+	.byte	40                      @ DW_TAG_enumerator
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	28                      @ DW_AT_const_value
+	.byte	13                      @ DW_FORM_sdata
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	53                      @ Abbreviation Code
+	.byte	19                      @ DW_TAG_structure_type
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	11                      @ DW_AT_byte_size
+	.byte	11                      @ DW_FORM_data1
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	54                      @ Abbreviation Code
+	.byte	8                       @ DW_TAG_imported_declaration
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	24                      @ DW_AT_import
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	55                      @ Abbreviation Code
+	.byte	8                       @ DW_TAG_imported_declaration
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	5                       @ DW_FORM_data2
+	.byte	24                      @ DW_AT_import
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	56                      @ Abbreviation Code
+	.byte	57                      @ DW_TAG_namespace
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	57                      @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	110                     @ DW_AT_linkage_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	50                      @ DW_AT_accessibility
+	.byte	11                      @ DW_FORM_data1
+	.byte	99                      @ DW_AT_explicit
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	58                      @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	110                     @ DW_AT_linkage_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	59                      @ Abbreviation Code
+	.byte	52                      @ DW_TAG_variable
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	60                      @ Abbreviation Code
+	.byte	16                      @ DW_TAG_reference_type
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	61                      @ Abbreviation Code
+	.byte	38                      @ DW_TAG_const_type
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	62                      @ Abbreviation Code
+	.byte	38                      @ DW_TAG_const_type
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	63                      @ Abbreviation Code
+	.byte	66                      @ DW_TAG_rvalue_reference_type
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	64                      @ Abbreviation Code
+	.byte	19                      @ DW_TAG_structure_type
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	11                      @ DW_AT_byte_size
+	.byte	5                       @ DW_FORM_data2
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	65                      @ Abbreviation Code
+	.byte	13                      @ DW_TAG_member
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	5                       @ DW_FORM_data2
+	.byte	56                      @ DW_AT_data_member_location
+	.byte	5                       @ DW_FORM_data2
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	66                      @ Abbreviation Code
+	.byte	1                       @ DW_TAG_array_type
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	67                      @ Abbreviation Code
+	.byte	33                      @ DW_TAG_subrange_type
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	55                      @ DW_AT_count
+	.byte	5                       @ DW_FORM_data2
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	68                      @ Abbreviation Code
+	.byte	36                      @ DW_TAG_base_type
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	11                      @ DW_AT_byte_size
+	.byte	11                      @ DW_FORM_data1
+	.byte	62                      @ DW_AT_encoding
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	69                      @ Abbreviation Code
+	.byte	4                       @ DW_TAG_enumeration_type
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	11                      @ DW_AT_byte_size
+	.byte	11                      @ DW_FORM_data1
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	70                      @ Abbreviation Code
+	.byte	24                      @ DW_TAG_unspecified_parameters
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	71                      @ Abbreviation Code
+	.byte	53                      @ DW_TAG_volatile_type
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	72                      @ Abbreviation Code
+	.byte	19                      @ DW_TAG_structure_type
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	11                      @ DW_AT_byte_size
+	.byte	11                      @ DW_FORM_data1
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	73                      @ Abbreviation Code
+	.byte	59                      @ DW_TAG_unspecified_type
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	74                      @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	17                      @ DW_AT_low_pc
+	.byte	1                       @ DW_FORM_addr
+	.byte	18                      @ DW_AT_high_pc
+	.byte	6                       @ DW_FORM_data4
+	.byte	64                      @ DW_AT_frame_base
+	.byte	24                      @ DW_FORM_exprloc
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	75                      @ Abbreviation Code
+	.byte	52                      @ DW_TAG_variable
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	2                       @ DW_AT_location
+	.byte	24                      @ DW_FORM_exprloc
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	76                      @ Abbreviation Code
+	.byte	5                       @ DW_TAG_formal_parameter
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	2                       @ DW_AT_location
+	.byte	23                      @ DW_FORM_sec_offset
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	77                      @ Abbreviation Code
+	.byte	11                      @ DW_TAG_lexical_block
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	17                      @ DW_AT_low_pc
+	.byte	1                       @ DW_FORM_addr
+	.byte	18                      @ DW_AT_high_pc
+	.byte	6                       @ DW_FORM_data4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	78                      @ Abbreviation Code
+	.byte	52                      @ DW_TAG_variable
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	2                       @ DW_AT_location
+	.byte	23                      @ DW_FORM_sec_offset
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	79                      @ Abbreviation Code
+	.byte	29                      @ DW_TAG_inlined_subroutine
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	49                      @ DW_AT_abstract_origin
+	.byte	19                      @ DW_FORM_ref4
+	.byte	85                      @ DW_AT_ranges
+	.byte	23                      @ DW_FORM_sec_offset
+	.byte	88                      @ DW_AT_call_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	89                      @ DW_AT_call_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	80                      @ Abbreviation Code
+	.byte	5                       @ DW_TAG_formal_parameter
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	2                       @ DW_AT_location
+	.byte	23                      @ DW_FORM_sec_offset
+	.byte	49                      @ DW_AT_abstract_origin
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	81                      @ Abbreviation Code
+	.byte	5                       @ DW_TAG_formal_parameter
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	28                      @ DW_AT_const_value
+	.byte	13                      @ DW_FORM_sdata
+	.byte	49                      @ DW_AT_abstract_origin
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	82                      @ Abbreviation Code
+	.byte	52                      @ DW_TAG_variable
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	2                       @ DW_AT_location
+	.byte	23                      @ DW_FORM_sec_offset
+	.byte	49                      @ DW_AT_abstract_origin
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	83                      @ Abbreviation Code
+	.byte	29                      @ DW_TAG_inlined_subroutine
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	49                      @ DW_AT_abstract_origin
+	.byte	19                      @ DW_FORM_ref4
+	.byte	85                      @ DW_AT_ranges
+	.byte	23                      @ DW_FORM_sec_offset
+	.byte	88                      @ DW_AT_call_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	89                      @ DW_AT_call_line
+	.byte	11                      @ DW_FORM_data1
+	.ascii	"\266B"                 @ DW_AT_GNU_discriminator
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	84                      @ Abbreviation Code
+	.byte	29                      @ DW_TAG_inlined_subroutine
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	49                      @ DW_AT_abstract_origin
+	.byte	19                      @ DW_FORM_ref4
+	.byte	17                      @ DW_AT_low_pc
+	.byte	1                       @ DW_FORM_addr
+	.byte	18                      @ DW_AT_high_pc
+	.byte	6                       @ DW_FORM_data4
+	.byte	88                      @ DW_AT_call_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	89                      @ DW_AT_call_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	85                      @ Abbreviation Code
+	.byte	29                      @ DW_TAG_inlined_subroutine
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	49                      @ DW_AT_abstract_origin
+	.byte	19                      @ DW_FORM_ref4
+	.byte	85                      @ DW_AT_ranges
+	.byte	23                      @ DW_FORM_sec_offset
+	.byte	88                      @ DW_AT_call_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	89                      @ DW_AT_call_line
+	.byte	11                      @ DW_FORM_data1
+	.ascii	"\266B"                 @ DW_AT_GNU_discriminator
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	86                      @ Abbreviation Code
+	.byte	4                       @ DW_TAG_enumeration_type
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	11                      @ DW_AT_byte_size
+	.byte	11                      @ DW_FORM_data1
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	5                       @ DW_FORM_data2
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	87                      @ Abbreviation Code
+	.byte	19                      @ DW_TAG_structure_type
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	11                      @ DW_AT_byte_size
+	.byte	11                      @ DW_FORM_data1
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	88                      @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	5                       @ DW_FORM_data2
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	89                      @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	5                       @ DW_FORM_data2
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	90                      @ Abbreviation Code
+	.byte	21                      @ DW_TAG_subroutine_type
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	91                      @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	92                      @ Abbreviation Code
+	.byte	15                      @ DW_TAG_pointer_type
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	93                      @ Abbreviation Code
+	.byte	21                      @ DW_TAG_subroutine_type
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	94                      @ Abbreviation Code
+	.byte	55                      @ DW_TAG_restrict_type
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	95                      @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	5                       @ DW_FORM_data2
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	96                      @ Abbreviation Code
+	.byte	58                      @ DW_TAG_imported_module
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	24                      @ DW_AT_import
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	97                      @ Abbreviation Code
+	.byte	23                      @ DW_TAG_union_type
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	11                      @ DW_AT_byte_size
+	.byte	11                      @ DW_FORM_data1
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	98                      @ Abbreviation Code
+	.byte	33                      @ DW_TAG_subrange_type
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	55                      @ DW_AT_count
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	99                      @ Abbreviation Code
+	.byte	22                      @ DW_TAG_typedef
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	100                     @ Abbreviation Code
+	.byte	22                      @ DW_TAG_typedef
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	101                     @ Abbreviation Code
+	.byte	57                      @ DW_TAG_namespace
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	102                     @ Abbreviation Code
+	.byte	19                      @ DW_TAG_structure_type
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	11                      @ DW_AT_byte_size
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	103                     @ Abbreviation Code
+	.byte	13                      @ DW_TAG_member
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	56                      @ DW_AT_data_member_location
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	104                     @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	60                      @ DW_AT_declaration
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	105                     @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	17                      @ DW_AT_low_pc
+	.byte	1                       @ DW_FORM_addr
+	.byte	18                      @ DW_AT_high_pc
+	.byte	6                       @ DW_FORM_data4
+	.byte	64                      @ DW_AT_frame_base
+	.byte	24                      @ DW_FORM_exprloc
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	63                      @ DW_AT_external
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	106                     @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	110                     @ DW_AT_linkage_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	5                       @ DW_FORM_data2
+	.byte	32                      @ DW_AT_inline
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	107                     @ Abbreviation Code
+	.byte	5                       @ DW_TAG_formal_parameter
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	5                       @ DW_FORM_data2
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	108                     @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	71                      @ DW_AT_specification
+	.byte	19                      @ DW_FORM_ref4
+	.byte	32                      @ DW_AT_inline
+	.byte	11                      @ DW_FORM_data1
+	.byte	100                     @ DW_AT_object_pointer
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	109                     @ Abbreviation Code
+	.byte	5                       @ DW_TAG_formal_parameter
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	52                      @ DW_AT_artificial
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	110                     @ Abbreviation Code
+	.byte	5                       @ DW_TAG_formal_parameter
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	111                     @ Abbreviation Code
+	.byte	52                      @ DW_TAG_variable
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	5                       @ DW_FORM_data2
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	112                     @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	110                     @ DW_AT_linkage_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	5                       @ DW_FORM_data2
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	32                      @ DW_AT_inline
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	113                     @ Abbreviation Code
+	.byte	5                       @ DW_TAG_formal_parameter
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	2                       @ DW_AT_location
+	.byte	24                      @ DW_FORM_exprloc
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	73                      @ DW_AT_type
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	114                     @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	110                     @ DW_AT_linkage_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	71                      @ DW_AT_specification
+	.byte	19                      @ DW_FORM_ref4
+	.byte	32                      @ DW_AT_inline
+	.byte	11                      @ DW_FORM_data1
+	.byte	100                     @ DW_AT_object_pointer
+	.byte	19                      @ DW_FORM_ref4
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	115                     @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	3                       @ DW_AT_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	58                      @ DW_AT_decl_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	59                      @ DW_AT_decl_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	32                      @ DW_AT_inline
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	116                     @ Abbreviation Code
+	.byte	46                      @ DW_TAG_subprogram
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	17                      @ DW_AT_low_pc
+	.byte	1                       @ DW_FORM_addr
+	.byte	18                      @ DW_AT_high_pc
+	.byte	6                       @ DW_FORM_data4
+	.byte	64                      @ DW_AT_frame_base
+	.byte	24                      @ DW_FORM_exprloc
+	.byte	110                     @ DW_AT_linkage_name
+	.byte	14                      @ DW_FORM_strp
+	.byte	52                      @ DW_AT_artificial
+	.byte	25                      @ DW_FORM_flag_present
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	117                     @ Abbreviation Code
+	.byte	29                      @ DW_TAG_inlined_subroutine
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	49                      @ DW_AT_abstract_origin
+	.byte	19                      @ DW_FORM_ref4
+	.byte	17                      @ DW_AT_low_pc
+	.byte	1                       @ DW_FORM_addr
+	.byte	18                      @ DW_AT_high_pc
+	.byte	6                       @ DW_FORM_data4
+	.byte	88                      @ DW_AT_call_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	89                      @ DW_AT_call_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	118                     @ Abbreviation Code
+	.byte	29                      @ DW_TAG_inlined_subroutine
+	.byte	1                       @ DW_CHILDREN_yes
+	.byte	49                      @ DW_AT_abstract_origin
+	.byte	19                      @ DW_FORM_ref4
+	.byte	85                      @ DW_AT_ranges
+	.byte	23                      @ DW_FORM_sec_offset
+	.byte	88                      @ DW_AT_call_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	89                      @ DW_AT_call_line
+	.byte	5                       @ DW_FORM_data2
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	119                     @ Abbreviation Code
+	.byte	29                      @ DW_TAG_inlined_subroutine
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	49                      @ DW_AT_abstract_origin
+	.byte	19                      @ DW_FORM_ref4
+	.byte	85                      @ DW_AT_ranges
+	.byte	23                      @ DW_FORM_sec_offset
+	.byte	88                      @ DW_AT_call_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	89                      @ DW_AT_call_line
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	120                     @ Abbreviation Code
+	.byte	29                      @ DW_TAG_inlined_subroutine
+	.byte	0                       @ DW_CHILDREN_no
+	.byte	49                      @ DW_AT_abstract_origin
+	.byte	19                      @ DW_FORM_ref4
+	.byte	17                      @ DW_AT_low_pc
+	.byte	1                       @ DW_FORM_addr
+	.byte	18                      @ DW_AT_high_pc
+	.byte	6                       @ DW_FORM_data4
+	.byte	88                      @ DW_AT_call_file
+	.byte	11                      @ DW_FORM_data1
+	.byte	89                      @ DW_AT_call_line
+	.byte	11                      @ DW_FORM_data1
+	.ascii	"\266B"                 @ DW_AT_GNU_discriminator
+	.byte	11                      @ DW_FORM_data1
+	.byte	0                       @ EOM(1)
+	.byte	0                       @ EOM(2)
+	.byte	0                       @ EOM(3)
+	.section	.debug_info,"",%progbits
+.Lsection_info:
+.Lcu_begin0:
+	.long	27780                   @ Length of Unit
+	.short	4                       @ DWARF version number
+	.long	.Lsection_abbrev        @ Offset Into Abbrev. Section
+	.byte	4                       @ Address Size (in bytes)
+	.byte	1                       @ Abbrev [1] 0xb:0x6c7d DW_TAG_compile_unit
+	.long	.Linfo_string0          @ DW_AT_producer
+	.short	4                       @ DW_AT_language
+	.long	.Linfo_string1          @ DW_AT_name
+	.long	.Lline_table_start0     @ DW_AT_stmt_list
+	.long	.Linfo_string2          @ DW_AT_comp_dir
+	.long	0                       @ DW_AT_low_pc
+	.long	.Ldebug_ranges11        @ DW_AT_ranges
+	.byte	2                       @ Abbrev [2] 0x26:0x14 DW_TAG_variable
+	.long	.Linfo_string3          @ DW_AT_name
+	.long	58                      @ DW_AT_type
+                                        @ DW_AT_external
+	.byte	12                      @ DW_AT_decl_file
+	.byte	53                      @ DW_AT_decl_line
+	.byte	8                       @ DW_AT_location
+	.byte	3
+	.long	.L_MergedGlobals
+	.byte	16
+	.byte	24
+	.byte	34
+	.byte	3                       @ Abbrev [3] 0x3a:0x10a DW_TAG_class_type
+	.long	58                      @ DW_AT_containing_type
+	.long	.Linfo_string212        @ DW_AT_name
+	.byte	48                      @ DW_AT_byte_size
+	.byte	9                       @ DW_AT_decl_file
+	.byte	12                      @ DW_AT_decl_line
+	.byte	4                       @ Abbrev [4] 0x46:0xa DW_TAG_member
+	.long	.Linfo_string4          @ DW_AT_name
+	.long	324                     @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+                                        @ DW_AT_artificial
+	.byte	5                       @ Abbrev [5] 0x50:0xc DW_TAG_member
+	.long	.Linfo_string7          @ DW_AT_name
+	.long	357                     @ DW_AT_type
+	.byte	9                       @ DW_AT_decl_file
+	.byte	14                      @ DW_AT_decl_line
+	.byte	4                       @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x5c:0xc DW_TAG_member
+	.long	.Linfo_string205        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	9                       @ DW_AT_decl_file
+	.byte	15                      @ DW_AT_decl_line
+	.byte	16                      @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x68:0xc DW_TAG_member
+	.long	.Linfo_string206        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	9                       @ DW_AT_decl_file
+	.byte	16                      @ DW_AT_decl_line
+	.byte	20                      @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x74:0xc DW_TAG_member
+	.long	.Linfo_string207        @ DW_AT_name
+	.long	18432                   @ DW_AT_type
+	.byte	9                       @ DW_AT_decl_file
+	.byte	17                      @ DW_AT_decl_line
+	.byte	24                      @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x80:0xc DW_TAG_member
+	.long	.Linfo_string208        @ DW_AT_name
+	.long	18622                   @ DW_AT_type
+	.byte	9                       @ DW_AT_decl_file
+	.byte	18                      @ DW_AT_decl_line
+	.byte	32                      @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x8c:0xc DW_TAG_member
+	.long	.Linfo_string211        @ DW_AT_name
+	.long	18622                   @ DW_AT_type
+	.byte	9                       @ DW_AT_decl_file
+	.byte	19                      @ DW_AT_decl_line
+	.byte	40                      @ DW_AT_data_member_location
+	.byte	6                       @ Abbrev [6] 0x98:0xe DW_TAG_subprogram
+	.long	.Linfo_string212        @ DW_AT_name
+	.byte	9                       @ DW_AT_decl_file
+	.byte	21                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xa0:0x5 DW_TAG_formal_parameter
+	.long	18640                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0xa6:0x1d DW_TAG_subprogram
+	.long	.Linfo_string212        @ DW_AT_name
+	.byte	9                       @ DW_AT_decl_file
+	.byte	34                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xae:0x5 DW_TAG_formal_parameter
+	.long	18640                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0xb3:0x5 DW_TAG_formal_parameter
+	.long	18645                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0xb8:0x5 DW_TAG_formal_parameter
+	.long	18365                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0xbd:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	9                       @ Abbrev [9] 0xc3:0x21 DW_TAG_subprogram
+	.long	.Linfo_string241        @ DW_AT_linkage_name
+	.long	.Linfo_string242        @ DW_AT_name
+	.byte	9                       @ DW_AT_decl_file
+	.byte	49                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xcf:0x5 DW_TAG_formal_parameter
+	.long	18640                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0xd4:0x5 DW_TAG_formal_parameter
+	.long	18645                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0xd9:0x5 DW_TAG_formal_parameter
+	.long	18365                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0xde:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	9                       @ Abbrev [9] 0xe4:0x17 DW_TAG_subprogram
+	.long	.Linfo_string243        @ DW_AT_linkage_name
+	.long	.Linfo_string244        @ DW_AT_name
+	.byte	9                       @ DW_AT_decl_file
+	.byte	61                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xf0:0x5 DW_TAG_formal_parameter
+	.long	18640                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0xf5:0x5 DW_TAG_formal_parameter
+	.long	18645                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	10                      @ Abbrev [10] 0xfb:0x20 DW_TAG_subprogram
+	.long	.Linfo_string245        @ DW_AT_linkage_name
+	.long	.Linfo_string246        @ DW_AT_name
+	.byte	9                       @ DW_AT_decl_file
+	.byte	70                      @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x10b:0x5 DW_TAG_formal_parameter
+	.long	18640                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x110:0x5 DW_TAG_formal_parameter
+	.long	18645                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x115:0x5 DW_TAG_formal_parameter
+	.long	18365                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	9                       @ Abbrev [9] 0x11b:0x12 DW_TAG_subprogram
+	.long	.Linfo_string247        @ DW_AT_linkage_name
+	.long	.Linfo_string248        @ DW_AT_name
+	.byte	9                       @ DW_AT_decl_file
+	.byte	76                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x127:0x5 DW_TAG_formal_parameter
+	.long	18640                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	11                      @ Abbrev [11] 0x12d:0x16 DW_TAG_subprogram
+	.long	.Linfo_string249        @ DW_AT_name
+	.byte	9                       @ DW_AT_decl_file
+	.byte	77                      @ DW_AT_decl_line
+	.byte	1                       @ DW_AT_virtuality
+	.byte	2                       @ DW_AT_vtable_elem_location
+	.byte	16
+	.byte	0
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.long	58                      @ DW_AT_containing_type
+	.byte	7                       @ Abbrev [7] 0x13d:0x5 DW_TAG_formal_parameter
+	.long	18640                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	0                       @ End Of Children Mark
+	.byte	12                      @ Abbrev [12] 0x144:0x5 DW_TAG_pointer_type
+	.long	329                     @ DW_AT_type
+	.byte	13                      @ Abbrev [13] 0x149:0x9 DW_TAG_pointer_type
+	.long	338                     @ DW_AT_type
+	.long	.Linfo_string6          @ DW_AT_name
+	.byte	14                      @ Abbrev [14] 0x152:0x5 DW_TAG_subroutine_type
+	.long	343                     @ DW_AT_type
+	.byte	15                      @ Abbrev [15] 0x157:0x7 DW_TAG_base_type
+	.long	.Linfo_string5          @ DW_AT_name
+	.byte	5                       @ DW_AT_encoding
+	.byte	4                       @ DW_AT_byte_size
+	.byte	16                      @ Abbrev [16] 0x15e:0x3f12 DW_TAG_namespace
+	.long	.Linfo_string8          @ DW_AT_name
+	.byte	1                       @ DW_AT_decl_file
+	.byte	199                     @ DW_AT_decl_line
+	.byte	17                      @ Abbrev [17] 0x165:0x75b DW_TAG_class_type
+	.long	.Linfo_string204        @ DW_AT_name
+	.byte	12                      @ DW_AT_byte_size
+	.byte	7                       @ DW_AT_decl_file
+	.byte	214                     @ DW_AT_decl_line
+	.byte	18                      @ Abbrev [18] 0x16d:0x7 DW_TAG_inheritance
+	.long	2240                    @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	6                       @ Abbrev [6] 0x174:0xe DW_TAG_subprogram
+	.long	.Linfo_string85         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	255                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x17c:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	19                      @ Abbrev [19] 0x182:0x14 DW_TAG_subprogram
+	.long	.Linfo_string85         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	266                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+                                        @ DW_AT_explicit
+	.byte	7                       @ Abbrev [7] 0x18b:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x190:0x5 DW_TAG_formal_parameter
+	.long	18504                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x196:0xb DW_TAG_typedef
+	.long	2927                    @ DW_AT_type
+	.long	.Linfo_string36         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	240                     @ DW_AT_decl_line
+	.byte	19                      @ Abbrev [19] 0x1a1:0x19 DW_TAG_subprogram
+	.long	.Linfo_string85         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	279                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+                                        @ DW_AT_explicit
+	.byte	7                       @ Abbrev [7] 0x1aa:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1af:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x1b4:0x5 DW_TAG_formal_parameter
+	.long	18504                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	21                      @ Abbrev [21] 0x1ba:0x1e DW_TAG_subprogram
+	.long	.Linfo_string85         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	291                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1c3:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1c8:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x1cd:0x5 DW_TAG_formal_parameter
+	.long	18525                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x1d2:0x5 DW_TAG_formal_parameter
+	.long	18504                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x1d8:0xb DW_TAG_typedef
+	.long	343                     @ DW_AT_type
+	.long	.Linfo_string86         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	228                     @ DW_AT_decl_line
+	.byte	21                      @ Abbrev [21] 0x1e3:0x14 DW_TAG_subprogram
+	.long	.Linfo_string85         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	320                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1ec:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1f1:0x5 DW_TAG_formal_parameter
+	.long	18535                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	21                      @ Abbrev [21] 0x1f7:0x14 DW_TAG_subprogram
+	.long	.Linfo_string85         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	337                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x200:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x205:0x5 DW_TAG_formal_parameter
+	.long	18545                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	21                      @ Abbrev [21] 0x20b:0x19 DW_TAG_subprogram
+	.long	.Linfo_string85         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	341                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x214:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x219:0x5 DW_TAG_formal_parameter
+	.long	18535                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x21e:0x5 DW_TAG_formal_parameter
+	.long	18504                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	21                      @ Abbrev [21] 0x224:0x19 DW_TAG_subprogram
+	.long	.Linfo_string85         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	350                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x22d:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x232:0x5 DW_TAG_formal_parameter
+	.long	18545                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x237:0x5 DW_TAG_formal_parameter
+	.long	18504                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	21                      @ Abbrev [21] 0x23d:0x19 DW_TAG_subprogram
+	.long	.Linfo_string85         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	375                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x246:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x24b:0x5 DW_TAG_formal_parameter
+	.long	3021                    @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x250:0x5 DW_TAG_formal_parameter
+	.long	18504                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	21                      @ Abbrev [21] 0x256:0xf DW_TAG_subprogram
+	.long	.Linfo_string88         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	425                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x25f:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x265:0x1c DW_TAG_subprogram
+	.long	.Linfo_string89         @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	438                     @ DW_AT_decl_line
+	.long	18550                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x276:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x27b:0x5 DW_TAG_formal_parameter
+	.long	18535                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x281:0x1c DW_TAG_subprogram
+	.long	.Linfo_string91         @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	450                     @ DW_AT_decl_line
+	.long	18550                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x292:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x297:0x5 DW_TAG_formal_parameter
+	.long	18545                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x29d:0x1c DW_TAG_subprogram
+	.long	.Linfo_string92         @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	471                     @ DW_AT_decl_line
+	.long	18550                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2ae:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2b3:0x5 DW_TAG_formal_parameter
+	.long	3021                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x2b9:0x1d DW_TAG_subprogram
+	.long	.Linfo_string93         @ DW_AT_linkage_name
+	.long	.Linfo_string94         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	489                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2c6:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2cb:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x2d0:0x5 DW_TAG_formal_parameter
+	.long	18525                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x2d6:0x18 DW_TAG_subprogram
+	.long	.Linfo_string95         @ DW_AT_linkage_name
+	.long	.Linfo_string94         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	534                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2e3:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2e8:0x5 DW_TAG_formal_parameter
+	.long	3021                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2ee:0x17 DW_TAG_subprogram
+	.long	.Linfo_string96         @ DW_AT_linkage_name
+	.long	.Linfo_string97         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	548                     @ DW_AT_decl_line
+	.long	773                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2ff:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x305:0xb DW_TAG_typedef
+	.long	16963                   @ DW_AT_type
+	.long	.Linfo_string99         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	233                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x310:0x17 DW_TAG_subprogram
+	.long	.Linfo_string100        @ DW_AT_linkage_name
+	.long	.Linfo_string97         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	557                     @ DW_AT_decl_line
+	.long	807                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x321:0x5 DW_TAG_formal_parameter
+	.long	18555                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x327:0xb DW_TAG_typedef
+	.long	16968                   @ DW_AT_type
+	.long	.Linfo_string102        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	235                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x332:0x17 DW_TAG_subprogram
+	.long	.Linfo_string103        @ DW_AT_linkage_name
+	.long	.Linfo_string104        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	566                     @ DW_AT_decl_line
+	.long	773                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x343:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x349:0x17 DW_TAG_subprogram
+	.long	.Linfo_string105        @ DW_AT_linkage_name
+	.long	.Linfo_string104        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	575                     @ DW_AT_decl_line
+	.long	807                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x35a:0x5 DW_TAG_formal_parameter
+	.long	18555                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x360:0x17 DW_TAG_subprogram
+	.long	.Linfo_string106        @ DW_AT_linkage_name
+	.long	.Linfo_string107        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	584                     @ DW_AT_decl_line
+	.long	887                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x371:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x377:0xb DW_TAG_typedef
+	.long	3026                    @ DW_AT_type
+	.long	.Linfo_string109        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	237                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x382:0x17 DW_TAG_subprogram
+	.long	.Linfo_string110        @ DW_AT_linkage_name
+	.long	.Linfo_string107        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	593                     @ DW_AT_decl_line
+	.long	921                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x393:0x5 DW_TAG_formal_parameter
+	.long	18555                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x399:0xb DW_TAG_typedef
+	.long	3031                    @ DW_AT_type
+	.long	.Linfo_string112        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	236                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x3a4:0x17 DW_TAG_subprogram
+	.long	.Linfo_string113        @ DW_AT_linkage_name
+	.long	.Linfo_string114        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	602                     @ DW_AT_decl_line
+	.long	887                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3b5:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x3bb:0x17 DW_TAG_subprogram
+	.long	.Linfo_string115        @ DW_AT_linkage_name
+	.long	.Linfo_string114        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	611                     @ DW_AT_decl_line
+	.long	921                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3cc:0x5 DW_TAG_formal_parameter
+	.long	18555                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x3d2:0x17 DW_TAG_subprogram
+	.long	.Linfo_string116        @ DW_AT_linkage_name
+	.long	.Linfo_string117        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	621                     @ DW_AT_decl_line
+	.long	807                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3e3:0x5 DW_TAG_formal_parameter
+	.long	18555                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x3e9:0x17 DW_TAG_subprogram
+	.long	.Linfo_string118        @ DW_AT_linkage_name
+	.long	.Linfo_string119        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	630                     @ DW_AT_decl_line
+	.long	807                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3fa:0x5 DW_TAG_formal_parameter
+	.long	18555                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x400:0x17 DW_TAG_subprogram
+	.long	.Linfo_string120        @ DW_AT_linkage_name
+	.long	.Linfo_string121        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	639                     @ DW_AT_decl_line
+	.long	921                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x411:0x5 DW_TAG_formal_parameter
+	.long	18555                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x417:0x17 DW_TAG_subprogram
+	.long	.Linfo_string122        @ DW_AT_linkage_name
+	.long	.Linfo_string123        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	648                     @ DW_AT_decl_line
+	.long	921                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x428:0x5 DW_TAG_formal_parameter
+	.long	18555                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x42e:0x17 DW_TAG_subprogram
+	.long	.Linfo_string124        @ DW_AT_linkage_name
+	.long	.Linfo_string125        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	655                     @ DW_AT_decl_line
+	.long	18514                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x43f:0x5 DW_TAG_formal_parameter
+	.long	18555                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x445:0x17 DW_TAG_subprogram
+	.long	.Linfo_string126        @ DW_AT_linkage_name
+	.long	.Linfo_string29         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	660                     @ DW_AT_decl_line
+	.long	18514                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x456:0x5 DW_TAG_formal_parameter
+	.long	18555                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x45c:0x18 DW_TAG_subprogram
+	.long	.Linfo_string127        @ DW_AT_linkage_name
+	.long	.Linfo_string128        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	674                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x469:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x46e:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x474:0x1d DW_TAG_subprogram
+	.long	.Linfo_string129        @ DW_AT_linkage_name
+	.long	.Linfo_string128        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	694                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x481:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x486:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x48b:0x5 DW_TAG_formal_parameter
+	.long	18525                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x491:0x13 DW_TAG_subprogram
+	.long	.Linfo_string130        @ DW_AT_linkage_name
+	.long	.Linfo_string131        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	726                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x49e:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x4a4:0x17 DW_TAG_subprogram
+	.long	.Linfo_string132        @ DW_AT_linkage_name
+	.long	.Linfo_string133        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	735                     @ DW_AT_decl_line
+	.long	18514                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x4b5:0x5 DW_TAG_formal_parameter
+	.long	18555                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x4bb:0x17 DW_TAG_subprogram
+	.long	.Linfo_string134        @ DW_AT_linkage_name
+	.long	.Linfo_string135        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	744                     @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x4cc:0x5 DW_TAG_formal_parameter
+	.long	18555                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x4d2:0x18 DW_TAG_subprogram
+	.long	.Linfo_string136        @ DW_AT_linkage_name
+	.long	.Linfo_string137        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	765                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x4df:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x4e4:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x4ea:0x1c DW_TAG_subprogram
+	.long	.Linfo_string138        @ DW_AT_linkage_name
+	.long	.Linfo_string139        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	780                     @ DW_AT_decl_line
+	.long	1286                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x4fb:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x500:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x506:0xb DW_TAG_typedef
+	.long	16684                   @ DW_AT_type
+	.long	.Linfo_string18         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	231                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x511:0x1c DW_TAG_subprogram
+	.long	.Linfo_string140        @ DW_AT_linkage_name
+	.long	.Linfo_string139        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	795                     @ DW_AT_decl_line
+	.long	1325                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x522:0x5 DW_TAG_formal_parameter
+	.long	18555                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x527:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x52d:0xb DW_TAG_typedef
+	.long	16706                   @ DW_AT_type
+	.long	.Linfo_string21         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	232                     @ DW_AT_decl_line
+	.byte	23                      @ Abbrev [23] 0x538:0x18 DW_TAG_subprogram
+	.long	.Linfo_string141        @ DW_AT_linkage_name
+	.long	.Linfo_string142        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	801                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x545:0x5 DW_TAG_formal_parameter
+	.long	18555                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x54a:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x550:0x1c DW_TAG_subprogram
+	.long	.Linfo_string143        @ DW_AT_linkage_name
+	.long	.Linfo_string144        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	823                     @ DW_AT_decl_line
+	.long	1286                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x561:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x566:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x56c:0x1c DW_TAG_subprogram
+	.long	.Linfo_string145        @ DW_AT_linkage_name
+	.long	.Linfo_string144        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	841                     @ DW_AT_decl_line
+	.long	1325                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x57d:0x5 DW_TAG_formal_parameter
+	.long	18555                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x582:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x588:0x17 DW_TAG_subprogram
+	.long	.Linfo_string146        @ DW_AT_linkage_name
+	.long	.Linfo_string147        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	852                     @ DW_AT_decl_line
+	.long	1286                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x599:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x59f:0x17 DW_TAG_subprogram
+	.long	.Linfo_string148        @ DW_AT_linkage_name
+	.long	.Linfo_string147        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	860                     @ DW_AT_decl_line
+	.long	1325                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x5b0:0x5 DW_TAG_formal_parameter
+	.long	18555                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x5b6:0x17 DW_TAG_subprogram
+	.long	.Linfo_string149        @ DW_AT_linkage_name
+	.long	.Linfo_string150        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	868                     @ DW_AT_decl_line
+	.long	1286                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x5c7:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x5cd:0x17 DW_TAG_subprogram
+	.long	.Linfo_string151        @ DW_AT_linkage_name
+	.long	.Linfo_string150        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	876                     @ DW_AT_decl_line
+	.long	1325                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x5de:0x5 DW_TAG_formal_parameter
+	.long	18555                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x5e4:0x17 DW_TAG_subprogram
+	.long	.Linfo_string152        @ DW_AT_linkage_name
+	.long	.Linfo_string153        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	891                     @ DW_AT_decl_line
+	.long	18304                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x5f5:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x5fb:0x17 DW_TAG_subprogram
+	.long	.Linfo_string154        @ DW_AT_linkage_name
+	.long	.Linfo_string153        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	899                     @ DW_AT_decl_line
+	.long	18339                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x60c:0x5 DW_TAG_formal_parameter
+	.long	18555                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x612:0x18 DW_TAG_subprogram
+	.long	.Linfo_string155        @ DW_AT_linkage_name
+	.long	.Linfo_string156        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	914                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x61f:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x624:0x5 DW_TAG_formal_parameter
+	.long	18525                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x62a:0x18 DW_TAG_subprogram
+	.long	.Linfo_string157        @ DW_AT_linkage_name
+	.long	.Linfo_string156        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	932                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x637:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x63c:0x5 DW_TAG_formal_parameter
+	.long	18575                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x642:0x13 DW_TAG_subprogram
+	.long	.Linfo_string158        @ DW_AT_linkage_name
+	.long	.Linfo_string159        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	950                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x64f:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x655:0x21 DW_TAG_subprogram
+	.long	.Linfo_string160        @ DW_AT_linkage_name
+	.long	.Linfo_string161        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	985                     @ DW_AT_decl_line
+	.long	773                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x666:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x66b:0x5 DW_TAG_formal_parameter
+	.long	807                     @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x670:0x5 DW_TAG_formal_parameter
+	.long	18525                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x676:0x21 DW_TAG_subprogram
+	.long	.Linfo_string162        @ DW_AT_linkage_name
+	.long	.Linfo_string161        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1015                    @ DW_AT_decl_line
+	.long	773                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x687:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x68c:0x5 DW_TAG_formal_parameter
+	.long	807                     @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x691:0x5 DW_TAG_formal_parameter
+	.long	18575                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x697:0x21 DW_TAG_subprogram
+	.long	.Linfo_string163        @ DW_AT_linkage_name
+	.long	.Linfo_string161        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1032                    @ DW_AT_decl_line
+	.long	773                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x6a8:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x6ad:0x5 DW_TAG_formal_parameter
+	.long	807                     @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6b2:0x5 DW_TAG_formal_parameter
+	.long	3021                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x6b8:0x26 DW_TAG_subprogram
+	.long	.Linfo_string164        @ DW_AT_linkage_name
+	.long	.Linfo_string161        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1052                    @ DW_AT_decl_line
+	.long	773                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x6c9:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x6ce:0x5 DW_TAG_formal_parameter
+	.long	807                     @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6d3:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6d8:0x5 DW_TAG_formal_parameter
+	.long	18525                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x6de:0x1c DW_TAG_subprogram
+	.long	.Linfo_string165        @ DW_AT_linkage_name
+	.long	.Linfo_string166        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1147                    @ DW_AT_decl_line
+	.long	773                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x6ef:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x6f4:0x5 DW_TAG_formal_parameter
+	.long	807                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x6fa:0x21 DW_TAG_subprogram
+	.long	.Linfo_string167        @ DW_AT_linkage_name
+	.long	.Linfo_string166        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1174                    @ DW_AT_decl_line
+	.long	773                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x70b:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x710:0x5 DW_TAG_formal_parameter
+	.long	807                     @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x715:0x5 DW_TAG_formal_parameter
+	.long	807                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x71b:0x18 DW_TAG_subprogram
+	.long	.Linfo_string168        @ DW_AT_linkage_name
+	.long	.Linfo_string169        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1195                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x728:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x72d:0x5 DW_TAG_formal_parameter
+	.long	18550                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x733:0x13 DW_TAG_subprogram
+	.long	.Linfo_string170        @ DW_AT_linkage_name
+	.long	.Linfo_string171        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1209                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x740:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x746:0x1d DW_TAG_subprogram
+	.long	.Linfo_string172        @ DW_AT_linkage_name
+	.long	.Linfo_string173        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1296                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x753:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x758:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x75d:0x5 DW_TAG_formal_parameter
+	.long	18525                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x763:0x18 DW_TAG_subprogram
+	.long	.Linfo_string174        @ DW_AT_linkage_name
+	.long	.Linfo_string175        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1306                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x770:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x775:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x77b:0x1d DW_TAG_subprogram
+	.long	.Linfo_string176        @ DW_AT_linkage_name
+	.long	.Linfo_string177        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1352                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x788:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x78d:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x792:0x5 DW_TAG_formal_parameter
+	.long	18525                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x798:0x22 DW_TAG_subprogram
+	.long	.Linfo_string178        @ DW_AT_linkage_name
+	.long	.Linfo_string179        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1393                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x7a5:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x7aa:0x5 DW_TAG_formal_parameter
+	.long	773                     @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x7af:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x7b4:0x5 DW_TAG_formal_parameter
+	.long	18525                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x7ba:0x18 DW_TAG_subprogram
+	.long	.Linfo_string180        @ DW_AT_linkage_name
+	.long	.Linfo_string181        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1398                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x7c7:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x7cc:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x7d2:0x17 DW_TAG_subprogram
+	.long	.Linfo_string182        @ DW_AT_linkage_name
+	.long	.Linfo_string183        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1401                    @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x7e3:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x7e9:0x21 DW_TAG_subprogram
+	.long	.Linfo_string184        @ DW_AT_linkage_name
+	.long	.Linfo_string185        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1420                    @ DW_AT_decl_line
+	.long	2058                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x7fa:0x5 DW_TAG_formal_parameter
+	.long	18555                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x7ff:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x804:0x5 DW_TAG_formal_parameter
+	.long	18580                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x80a:0xb DW_TAG_typedef
+	.long	3010                    @ DW_AT_type
+	.long	.Linfo_string25         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	238                     @ DW_AT_decl_line
+	.byte	23                      @ Abbrev [23] 0x815:0x18 DW_TAG_subprogram
+	.long	.Linfo_string187        @ DW_AT_linkage_name
+	.long	.Linfo_string188        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1434                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x822:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x827:0x5 DW_TAG_formal_parameter
+	.long	2093                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x82d:0xb DW_TAG_typedef
+	.long	2393                    @ DW_AT_type
+	.long	.Linfo_string13         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	229                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x838:0x1c DW_TAG_subprogram
+	.long	.Linfo_string189        @ DW_AT_linkage_name
+	.long	.Linfo_string190        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1441                    @ DW_AT_decl_line
+	.long	773                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x849:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x84e:0x5 DW_TAG_formal_parameter
+	.long	773                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x854:0x21 DW_TAG_subprogram
+	.long	.Linfo_string191        @ DW_AT_linkage_name
+	.long	.Linfo_string190        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1444                    @ DW_AT_decl_line
+	.long	773                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x865:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x86a:0x5 DW_TAG_formal_parameter
+	.long	773                     @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x86f:0x5 DW_TAG_formal_parameter
+	.long	773                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	24                      @ Abbrev [24] 0x875:0x1c DW_TAG_subprogram
+	.long	.Linfo_string192        @ DW_AT_linkage_name
+	.long	.Linfo_string193        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1452                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x881:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x886:0x5 DW_TAG_formal_parameter
+	.long	18545                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x88b:0x5 DW_TAG_formal_parameter
+	.long	3036                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	24                      @ Abbrev [24] 0x891:0x1c DW_TAG_subprogram
+	.long	.Linfo_string200        @ DW_AT_linkage_name
+	.long	.Linfo_string193        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1463                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x89d:0x5 DW_TAG_formal_parameter
+	.long	18499                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x8a2:0x5 DW_TAG_formal_parameter
+	.long	18545                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x8a7:0x5 DW_TAG_formal_parameter
+	.long	3119                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	25                      @ Abbrev [25] 0x8ad:0x9 DW_TAG_template_type_parameter
+	.long	343                     @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	25                      @ Abbrev [25] 0x8b6:0x9 DW_TAG_template_type_parameter
+	.long	2927                    @ DW_AT_type
+	.long	.Linfo_string43         @ DW_AT_name
+	.byte	0                       @ End Of Children Mark
+	.byte	26                      @ Abbrev [26] 0x8c0:0x1dd DW_TAG_structure_type
+	.long	.Linfo_string84         @ DW_AT_name
+	.byte	12                      @ DW_AT_byte_size
+	.byte	7                       @ DW_AT_decl_file
+	.byte	72                      @ DW_AT_decl_line
+	.byte	5                       @ Abbrev [5] 0x8c8:0xc DW_TAG_member
+	.long	.Linfo_string9          @ DW_AT_name
+	.long	2260                    @ DW_AT_type
+	.byte	7                       @ DW_AT_decl_file
+	.byte	164                     @ DW_AT_decl_line
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	26                      @ Abbrev [26] 0x8d4:0x7a DW_TAG_structure_type
+	.long	.Linfo_string68         @ DW_AT_name
+	.byte	12                      @ DW_AT_byte_size
+	.byte	7                       @ DW_AT_decl_file
+	.byte	79                      @ DW_AT_decl_line
+	.byte	27                      @ Abbrev [27] 0x8dc:0x6 DW_TAG_inheritance
+	.long	2382                    @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x8e2:0xc DW_TAG_member
+	.long	.Linfo_string65         @ DW_AT_name
+	.long	2393                    @ DW_AT_type
+	.byte	7                       @ DW_AT_decl_file
+	.byte	82                      @ DW_AT_decl_line
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x8ee:0xc DW_TAG_member
+	.long	.Linfo_string66         @ DW_AT_name
+	.long	2393                    @ DW_AT_type
+	.byte	7                       @ DW_AT_decl_file
+	.byte	83                      @ DW_AT_decl_line
+	.byte	4                       @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x8fa:0xc DW_TAG_member
+	.long	.Linfo_string67         @ DW_AT_name
+	.long	2393                    @ DW_AT_type
+	.byte	7                       @ DW_AT_decl_file
+	.byte	84                      @ DW_AT_decl_line
+	.byte	8                       @ DW_AT_data_member_location
+	.byte	28                      @ Abbrev [28] 0x906:0xd DW_TAG_subprogram
+	.long	.Linfo_string68         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	86                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x90d:0x5 DW_TAG_formal_parameter
+	.long	18439                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x913:0x12 DW_TAG_subprogram
+	.long	.Linfo_string68         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	90                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x91a:0x5 DW_TAG_formal_parameter
+	.long	18439                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x91f:0x5 DW_TAG_formal_parameter
+	.long	18444                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x925:0x12 DW_TAG_subprogram
+	.long	.Linfo_string68         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	95                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x92c:0x5 DW_TAG_formal_parameter
+	.long	18439                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x931:0x5 DW_TAG_formal_parameter
+	.long	18454                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	29                      @ Abbrev [29] 0x937:0x16 DW_TAG_subprogram
+	.long	.Linfo_string69         @ DW_AT_linkage_name
+	.long	.Linfo_string70         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	101                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x942:0x5 DW_TAG_formal_parameter
+	.long	18439                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x947:0x5 DW_TAG_formal_parameter
+	.long	18459                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x94e:0xb DW_TAG_typedef
+	.long	16661                   @ DW_AT_type
+	.long	.Linfo_string64         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	75                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x959:0xb DW_TAG_typedef
+	.long	16673                   @ DW_AT_type
+	.long	.Linfo_string13         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	77                      @ DW_AT_decl_line
+	.byte	30                      @ Abbrev [30] 0x964:0x15 DW_TAG_subprogram
+	.long	.Linfo_string71         @ DW_AT_linkage_name
+	.long	.Linfo_string72         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	113                     @ DW_AT_decl_line
+	.long	18464                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x973:0x5 DW_TAG_formal_parameter
+	.long	18469                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	30                      @ Abbrev [30] 0x979:0x15 DW_TAG_subprogram
+	.long	.Linfo_string73         @ DW_AT_linkage_name
+	.long	.Linfo_string72         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	117                     @ DW_AT_decl_line
+	.long	18444                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x988:0x5 DW_TAG_formal_parameter
+	.long	18474                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	30                      @ Abbrev [30] 0x98e:0x15 DW_TAG_subprogram
+	.long	.Linfo_string74         @ DW_AT_linkage_name
+	.long	.Linfo_string75         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	121                     @ DW_AT_decl_line
+	.long	2467                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x99d:0x5 DW_TAG_formal_parameter
+	.long	18474                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x9a3:0xb DW_TAG_typedef
+	.long	2927                    @ DW_AT_type
+	.long	.Linfo_string36         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	110                     @ DW_AT_decl_line
+	.byte	28                      @ Abbrev [28] 0x9ae:0xd DW_TAG_subprogram
+	.long	.Linfo_string76         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	124                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x9b5:0x5 DW_TAG_formal_parameter
+	.long	18469                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x9bb:0x12 DW_TAG_subprogram
+	.long	.Linfo_string76         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	127                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x9c2:0x5 DW_TAG_formal_parameter
+	.long	18469                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x9c7:0x5 DW_TAG_formal_parameter
+	.long	18484                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x9cd:0x12 DW_TAG_subprogram
+	.long	.Linfo_string76         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	130                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x9d4:0x5 DW_TAG_formal_parameter
+	.long	18469                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x9d9:0x5 DW_TAG_formal_parameter
+	.long	3010                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x9df:0x17 DW_TAG_subprogram
+	.long	.Linfo_string76         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	134                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x9e6:0x5 DW_TAG_formal_parameter
+	.long	18469                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x9eb:0x5 DW_TAG_formal_parameter
+	.long	3010                    @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x9f0:0x5 DW_TAG_formal_parameter
+	.long	18484                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x9f6:0x12 DW_TAG_subprogram
+	.long	.Linfo_string76         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	139                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x9fd:0x5 DW_TAG_formal_parameter
+	.long	18469                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0xa02:0x5 DW_TAG_formal_parameter
+	.long	18454                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0xa08:0x12 DW_TAG_subprogram
+	.long	.Linfo_string76         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	142                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0xa0f:0x5 DW_TAG_formal_parameter
+	.long	18469                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0xa14:0x5 DW_TAG_formal_parameter
+	.long	18494                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0xa1a:0x17 DW_TAG_subprogram
+	.long	.Linfo_string76         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	146                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0xa21:0x5 DW_TAG_formal_parameter
+	.long	18469                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0xa26:0x5 DW_TAG_formal_parameter
+	.long	18494                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0xa2b:0x5 DW_TAG_formal_parameter
+	.long	18484                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0xa31:0xd DW_TAG_subprogram
+	.long	.Linfo_string77         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	159                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0xa38:0x5 DW_TAG_formal_parameter
+	.long	18469                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	30                      @ Abbrev [30] 0xa3e:0x1a DW_TAG_subprogram
+	.long	.Linfo_string78         @ DW_AT_linkage_name
+	.long	.Linfo_string79         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	167                     @ DW_AT_decl_line
+	.long	2393                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0xa4d:0x5 DW_TAG_formal_parameter
+	.long	18469                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0xa52:0x5 DW_TAG_formal_parameter
+	.long	3010                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	29                      @ Abbrev [29] 0xa58:0x1b DW_TAG_subprogram
+	.long	.Linfo_string80         @ DW_AT_linkage_name
+	.long	.Linfo_string81         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	174                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0xa63:0x5 DW_TAG_formal_parameter
+	.long	18469                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0xa68:0x5 DW_TAG_formal_parameter
+	.long	2393                    @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0xa6d:0x5 DW_TAG_formal_parameter
+	.long	3010                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	9                       @ Abbrev [9] 0xa73:0x17 DW_TAG_subprogram
+	.long	.Linfo_string82         @ DW_AT_linkage_name
+	.long	.Linfo_string83         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	183                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	3                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_private
+	.byte	7                       @ Abbrev [7] 0xa7f:0x5 DW_TAG_formal_parameter
+	.long	18469                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0xa84:0x5 DW_TAG_formal_parameter
+	.long	3010                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	25                      @ Abbrev [25] 0xa8a:0x9 DW_TAG_template_type_parameter
+	.long	343                     @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	25                      @ Abbrev [25] 0xa93:0x9 DW_TAG_template_type_parameter
+	.long	2927                    @ DW_AT_type
+	.long	.Linfo_string43         @ DW_AT_name
+	.byte	0                       @ End Of Children Mark
+	.byte	31                      @ Abbrev [31] 0xa9d:0xd2 DW_TAG_structure_type
+	.long	.Linfo_string44         @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	2                       @ DW_AT_decl_file
+	.short	384                     @ DW_AT_decl_line
+	.byte	32                      @ Abbrev [32] 0xaa6:0x1b DW_TAG_subprogram
+	.long	.Linfo_string11         @ DW_AT_linkage_name
+	.long	.Linfo_string12         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	435                     @ DW_AT_decl_line
+	.long	2753                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0xab6:0x5 DW_TAG_formal_parameter
+	.long	18309                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0xabb:0x5 DW_TAG_formal_parameter
+	.long	18393                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	33                      @ Abbrev [33] 0xac1:0xc DW_TAG_typedef
+	.long	18304                   @ DW_AT_type
+	.long	.Linfo_string13         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	392                     @ DW_AT_decl_line
+	.byte	33                      @ Abbrev [33] 0xacd:0xc DW_TAG_typedef
+	.long	2927                    @ DW_AT_type
+	.long	.Linfo_string36         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	387                     @ DW_AT_decl_line
+	.byte	32                      @ Abbrev [32] 0xad9:0x20 DW_TAG_subprogram
+	.long	.Linfo_string37         @ DW_AT_linkage_name
+	.long	.Linfo_string12         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	449                     @ DW_AT_decl_line
+	.long	2753                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0xae9:0x5 DW_TAG_formal_parameter
+	.long	18309                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0xaee:0x5 DW_TAG_formal_parameter
+	.long	18393                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0xaf3:0x5 DW_TAG_formal_parameter
+	.long	18405                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	24                      @ Abbrev [24] 0xaf9:0x1c DW_TAG_subprogram
+	.long	.Linfo_string39         @ DW_AT_linkage_name
+	.long	.Linfo_string27         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	461                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0xb05:0x5 DW_TAG_formal_parameter
+	.long	18309                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0xb0a:0x5 DW_TAG_formal_parameter
+	.long	2753                    @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0xb0f:0x5 DW_TAG_formal_parameter
+	.long	18393                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	32                      @ Abbrev [32] 0xb15:0x16 DW_TAG_subprogram
+	.long	.Linfo_string40         @ DW_AT_linkage_name
+	.long	.Linfo_string29         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	495                     @ DW_AT_decl_line
+	.long	2859                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0xb25:0x5 DW_TAG_formal_parameter
+	.long	18417                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	33                      @ Abbrev [33] 0xb2b:0xc DW_TAG_typedef
+	.long	3010                    @ DW_AT_type
+	.long	.Linfo_string25         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	407                     @ DW_AT_decl_line
+	.byte	32                      @ Abbrev [32] 0xb37:0x16 DW_TAG_subprogram
+	.long	.Linfo_string41         @ DW_AT_linkage_name
+	.long	.Linfo_string42         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	504                     @ DW_AT_decl_line
+	.long	2765                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0xb47:0x5 DW_TAG_formal_parameter
+	.long	18417                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	25                      @ Abbrev [25] 0xb4d:0x9 DW_TAG_template_type_parameter
+	.long	2927                    @ DW_AT_type
+	.long	.Linfo_string43         @ DW_AT_name
+	.byte	33                      @ Abbrev [33] 0xb56:0xc DW_TAG_typedef
+	.long	2927                    @ DW_AT_type
+	.long	.Linfo_string62         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	422                     @ DW_AT_decl_line
+	.byte	33                      @ Abbrev [33] 0xb62:0xc DW_TAG_typedef
+	.long	343                     @ DW_AT_type
+	.long	.Linfo_string86         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	389                     @ DW_AT_decl_line
+	.byte	0                       @ End Of Children Mark
+	.byte	17                      @ Abbrev [17] 0xb6f:0x48 DW_TAG_class_type
+	.long	.Linfo_string35         @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	5                       @ DW_AT_decl_file
+	.byte	108                     @ DW_AT_decl_line
+	.byte	18                      @ Abbrev [18] 0xb77:0x7 DW_TAG_inheritance
+	.long	2999                    @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	6                       @ Abbrev [6] 0xb7e:0xe DW_TAG_subprogram
+	.long	.Linfo_string33         @ DW_AT_name
+	.byte	5                       @ DW_AT_decl_file
+	.byte	131                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xb86:0x5 DW_TAG_formal_parameter
+	.long	18378                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0xb8c:0x13 DW_TAG_subprogram
+	.long	.Linfo_string33         @ DW_AT_name
+	.byte	5                       @ DW_AT_decl_file
+	.byte	133                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xb94:0x5 DW_TAG_formal_parameter
+	.long	18378                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0xb99:0x5 DW_TAG_formal_parameter
+	.long	18383                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0xb9f:0xe DW_TAG_subprogram
+	.long	.Linfo_string34         @ DW_AT_name
+	.byte	5                       @ DW_AT_decl_file
+	.byte	139                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xba7:0x5 DW_TAG_formal_parameter
+	.long	18378                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	25                      @ Abbrev [25] 0xbad:0x9 DW_TAG_template_type_parameter
+	.long	343                     @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0xbb7:0xb DW_TAG_typedef
+	.long	16718                   @ DW_AT_type
+	.long	.Linfo_string32         @ DW_AT_name
+	.byte	4                       @ DW_AT_decl_file
+	.byte	48                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0xbc2:0xb DW_TAG_typedef
+	.long	18365                   @ DW_AT_type
+	.long	.Linfo_string24         @ DW_AT_name
+	.byte	1                       @ DW_AT_decl_file
+	.byte	201                     @ DW_AT_decl_line
+	.byte	34                      @ Abbrev [34] 0xbcd:0x5 DW_TAG_class_type
+	.long	.Linfo_string87         @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	34                      @ Abbrev [34] 0xbd2:0x5 DW_TAG_class_type
+	.long	.Linfo_string108        @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	34                      @ Abbrev [34] 0xbd7:0x5 DW_TAG_class_type
+	.long	.Linfo_string111        @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	20                      @ Abbrev [20] 0xbdc:0xb DW_TAG_typedef
+	.long	3047                    @ DW_AT_type
+	.long	.Linfo_string199        @ DW_AT_name
+	.byte	8                       @ DW_AT_decl_file
+	.byte	87                      @ DW_AT_decl_line
+	.byte	26                      @ Abbrev [26] 0xbe7:0x48 DW_TAG_structure_type
+	.long	.Linfo_string198        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	8                       @ DW_AT_decl_file
+	.byte	69                      @ DW_AT_decl_line
+	.byte	35                      @ Abbrev [35] 0xbef:0xc DW_TAG_member
+	.long	.Linfo_string194        @ DW_AT_name
+	.long	18597                   @ DW_AT_type
+	.byte	8                       @ DW_AT_decl_file
+	.byte	71                      @ DW_AT_decl_line
+                                        @ DW_AT_external
+                                        @ DW_AT_declaration
+	.byte	1                       @ DW_AT_const_value
+	.byte	30                      @ Abbrev [30] 0xbfb:0x15 DW_TAG_subprogram
+	.long	.Linfo_string195        @ DW_AT_linkage_name
+	.long	.Linfo_string196        @ DW_AT_name
+	.byte	8                       @ DW_AT_decl_file
+	.byte	74                      @ DW_AT_decl_line
+	.long	3088                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0xc0a:0x5 DW_TAG_formal_parameter
+	.long	18602                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0xc10:0xb DW_TAG_typedef
+	.long	18432                   @ DW_AT_type
+	.long	.Linfo_string86         @ DW_AT_name
+	.byte	8                       @ DW_AT_decl_file
+	.byte	72                      @ DW_AT_decl_line
+	.byte	25                      @ Abbrev [25] 0xc1b:0x9 DW_TAG_template_type_parameter
+	.long	18432                   @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	36                      @ Abbrev [36] 0xc24:0xa DW_TAG_template_value_parameter
+	.long	18432                   @ DW_AT_type
+	.long	.Linfo_string197        @ DW_AT_name
+	.byte	1                       @ DW_AT_const_value
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0xc2f:0xb DW_TAG_typedef
+	.long	3130                    @ DW_AT_type
+	.long	.Linfo_string203        @ DW_AT_name
+	.byte	8                       @ DW_AT_decl_file
+	.byte	90                      @ DW_AT_decl_line
+	.byte	26                      @ Abbrev [26] 0xc3a:0x48 DW_TAG_structure_type
+	.long	.Linfo_string202        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	8                       @ DW_AT_decl_file
+	.byte	69                      @ DW_AT_decl_line
+	.byte	35                      @ Abbrev [35] 0xc42:0xc DW_TAG_member
+	.long	.Linfo_string194        @ DW_AT_name
+	.long	18597                   @ DW_AT_type
+	.byte	8                       @ DW_AT_decl_file
+	.byte	71                      @ DW_AT_decl_line
+                                        @ DW_AT_external
+                                        @ DW_AT_declaration
+	.byte	0                       @ DW_AT_const_value
+	.byte	30                      @ Abbrev [30] 0xc4e:0x15 DW_TAG_subprogram
+	.long	.Linfo_string201        @ DW_AT_linkage_name
+	.long	.Linfo_string196        @ DW_AT_name
+	.byte	8                       @ DW_AT_decl_file
+	.byte	74                      @ DW_AT_decl_line
+	.long	3171                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0xc5d:0x5 DW_TAG_formal_parameter
+	.long	18612                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0xc63:0xb DW_TAG_typedef
+	.long	18432                   @ DW_AT_type
+	.long	.Linfo_string86         @ DW_AT_name
+	.byte	8                       @ DW_AT_decl_file
+	.byte	72                      @ DW_AT_decl_line
+	.byte	25                      @ Abbrev [25] 0xc6e:0x9 DW_TAG_template_type_parameter
+	.long	18432                   @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	36                      @ Abbrev [36] 0xc77:0xa DW_TAG_template_value_parameter
+	.long	18432                   @ DW_AT_type
+	.long	.Linfo_string197        @ DW_AT_name
+	.byte	0                       @ DW_AT_const_value
+	.byte	0                       @ End Of Children Mark
+	.byte	17                      @ Abbrev [17] 0xc82:0x75b DW_TAG_class_type
+	.long	.Linfo_string380        @ DW_AT_name
+	.byte	12                      @ DW_AT_byte_size
+	.byte	7                       @ DW_AT_decl_file
+	.byte	214                     @ DW_AT_decl_line
+	.byte	18                      @ Abbrev [18] 0xc8a:0x7 DW_TAG_inheritance
+	.long	5085                    @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	6                       @ Abbrev [6] 0xc91:0xe DW_TAG_subprogram
+	.long	.Linfo_string85         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	255                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xc99:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	19                      @ Abbrev [19] 0xc9f:0x14 DW_TAG_subprogram
+	.long	.Linfo_string85         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	266                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+                                        @ DW_AT_explicit
+	.byte	7                       @ Abbrev [7] 0xca8:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0xcad:0x5 DW_TAG_formal_parameter
+	.long	20418                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0xcb3:0xb DW_TAG_typedef
+	.long	5772                    @ DW_AT_type
+	.long	.Linfo_string36         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	240                     @ DW_AT_decl_line
+	.byte	19                      @ Abbrev [19] 0xcbe:0x19 DW_TAG_subprogram
+	.long	.Linfo_string85         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	279                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+                                        @ DW_AT_explicit
+	.byte	7                       @ Abbrev [7] 0xcc7:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0xccc:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0xcd1:0x5 DW_TAG_formal_parameter
+	.long	20418                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	21                      @ Abbrev [21] 0xcd7:0x1e DW_TAG_subprogram
+	.long	.Linfo_string85         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	291                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xce0:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0xce5:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0xcea:0x5 DW_TAG_formal_parameter
+	.long	20428                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0xcef:0x5 DW_TAG_formal_parameter
+	.long	20418                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0xcf5:0xb DW_TAG_typedef
+	.long	18995                   @ DW_AT_type
+	.long	.Linfo_string86         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	228                     @ DW_AT_decl_line
+	.byte	21                      @ Abbrev [21] 0xd00:0x14 DW_TAG_subprogram
+	.long	.Linfo_string85         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	320                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xd09:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0xd0e:0x5 DW_TAG_formal_parameter
+	.long	20438                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	21                      @ Abbrev [21] 0xd14:0x14 DW_TAG_subprogram
+	.long	.Linfo_string85         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	337                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xd1d:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0xd22:0x5 DW_TAG_formal_parameter
+	.long	20448                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	21                      @ Abbrev [21] 0xd28:0x19 DW_TAG_subprogram
+	.long	.Linfo_string85         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	341                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xd31:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0xd36:0x5 DW_TAG_formal_parameter
+	.long	20438                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0xd3b:0x5 DW_TAG_formal_parameter
+	.long	20418                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	21                      @ Abbrev [21] 0xd41:0x19 DW_TAG_subprogram
+	.long	.Linfo_string85         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	350                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xd4a:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0xd4f:0x5 DW_TAG_formal_parameter
+	.long	20448                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0xd54:0x5 DW_TAG_formal_parameter
+	.long	20418                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	21                      @ Abbrev [21] 0xd5a:0x19 DW_TAG_subprogram
+	.long	.Linfo_string85         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	375                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xd63:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0xd68:0x5 DW_TAG_formal_parameter
+	.long	5855                    @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0xd6d:0x5 DW_TAG_formal_parameter
+	.long	20418                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	21                      @ Abbrev [21] 0xd73:0xf DW_TAG_subprogram
+	.long	.Linfo_string88         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	425                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xd7c:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0xd82:0x1c DW_TAG_subprogram
+	.long	.Linfo_string317        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	438                     @ DW_AT_decl_line
+	.long	20453                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xd93:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0xd98:0x5 DW_TAG_formal_parameter
+	.long	20438                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0xd9e:0x1c DW_TAG_subprogram
+	.long	.Linfo_string318        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	450                     @ DW_AT_decl_line
+	.long	20453                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xdaf:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0xdb4:0x5 DW_TAG_formal_parameter
+	.long	20448                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0xdba:0x1c DW_TAG_subprogram
+	.long	.Linfo_string319        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	471                     @ DW_AT_decl_line
+	.long	20453                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xdcb:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0xdd0:0x5 DW_TAG_formal_parameter
+	.long	5855                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0xdd6:0x1d DW_TAG_subprogram
+	.long	.Linfo_string320        @ DW_AT_linkage_name
+	.long	.Linfo_string94         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	489                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xde3:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0xde8:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0xded:0x5 DW_TAG_formal_parameter
+	.long	20428                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0xdf3:0x18 DW_TAG_subprogram
+	.long	.Linfo_string321        @ DW_AT_linkage_name
+	.long	.Linfo_string94         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	534                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xe00:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0xe05:0x5 DW_TAG_formal_parameter
+	.long	5855                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0xe0b:0x17 DW_TAG_subprogram
+	.long	.Linfo_string322        @ DW_AT_linkage_name
+	.long	.Linfo_string97         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	548                     @ DW_AT_decl_line
+	.long	3618                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xe1c:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0xe22:0xb DW_TAG_typedef
+	.long	17433                   @ DW_AT_type
+	.long	.Linfo_string99         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	233                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0xe2d:0x17 DW_TAG_subprogram
+	.long	.Linfo_string324        @ DW_AT_linkage_name
+	.long	.Linfo_string97         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	557                     @ DW_AT_decl_line
+	.long	3652                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xe3e:0x5 DW_TAG_formal_parameter
+	.long	20458                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0xe44:0xb DW_TAG_typedef
+	.long	17438                   @ DW_AT_type
+	.long	.Linfo_string102        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	235                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0xe4f:0x17 DW_TAG_subprogram
+	.long	.Linfo_string326        @ DW_AT_linkage_name
+	.long	.Linfo_string104        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	566                     @ DW_AT_decl_line
+	.long	3618                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xe60:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0xe66:0x17 DW_TAG_subprogram
+	.long	.Linfo_string327        @ DW_AT_linkage_name
+	.long	.Linfo_string104        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	575                     @ DW_AT_decl_line
+	.long	3652                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xe77:0x5 DW_TAG_formal_parameter
+	.long	20458                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0xe7d:0x17 DW_TAG_subprogram
+	.long	.Linfo_string328        @ DW_AT_linkage_name
+	.long	.Linfo_string107        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	584                     @ DW_AT_decl_line
+	.long	3732                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xe8e:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0xe94:0xb DW_TAG_typedef
+	.long	5860                    @ DW_AT_type
+	.long	.Linfo_string109        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	237                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0xe9f:0x17 DW_TAG_subprogram
+	.long	.Linfo_string330        @ DW_AT_linkage_name
+	.long	.Linfo_string107        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	593                     @ DW_AT_decl_line
+	.long	3766                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xeb0:0x5 DW_TAG_formal_parameter
+	.long	20458                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0xeb6:0xb DW_TAG_typedef
+	.long	5865                    @ DW_AT_type
+	.long	.Linfo_string112        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	236                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0xec1:0x17 DW_TAG_subprogram
+	.long	.Linfo_string332        @ DW_AT_linkage_name
+	.long	.Linfo_string114        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	602                     @ DW_AT_decl_line
+	.long	3732                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xed2:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0xed8:0x17 DW_TAG_subprogram
+	.long	.Linfo_string333        @ DW_AT_linkage_name
+	.long	.Linfo_string114        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	611                     @ DW_AT_decl_line
+	.long	3766                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xee9:0x5 DW_TAG_formal_parameter
+	.long	20458                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0xeef:0x17 DW_TAG_subprogram
+	.long	.Linfo_string334        @ DW_AT_linkage_name
+	.long	.Linfo_string117        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	621                     @ DW_AT_decl_line
+	.long	3652                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xf00:0x5 DW_TAG_formal_parameter
+	.long	20458                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0xf06:0x17 DW_TAG_subprogram
+	.long	.Linfo_string335        @ DW_AT_linkage_name
+	.long	.Linfo_string119        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	630                     @ DW_AT_decl_line
+	.long	3652                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xf17:0x5 DW_TAG_formal_parameter
+	.long	20458                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0xf1d:0x17 DW_TAG_subprogram
+	.long	.Linfo_string336        @ DW_AT_linkage_name
+	.long	.Linfo_string121        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	639                     @ DW_AT_decl_line
+	.long	3766                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xf2e:0x5 DW_TAG_formal_parameter
+	.long	20458                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0xf34:0x17 DW_TAG_subprogram
+	.long	.Linfo_string337        @ DW_AT_linkage_name
+	.long	.Linfo_string123        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	648                     @ DW_AT_decl_line
+	.long	3766                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xf45:0x5 DW_TAG_formal_parameter
+	.long	20458                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0xf4b:0x17 DW_TAG_subprogram
+	.long	.Linfo_string338        @ DW_AT_linkage_name
+	.long	.Linfo_string125        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	655                     @ DW_AT_decl_line
+	.long	18514                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xf5c:0x5 DW_TAG_formal_parameter
+	.long	20458                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0xf62:0x17 DW_TAG_subprogram
+	.long	.Linfo_string339        @ DW_AT_linkage_name
+	.long	.Linfo_string29         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	660                     @ DW_AT_decl_line
+	.long	18514                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xf73:0x5 DW_TAG_formal_parameter
+	.long	20458                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0xf79:0x18 DW_TAG_subprogram
+	.long	.Linfo_string340        @ DW_AT_linkage_name
+	.long	.Linfo_string128        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	674                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xf86:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0xf8b:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0xf91:0x1d DW_TAG_subprogram
+	.long	.Linfo_string341        @ DW_AT_linkage_name
+	.long	.Linfo_string128        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	694                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xf9e:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0xfa3:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0xfa8:0x5 DW_TAG_formal_parameter
+	.long	20428                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0xfae:0x13 DW_TAG_subprogram
+	.long	.Linfo_string342        @ DW_AT_linkage_name
+	.long	.Linfo_string131        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	726                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xfbb:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0xfc1:0x17 DW_TAG_subprogram
+	.long	.Linfo_string343        @ DW_AT_linkage_name
+	.long	.Linfo_string133        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	735                     @ DW_AT_decl_line
+	.long	18514                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xfd2:0x5 DW_TAG_formal_parameter
+	.long	20458                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0xfd8:0x17 DW_TAG_subprogram
+	.long	.Linfo_string344        @ DW_AT_linkage_name
+	.long	.Linfo_string135        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	744                     @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xfe9:0x5 DW_TAG_formal_parameter
+	.long	20458                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0xfef:0x18 DW_TAG_subprogram
+	.long	.Linfo_string345        @ DW_AT_linkage_name
+	.long	.Linfo_string137        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	765                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0xffc:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1001:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x1007:0x1c DW_TAG_subprogram
+	.long	.Linfo_string346        @ DW_AT_linkage_name
+	.long	.Linfo_string139        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	780                     @ DW_AT_decl_line
+	.long	4131                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1018:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x101d:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x1023:0xb DW_TAG_typedef
+	.long	17154                   @ DW_AT_type
+	.long	.Linfo_string18         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	231                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x102e:0x1c DW_TAG_subprogram
+	.long	.Linfo_string347        @ DW_AT_linkage_name
+	.long	.Linfo_string139        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	795                     @ DW_AT_decl_line
+	.long	4170                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x103f:0x5 DW_TAG_formal_parameter
+	.long	20458                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1044:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x104a:0xb DW_TAG_typedef
+	.long	17176                   @ DW_AT_type
+	.long	.Linfo_string21         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	232                     @ DW_AT_decl_line
+	.byte	23                      @ Abbrev [23] 0x1055:0x18 DW_TAG_subprogram
+	.long	.Linfo_string348        @ DW_AT_linkage_name
+	.long	.Linfo_string142        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	801                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x1062:0x5 DW_TAG_formal_parameter
+	.long	20458                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1067:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x106d:0x1c DW_TAG_subprogram
+	.long	.Linfo_string349        @ DW_AT_linkage_name
+	.long	.Linfo_string144        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	823                     @ DW_AT_decl_line
+	.long	4131                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x107e:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1083:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x1089:0x1c DW_TAG_subprogram
+	.long	.Linfo_string350        @ DW_AT_linkage_name
+	.long	.Linfo_string144        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	841                     @ DW_AT_decl_line
+	.long	4170                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x109a:0x5 DW_TAG_formal_parameter
+	.long	20458                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x109f:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x10a5:0x17 DW_TAG_subprogram
+	.long	.Linfo_string351        @ DW_AT_linkage_name
+	.long	.Linfo_string147        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	852                     @ DW_AT_decl_line
+	.long	4131                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x10b6:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x10bc:0x17 DW_TAG_subprogram
+	.long	.Linfo_string352        @ DW_AT_linkage_name
+	.long	.Linfo_string147        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	860                     @ DW_AT_decl_line
+	.long	4170                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x10cd:0x5 DW_TAG_formal_parameter
+	.long	20458                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x10d3:0x17 DW_TAG_subprogram
+	.long	.Linfo_string353        @ DW_AT_linkage_name
+	.long	.Linfo_string150        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	868                     @ DW_AT_decl_line
+	.long	4131                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x10e4:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x10ea:0x17 DW_TAG_subprogram
+	.long	.Linfo_string354        @ DW_AT_linkage_name
+	.long	.Linfo_string150        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	876                     @ DW_AT_decl_line
+	.long	4170                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x10fb:0x5 DW_TAG_formal_parameter
+	.long	20458                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x1101:0x17 DW_TAG_subprogram
+	.long	.Linfo_string355        @ DW_AT_linkage_name
+	.long	.Linfo_string153        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	891                     @ DW_AT_decl_line
+	.long	19007                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1112:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x1118:0x17 DW_TAG_subprogram
+	.long	.Linfo_string356        @ DW_AT_linkage_name
+	.long	.Linfo_string153        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	899                     @ DW_AT_decl_line
+	.long	18985                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1129:0x5 DW_TAG_formal_parameter
+	.long	20458                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x112f:0x18 DW_TAG_subprogram
+	.long	.Linfo_string357        @ DW_AT_linkage_name
+	.long	.Linfo_string156        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	914                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x113c:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1141:0x5 DW_TAG_formal_parameter
+	.long	20428                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x1147:0x18 DW_TAG_subprogram
+	.long	.Linfo_string358        @ DW_AT_linkage_name
+	.long	.Linfo_string156        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	932                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1154:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1159:0x5 DW_TAG_formal_parameter
+	.long	20478                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x115f:0x13 DW_TAG_subprogram
+	.long	.Linfo_string359        @ DW_AT_linkage_name
+	.long	.Linfo_string159        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	950                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x116c:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x1172:0x21 DW_TAG_subprogram
+	.long	.Linfo_string360        @ DW_AT_linkage_name
+	.long	.Linfo_string161        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	985                     @ DW_AT_decl_line
+	.long	3618                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1183:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1188:0x5 DW_TAG_formal_parameter
+	.long	3652                    @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x118d:0x5 DW_TAG_formal_parameter
+	.long	20428                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x1193:0x21 DW_TAG_subprogram
+	.long	.Linfo_string361        @ DW_AT_linkage_name
+	.long	.Linfo_string161        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1015                    @ DW_AT_decl_line
+	.long	3618                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x11a4:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x11a9:0x5 DW_TAG_formal_parameter
+	.long	3652                    @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x11ae:0x5 DW_TAG_formal_parameter
+	.long	20478                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x11b4:0x21 DW_TAG_subprogram
+	.long	.Linfo_string362        @ DW_AT_linkage_name
+	.long	.Linfo_string161        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1032                    @ DW_AT_decl_line
+	.long	3618                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x11c5:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x11ca:0x5 DW_TAG_formal_parameter
+	.long	3652                    @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x11cf:0x5 DW_TAG_formal_parameter
+	.long	5855                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x11d5:0x26 DW_TAG_subprogram
+	.long	.Linfo_string363        @ DW_AT_linkage_name
+	.long	.Linfo_string161        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1052                    @ DW_AT_decl_line
+	.long	3618                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x11e6:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x11eb:0x5 DW_TAG_formal_parameter
+	.long	3652                    @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x11f0:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x11f5:0x5 DW_TAG_formal_parameter
+	.long	20428                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x11fb:0x1c DW_TAG_subprogram
+	.long	.Linfo_string364        @ DW_AT_linkage_name
+	.long	.Linfo_string166        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1147                    @ DW_AT_decl_line
+	.long	3618                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x120c:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1211:0x5 DW_TAG_formal_parameter
+	.long	3652                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x1217:0x21 DW_TAG_subprogram
+	.long	.Linfo_string365        @ DW_AT_linkage_name
+	.long	.Linfo_string166        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1174                    @ DW_AT_decl_line
+	.long	3618                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1228:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x122d:0x5 DW_TAG_formal_parameter
+	.long	3652                    @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x1232:0x5 DW_TAG_formal_parameter
+	.long	3652                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x1238:0x18 DW_TAG_subprogram
+	.long	.Linfo_string366        @ DW_AT_linkage_name
+	.long	.Linfo_string169        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1195                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1245:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x124a:0x5 DW_TAG_formal_parameter
+	.long	20453                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x1250:0x13 DW_TAG_subprogram
+	.long	.Linfo_string367        @ DW_AT_linkage_name
+	.long	.Linfo_string171        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1209                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x125d:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x1263:0x1d DW_TAG_subprogram
+	.long	.Linfo_string368        @ DW_AT_linkage_name
+	.long	.Linfo_string173        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1296                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x1270:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1275:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x127a:0x5 DW_TAG_formal_parameter
+	.long	20428                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x1280:0x18 DW_TAG_subprogram
+	.long	.Linfo_string369        @ DW_AT_linkage_name
+	.long	.Linfo_string175        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1306                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x128d:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1292:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x1298:0x1d DW_TAG_subprogram
+	.long	.Linfo_string370        @ DW_AT_linkage_name
+	.long	.Linfo_string177        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1352                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x12a5:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x12aa:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x12af:0x5 DW_TAG_formal_parameter
+	.long	20428                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x12b5:0x22 DW_TAG_subprogram
+	.long	.Linfo_string371        @ DW_AT_linkage_name
+	.long	.Linfo_string179        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1393                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x12c2:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x12c7:0x5 DW_TAG_formal_parameter
+	.long	3618                    @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x12cc:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x12d1:0x5 DW_TAG_formal_parameter
+	.long	20428                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x12d7:0x18 DW_TAG_subprogram
+	.long	.Linfo_string372        @ DW_AT_linkage_name
+	.long	.Linfo_string181        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1398                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x12e4:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x12e9:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x12ef:0x17 DW_TAG_subprogram
+	.long	.Linfo_string373        @ DW_AT_linkage_name
+	.long	.Linfo_string183        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1401                    @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x1300:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x1306:0x21 DW_TAG_subprogram
+	.long	.Linfo_string374        @ DW_AT_linkage_name
+	.long	.Linfo_string185        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1420                    @ DW_AT_decl_line
+	.long	4903                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x1317:0x5 DW_TAG_formal_parameter
+	.long	20458                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x131c:0x5 DW_TAG_formal_parameter
+	.long	18514                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x1321:0x5 DW_TAG_formal_parameter
+	.long	18580                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x1327:0xb DW_TAG_typedef
+	.long	3010                    @ DW_AT_type
+	.long	.Linfo_string25         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	238                     @ DW_AT_decl_line
+	.byte	23                      @ Abbrev [23] 0x1332:0x18 DW_TAG_subprogram
+	.long	.Linfo_string375        @ DW_AT_linkage_name
+	.long	.Linfo_string188        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1434                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x133f:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1344:0x5 DW_TAG_formal_parameter
+	.long	4938                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x134a:0xb DW_TAG_typedef
+	.long	5238                    @ DW_AT_type
+	.long	.Linfo_string13         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	229                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x1355:0x1c DW_TAG_subprogram
+	.long	.Linfo_string376        @ DW_AT_linkage_name
+	.long	.Linfo_string190        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1441                    @ DW_AT_decl_line
+	.long	3618                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x1366:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x136b:0x5 DW_TAG_formal_parameter
+	.long	3618                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x1371:0x21 DW_TAG_subprogram
+	.long	.Linfo_string377        @ DW_AT_linkage_name
+	.long	.Linfo_string190        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1444                    @ DW_AT_decl_line
+	.long	3618                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x1382:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1387:0x5 DW_TAG_formal_parameter
+	.long	3618                    @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x138c:0x5 DW_TAG_formal_parameter
+	.long	3618                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	24                      @ Abbrev [24] 0x1392:0x1c DW_TAG_subprogram
+	.long	.Linfo_string378        @ DW_AT_linkage_name
+	.long	.Linfo_string193        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1452                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x139e:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x13a3:0x5 DW_TAG_formal_parameter
+	.long	20448                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x13a8:0x5 DW_TAG_formal_parameter
+	.long	3036                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	24                      @ Abbrev [24] 0x13ae:0x1c DW_TAG_subprogram
+	.long	.Linfo_string379        @ DW_AT_linkage_name
+	.long	.Linfo_string193        @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	1463                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x13ba:0x5 DW_TAG_formal_parameter
+	.long	20413                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x13bf:0x5 DW_TAG_formal_parameter
+	.long	20448                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x13c4:0x5 DW_TAG_formal_parameter
+	.long	3119                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	25                      @ Abbrev [25] 0x13ca:0x9 DW_TAG_template_type_parameter
+	.long	18995                   @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	25                      @ Abbrev [25] 0x13d3:0x9 DW_TAG_template_type_parameter
+	.long	5772                    @ DW_AT_type
+	.long	.Linfo_string43         @ DW_AT_name
+	.byte	0                       @ End Of Children Mark
+	.byte	26                      @ Abbrev [26] 0x13dd:0x1dd DW_TAG_structure_type
+	.long	.Linfo_string315        @ DW_AT_name
+	.byte	12                      @ DW_AT_byte_size
+	.byte	7                       @ DW_AT_decl_file
+	.byte	72                      @ DW_AT_decl_line
+	.byte	5                       @ Abbrev [5] 0x13e5:0xc DW_TAG_member
+	.long	.Linfo_string9          @ DW_AT_name
+	.long	5105                    @ DW_AT_type
+	.byte	7                       @ DW_AT_decl_file
+	.byte	164                     @ DW_AT_decl_line
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	26                      @ Abbrev [26] 0x13f1:0x7a DW_TAG_structure_type
+	.long	.Linfo_string68         @ DW_AT_name
+	.byte	12                      @ DW_AT_byte_size
+	.byte	7                       @ DW_AT_decl_file
+	.byte	79                      @ DW_AT_decl_line
+	.byte	27                      @ Abbrev [27] 0x13f9:0x6 DW_TAG_inheritance
+	.long	5227                    @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x13ff:0xc DW_TAG_member
+	.long	.Linfo_string65         @ DW_AT_name
+	.long	5238                    @ DW_AT_type
+	.byte	7                       @ DW_AT_decl_file
+	.byte	82                      @ DW_AT_decl_line
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x140b:0xc DW_TAG_member
+	.long	.Linfo_string66         @ DW_AT_name
+	.long	5238                    @ DW_AT_type
+	.byte	7                       @ DW_AT_decl_file
+	.byte	83                      @ DW_AT_decl_line
+	.byte	4                       @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x1417:0xc DW_TAG_member
+	.long	.Linfo_string67         @ DW_AT_name
+	.long	5238                    @ DW_AT_type
+	.byte	7                       @ DW_AT_decl_file
+	.byte	84                      @ DW_AT_decl_line
+	.byte	8                       @ DW_AT_data_member_location
+	.byte	28                      @ Abbrev [28] 0x1423:0xd DW_TAG_subprogram
+	.long	.Linfo_string68         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	86                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x142a:0x5 DW_TAG_formal_parameter
+	.long	20353                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x1430:0x12 DW_TAG_subprogram
+	.long	.Linfo_string68         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	90                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1437:0x5 DW_TAG_formal_parameter
+	.long	20353                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x143c:0x5 DW_TAG_formal_parameter
+	.long	20358                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x1442:0x12 DW_TAG_subprogram
+	.long	.Linfo_string68         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	95                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1449:0x5 DW_TAG_formal_parameter
+	.long	20353                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x144e:0x5 DW_TAG_formal_parameter
+	.long	20368                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	29                      @ Abbrev [29] 0x1454:0x16 DW_TAG_subprogram
+	.long	.Linfo_string308        @ DW_AT_linkage_name
+	.long	.Linfo_string70         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	101                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x145f:0x5 DW_TAG_formal_parameter
+	.long	20353                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1464:0x5 DW_TAG_formal_parameter
+	.long	20373                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x146b:0xb DW_TAG_typedef
+	.long	17131                   @ DW_AT_type
+	.long	.Linfo_string64         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	75                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x1476:0xb DW_TAG_typedef
+	.long	17143                   @ DW_AT_type
+	.long	.Linfo_string13         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	77                      @ DW_AT_decl_line
+	.byte	30                      @ Abbrev [30] 0x1481:0x15 DW_TAG_subprogram
+	.long	.Linfo_string309        @ DW_AT_linkage_name
+	.long	.Linfo_string72         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	113                     @ DW_AT_decl_line
+	.long	20378                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1490:0x5 DW_TAG_formal_parameter
+	.long	20383                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	30                      @ Abbrev [30] 0x1496:0x15 DW_TAG_subprogram
+	.long	.Linfo_string310        @ DW_AT_linkage_name
+	.long	.Linfo_string72         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	117                     @ DW_AT_decl_line
+	.long	20358                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x14a5:0x5 DW_TAG_formal_parameter
+	.long	20388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	30                      @ Abbrev [30] 0x14ab:0x15 DW_TAG_subprogram
+	.long	.Linfo_string311        @ DW_AT_linkage_name
+	.long	.Linfo_string75         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	121                     @ DW_AT_decl_line
+	.long	5312                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x14ba:0x5 DW_TAG_formal_parameter
+	.long	20388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x14c0:0xb DW_TAG_typedef
+	.long	5772                    @ DW_AT_type
+	.long	.Linfo_string36         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	110                     @ DW_AT_decl_line
+	.byte	28                      @ Abbrev [28] 0x14cb:0xd DW_TAG_subprogram
+	.long	.Linfo_string76         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	124                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x14d2:0x5 DW_TAG_formal_parameter
+	.long	20383                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x14d8:0x12 DW_TAG_subprogram
+	.long	.Linfo_string76         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	127                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x14df:0x5 DW_TAG_formal_parameter
+	.long	20383                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x14e4:0x5 DW_TAG_formal_parameter
+	.long	20398                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x14ea:0x12 DW_TAG_subprogram
+	.long	.Linfo_string76         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	130                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x14f1:0x5 DW_TAG_formal_parameter
+	.long	20383                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x14f6:0x5 DW_TAG_formal_parameter
+	.long	3010                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x14fc:0x17 DW_TAG_subprogram
+	.long	.Linfo_string76         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	134                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1503:0x5 DW_TAG_formal_parameter
+	.long	20383                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1508:0x5 DW_TAG_formal_parameter
+	.long	3010                    @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x150d:0x5 DW_TAG_formal_parameter
+	.long	20398                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x1513:0x12 DW_TAG_subprogram
+	.long	.Linfo_string76         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	139                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x151a:0x5 DW_TAG_formal_parameter
+	.long	20383                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x151f:0x5 DW_TAG_formal_parameter
+	.long	20368                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x1525:0x12 DW_TAG_subprogram
+	.long	.Linfo_string76         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	142                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x152c:0x5 DW_TAG_formal_parameter
+	.long	20383                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1531:0x5 DW_TAG_formal_parameter
+	.long	20408                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x1537:0x17 DW_TAG_subprogram
+	.long	.Linfo_string76         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	146                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x153e:0x5 DW_TAG_formal_parameter
+	.long	20383                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1543:0x5 DW_TAG_formal_parameter
+	.long	20408                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x1548:0x5 DW_TAG_formal_parameter
+	.long	20398                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x154e:0xd DW_TAG_subprogram
+	.long	.Linfo_string77         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	159                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1555:0x5 DW_TAG_formal_parameter
+	.long	20383                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	30                      @ Abbrev [30] 0x155b:0x1a DW_TAG_subprogram
+	.long	.Linfo_string312        @ DW_AT_linkage_name
+	.long	.Linfo_string79         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	167                     @ DW_AT_decl_line
+	.long	5238                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x156a:0x5 DW_TAG_formal_parameter
+	.long	20383                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x156f:0x5 DW_TAG_formal_parameter
+	.long	3010                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	29                      @ Abbrev [29] 0x1575:0x1b DW_TAG_subprogram
+	.long	.Linfo_string313        @ DW_AT_linkage_name
+	.long	.Linfo_string81         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	174                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1580:0x5 DW_TAG_formal_parameter
+	.long	20383                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1585:0x5 DW_TAG_formal_parameter
+	.long	5238                    @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x158a:0x5 DW_TAG_formal_parameter
+	.long	3010                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	9                       @ Abbrev [9] 0x1590:0x17 DW_TAG_subprogram
+	.long	.Linfo_string314        @ DW_AT_linkage_name
+	.long	.Linfo_string83         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	183                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	3                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_private
+	.byte	7                       @ Abbrev [7] 0x159c:0x5 DW_TAG_formal_parameter
+	.long	20383                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x15a1:0x5 DW_TAG_formal_parameter
+	.long	3010                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	25                      @ Abbrev [25] 0x15a7:0x9 DW_TAG_template_type_parameter
+	.long	18995                   @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	25                      @ Abbrev [25] 0x15b0:0x9 DW_TAG_template_type_parameter
+	.long	5772                    @ DW_AT_type
+	.long	.Linfo_string43         @ DW_AT_name
+	.byte	0                       @ End Of Children Mark
+	.byte	31                      @ Abbrev [31] 0x15ba:0xd2 DW_TAG_structure_type
+	.long	.Linfo_string297        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	2                       @ DW_AT_decl_file
+	.short	384                     @ DW_AT_decl_line
+	.byte	32                      @ Abbrev [32] 0x15c3:0x1b DW_TAG_subprogram
+	.long	.Linfo_string284        @ DW_AT_linkage_name
+	.long	.Linfo_string12         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	435                     @ DW_AT_decl_line
+	.long	5598                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x15d3:0x5 DW_TAG_formal_parameter
+	.long	20288                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x15d8:0x5 DW_TAG_formal_parameter
+	.long	18393                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	33                      @ Abbrev [33] 0x15de:0xc DW_TAG_typedef
+	.long	19007                   @ DW_AT_type
+	.long	.Linfo_string13         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	392                     @ DW_AT_decl_line
+	.byte	33                      @ Abbrev [33] 0x15ea:0xc DW_TAG_typedef
+	.long	5772                    @ DW_AT_type
+	.long	.Linfo_string36         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	387                     @ DW_AT_decl_line
+	.byte	32                      @ Abbrev [32] 0x15f6:0x20 DW_TAG_subprogram
+	.long	.Linfo_string293        @ DW_AT_linkage_name
+	.long	.Linfo_string12         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	449                     @ DW_AT_decl_line
+	.long	5598                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x1606:0x5 DW_TAG_formal_parameter
+	.long	20288                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x160b:0x5 DW_TAG_formal_parameter
+	.long	18393                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x1610:0x5 DW_TAG_formal_parameter
+	.long	18405                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	24                      @ Abbrev [24] 0x1616:0x1c DW_TAG_subprogram
+	.long	.Linfo_string294        @ DW_AT_linkage_name
+	.long	.Linfo_string27         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	461                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x1622:0x5 DW_TAG_formal_parameter
+	.long	20288                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x1627:0x5 DW_TAG_formal_parameter
+	.long	5598                    @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x162c:0x5 DW_TAG_formal_parameter
+	.long	18393                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	32                      @ Abbrev [32] 0x1632:0x16 DW_TAG_subprogram
+	.long	.Linfo_string295        @ DW_AT_linkage_name
+	.long	.Linfo_string29         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	495                     @ DW_AT_decl_line
+	.long	5704                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x1642:0x5 DW_TAG_formal_parameter
+	.long	20338                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	33                      @ Abbrev [33] 0x1648:0xc DW_TAG_typedef
+	.long	3010                    @ DW_AT_type
+	.long	.Linfo_string25         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	407                     @ DW_AT_decl_line
+	.byte	32                      @ Abbrev [32] 0x1654:0x16 DW_TAG_subprogram
+	.long	.Linfo_string296        @ DW_AT_linkage_name
+	.long	.Linfo_string42         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	504                     @ DW_AT_decl_line
+	.long	5610                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x1664:0x5 DW_TAG_formal_parameter
+	.long	20338                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	25                      @ Abbrev [25] 0x166a:0x9 DW_TAG_template_type_parameter
+	.long	5772                    @ DW_AT_type
+	.long	.Linfo_string43         @ DW_AT_name
+	.byte	33                      @ Abbrev [33] 0x1673:0xc DW_TAG_typedef
+	.long	5772                    @ DW_AT_type
+	.long	.Linfo_string307        @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	422                     @ DW_AT_decl_line
+	.byte	33                      @ Abbrev [33] 0x167f:0xc DW_TAG_typedef
+	.long	18995                   @ DW_AT_type
+	.long	.Linfo_string86         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	389                     @ DW_AT_decl_line
+	.byte	0                       @ End Of Children Mark
+	.byte	17                      @ Abbrev [17] 0x168c:0x48 DW_TAG_class_type
+	.long	.Linfo_string292        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	5                       @ DW_AT_decl_file
+	.byte	108                     @ DW_AT_decl_line
+	.byte	18                      @ Abbrev [18] 0x1694:0x7 DW_TAG_inheritance
+	.long	5844                    @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	6                       @ Abbrev [6] 0x169b:0xe DW_TAG_subprogram
+	.long	.Linfo_string33         @ DW_AT_name
+	.byte	5                       @ DW_AT_decl_file
+	.byte	131                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x16a3:0x5 DW_TAG_formal_parameter
+	.long	20323                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x16a9:0x13 DW_TAG_subprogram
+	.long	.Linfo_string33         @ DW_AT_name
+	.byte	5                       @ DW_AT_decl_file
+	.byte	133                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x16b1:0x5 DW_TAG_formal_parameter
+	.long	20323                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x16b6:0x5 DW_TAG_formal_parameter
+	.long	20328                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x16bc:0xe DW_TAG_subprogram
+	.long	.Linfo_string34         @ DW_AT_name
+	.byte	5                       @ DW_AT_decl_file
+	.byte	139                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x16c4:0x5 DW_TAG_formal_parameter
+	.long	20323                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	25                      @ Abbrev [25] 0x16ca:0x9 DW_TAG_template_type_parameter
+	.long	18995                   @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x16d4:0xb DW_TAG_typedef
+	.long	17188                   @ DW_AT_type
+	.long	.Linfo_string291        @ DW_AT_name
+	.byte	4                       @ DW_AT_decl_file
+	.byte	48                      @ DW_AT_decl_line
+	.byte	34                      @ Abbrev [34] 0x16df:0x5 DW_TAG_class_type
+	.long	.Linfo_string316        @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	34                      @ Abbrev [34] 0x16e4:0x5 DW_TAG_class_type
+	.long	.Linfo_string329        @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	34                      @ Abbrev [34] 0x16e9:0x5 DW_TAG_class_type
+	.long	.Linfo_string331        @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	17                      @ Abbrev [17] 0x16ee:0x219 DW_TAG_class_type
+	.long	.Linfo_string490        @ DW_AT_name
+	.byte	4                       @ DW_AT_byte_size
+	.byte	15                      @ DW_AT_decl_file
+	.byte	116                     @ DW_AT_decl_line
+	.byte	5                       @ Abbrev [5] 0x16f6:0xc DW_TAG_member
+	.long	.Linfo_string409        @ DW_AT_name
+	.long	5890                    @ DW_AT_type
+	.byte	15                      @ DW_AT_decl_file
+	.byte	134                     @ DW_AT_decl_line
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	20                      @ Abbrev [20] 0x1702:0xb DW_TAG_typedef
+	.long	6407                    @ DW_AT_type
+	.long	.Linfo_string457        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	133                     @ DW_AT_decl_line
+	.byte	6                       @ Abbrev [6] 0x170d:0xe DW_TAG_subprogram
+	.long	.Linfo_string458        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	158                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1715:0x5 DW_TAG_formal_parameter
+	.long	20732                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	37                      @ Abbrev [37] 0x171b:0x13 DW_TAG_subprogram
+	.long	.Linfo_string458        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	170                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+                                        @ DW_AT_explicit
+	.byte	7                       @ Abbrev [7] 0x1723:0x5 DW_TAG_formal_parameter
+	.long	20732                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1728:0x5 DW_TAG_formal_parameter
+	.long	5934                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x172e:0xb DW_TAG_typedef
+	.long	5953                    @ DW_AT_type
+	.long	.Linfo_string13         @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	137                     @ DW_AT_decl_line
+	.byte	17                      @ Abbrev [17] 0x1739:0x14 DW_TAG_class_type
+	.long	.Linfo_string459        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	15                      @ DW_AT_decl_file
+	.byte	119                     @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x1741:0xb DW_TAG_typedef
+	.long	20547                   @ DW_AT_type
+	.long	.Linfo_string460        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	130                     @ DW_AT_decl_line
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x174d:0x18 DW_TAG_subprogram
+	.long	.Linfo_string458        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	185                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1755:0x5 DW_TAG_formal_parameter
+	.long	20732                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x175a:0x5 DW_TAG_formal_parameter
+	.long	5934                    @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x175f:0x5 DW_TAG_formal_parameter
+	.long	7620                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x1765:0x18 DW_TAG_subprogram
+	.long	.Linfo_string458        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	197                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x176d:0x5 DW_TAG_formal_parameter
+	.long	20732                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1772:0x5 DW_TAG_formal_parameter
+	.long	5934                    @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x1777:0x5 DW_TAG_formal_parameter
+	.long	20737                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x177d:0x13 DW_TAG_subprogram
+	.long	.Linfo_string458        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	204                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1785:0x5 DW_TAG_formal_parameter
+	.long	20732                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x178a:0x5 DW_TAG_formal_parameter
+	.long	7664                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x1790:0x13 DW_TAG_subprogram
+	.long	.Linfo_string458        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	209                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1798:0x5 DW_TAG_formal_parameter
+	.long	20732                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x179d:0x5 DW_TAG_formal_parameter
+	.long	20747                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x17a3:0xe DW_TAG_subprogram
+	.long	.Linfo_string468        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	235                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x17ab:0x5 DW_TAG_formal_parameter
+	.long	20732                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	10                      @ Abbrev [10] 0x17b1:0x1b DW_TAG_subprogram
+	.long	.Linfo_string469        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	252                     @ DW_AT_decl_line
+	.long	20752                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x17c1:0x5 DW_TAG_formal_parameter
+	.long	20732                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x17c6:0x5 DW_TAG_formal_parameter
+	.long	20747                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x17cc:0x1c DW_TAG_subprogram
+	.long	.Linfo_string470        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.short	281                     @ DW_AT_decl_line
+	.long	20752                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x17dd:0x5 DW_TAG_formal_parameter
+	.long	20732                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x17e2:0x5 DW_TAG_formal_parameter
+	.long	7664                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x17e8:0x17 DW_TAG_subprogram
+	.long	.Linfo_string471        @ DW_AT_linkage_name
+	.long	.Linfo_string472        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.short	291                     @ DW_AT_decl_line
+	.long	7699                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x17f9:0x5 DW_TAG_formal_parameter
+	.long	20762                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x17ff:0x17 DW_TAG_subprogram
+	.long	.Linfo_string474        @ DW_AT_linkage_name
+	.long	.Linfo_string475        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.short	299                     @ DW_AT_decl_line
+	.long	5934                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1810:0x5 DW_TAG_formal_parameter
+	.long	20762                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x1816:0x17 DW_TAG_subprogram
+	.long	.Linfo_string476        @ DW_AT_linkage_name
+	.long	.Linfo_string477        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.short	307                     @ DW_AT_decl_line
+	.long	5934                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1827:0x5 DW_TAG_formal_parameter
+	.long	20762                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x182d:0x17 DW_TAG_subprogram
+	.long	.Linfo_string478        @ DW_AT_linkage_name
+	.long	.Linfo_string479        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.short	312                     @ DW_AT_decl_line
+	.long	20772                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x183e:0x5 DW_TAG_formal_parameter
+	.long	20732                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x1844:0xb DW_TAG_typedef
+	.long	7260                    @ DW_AT_type
+	.long	.Linfo_string480        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	139                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x184f:0x17 DW_TAG_subprogram
+	.long	.Linfo_string481        @ DW_AT_linkage_name
+	.long	.Linfo_string479        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.short	317                     @ DW_AT_decl_line
+	.long	20777                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1860:0x5 DW_TAG_formal_parameter
+	.long	20762                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	38                      @ Abbrev [38] 0x1866:0x17 DW_TAG_subprogram
+	.long	.Linfo_string482        @ DW_AT_linkage_name
+	.long	.Linfo_string196        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.short	321                     @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+                                        @ DW_AT_explicit
+	.byte	7                       @ Abbrev [7] 0x1877:0x5 DW_TAG_formal_parameter
+	.long	20762                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x187d:0x17 DW_TAG_subprogram
+	.long	.Linfo_string483        @ DW_AT_linkage_name
+	.long	.Linfo_string484        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.short	328                     @ DW_AT_decl_line
+	.long	5934                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x188e:0x5 DW_TAG_formal_parameter
+	.long	20732                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x1894:0x18 DW_TAG_subprogram
+	.long	.Linfo_string485        @ DW_AT_linkage_name
+	.long	.Linfo_string486        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.short	342                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x18a1:0x5 DW_TAG_formal_parameter
+	.long	20732                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x18a6:0x5 DW_TAG_formal_parameter
+	.long	5934                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x18ac:0x18 DW_TAG_subprogram
+	.long	.Linfo_string487        @ DW_AT_linkage_name
+	.long	.Linfo_string169        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.short	352                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x18b9:0x5 DW_TAG_formal_parameter
+	.long	20732                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x18be:0x5 DW_TAG_formal_parameter
+	.long	20752                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	21                      @ Abbrev [21] 0x18c4:0x14 DW_TAG_subprogram
+	.long	.Linfo_string458        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.short	359                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x18cd:0x5 DW_TAG_formal_parameter
+	.long	20732                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x18d2:0x5 DW_TAG_formal_parameter
+	.long	20787                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x18d8:0x1c DW_TAG_subprogram
+	.long	.Linfo_string488        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.short	360                     @ DW_AT_decl_line
+	.long	20752                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x18e9:0x5 DW_TAG_formal_parameter
+	.long	20732                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x18ee:0x5 DW_TAG_formal_parameter
+	.long	20787                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	25                      @ Abbrev [25] 0x18f4:0x9 DW_TAG_template_type_parameter
+	.long	20552                   @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	25                      @ Abbrev [25] 0x18fd:0x9 DW_TAG_template_type_parameter
+	.long	7260                    @ DW_AT_type
+	.long	.Linfo_string489        @ DW_AT_name
+	.byte	0                       @ End Of Children Mark
+	.byte	39                      @ Abbrev [39] 0x1907:0x99 DW_TAG_class_type
+	.long	.Linfo_string456        @ DW_AT_name
+	.byte	4                       @ DW_AT_byte_size
+	.byte	16                      @ DW_AT_decl_file
+	.short	866                     @ DW_AT_decl_line
+	.byte	18                      @ Abbrev [18] 0x1910:0x7 DW_TAG_inheritance
+	.long	6560                    @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	21                      @ Abbrev [21] 0x1917:0x14 DW_TAG_subprogram
+	.long	.Linfo_string452        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	944                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1920:0x5 DW_TAG_formal_parameter
+	.long	20707                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1925:0x5 DW_TAG_formal_parameter
+	.long	20712                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	21                      @ Abbrev [21] 0x192b:0x14 DW_TAG_subprogram
+	.long	.Linfo_string452        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	946                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1934:0x5 DW_TAG_formal_parameter
+	.long	20707                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1939:0x5 DW_TAG_formal_parameter
+	.long	20722                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x193f:0x1c DW_TAG_subprogram
+	.long	.Linfo_string453        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	1168                    @ DW_AT_decl_line
+	.long	20727                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1950:0x5 DW_TAG_formal_parameter
+	.long	20707                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1955:0x5 DW_TAG_formal_parameter
+	.long	20712                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x195b:0x1c DW_TAG_subprogram
+	.long	.Linfo_string454        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	1175                    @ DW_AT_decl_line
+	.long	20727                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x196c:0x5 DW_TAG_formal_parameter
+	.long	20707                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1971:0x5 DW_TAG_formal_parameter
+	.long	20722                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x1977:0x18 DW_TAG_subprogram
+	.long	.Linfo_string455        @ DW_AT_linkage_name
+	.long	.Linfo_string169        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	1217                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1984:0x5 DW_TAG_formal_parameter
+	.long	20707                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1989:0x5 DW_TAG_formal_parameter
+	.long	20727                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	40                      @ Abbrev [40] 0x198f:0x10 DW_TAG_GNU_template_parameter_pack
+	.long	.Linfo_string436        @ DW_AT_name
+	.byte	41                      @ Abbrev [41] 0x1994:0x5 DW_TAG_template_type_parameter
+	.long	20547                   @ DW_AT_type
+	.byte	41                      @ Abbrev [41] 0x1999:0x5 DW_TAG_template_type_parameter
+	.long	7260                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	0                       @ End Of Children Mark
+	.byte	26                      @ Abbrev [26] 0x19a0:0x125 DW_TAG_structure_type
+	.long	.Linfo_string451        @ DW_AT_name
+	.byte	4                       @ DW_AT_byte_size
+	.byte	16                      @ DW_AT_decl_file
+	.byte	180                     @ DW_AT_decl_line
+	.byte	27                      @ Abbrev [27] 0x19a8:0x6 DW_TAG_inheritance
+	.long	6853                    @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	18                      @ Abbrev [18] 0x19ae:0x7 DW_TAG_inheritance
+	.long	7401                    @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	3                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_private
+	.byte	30                      @ Abbrev [30] 0x19b5:0x15 DW_TAG_subprogram
+	.long	.Linfo_string442        @ DW_AT_linkage_name
+	.long	.Linfo_string423        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	190                     @ DW_AT_decl_line
+	.long	20657                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x19c4:0x5 DW_TAG_formal_parameter
+	.long	20667                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	30                      @ Abbrev [30] 0x19ca:0x15 DW_TAG_subprogram
+	.long	.Linfo_string443        @ DW_AT_linkage_name
+	.long	.Linfo_string423        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	193                     @ DW_AT_decl_line
+	.long	20632                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x19d9:0x5 DW_TAG_formal_parameter
+	.long	20672                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	30                      @ Abbrev [30] 0x19df:0x15 DW_TAG_subprogram
+	.long	.Linfo_string444        @ DW_AT_linkage_name
+	.long	.Linfo_string445        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	196                     @ DW_AT_decl_line
+	.long	20682                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x19ee:0x5 DW_TAG_formal_parameter
+	.long	20667                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x19f4:0xb DW_TAG_typedef
+	.long	6853                    @ DW_AT_type
+	.long	.Linfo_string446        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	186                     @ DW_AT_decl_line
+	.byte	30                      @ Abbrev [30] 0x19ff:0x15 DW_TAG_subprogram
+	.long	.Linfo_string447        @ DW_AT_linkage_name
+	.long	.Linfo_string445        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	199                     @ DW_AT_decl_line
+	.long	20687                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x1a0e:0x5 DW_TAG_formal_parameter
+	.long	20672                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x1a14:0xd DW_TAG_subprogram
+	.long	.Linfo_string431        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	201                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1a1b:0x5 DW_TAG_formal_parameter
+	.long	20697                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	42                      @ Abbrev [42] 0x1a21:0x17 DW_TAG_subprogram
+	.long	.Linfo_string431        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	205                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+                                        @ DW_AT_explicit
+	.byte	7                       @ Abbrev [7] 0x1a28:0x5 DW_TAG_formal_parameter
+	.long	20697                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1a2d:0x5 DW_TAG_formal_parameter
+	.long	20632                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x1a32:0x5 DW_TAG_formal_parameter
+	.long	20562                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x1a38:0x12 DW_TAG_subprogram
+	.long	.Linfo_string431        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	215                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1a3f:0x5 DW_TAG_formal_parameter
+	.long	20697                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1a44:0x5 DW_TAG_formal_parameter
+	.long	20672                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x1a4a:0x12 DW_TAG_subprogram
+	.long	.Linfo_string431        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	218                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1a51:0x5 DW_TAG_formal_parameter
+	.long	20697                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1a56:0x5 DW_TAG_formal_parameter
+	.long	20702                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	32                      @ Abbrev [32] 0x1a5c:0x1b DW_TAG_subprogram
+	.long	.Linfo_string448        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	287                     @ DW_AT_decl_line
+	.long	20667                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1a6c:0x5 DW_TAG_formal_parameter
+	.long	20697                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1a71:0x5 DW_TAG_formal_parameter
+	.long	20672                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	32                      @ Abbrev [32] 0x1a77:0x1b DW_TAG_subprogram
+	.long	.Linfo_string449        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	295                     @ DW_AT_decl_line
+	.long	20667                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1a87:0x5 DW_TAG_formal_parameter
+	.long	20697                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1a8c:0x5 DW_TAG_formal_parameter
+	.long	20702                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x1a92:0x18 DW_TAG_subprogram
+	.long	.Linfo_string450        @ DW_AT_linkage_name
+	.long	.Linfo_string435        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	326                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x1a9f:0x5 DW_TAG_formal_parameter
+	.long	20697                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1aa4:0x5 DW_TAG_formal_parameter
+	.long	20667                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	36                      @ Abbrev [36] 0x1aaa:0xa DW_TAG_template_value_parameter
+	.long	18365                   @ DW_AT_type
+	.long	.Linfo_string425        @ DW_AT_name
+	.byte	0                       @ DW_AT_const_value
+	.byte	40                      @ Abbrev [40] 0x1ab4:0x10 DW_TAG_GNU_template_parameter_pack
+	.long	.Linfo_string436        @ DW_AT_name
+	.byte	41                      @ Abbrev [41] 0x1ab9:0x5 DW_TAG_template_type_parameter
+	.long	20547                   @ DW_AT_type
+	.byte	41                      @ Abbrev [41] 0x1abe:0x5 DW_TAG_template_type_parameter
+	.long	7260                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	0                       @ End Of Children Mark
+	.byte	31                      @ Abbrev [31] 0x1ac5:0xe7 DW_TAG_structure_type
+	.long	.Linfo_string437        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	16                      @ DW_AT_decl_file
+	.short	338                     @ DW_AT_decl_line
+	.byte	18                      @ Abbrev [18] 0x1ace:0x7 DW_TAG_inheritance
+	.long	7084                    @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	3                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_private
+	.byte	32                      @ Abbrev [32] 0x1ad5:0x16 DW_TAG_subprogram
+	.long	.Linfo_string429        @ DW_AT_linkage_name
+	.long	.Linfo_string423        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	346                     @ DW_AT_decl_line
+	.long	20592                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x1ae5:0x5 DW_TAG_formal_parameter
+	.long	20602                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	32                      @ Abbrev [32] 0x1aeb:0x16 DW_TAG_subprogram
+	.long	.Linfo_string430        @ DW_AT_linkage_name
+	.long	.Linfo_string423        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	349                     @ DW_AT_decl_line
+	.long	20562                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x1afb:0x5 DW_TAG_formal_parameter
+	.long	20607                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	43                      @ Abbrev [43] 0x1b01:0xe DW_TAG_subprogram
+	.long	.Linfo_string431        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	351                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1b09:0x5 DW_TAG_formal_parameter
+	.long	20617                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	44                      @ Abbrev [44] 0x1b0f:0x13 DW_TAG_subprogram
+	.long	.Linfo_string431        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	355                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+                                        @ DW_AT_explicit
+	.byte	7                       @ Abbrev [7] 0x1b17:0x5 DW_TAG_formal_parameter
+	.long	20617                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1b1c:0x5 DW_TAG_formal_parameter
+	.long	20562                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	43                      @ Abbrev [43] 0x1b22:0x13 DW_TAG_subprogram
+	.long	.Linfo_string431        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	363                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1b2a:0x5 DW_TAG_formal_parameter
+	.long	20617                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1b2f:0x5 DW_TAG_formal_parameter
+	.long	20607                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	43                      @ Abbrev [43] 0x1b35:0x13 DW_TAG_subprogram
+	.long	.Linfo_string431        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	366                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1b3d:0x5 DW_TAG_formal_parameter
+	.long	20617                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1b42:0x5 DW_TAG_formal_parameter
+	.long	20622                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	32                      @ Abbrev [32] 0x1b48:0x1b DW_TAG_subprogram
+	.long	.Linfo_string432        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	419                     @ DW_AT_decl_line
+	.long	20602                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1b58:0x5 DW_TAG_formal_parameter
+	.long	20617                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1b5d:0x5 DW_TAG_formal_parameter
+	.long	20607                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	32                      @ Abbrev [32] 0x1b63:0x1b DW_TAG_subprogram
+	.long	.Linfo_string433        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	426                     @ DW_AT_decl_line
+	.long	20602                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1b73:0x5 DW_TAG_formal_parameter
+	.long	20617                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1b78:0x5 DW_TAG_formal_parameter
+	.long	20622                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x1b7e:0x18 DW_TAG_subprogram
+	.long	.Linfo_string434        @ DW_AT_linkage_name
+	.long	.Linfo_string435        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	452                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x1b8b:0x5 DW_TAG_formal_parameter
+	.long	20617                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1b90:0x5 DW_TAG_formal_parameter
+	.long	20602                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	36                      @ Abbrev [36] 0x1b96:0xa DW_TAG_template_value_parameter
+	.long	18365                   @ DW_AT_type
+	.long	.Linfo_string425        @ DW_AT_name
+	.byte	1                       @ DW_AT_const_value
+	.byte	40                      @ Abbrev [40] 0x1ba0:0xb DW_TAG_GNU_template_parameter_pack
+	.long	.Linfo_string436        @ DW_AT_name
+	.byte	41                      @ Abbrev [41] 0x1ba5:0x5 DW_TAG_template_type_parameter
+	.long	7260                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	0                       @ End Of Children Mark
+	.byte	26                      @ Abbrev [26] 0x1bac:0xb0 DW_TAG_structure_type
+	.long	.Linfo_string428        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	16                      @ DW_AT_decl_file
+	.byte	55                      @ DW_AT_decl_line
+	.byte	27                      @ Abbrev [27] 0x1bb4:0x6 DW_TAG_inheritance
+	.long	7260                    @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	28                      @ Abbrev [28] 0x1bba:0xd DW_TAG_subprogram
+	.long	.Linfo_string415        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	58                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1bc1:0x5 DW_TAG_formal_parameter
+	.long	20557                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x1bc7:0x12 DW_TAG_subprogram
+	.long	.Linfo_string415        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	61                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1bce:0x5 DW_TAG_formal_parameter
+	.long	20557                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1bd3:0x5 DW_TAG_formal_parameter
+	.long	20562                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x1bd9:0x12 DW_TAG_subprogram
+	.long	.Linfo_string415        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	64                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1be0:0x5 DW_TAG_formal_parameter
+	.long	20557                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1be5:0x5 DW_TAG_formal_parameter
+	.long	20567                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x1beb:0x12 DW_TAG_subprogram
+	.long	.Linfo_string415        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	65                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1bf2:0x5 DW_TAG_formal_parameter
+	.long	20557                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1bf7:0x5 DW_TAG_formal_parameter
+	.long	20577                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x1bfd:0x17 DW_TAG_subprogram
+	.long	.Linfo_string415        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	71                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1c04:0x5 DW_TAG_formal_parameter
+	.long	20557                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1c09:0x5 DW_TAG_formal_parameter
+	.long	7313                    @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x1c0e:0x5 DW_TAG_formal_parameter
+	.long	7335                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	30                      @ Abbrev [30] 0x1c14:0x15 DW_TAG_subprogram
+	.long	.Linfo_string422        @ DW_AT_linkage_name
+	.long	.Linfo_string423        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	95                      @ DW_AT_decl_line
+	.long	20592                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x1c23:0x5 DW_TAG_formal_parameter
+	.long	20597                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	30                      @ Abbrev [30] 0x1c29:0x15 DW_TAG_subprogram
+	.long	.Linfo_string424        @ DW_AT_linkage_name
+	.long	.Linfo_string423        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	98                      @ DW_AT_decl_line
+	.long	20562                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x1c38:0x5 DW_TAG_formal_parameter
+	.long	20567                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	36                      @ Abbrev [36] 0x1c3e:0xa DW_TAG_template_value_parameter
+	.long	18365                   @ DW_AT_type
+	.long	.Linfo_string425        @ DW_AT_name
+	.byte	1                       @ DW_AT_const_value
+	.byte	25                      @ Abbrev [25] 0x1c48:0x9 DW_TAG_template_type_parameter
+	.long	7260                    @ DW_AT_type
+	.long	.Linfo_string426        @ DW_AT_name
+	.byte	36                      @ Abbrev [36] 0x1c51:0xa DW_TAG_template_value_parameter
+	.long	18432                   @ DW_AT_type
+	.long	.Linfo_string427        @ DW_AT_name
+	.byte	1                       @ DW_AT_const_value
+	.byte	0                       @ End Of Children Mark
+	.byte	26                      @ Abbrev [26] 0x1c5c:0x35 DW_TAG_structure_type
+	.long	.Linfo_string414        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	15                      @ DW_AT_decl_file
+	.byte	54                      @ DW_AT_decl_line
+	.byte	28                      @ Abbrev [28] 0x1c64:0xd DW_TAG_subprogram
+	.long	.Linfo_string410        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	57                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1c6b:0x5 DW_TAG_formal_parameter
+	.long	20532                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	29                      @ Abbrev [29] 0x1c71:0x16 DW_TAG_subprogram
+	.long	.Linfo_string411        @ DW_AT_linkage_name
+	.long	.Linfo_string412        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	70                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1c7c:0x5 DW_TAG_formal_parameter
+	.long	20537                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1c81:0x5 DW_TAG_formal_parameter
+	.long	20547                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	25                      @ Abbrev [25] 0x1c87:0x9 DW_TAG_template_type_parameter
+	.long	20552                   @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	0                       @ End Of Children Mark
+	.byte	26                      @ Abbrev [26] 0x1c91:0x16 DW_TAG_structure_type
+	.long	.Linfo_string416        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	17                      @ DW_AT_decl_file
+	.byte	46                      @ DW_AT_decl_line
+	.byte	42                      @ Abbrev [42] 0x1c99:0xd DW_TAG_subprogram
+	.long	.Linfo_string416        @ DW_AT_name
+	.byte	17                      @ DW_AT_decl_file
+	.byte	46                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+                                        @ DW_AT_explicit
+	.byte	7                       @ Abbrev [7] 0x1ca0:0x5 DW_TAG_formal_parameter
+	.long	20582                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	0                       @ End Of Children Mark
+	.byte	26                      @ Abbrev [26] 0x1ca7:0x3a DW_TAG_structure_type
+	.long	.Linfo_string421        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	17                      @ DW_AT_decl_file
+	.byte	68                      @ DW_AT_decl_line
+	.byte	27                      @ Abbrev [27] 0x1caf:0x6 DW_TAG_inheritance
+	.long	7393                    @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x1cb5:0xc DW_TAG_member
+	.long	.Linfo_string418        @ DW_AT_name
+	.long	7361                    @ DW_AT_type
+	.byte	17                      @ DW_AT_decl_file
+	.byte	70                      @ DW_AT_decl_line
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	26                      @ Abbrev [26] 0x1cc1:0x1f DW_TAG_structure_type
+	.long	.Linfo_string420        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	17                      @ DW_AT_decl_file
+	.byte	70                      @ DW_AT_decl_line
+	.byte	29                      @ Abbrev [29] 0x1cc9:0x16 DW_TAG_subprogram
+	.long	.Linfo_string419        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	17                      @ DW_AT_decl_file
+	.byte	70                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1cd4:0x5 DW_TAG_formal_parameter
+	.long	20587                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1cd9:0x5 DW_TAG_formal_parameter
+	.long	18372                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	0                       @ End Of Children Mark
+	.byte	0                       @ End Of Children Mark
+	.byte	45                      @ Abbrev [45] 0x1ce1:0x8 DW_TAG_structure_type
+	.long	.Linfo_string417        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	17                      @ DW_AT_decl_file
+	.byte	66                      @ DW_AT_decl_line
+	.byte	26                      @ Abbrev [26] 0x1ce9:0xb6 DW_TAG_structure_type
+	.long	.Linfo_string441        @ DW_AT_name
+	.byte	4                       @ DW_AT_byte_size
+	.byte	16                      @ DW_AT_decl_file
+	.byte	102                     @ DW_AT_decl_line
+	.byte	5                       @ Abbrev [5] 0x1cf1:0xc DW_TAG_member
+	.long	.Linfo_string438        @ DW_AT_name
+	.long	20547                   @ DW_AT_type
+	.byte	16                      @ DW_AT_decl_file
+	.byte	147                     @ DW_AT_decl_line
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	28                      @ Abbrev [28] 0x1cfd:0xd DW_TAG_subprogram
+	.long	.Linfo_string415        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	104                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1d04:0x5 DW_TAG_formal_parameter
+	.long	20627                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x1d0a:0x12 DW_TAG_subprogram
+	.long	.Linfo_string415        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	107                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1d11:0x5 DW_TAG_formal_parameter
+	.long	20627                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1d16:0x5 DW_TAG_formal_parameter
+	.long	20632                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x1d1c:0x12 DW_TAG_subprogram
+	.long	.Linfo_string415        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	110                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1d23:0x5 DW_TAG_formal_parameter
+	.long	20627                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1d28:0x5 DW_TAG_formal_parameter
+	.long	20642                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x1d2e:0x12 DW_TAG_subprogram
+	.long	.Linfo_string415        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	111                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1d35:0x5 DW_TAG_formal_parameter
+	.long	20627                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1d3a:0x5 DW_TAG_formal_parameter
+	.long	20652                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x1d40:0x17 DW_TAG_subprogram
+	.long	.Linfo_string415        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	117                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x1d47:0x5 DW_TAG_formal_parameter
+	.long	20627                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1d4c:0x5 DW_TAG_formal_parameter
+	.long	7313                    @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x1d51:0x5 DW_TAG_formal_parameter
+	.long	7335                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	30                      @ Abbrev [30] 0x1d57:0x15 DW_TAG_subprogram
+	.long	.Linfo_string439        @ DW_AT_linkage_name
+	.long	.Linfo_string423        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	142                     @ DW_AT_decl_line
+	.long	20657                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x1d66:0x5 DW_TAG_formal_parameter
+	.long	20662                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	30                      @ Abbrev [30] 0x1d6c:0x15 DW_TAG_subprogram
+	.long	.Linfo_string440        @ DW_AT_linkage_name
+	.long	.Linfo_string423        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	145                     @ DW_AT_decl_line
+	.long	20632                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x1d7b:0x5 DW_TAG_formal_parameter
+	.long	20642                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	36                      @ Abbrev [36] 0x1d81:0xa DW_TAG_template_value_parameter
+	.long	18365                   @ DW_AT_type
+	.long	.Linfo_string425        @ DW_AT_name
+	.byte	0                       @ DW_AT_const_value
+	.byte	25                      @ Abbrev [25] 0x1d8b:0x9 DW_TAG_template_type_parameter
+	.long	20547                   @ DW_AT_type
+	.long	.Linfo_string426        @ DW_AT_name
+	.byte	36                      @ Abbrev [36] 0x1d94:0xa DW_TAG_template_value_parameter
+	.long	18432                   @ DW_AT_type
+	.long	.Linfo_string427        @ DW_AT_name
+	.byte	0                       @ DW_AT_const_value
+	.byte	0                       @ End Of Children Mark
+	.byte	31                      @ Abbrev [31] 0x1d9f:0x32 DW_TAG_structure_type
+	.long	.Linfo_string464        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	8                       @ DW_AT_decl_file
+	.short	2184                    @ DW_AT_decl_line
+	.byte	36                      @ Abbrev [36] 0x1da8:0xa DW_TAG_template_value_parameter
+	.long	18432                   @ DW_AT_type
+	.long	.Linfo_string461        @ DW_AT_name
+	.byte	0                       @ DW_AT_const_value
+	.byte	25                      @ Abbrev [25] 0x1db2:0x9 DW_TAG_template_type_parameter
+	.long	7260                    @ DW_AT_type
+	.long	.Linfo_string462        @ DW_AT_name
+	.byte	25                      @ Abbrev [25] 0x1dbb:0x9 DW_TAG_template_type_parameter
+	.long	20562                   @ DW_AT_type
+	.long	.Linfo_string463        @ DW_AT_name
+	.byte	33                      @ Abbrev [33] 0x1dc4:0xc DW_TAG_typedef
+	.long	20562                   @ DW_AT_type
+	.long	.Linfo_string460        @ DW_AT_name
+	.byte	8                       @ DW_AT_decl_file
+	.short	2185                    @ DW_AT_decl_line
+	.byte	0                       @ End Of Children Mark
+	.byte	31                      @ Abbrev [31] 0x1dd1:0x1f DW_TAG_structure_type
+	.long	.Linfo_string465        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	8                       @ DW_AT_decl_file
+	.short	1642                    @ DW_AT_decl_line
+	.byte	25                      @ Abbrev [25] 0x1dda:0x9 DW_TAG_template_type_parameter
+	.long	7260                    @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	33                      @ Abbrev [33] 0x1de3:0xc DW_TAG_typedef
+	.long	7260                    @ DW_AT_type
+	.long	.Linfo_string460        @ DW_AT_name
+	.byte	8                       @ DW_AT_decl_file
+	.short	1643                    @ DW_AT_decl_line
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x1df0:0xb DW_TAG_typedef
+	.long	20742                   @ DW_AT_type
+	.long	.Linfo_string467        @ DW_AT_name
+	.byte	1                       @ DW_AT_decl_file
+	.byte	205                     @ DW_AT_decl_line
+	.byte	31                      @ Abbrev [31] 0x1dfb:0x25 DW_TAG_structure_type
+	.long	.Linfo_string473        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	8                       @ DW_AT_decl_file
+	.short	1658                    @ DW_AT_decl_line
+	.byte	25                      @ Abbrev [25] 0x1e04:0x9 DW_TAG_template_type_parameter
+	.long	20552                   @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	46                      @ Abbrev [46] 0x1e0d:0x6 DW_TAG_template_value_parameter
+	.long	18432                   @ DW_AT_type
+	.byte	1                       @ DW_AT_const_value
+	.byte	33                      @ Abbrev [33] 0x1e13:0xc DW_TAG_typedef
+	.long	20757                   @ DW_AT_type
+	.long	.Linfo_string460        @ DW_AT_name
+	.byte	8                       @ DW_AT_decl_file
+	.short	1659                    @ DW_AT_decl_line
+	.byte	0                       @ End Of Children Mark
+	.byte	17                      @ Abbrev [17] 0x1e20:0x219 DW_TAG_class_type
+	.long	.Linfo_string534        @ DW_AT_name
+	.byte	4                       @ DW_AT_byte_size
+	.byte	15                      @ DW_AT_decl_file
+	.byte	116                     @ DW_AT_decl_line
+	.byte	5                       @ Abbrev [5] 0x1e28:0xc DW_TAG_member
+	.long	.Linfo_string409        @ DW_AT_name
+	.long	7732                    @ DW_AT_type
+	.byte	15                      @ DW_AT_decl_file
+	.byte	134                     @ DW_AT_decl_line
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	20                      @ Abbrev [20] 0x1e34:0xb DW_TAG_typedef
+	.long	8249                    @ DW_AT_type
+	.long	.Linfo_string457        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	133                     @ DW_AT_decl_line
+	.byte	6                       @ Abbrev [6] 0x1e3f:0xe DW_TAG_subprogram
+	.long	.Linfo_string458        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	158                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1e47:0x5 DW_TAG_formal_parameter
+	.long	20982                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	37                      @ Abbrev [37] 0x1e4d:0x13 DW_TAG_subprogram
+	.long	.Linfo_string458        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	170                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+                                        @ DW_AT_explicit
+	.byte	7                       @ Abbrev [7] 0x1e55:0x5 DW_TAG_formal_parameter
+	.long	20982                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1e5a:0x5 DW_TAG_formal_parameter
+	.long	7776                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x1e60:0xb DW_TAG_typedef
+	.long	7795                    @ DW_AT_type
+	.long	.Linfo_string13         @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	137                     @ DW_AT_decl_line
+	.byte	17                      @ Abbrev [17] 0x1e6b:0x14 DW_TAG_class_type
+	.long	.Linfo_string459        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	15                      @ DW_AT_decl_file
+	.byte	119                     @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x1e73:0xb DW_TAG_typedef
+	.long	20807                   @ DW_AT_type
+	.long	.Linfo_string460        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	130                     @ DW_AT_decl_line
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x1e7f:0x18 DW_TAG_subprogram
+	.long	.Linfo_string458        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	185                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1e87:0x5 DW_TAG_formal_parameter
+	.long	20982                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1e8c:0x5 DW_TAG_formal_parameter
+	.long	7776                    @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x1e91:0x5 DW_TAG_formal_parameter
+	.long	9374                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x1e97:0x18 DW_TAG_subprogram
+	.long	.Linfo_string458        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	197                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1e9f:0x5 DW_TAG_formal_parameter
+	.long	20982                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1ea4:0x5 DW_TAG_formal_parameter
+	.long	7776                    @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x1ea9:0x5 DW_TAG_formal_parameter
+	.long	20987                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x1eaf:0x13 DW_TAG_subprogram
+	.long	.Linfo_string458        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	204                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1eb7:0x5 DW_TAG_formal_parameter
+	.long	20982                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1ebc:0x5 DW_TAG_formal_parameter
+	.long	7664                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x1ec2:0x13 DW_TAG_subprogram
+	.long	.Linfo_string458        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	209                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1eca:0x5 DW_TAG_formal_parameter
+	.long	20982                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1ecf:0x5 DW_TAG_formal_parameter
+	.long	20992                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x1ed5:0xe DW_TAG_subprogram
+	.long	.Linfo_string468        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	235                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1edd:0x5 DW_TAG_formal_parameter
+	.long	20982                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	10                      @ Abbrev [10] 0x1ee3:0x1b DW_TAG_subprogram
+	.long	.Linfo_string521        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	252                     @ DW_AT_decl_line
+	.long	20997                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1ef3:0x5 DW_TAG_formal_parameter
+	.long	20982                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1ef8:0x5 DW_TAG_formal_parameter
+	.long	20992                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x1efe:0x1c DW_TAG_subprogram
+	.long	.Linfo_string522        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.short	281                     @ DW_AT_decl_line
+	.long	20997                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1f0f:0x5 DW_TAG_formal_parameter
+	.long	20982                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1f14:0x5 DW_TAG_formal_parameter
+	.long	7664                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x1f1a:0x17 DW_TAG_subprogram
+	.long	.Linfo_string523        @ DW_AT_linkage_name
+	.long	.Linfo_string472        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.short	291                     @ DW_AT_decl_line
+	.long	9442                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1f2b:0x5 DW_TAG_formal_parameter
+	.long	21007                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x1f31:0x17 DW_TAG_subprogram
+	.long	.Linfo_string525        @ DW_AT_linkage_name
+	.long	.Linfo_string475        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.short	299                     @ DW_AT_decl_line
+	.long	7776                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1f42:0x5 DW_TAG_formal_parameter
+	.long	21007                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x1f48:0x17 DW_TAG_subprogram
+	.long	.Linfo_string526        @ DW_AT_linkage_name
+	.long	.Linfo_string477        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.short	307                     @ DW_AT_decl_line
+	.long	7776                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1f59:0x5 DW_TAG_formal_parameter
+	.long	21007                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x1f5f:0x17 DW_TAG_subprogram
+	.long	.Linfo_string527        @ DW_AT_linkage_name
+	.long	.Linfo_string479        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.short	312                     @ DW_AT_decl_line
+	.long	21017                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1f70:0x5 DW_TAG_formal_parameter
+	.long	20982                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x1f76:0xb DW_TAG_typedef
+	.long	9102                    @ DW_AT_type
+	.long	.Linfo_string480        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	139                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x1f81:0x17 DW_TAG_subprogram
+	.long	.Linfo_string528        @ DW_AT_linkage_name
+	.long	.Linfo_string479        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.short	317                     @ DW_AT_decl_line
+	.long	21022                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1f92:0x5 DW_TAG_formal_parameter
+	.long	21007                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	38                      @ Abbrev [38] 0x1f98:0x17 DW_TAG_subprogram
+	.long	.Linfo_string529        @ DW_AT_linkage_name
+	.long	.Linfo_string196        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.short	321                     @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+                                        @ DW_AT_explicit
+	.byte	7                       @ Abbrev [7] 0x1fa9:0x5 DW_TAG_formal_parameter
+	.long	21007                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x1faf:0x17 DW_TAG_subprogram
+	.long	.Linfo_string530        @ DW_AT_linkage_name
+	.long	.Linfo_string484        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.short	328                     @ DW_AT_decl_line
+	.long	7776                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1fc0:0x5 DW_TAG_formal_parameter
+	.long	20982                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x1fc6:0x18 DW_TAG_subprogram
+	.long	.Linfo_string531        @ DW_AT_linkage_name
+	.long	.Linfo_string486        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.short	342                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1fd3:0x5 DW_TAG_formal_parameter
+	.long	20982                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1fd8:0x5 DW_TAG_formal_parameter
+	.long	7776                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x1fde:0x18 DW_TAG_subprogram
+	.long	.Linfo_string532        @ DW_AT_linkage_name
+	.long	.Linfo_string169        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.short	352                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1feb:0x5 DW_TAG_formal_parameter
+	.long	20982                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x1ff0:0x5 DW_TAG_formal_parameter
+	.long	20997                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	21                      @ Abbrev [21] 0x1ff6:0x14 DW_TAG_subprogram
+	.long	.Linfo_string458        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.short	359                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x1fff:0x5 DW_TAG_formal_parameter
+	.long	20982                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2004:0x5 DW_TAG_formal_parameter
+	.long	21032                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x200a:0x1c DW_TAG_subprogram
+	.long	.Linfo_string533        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.short	360                     @ DW_AT_decl_line
+	.long	20997                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x201b:0x5 DW_TAG_formal_parameter
+	.long	20982                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2020:0x5 DW_TAG_formal_parameter
+	.long	21032                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	25                      @ Abbrev [25] 0x2026:0x9 DW_TAG_template_type_parameter
+	.long	20812                   @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	25                      @ Abbrev [25] 0x202f:0x9 DW_TAG_template_type_parameter
+	.long	9102                    @ DW_AT_type
+	.long	.Linfo_string489        @ DW_AT_name
+	.byte	0                       @ End Of Children Mark
+	.byte	39                      @ Abbrev [39] 0x2039:0x99 DW_TAG_class_type
+	.long	.Linfo_string518        @ DW_AT_name
+	.byte	4                       @ DW_AT_byte_size
+	.byte	16                      @ DW_AT_decl_file
+	.short	866                     @ DW_AT_decl_line
+	.byte	18                      @ Abbrev [18] 0x2042:0x7 DW_TAG_inheritance
+	.long	8402                    @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	21                      @ Abbrev [21] 0x2049:0x14 DW_TAG_subprogram
+	.long	.Linfo_string452        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	944                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2052:0x5 DW_TAG_formal_parameter
+	.long	20957                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2057:0x5 DW_TAG_formal_parameter
+	.long	20962                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	21                      @ Abbrev [21] 0x205d:0x14 DW_TAG_subprogram
+	.long	.Linfo_string452        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	946                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2066:0x5 DW_TAG_formal_parameter
+	.long	20957                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x206b:0x5 DW_TAG_formal_parameter
+	.long	20972                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2071:0x1c DW_TAG_subprogram
+	.long	.Linfo_string515        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	1168                    @ DW_AT_decl_line
+	.long	20977                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2082:0x5 DW_TAG_formal_parameter
+	.long	20957                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2087:0x5 DW_TAG_formal_parameter
+	.long	20962                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x208d:0x1c DW_TAG_subprogram
+	.long	.Linfo_string516        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	1175                    @ DW_AT_decl_line
+	.long	20977                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x209e:0x5 DW_TAG_formal_parameter
+	.long	20957                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x20a3:0x5 DW_TAG_formal_parameter
+	.long	20972                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x20a9:0x18 DW_TAG_subprogram
+	.long	.Linfo_string517        @ DW_AT_linkage_name
+	.long	.Linfo_string169        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	1217                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x20b6:0x5 DW_TAG_formal_parameter
+	.long	20957                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x20bb:0x5 DW_TAG_formal_parameter
+	.long	20977                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	40                      @ Abbrev [40] 0x20c1:0x10 DW_TAG_GNU_template_parameter_pack
+	.long	.Linfo_string436        @ DW_AT_name
+	.byte	41                      @ Abbrev [41] 0x20c6:0x5 DW_TAG_template_type_parameter
+	.long	20807                   @ DW_AT_type
+	.byte	41                      @ Abbrev [41] 0x20cb:0x5 DW_TAG_template_type_parameter
+	.long	9102                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	0                       @ End Of Children Mark
+	.byte	26                      @ Abbrev [26] 0x20d2:0x125 DW_TAG_structure_type
+	.long	.Linfo_string514        @ DW_AT_name
+	.byte	4                       @ DW_AT_byte_size
+	.byte	16                      @ DW_AT_decl_file
+	.byte	180                     @ DW_AT_decl_line
+	.byte	27                      @ Abbrev [27] 0x20da:0x6 DW_TAG_inheritance
+	.long	8695                    @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	18                      @ Abbrev [18] 0x20e0:0x7 DW_TAG_inheritance
+	.long	9155                    @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	3                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_private
+	.byte	30                      @ Abbrev [30] 0x20e7:0x15 DW_TAG_subprogram
+	.long	.Linfo_string507        @ DW_AT_linkage_name
+	.long	.Linfo_string423        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	190                     @ DW_AT_decl_line
+	.long	20907                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x20f6:0x5 DW_TAG_formal_parameter
+	.long	20917                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	30                      @ Abbrev [30] 0x20fc:0x15 DW_TAG_subprogram
+	.long	.Linfo_string508        @ DW_AT_linkage_name
+	.long	.Linfo_string423        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	193                     @ DW_AT_decl_line
+	.long	20882                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x210b:0x5 DW_TAG_formal_parameter
+	.long	20922                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	30                      @ Abbrev [30] 0x2111:0x15 DW_TAG_subprogram
+	.long	.Linfo_string509        @ DW_AT_linkage_name
+	.long	.Linfo_string445        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	196                     @ DW_AT_decl_line
+	.long	20932                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x2120:0x5 DW_TAG_formal_parameter
+	.long	20917                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x2126:0xb DW_TAG_typedef
+	.long	8695                    @ DW_AT_type
+	.long	.Linfo_string446        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	186                     @ DW_AT_decl_line
+	.byte	30                      @ Abbrev [30] 0x2131:0x15 DW_TAG_subprogram
+	.long	.Linfo_string510        @ DW_AT_linkage_name
+	.long	.Linfo_string445        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	199                     @ DW_AT_decl_line
+	.long	20937                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x2140:0x5 DW_TAG_formal_parameter
+	.long	20922                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x2146:0xd DW_TAG_subprogram
+	.long	.Linfo_string431        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	201                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x214d:0x5 DW_TAG_formal_parameter
+	.long	20947                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	42                      @ Abbrev [42] 0x2153:0x17 DW_TAG_subprogram
+	.long	.Linfo_string431        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	205                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+                                        @ DW_AT_explicit
+	.byte	7                       @ Abbrev [7] 0x215a:0x5 DW_TAG_formal_parameter
+	.long	20947                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x215f:0x5 DW_TAG_formal_parameter
+	.long	20882                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x2164:0x5 DW_TAG_formal_parameter
+	.long	20822                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x216a:0x12 DW_TAG_subprogram
+	.long	.Linfo_string431        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	215                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x2171:0x5 DW_TAG_formal_parameter
+	.long	20947                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2176:0x5 DW_TAG_formal_parameter
+	.long	20922                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x217c:0x12 DW_TAG_subprogram
+	.long	.Linfo_string431        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	218                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x2183:0x5 DW_TAG_formal_parameter
+	.long	20947                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2188:0x5 DW_TAG_formal_parameter
+	.long	20952                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	32                      @ Abbrev [32] 0x218e:0x1b DW_TAG_subprogram
+	.long	.Linfo_string511        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	287                     @ DW_AT_decl_line
+	.long	20917                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x219e:0x5 DW_TAG_formal_parameter
+	.long	20947                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x21a3:0x5 DW_TAG_formal_parameter
+	.long	20922                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	32                      @ Abbrev [32] 0x21a9:0x1b DW_TAG_subprogram
+	.long	.Linfo_string512        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	295                     @ DW_AT_decl_line
+	.long	20917                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x21b9:0x5 DW_TAG_formal_parameter
+	.long	20947                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x21be:0x5 DW_TAG_formal_parameter
+	.long	20952                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x21c4:0x18 DW_TAG_subprogram
+	.long	.Linfo_string513        @ DW_AT_linkage_name
+	.long	.Linfo_string435        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	326                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x21d1:0x5 DW_TAG_formal_parameter
+	.long	20947                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x21d6:0x5 DW_TAG_formal_parameter
+	.long	20917                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	36                      @ Abbrev [36] 0x21dc:0xa DW_TAG_template_value_parameter
+	.long	18365                   @ DW_AT_type
+	.long	.Linfo_string425        @ DW_AT_name
+	.byte	0                       @ DW_AT_const_value
+	.byte	40                      @ Abbrev [40] 0x21e6:0x10 DW_TAG_GNU_template_parameter_pack
+	.long	.Linfo_string436        @ DW_AT_name
+	.byte	41                      @ Abbrev [41] 0x21eb:0x5 DW_TAG_template_type_parameter
+	.long	20807                   @ DW_AT_type
+	.byte	41                      @ Abbrev [41] 0x21f0:0x5 DW_TAG_template_type_parameter
+	.long	9102                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	0                       @ End Of Children Mark
+	.byte	31                      @ Abbrev [31] 0x21f7:0xe7 DW_TAG_structure_type
+	.long	.Linfo_string503        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	16                      @ DW_AT_decl_file
+	.short	338                     @ DW_AT_decl_line
+	.byte	18                      @ Abbrev [18] 0x2200:0x7 DW_TAG_inheritance
+	.long	8926                    @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	3                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_private
+	.byte	32                      @ Abbrev [32] 0x2207:0x16 DW_TAG_subprogram
+	.long	.Linfo_string498        @ DW_AT_linkage_name
+	.long	.Linfo_string423        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	346                     @ DW_AT_decl_line
+	.long	20842                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x2217:0x5 DW_TAG_formal_parameter
+	.long	20852                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	32                      @ Abbrev [32] 0x221d:0x16 DW_TAG_subprogram
+	.long	.Linfo_string499        @ DW_AT_linkage_name
+	.long	.Linfo_string423        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	349                     @ DW_AT_decl_line
+	.long	20822                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x222d:0x5 DW_TAG_formal_parameter
+	.long	20857                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	43                      @ Abbrev [43] 0x2233:0xe DW_TAG_subprogram
+	.long	.Linfo_string431        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	351                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x223b:0x5 DW_TAG_formal_parameter
+	.long	20867                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	44                      @ Abbrev [44] 0x2241:0x13 DW_TAG_subprogram
+	.long	.Linfo_string431        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	355                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+                                        @ DW_AT_explicit
+	.byte	7                       @ Abbrev [7] 0x2249:0x5 DW_TAG_formal_parameter
+	.long	20867                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x224e:0x5 DW_TAG_formal_parameter
+	.long	20822                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	43                      @ Abbrev [43] 0x2254:0x13 DW_TAG_subprogram
+	.long	.Linfo_string431        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	363                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x225c:0x5 DW_TAG_formal_parameter
+	.long	20867                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2261:0x5 DW_TAG_formal_parameter
+	.long	20857                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	43                      @ Abbrev [43] 0x2267:0x13 DW_TAG_subprogram
+	.long	.Linfo_string431        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	366                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x226f:0x5 DW_TAG_formal_parameter
+	.long	20867                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2274:0x5 DW_TAG_formal_parameter
+	.long	20872                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	32                      @ Abbrev [32] 0x227a:0x1b DW_TAG_subprogram
+	.long	.Linfo_string500        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	419                     @ DW_AT_decl_line
+	.long	20852                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x228a:0x5 DW_TAG_formal_parameter
+	.long	20867                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x228f:0x5 DW_TAG_formal_parameter
+	.long	20857                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	32                      @ Abbrev [32] 0x2295:0x1b DW_TAG_subprogram
+	.long	.Linfo_string501        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	426                     @ DW_AT_decl_line
+	.long	20852                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x22a5:0x5 DW_TAG_formal_parameter
+	.long	20867                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x22aa:0x5 DW_TAG_formal_parameter
+	.long	20872                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x22b0:0x18 DW_TAG_subprogram
+	.long	.Linfo_string502        @ DW_AT_linkage_name
+	.long	.Linfo_string435        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.short	452                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x22bd:0x5 DW_TAG_formal_parameter
+	.long	20867                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x22c2:0x5 DW_TAG_formal_parameter
+	.long	20852                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	36                      @ Abbrev [36] 0x22c8:0xa DW_TAG_template_value_parameter
+	.long	18365                   @ DW_AT_type
+	.long	.Linfo_string425        @ DW_AT_name
+	.byte	1                       @ DW_AT_const_value
+	.byte	40                      @ Abbrev [40] 0x22d2:0xb DW_TAG_GNU_template_parameter_pack
+	.long	.Linfo_string436        @ DW_AT_name
+	.byte	41                      @ Abbrev [41] 0x22d7:0x5 DW_TAG_template_type_parameter
+	.long	9102                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	0                       @ End Of Children Mark
+	.byte	26                      @ Abbrev [26] 0x22de:0xb0 DW_TAG_structure_type
+	.long	.Linfo_string497        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	16                      @ DW_AT_decl_file
+	.byte	55                      @ DW_AT_decl_line
+	.byte	27                      @ Abbrev [27] 0x22e6:0x6 DW_TAG_inheritance
+	.long	9102                    @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	28                      @ Abbrev [28] 0x22ec:0xd DW_TAG_subprogram
+	.long	.Linfo_string415        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	58                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x22f3:0x5 DW_TAG_formal_parameter
+	.long	20817                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x22f9:0x12 DW_TAG_subprogram
+	.long	.Linfo_string415        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	61                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x2300:0x5 DW_TAG_formal_parameter
+	.long	20817                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2305:0x5 DW_TAG_formal_parameter
+	.long	20822                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x230b:0x12 DW_TAG_subprogram
+	.long	.Linfo_string415        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	64                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x2312:0x5 DW_TAG_formal_parameter
+	.long	20817                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2317:0x5 DW_TAG_formal_parameter
+	.long	20827                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x231d:0x12 DW_TAG_subprogram
+	.long	.Linfo_string415        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	65                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x2324:0x5 DW_TAG_formal_parameter
+	.long	20817                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2329:0x5 DW_TAG_formal_parameter
+	.long	20837                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x232f:0x17 DW_TAG_subprogram
+	.long	.Linfo_string415        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	71                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x2336:0x5 DW_TAG_formal_parameter
+	.long	20817                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x233b:0x5 DW_TAG_formal_parameter
+	.long	7313                    @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x2340:0x5 DW_TAG_formal_parameter
+	.long	7335                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	30                      @ Abbrev [30] 0x2346:0x15 DW_TAG_subprogram
+	.long	.Linfo_string495        @ DW_AT_linkage_name
+	.long	.Linfo_string423        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	95                      @ DW_AT_decl_line
+	.long	20842                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x2355:0x5 DW_TAG_formal_parameter
+	.long	20847                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	30                      @ Abbrev [30] 0x235b:0x15 DW_TAG_subprogram
+	.long	.Linfo_string496        @ DW_AT_linkage_name
+	.long	.Linfo_string423        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	98                      @ DW_AT_decl_line
+	.long	20822                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x236a:0x5 DW_TAG_formal_parameter
+	.long	20827                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	36                      @ Abbrev [36] 0x2370:0xa DW_TAG_template_value_parameter
+	.long	18365                   @ DW_AT_type
+	.long	.Linfo_string425        @ DW_AT_name
+	.byte	1                       @ DW_AT_const_value
+	.byte	25                      @ Abbrev [25] 0x237a:0x9 DW_TAG_template_type_parameter
+	.long	9102                    @ DW_AT_type
+	.long	.Linfo_string426        @ DW_AT_name
+	.byte	36                      @ Abbrev [36] 0x2383:0xa DW_TAG_template_value_parameter
+	.long	18432                   @ DW_AT_type
+	.long	.Linfo_string427        @ DW_AT_name
+	.byte	1                       @ DW_AT_const_value
+	.byte	0                       @ End Of Children Mark
+	.byte	26                      @ Abbrev [26] 0x238e:0x35 DW_TAG_structure_type
+	.long	.Linfo_string494        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	15                      @ DW_AT_decl_file
+	.byte	54                      @ DW_AT_decl_line
+	.byte	28                      @ Abbrev [28] 0x2396:0xd DW_TAG_subprogram
+	.long	.Linfo_string410        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	57                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x239d:0x5 DW_TAG_formal_parameter
+	.long	20792                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	29                      @ Abbrev [29] 0x23a3:0x16 DW_TAG_subprogram
+	.long	.Linfo_string492        @ DW_AT_linkage_name
+	.long	.Linfo_string412        @ DW_AT_name
+	.byte	15                      @ DW_AT_decl_file
+	.byte	70                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x23ae:0x5 DW_TAG_formal_parameter
+	.long	20797                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x23b3:0x5 DW_TAG_formal_parameter
+	.long	20807                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	25                      @ Abbrev [25] 0x23b9:0x9 DW_TAG_template_type_parameter
+	.long	20812                   @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	0                       @ End Of Children Mark
+	.byte	26                      @ Abbrev [26] 0x23c3:0xb6 DW_TAG_structure_type
+	.long	.Linfo_string506        @ DW_AT_name
+	.byte	4                       @ DW_AT_byte_size
+	.byte	16                      @ DW_AT_decl_file
+	.byte	102                     @ DW_AT_decl_line
+	.byte	5                       @ Abbrev [5] 0x23cb:0xc DW_TAG_member
+	.long	.Linfo_string438        @ DW_AT_name
+	.long	20807                   @ DW_AT_type
+	.byte	16                      @ DW_AT_decl_file
+	.byte	147                     @ DW_AT_decl_line
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	28                      @ Abbrev [28] 0x23d7:0xd DW_TAG_subprogram
+	.long	.Linfo_string415        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	104                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x23de:0x5 DW_TAG_formal_parameter
+	.long	20877                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x23e4:0x12 DW_TAG_subprogram
+	.long	.Linfo_string415        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	107                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x23eb:0x5 DW_TAG_formal_parameter
+	.long	20877                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x23f0:0x5 DW_TAG_formal_parameter
+	.long	20882                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x23f6:0x12 DW_TAG_subprogram
+	.long	.Linfo_string415        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	110                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x23fd:0x5 DW_TAG_formal_parameter
+	.long	20877                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2402:0x5 DW_TAG_formal_parameter
+	.long	20892                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x2408:0x12 DW_TAG_subprogram
+	.long	.Linfo_string415        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	111                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x240f:0x5 DW_TAG_formal_parameter
+	.long	20877                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2414:0x5 DW_TAG_formal_parameter
+	.long	20902                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	28                      @ Abbrev [28] 0x241a:0x17 DW_TAG_subprogram
+	.long	.Linfo_string415        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	117                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x2421:0x5 DW_TAG_formal_parameter
+	.long	20877                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2426:0x5 DW_TAG_formal_parameter
+	.long	7313                    @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x242b:0x5 DW_TAG_formal_parameter
+	.long	7335                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	30                      @ Abbrev [30] 0x2431:0x15 DW_TAG_subprogram
+	.long	.Linfo_string504        @ DW_AT_linkage_name
+	.long	.Linfo_string423        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	142                     @ DW_AT_decl_line
+	.long	20907                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x2440:0x5 DW_TAG_formal_parameter
+	.long	20912                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	30                      @ Abbrev [30] 0x2446:0x15 DW_TAG_subprogram
+	.long	.Linfo_string505        @ DW_AT_linkage_name
+	.long	.Linfo_string423        @ DW_AT_name
+	.byte	16                      @ DW_AT_decl_file
+	.byte	145                     @ DW_AT_decl_line
+	.long	20882                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x2455:0x5 DW_TAG_formal_parameter
+	.long	20892                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	36                      @ Abbrev [36] 0x245b:0xa DW_TAG_template_value_parameter
+	.long	18365                   @ DW_AT_type
+	.long	.Linfo_string425        @ DW_AT_name
+	.byte	0                       @ DW_AT_const_value
+	.byte	25                      @ Abbrev [25] 0x2465:0x9 DW_TAG_template_type_parameter
+	.long	20807                   @ DW_AT_type
+	.long	.Linfo_string426        @ DW_AT_name
+	.byte	36                      @ Abbrev [36] 0x246e:0xa DW_TAG_template_value_parameter
+	.long	18432                   @ DW_AT_type
+	.long	.Linfo_string427        @ DW_AT_name
+	.byte	0                       @ DW_AT_const_value
+	.byte	0                       @ End Of Children Mark
+	.byte	31                      @ Abbrev [31] 0x2479:0x32 DW_TAG_structure_type
+	.long	.Linfo_string519        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	8                       @ DW_AT_decl_file
+	.short	2184                    @ DW_AT_decl_line
+	.byte	36                      @ Abbrev [36] 0x2482:0xa DW_TAG_template_value_parameter
+	.long	18432                   @ DW_AT_type
+	.long	.Linfo_string461        @ DW_AT_name
+	.byte	0                       @ DW_AT_const_value
+	.byte	25                      @ Abbrev [25] 0x248c:0x9 DW_TAG_template_type_parameter
+	.long	9102                    @ DW_AT_type
+	.long	.Linfo_string462        @ DW_AT_name
+	.byte	25                      @ Abbrev [25] 0x2495:0x9 DW_TAG_template_type_parameter
+	.long	20822                   @ DW_AT_type
+	.long	.Linfo_string463        @ DW_AT_name
+	.byte	33                      @ Abbrev [33] 0x249e:0xc DW_TAG_typedef
+	.long	20822                   @ DW_AT_type
+	.long	.Linfo_string460        @ DW_AT_name
+	.byte	8                       @ DW_AT_decl_file
+	.short	2185                    @ DW_AT_decl_line
+	.byte	0                       @ End Of Children Mark
+	.byte	31                      @ Abbrev [31] 0x24ab:0x1f DW_TAG_structure_type
+	.long	.Linfo_string520        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	8                       @ DW_AT_decl_file
+	.short	1642                    @ DW_AT_decl_line
+	.byte	25                      @ Abbrev [25] 0x24b4:0x9 DW_TAG_template_type_parameter
+	.long	9102                    @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	33                      @ Abbrev [33] 0x24bd:0xc DW_TAG_typedef
+	.long	9102                    @ DW_AT_type
+	.long	.Linfo_string460        @ DW_AT_name
+	.byte	8                       @ DW_AT_decl_file
+	.short	1643                    @ DW_AT_decl_line
+	.byte	0                       @ End Of Children Mark
+	.byte	31                      @ Abbrev [31] 0x24ca:0x25 DW_TAG_structure_type
+	.long	.Linfo_string524        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	8                       @ DW_AT_decl_file
+	.short	1658                    @ DW_AT_decl_line
+	.byte	25                      @ Abbrev [25] 0x24d3:0x9 DW_TAG_template_type_parameter
+	.long	20812                   @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	46                      @ Abbrev [46] 0x24dc:0x6 DW_TAG_template_value_parameter
+	.long	18432                   @ DW_AT_type
+	.byte	1                       @ DW_AT_const_value
+	.byte	33                      @ Abbrev [33] 0x24e2:0xc DW_TAG_typedef
+	.long	21002                   @ DW_AT_type
+	.long	.Linfo_string460        @ DW_AT_name
+	.byte	8                       @ DW_AT_decl_file
+	.short	1659                    @ DW_AT_decl_line
+	.byte	0                       @ End Of Children Mark
+	.byte	17                      @ Abbrev [17] 0x24ef:0x5ce DW_TAG_class_type
+	.long	.Linfo_string799        @ DW_AT_name
+	.byte	24                      @ DW_AT_byte_size
+	.byte	21                      @ DW_AT_decl_file
+	.byte	96                      @ DW_AT_decl_line
+	.byte	5                       @ Abbrev [5] 0x24f7:0xc DW_TAG_member
+	.long	.Linfo_string409        @ DW_AT_name
+	.long	9475                    @ DW_AT_type
+	.byte	21                      @ DW_AT_decl_file
+	.byte	138                     @ DW_AT_decl_line
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	20                      @ Abbrev [20] 0x2503:0xb DW_TAG_typedef
+	.long	10941                   @ DW_AT_type
+	.long	.Linfo_string748        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.byte	135                     @ DW_AT_decl_line
+	.byte	6                       @ Abbrev [6] 0x250e:0xe DW_TAG_subprogram
+	.long	.Linfo_string749        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.byte	162                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2516:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	37                      @ Abbrev [37] 0x251c:0x18 DW_TAG_subprogram
+	.long	.Linfo_string749        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.byte	174                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+                                        @ DW_AT_explicit
+	.byte	7                       @ Abbrev [7] 0x2524:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2529:0x5 DW_TAG_formal_parameter
+	.long	21229                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x252e:0x5 DW_TAG_formal_parameter
+	.long	21393                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x2534:0xb DW_TAG_typedef
+	.long	13790                   @ DW_AT_type
+	.long	.Linfo_string36         @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.byte	103                     @ DW_AT_decl_line
+	.byte	6                       @ Abbrev [6] 0x253f:0x13 DW_TAG_subprogram
+	.long	.Linfo_string749        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.byte	185                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2547:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x254c:0x5 DW_TAG_formal_parameter
+	.long	21403                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x2552:0x13 DW_TAG_subprogram
+	.long	.Linfo_string749        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.byte	196                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x255a:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x255f:0x5 DW_TAG_formal_parameter
+	.long	21413                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x2565:0x1d DW_TAG_subprogram
+	.long	.Linfo_string749        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.byte	211                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x256d:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2572:0x5 DW_TAG_formal_parameter
+	.long	14647                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x2577:0x5 DW_TAG_formal_parameter
+	.long	21229                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x257c:0x5 DW_TAG_formal_parameter
+	.long	21393                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	37                      @ Abbrev [37] 0x2582:0x13 DW_TAG_subprogram
+	.long	.Linfo_string749        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.byte	219                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+                                        @ DW_AT_explicit
+	.byte	7                       @ Abbrev [7] 0x258a:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x258f:0x5 DW_TAG_formal_parameter
+	.long	21393                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x2595:0x18 DW_TAG_subprogram
+	.long	.Linfo_string749        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.byte	223                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x259d:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x25a2:0x5 DW_TAG_formal_parameter
+	.long	21403                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x25a7:0x5 DW_TAG_formal_parameter
+	.long	21393                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x25ad:0x18 DW_TAG_subprogram
+	.long	.Linfo_string749        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.byte	227                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x25b5:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x25ba:0x5 DW_TAG_formal_parameter
+	.long	21413                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x25bf:0x5 DW_TAG_formal_parameter
+	.long	21393                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x25c5:0x18 DW_TAG_subprogram
+	.long	.Linfo_string749        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.byte	233                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x25cd:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x25d2:0x5 DW_TAG_formal_parameter
+	.long	14647                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x25d7:0x5 DW_TAG_formal_parameter
+	.long	21393                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x25dd:0x1c DW_TAG_subprogram
+	.long	.Linfo_string751        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	296                     @ DW_AT_decl_line
+	.long	21418                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x25ee:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x25f3:0x5 DW_TAG_formal_parameter
+	.long	21403                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x25f9:0x1c DW_TAG_subprogram
+	.long	.Linfo_string752        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	305                     @ DW_AT_decl_line
+	.long	21418                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x260a:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x260f:0x5 DW_TAG_formal_parameter
+	.long	21413                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2615:0x1c DW_TAG_subprogram
+	.long	.Linfo_string753        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	319                     @ DW_AT_decl_line
+	.long	21418                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2626:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x262b:0x5 DW_TAG_formal_parameter
+	.long	14647                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2631:0x17 DW_TAG_subprogram
+	.long	.Linfo_string754        @ DW_AT_linkage_name
+	.long	.Linfo_string75         @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	328                     @ DW_AT_decl_line
+	.long	9524                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2642:0x5 DW_TAG_formal_parameter
+	.long	21423                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2648:0x17 DW_TAG_subprogram
+	.long	.Linfo_string755        @ DW_AT_linkage_name
+	.long	.Linfo_string97         @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	338                     @ DW_AT_decl_line
+	.long	9823                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2659:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x265f:0xb DW_TAG_typedef
+	.long	12082                   @ DW_AT_type
+	.long	.Linfo_string99         @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.byte	149                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x266a:0x17 DW_TAG_subprogram
+	.long	.Linfo_string756        @ DW_AT_linkage_name
+	.long	.Linfo_string97         @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	347                     @ DW_AT_decl_line
+	.long	9857                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x267b:0x5 DW_TAG_formal_parameter
+	.long	21423                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x2681:0xb DW_TAG_typedef
+	.long	12000                   @ DW_AT_type
+	.long	.Linfo_string102        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.byte	150                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x268c:0x17 DW_TAG_subprogram
+	.long	.Linfo_string757        @ DW_AT_linkage_name
+	.long	.Linfo_string104        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	356                     @ DW_AT_decl_line
+	.long	9823                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x269d:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x26a3:0x17 DW_TAG_subprogram
+	.long	.Linfo_string758        @ DW_AT_linkage_name
+	.long	.Linfo_string104        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	365                     @ DW_AT_decl_line
+	.long	9857                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x26b4:0x5 DW_TAG_formal_parameter
+	.long	21423                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x26ba:0x17 DW_TAG_subprogram
+	.long	.Linfo_string759        @ DW_AT_linkage_name
+	.long	.Linfo_string107        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	374                     @ DW_AT_decl_line
+	.long	9937                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x26cb:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x26d1:0xb DW_TAG_typedef
+	.long	12712                   @ DW_AT_type
+	.long	.Linfo_string109        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.byte	153                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x26dc:0x17 DW_TAG_subprogram
+	.long	.Linfo_string760        @ DW_AT_linkage_name
+	.long	.Linfo_string107        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	383                     @ DW_AT_decl_line
+	.long	9971                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x26ed:0x5 DW_TAG_formal_parameter
+	.long	21423                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x26f3:0xb DW_TAG_typedef
+	.long	12747                   @ DW_AT_type
+	.long	.Linfo_string112        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.byte	154                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x26fe:0x17 DW_TAG_subprogram
+	.long	.Linfo_string761        @ DW_AT_linkage_name
+	.long	.Linfo_string114        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	392                     @ DW_AT_decl_line
+	.long	9937                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x270f:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2715:0x17 DW_TAG_subprogram
+	.long	.Linfo_string762        @ DW_AT_linkage_name
+	.long	.Linfo_string114        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	401                     @ DW_AT_decl_line
+	.long	9971                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2726:0x5 DW_TAG_formal_parameter
+	.long	21423                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x272c:0x17 DW_TAG_subprogram
+	.long	.Linfo_string763        @ DW_AT_linkage_name
+	.long	.Linfo_string117        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	411                     @ DW_AT_decl_line
+	.long	9857                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x273d:0x5 DW_TAG_formal_parameter
+	.long	21423                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2743:0x17 DW_TAG_subprogram
+	.long	.Linfo_string764        @ DW_AT_linkage_name
+	.long	.Linfo_string119        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	420                     @ DW_AT_decl_line
+	.long	9857                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2754:0x5 DW_TAG_formal_parameter
+	.long	21423                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x275a:0x17 DW_TAG_subprogram
+	.long	.Linfo_string765        @ DW_AT_linkage_name
+	.long	.Linfo_string121        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	429                     @ DW_AT_decl_line
+	.long	9971                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x276b:0x5 DW_TAG_formal_parameter
+	.long	21423                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2771:0x17 DW_TAG_subprogram
+	.long	.Linfo_string766        @ DW_AT_linkage_name
+	.long	.Linfo_string123        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	438                     @ DW_AT_decl_line
+	.long	9971                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2782:0x5 DW_TAG_formal_parameter
+	.long	21423                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2788:0x17 DW_TAG_subprogram
+	.long	.Linfo_string767        @ DW_AT_linkage_name
+	.long	.Linfo_string135        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	447                     @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2799:0x5 DW_TAG_formal_parameter
+	.long	21423                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x279f:0x17 DW_TAG_subprogram
+	.long	.Linfo_string768        @ DW_AT_linkage_name
+	.long	.Linfo_string125        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	452                     @ DW_AT_decl_line
+	.long	10166                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x27b0:0x5 DW_TAG_formal_parameter
+	.long	21423                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x27b6:0xb DW_TAG_typedef
+	.long	13033                   @ DW_AT_type
+	.long	.Linfo_string25         @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.byte	151                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x27c1:0x17 DW_TAG_subprogram
+	.long	.Linfo_string769        @ DW_AT_linkage_name
+	.long	.Linfo_string29         @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	457                     @ DW_AT_decl_line
+	.long	10166                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x27d2:0x5 DW_TAG_formal_parameter
+	.long	21423                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x27d8:0x1c DW_TAG_subprogram
+	.long	.Linfo_string770        @ DW_AT_linkage_name
+	.long	.Linfo_string139        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	474                     @ DW_AT_decl_line
+	.long	21428                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x27e9:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x27ee:0x5 DW_TAG_formal_parameter
+	.long	21433                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x27f4:0xb DW_TAG_typedef
+	.long	18995                   @ DW_AT_type
+	.long	.Linfo_string771        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.byte	100                     @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x27ff:0xb DW_TAG_typedef
+	.long	14061                   @ DW_AT_type
+	.long	.Linfo_string666        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.byte	99                      @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x280a:0x1c DW_TAG_subprogram
+	.long	.Linfo_string772        @ DW_AT_linkage_name
+	.long	.Linfo_string139        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	494                     @ DW_AT_decl_line
+	.long	21428                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x281b:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2820:0x5 DW_TAG_formal_parameter
+	.long	21443                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2826:0x1c DW_TAG_subprogram
+	.long	.Linfo_string773        @ DW_AT_linkage_name
+	.long	.Linfo_string144        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	519                     @ DW_AT_decl_line
+	.long	21428                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2837:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x283c:0x5 DW_TAG_formal_parameter
+	.long	21433                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2842:0x1c DW_TAG_subprogram
+	.long	.Linfo_string774        @ DW_AT_linkage_name
+	.long	.Linfo_string144        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	528                     @ DW_AT_decl_line
+	.long	21448                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2853:0x5 DW_TAG_formal_parameter
+	.long	21423                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2858:0x5 DW_TAG_formal_parameter
+	.long	21433                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x285e:0x1c DW_TAG_subprogram
+	.long	.Linfo_string775        @ DW_AT_linkage_name
+	.long	.Linfo_string161        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	731                     @ DW_AT_decl_line
+	.long	14652                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x286f:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2874:0x5 DW_TAG_formal_parameter
+	.long	21458                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x287a:0xb DW_TAG_typedef
+	.long	13785                   @ DW_AT_type
+	.long	.Linfo_string86         @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.byte	101                     @ DW_AT_decl_line
+	.byte	23                      @ Abbrev [23] 0x2885:0x18 DW_TAG_subprogram
+	.long	.Linfo_string777        @ DW_AT_linkage_name
+	.long	.Linfo_string161        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	752                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2892:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2897:0x5 DW_TAG_formal_parameter
+	.long	14647                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x289d:0x21 DW_TAG_subprogram
+	.long	.Linfo_string778        @ DW_AT_linkage_name
+	.long	.Linfo_string161        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	781                     @ DW_AT_decl_line
+	.long	9823                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x28ae:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x28b3:0x5 DW_TAG_formal_parameter
+	.long	9857                    @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x28b8:0x5 DW_TAG_formal_parameter
+	.long	21458                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x28be:0x1c DW_TAG_subprogram
+	.long	.Linfo_string779        @ DW_AT_linkage_name
+	.long	.Linfo_string166        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	944                     @ DW_AT_decl_line
+	.long	9823                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x28cf:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x28d4:0x5 DW_TAG_formal_parameter
+	.long	9857                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x28da:0x1c DW_TAG_subprogram
+	.long	.Linfo_string780        @ DW_AT_linkage_name
+	.long	.Linfo_string166        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	950                     @ DW_AT_decl_line
+	.long	9823                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x28eb:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x28f0:0x5 DW_TAG_formal_parameter
+	.long	9823                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x28f6:0x1c DW_TAG_subprogram
+	.long	.Linfo_string781        @ DW_AT_linkage_name
+	.long	.Linfo_string166        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	980                     @ DW_AT_decl_line
+	.long	10166                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2907:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x290c:0x5 DW_TAG_formal_parameter
+	.long	21433                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2912:0x21 DW_TAG_subprogram
+	.long	.Linfo_string782        @ DW_AT_linkage_name
+	.long	.Linfo_string166        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	1000                    @ DW_AT_decl_line
+	.long	9823                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2923:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2928:0x5 DW_TAG_formal_parameter
+	.long	9857                    @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x292d:0x5 DW_TAG_formal_parameter
+	.long	9857                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x2933:0x18 DW_TAG_subprogram
+	.long	.Linfo_string783        @ DW_AT_linkage_name
+	.long	.Linfo_string169        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	1032                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2940:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2945:0x5 DW_TAG_formal_parameter
+	.long	21418                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x294b:0x13 DW_TAG_subprogram
+	.long	.Linfo_string784        @ DW_AT_linkage_name
+	.long	.Linfo_string171        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	1043                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2958:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x295e:0x17 DW_TAG_subprogram
+	.long	.Linfo_string785        @ DW_AT_linkage_name
+	.long	.Linfo_string694        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	1052                    @ DW_AT_decl_line
+	.long	10613                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x296f:0x5 DW_TAG_formal_parameter
+	.long	21423                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x2975:0xb DW_TAG_typedef
+	.long	13961                   @ DW_AT_type
+	.long	.Linfo_string786        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.byte	102                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x2980:0x17 DW_TAG_subprogram
+	.long	.Linfo_string787        @ DW_AT_linkage_name
+	.long	.Linfo_string788        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	1060                    @ DW_AT_decl_line
+	.long	10647                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2991:0x5 DW_TAG_formal_parameter
+	.long	21423                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	34                      @ Abbrev [34] 0x2997:0x5 DW_TAG_class_type
+	.long	.Linfo_string789        @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	22                      @ Abbrev [22] 0x299c:0x1c DW_TAG_subprogram
+	.long	.Linfo_string790        @ DW_AT_linkage_name
+	.long	.Linfo_string719        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	1079                    @ DW_AT_decl_line
+	.long	9823                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x29ad:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x29b2:0x5 DW_TAG_formal_parameter
+	.long	21433                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x29b8:0x1c DW_TAG_subprogram
+	.long	.Linfo_string791        @ DW_AT_linkage_name
+	.long	.Linfo_string719        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	1104                    @ DW_AT_decl_line
+	.long	9857                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x29c9:0x5 DW_TAG_formal_parameter
+	.long	21423                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x29ce:0x5 DW_TAG_formal_parameter
+	.long	21433                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x29d4:0x1c DW_TAG_subprogram
+	.long	.Linfo_string792        @ DW_AT_linkage_name
+	.long	.Linfo_string722        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	1125                    @ DW_AT_decl_line
+	.long	10166                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x29e5:0x5 DW_TAG_formal_parameter
+	.long	21423                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x29ea:0x5 DW_TAG_formal_parameter
+	.long	21433                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x29f0:0x1c DW_TAG_subprogram
+	.long	.Linfo_string793        @ DW_AT_linkage_name
+	.long	.Linfo_string724        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	1149                    @ DW_AT_decl_line
+	.long	9823                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2a01:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2a06:0x5 DW_TAG_formal_parameter
+	.long	21433                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2a0c:0x1c DW_TAG_subprogram
+	.long	.Linfo_string794        @ DW_AT_linkage_name
+	.long	.Linfo_string724        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	1174                    @ DW_AT_decl_line
+	.long	9857                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2a1d:0x5 DW_TAG_formal_parameter
+	.long	21423                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2a22:0x5 DW_TAG_formal_parameter
+	.long	21433                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2a28:0x1c DW_TAG_subprogram
+	.long	.Linfo_string795        @ DW_AT_linkage_name
+	.long	.Linfo_string727        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	1194                    @ DW_AT_decl_line
+	.long	9823                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2a39:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2a3e:0x5 DW_TAG_formal_parameter
+	.long	21433                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2a44:0x1c DW_TAG_subprogram
+	.long	.Linfo_string796        @ DW_AT_linkage_name
+	.long	.Linfo_string727        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	1214                    @ DW_AT_decl_line
+	.long	9857                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2a55:0x5 DW_TAG_formal_parameter
+	.long	21423                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2a5a:0x5 DW_TAG_formal_parameter
+	.long	21433                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2a60:0x1c DW_TAG_subprogram
+	.long	.Linfo_string797        @ DW_AT_linkage_name
+	.long	.Linfo_string730        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	1243                    @ DW_AT_decl_line
+	.long	14632                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2a71:0x5 DW_TAG_formal_parameter
+	.long	21388                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2a76:0x5 DW_TAG_formal_parameter
+	.long	21433                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2a7c:0x1c DW_TAG_subprogram
+	.long	.Linfo_string798        @ DW_AT_linkage_name
+	.long	.Linfo_string730        @ DW_AT_name
+	.byte	21                      @ DW_AT_decl_file
+	.short	1272                    @ DW_AT_decl_line
+	.long	14637                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2a8d:0x5 DW_TAG_formal_parameter
+	.long	21423                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2a92:0x5 DW_TAG_formal_parameter
+	.long	21433                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	25                      @ Abbrev [25] 0x2a98:0x9 DW_TAG_template_type_parameter
+	.long	14061                   @ DW_AT_type
+	.long	.Linfo_string742        @ DW_AT_name
+	.byte	25                      @ Abbrev [25] 0x2aa1:0x9 DW_TAG_template_type_parameter
+	.long	18995                   @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	25                      @ Abbrev [25] 0x2aaa:0x9 DW_TAG_template_type_parameter
+	.long	13961                   @ DW_AT_type
+	.long	.Linfo_string746        @ DW_AT_name
+	.byte	25                      @ Abbrev [25] 0x2ab3:0x9 DW_TAG_template_type_parameter
+	.long	13790                   @ DW_AT_type
+	.long	.Linfo_string43         @ DW_AT_name
+	.byte	0                       @ End Of Children Mark
+	.byte	39                      @ Abbrev [39] 0x2abd:0xa56 DW_TAG_class_type
+	.long	.Linfo_string747        @ DW_AT_name
+	.byte	24                      @ DW_AT_byte_size
+	.byte	18                      @ DW_AT_decl_file
+	.short	361                     @ DW_AT_decl_line
+	.byte	47                      @ Abbrev [47] 0x2ac6:0xe DW_TAG_member
+	.long	.Linfo_string9          @ DW_AT_name
+	.long	10964                   @ DW_AT_type
+	.byte	18                      @ DW_AT_decl_file
+	.short	637                     @ DW_AT_decl_line
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	31                      @ Abbrev [31] 0x2ad4:0xa9 DW_TAG_structure_type
+	.long	.Linfo_string604        @ DW_AT_name
+	.byte	24                      @ DW_AT_byte_size
+	.byte	18                      @ DW_AT_decl_file
+	.short	594                     @ DW_AT_decl_line
+	.byte	27                      @ Abbrev [27] 0x2add:0x6 DW_TAG_inheritance
+	.long	11133                   @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x2ae3:0xd DW_TAG_member
+	.long	.Linfo_string571        @ DW_AT_name
+	.long	13961                   @ DW_AT_type
+	.byte	18                      @ DW_AT_decl_file
+	.short	596                     @ DW_AT_decl_line
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x2af0:0xd DW_TAG_member
+	.long	.Linfo_string580        @ DW_AT_name
+	.long	14079                   @ DW_AT_type
+	.byte	18                      @ DW_AT_decl_file
+	.short	597                     @ DW_AT_decl_line
+	.byte	4                       @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x2afd:0xd DW_TAG_member
+	.long	.Linfo_string597        @ DW_AT_name
+	.long	21212                   @ DW_AT_type
+	.byte	18                      @ DW_AT_decl_file
+	.short	598                     @ DW_AT_decl_line
+	.byte	20                      @ DW_AT_data_member_location
+	.byte	43                      @ Abbrev [43] 0x2b0a:0xe DW_TAG_subprogram
+	.long	.Linfo_string598        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	600                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x2b12:0x5 DW_TAG_formal_parameter
+	.long	21224                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	43                      @ Abbrev [43] 0x2b18:0x18 DW_TAG_subprogram
+	.long	.Linfo_string598        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	605                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x2b20:0x5 DW_TAG_formal_parameter
+	.long	21224                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2b25:0x5 DW_TAG_formal_parameter
+	.long	21229                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x2b2a:0x5 DW_TAG_formal_parameter
+	.long	21234                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	43                      @ Abbrev [43] 0x2b30:0x18 DW_TAG_subprogram
+	.long	.Linfo_string598        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	611                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x2b38:0x5 DW_TAG_formal_parameter
+	.long	21224                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2b3d:0x5 DW_TAG_formal_parameter
+	.long	21229                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x2b42:0x5 DW_TAG_formal_parameter
+	.long	21244                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	24                      @ Abbrev [24] 0x2b48:0x12 DW_TAG_subprogram
+	.long	.Linfo_string599        @ DW_AT_linkage_name
+	.long	.Linfo_string600        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	618                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x2b54:0x5 DW_TAG_formal_parameter
+	.long	21224                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x2b5a:0x13 DW_TAG_subprogram
+	.long	.Linfo_string601        @ DW_AT_linkage_name
+	.long	.Linfo_string602        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	628                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	3                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_private
+	.byte	7                       @ Abbrev [7] 0x2b67:0x5 DW_TAG_formal_parameter
+	.long	21224                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	25                      @ Abbrev [25] 0x2b6d:0x9 DW_TAG_template_type_parameter
+	.long	13961                   @ DW_AT_type
+	.long	.Linfo_string603        @ DW_AT_name
+	.byte	46                      @ Abbrev [46] 0x2b76:0x6 DW_TAG_template_value_parameter
+	.long	18432                   @ DW_AT_type
+	.byte	1                       @ DW_AT_const_value
+	.byte	0                       @ End Of Children Mark
+	.byte	33                      @ Abbrev [33] 0x2b7d:0xc DW_TAG_typedef
+	.long	17601                   @ DW_AT_type
+	.long	.Linfo_string570        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	364                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x2b89:0x17 DW_TAG_subprogram
+	.long	.Linfo_string605        @ DW_AT_linkage_name
+	.long	.Linfo_string606        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	491                     @ DW_AT_decl_line
+	.long	21249                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2b9a:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2ba0:0x17 DW_TAG_subprogram
+	.long	.Linfo_string607        @ DW_AT_linkage_name
+	.long	.Linfo_string606        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	495                     @ DW_AT_decl_line
+	.long	21234                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2bb1:0x5 DW_TAG_formal_parameter
+	.long	21259                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2bb7:0x17 DW_TAG_subprogram
+	.long	.Linfo_string608        @ DW_AT_linkage_name
+	.long	.Linfo_string75         @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	499                     @ DW_AT_decl_line
+	.long	11214                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2bc8:0x5 DW_TAG_formal_parameter
+	.long	21259                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	33                      @ Abbrev [33] 0x2bce:0xc DW_TAG_typedef
+	.long	13790                   @ DW_AT_type
+	.long	.Linfo_string36         @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	488                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x2bda:0x17 DW_TAG_subprogram
+	.long	.Linfo_string609        @ DW_AT_linkage_name
+	.long	.Linfo_string610        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	504                     @ DW_AT_decl_line
+	.long	11249                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x2beb:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	33                      @ Abbrev [33] 0x2bf1:0xc DW_TAG_typedef
+	.long	21132                   @ DW_AT_type
+	.long	.Linfo_string611        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	371                     @ DW_AT_decl_line
+	.byte	23                      @ Abbrev [23] 0x2bfd:0x18 DW_TAG_subprogram
+	.long	.Linfo_string612        @ DW_AT_linkage_name
+	.long	.Linfo_string613        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	508                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x2c0a:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2c0f:0x5 DW_TAG_formal_parameter
+	.long	11249                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x2c15:0x18 DW_TAG_subprogram
+	.long	.Linfo_string614        @ DW_AT_linkage_name
+	.long	.Linfo_string615        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	565                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x2c22:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2c27:0x5 DW_TAG_formal_parameter
+	.long	11249                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x2c2d:0x18 DW_TAG_subprogram
+	.long	.Linfo_string616        @ DW_AT_linkage_name
+	.long	.Linfo_string617        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	573                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x2c3a:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2c3f:0x5 DW_TAG_formal_parameter
+	.long	11249                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2c45:0x17 DW_TAG_subprogram
+	.long	.Linfo_string618        @ DW_AT_linkage_name
+	.long	.Linfo_string619        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	641                     @ DW_AT_decl_line
+	.long	21269                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x2c56:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2c5c:0x17 DW_TAG_subprogram
+	.long	.Linfo_string620        @ DW_AT_linkage_name
+	.long	.Linfo_string619        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	645                     @ DW_AT_decl_line
+	.long	21286                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x2c6d:0x5 DW_TAG_formal_parameter
+	.long	21259                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2c73:0x17 DW_TAG_subprogram
+	.long	.Linfo_string621        @ DW_AT_linkage_name
+	.long	.Linfo_string622        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	649                     @ DW_AT_decl_line
+	.long	21269                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x2c84:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2c8a:0x17 DW_TAG_subprogram
+	.long	.Linfo_string623        @ DW_AT_linkage_name
+	.long	.Linfo_string622        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	653                     @ DW_AT_decl_line
+	.long	21286                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x2c9b:0x5 DW_TAG_formal_parameter
+	.long	21259                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2ca1:0x17 DW_TAG_subprogram
+	.long	.Linfo_string624        @ DW_AT_linkage_name
+	.long	.Linfo_string625        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	657                     @ DW_AT_decl_line
+	.long	21269                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x2cb2:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2cb8:0x17 DW_TAG_subprogram
+	.long	.Linfo_string626        @ DW_AT_linkage_name
+	.long	.Linfo_string625        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	661                     @ DW_AT_decl_line
+	.long	21286                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x2cc9:0x5 DW_TAG_formal_parameter
+	.long	21259                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2ccf:0x17 DW_TAG_subprogram
+	.long	.Linfo_string627        @ DW_AT_linkage_name
+	.long	.Linfo_string628        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	665                     @ DW_AT_decl_line
+	.long	11249                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x2ce0:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2ce6:0x17 DW_TAG_subprogram
+	.long	.Linfo_string629        @ DW_AT_linkage_name
+	.long	.Linfo_string628        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	669                     @ DW_AT_decl_line
+	.long	11517                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x2cf7:0x5 DW_TAG_formal_parameter
+	.long	21259                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	33                      @ Abbrev [33] 0x2cfd:0xc DW_TAG_typedef
+	.long	21147                   @ DW_AT_type
+	.long	.Linfo_string630        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	372                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x2d09:0x17 DW_TAG_subprogram
+	.long	.Linfo_string631        @ DW_AT_linkage_name
+	.long	.Linfo_string632        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	676                     @ DW_AT_decl_line
+	.long	21274                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x2d1a:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2d20:0x17 DW_TAG_subprogram
+	.long	.Linfo_string633        @ DW_AT_linkage_name
+	.long	.Linfo_string632        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	680                     @ DW_AT_decl_line
+	.long	21286                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	7                       @ Abbrev [7] 0x2d31:0x5 DW_TAG_formal_parameter
+	.long	21259                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2d37:0x17 DW_TAG_subprogram
+	.long	.Linfo_string634        @ DW_AT_linkage_name
+	.long	.Linfo_string635        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	684                     @ DW_AT_decl_line
+	.long	11598                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	8                       @ Abbrev [8] 0x2d48:0x5 DW_TAG_formal_parameter
+	.long	11517                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	33                      @ Abbrev [33] 0x2d4e:0xc DW_TAG_typedef
+	.long	21298                   @ DW_AT_type
+	.long	.Linfo_string21         @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	485                     @ DW_AT_decl_line
+	.byte	33                      @ Abbrev [33] 0x2d5a:0xc DW_TAG_typedef
+	.long	13785                   @ DW_AT_type
+	.long	.Linfo_string86         @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	481                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x2d66:0x17 DW_TAG_subprogram
+	.long	.Linfo_string636        @ DW_AT_linkage_name
+	.long	.Linfo_string637        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	688                     @ DW_AT_decl_line
+	.long	21187                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	8                       @ Abbrev [8] 0x2d77:0x5 DW_TAG_formal_parameter
+	.long	11517                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2d7d:0x17 DW_TAG_subprogram
+	.long	.Linfo_string638        @ DW_AT_linkage_name
+	.long	.Linfo_string639        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	692                     @ DW_AT_decl_line
+	.long	11249                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	8                       @ Abbrev [8] 0x2d8e:0x5 DW_TAG_formal_parameter
+	.long	21274                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2d94:0x17 DW_TAG_subprogram
+	.long	.Linfo_string640        @ DW_AT_linkage_name
+	.long	.Linfo_string639        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	696                     @ DW_AT_decl_line
+	.long	11517                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	8                       @ Abbrev [8] 0x2da5:0x5 DW_TAG_formal_parameter
+	.long	21286                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2dab:0x17 DW_TAG_subprogram
+	.long	.Linfo_string641        @ DW_AT_linkage_name
+	.long	.Linfo_string642        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	700                     @ DW_AT_decl_line
+	.long	11249                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	8                       @ Abbrev [8] 0x2dbc:0x5 DW_TAG_formal_parameter
+	.long	21274                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2dc2:0x17 DW_TAG_subprogram
+	.long	.Linfo_string643        @ DW_AT_linkage_name
+	.long	.Linfo_string642        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	704                     @ DW_AT_decl_line
+	.long	11517                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	8                       @ Abbrev [8] 0x2dd3:0x5 DW_TAG_formal_parameter
+	.long	21286                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2dd9:0x17 DW_TAG_subprogram
+	.long	.Linfo_string644        @ DW_AT_linkage_name
+	.long	.Linfo_string635        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	708                     @ DW_AT_decl_line
+	.long	11598                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	8                       @ Abbrev [8] 0x2dea:0x5 DW_TAG_formal_parameter
+	.long	21286                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2df0:0x17 DW_TAG_subprogram
+	.long	.Linfo_string645        @ DW_AT_linkage_name
+	.long	.Linfo_string637        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	712                     @ DW_AT_decl_line
+	.long	21187                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	8                       @ Abbrev [8] 0x2e01:0x5 DW_TAG_formal_parameter
+	.long	21286                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2e07:0x17 DW_TAG_subprogram
+	.long	.Linfo_string646        @ DW_AT_linkage_name
+	.long	.Linfo_string590        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	716                     @ DW_AT_decl_line
+	.long	11806                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	8                       @ Abbrev [8] 0x2e18:0x5 DW_TAG_formal_parameter
+	.long	21274                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	33                      @ Abbrev [33] 0x2e1e:0xc DW_TAG_typedef
+	.long	21197                   @ DW_AT_type
+	.long	.Linfo_string586        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	369                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x2e2a:0x17 DW_TAG_subprogram
+	.long	.Linfo_string647        @ DW_AT_linkage_name
+	.long	.Linfo_string590        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	720                     @ DW_AT_decl_line
+	.long	11841                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	8                       @ Abbrev [8] 0x2e3b:0x5 DW_TAG_formal_parameter
+	.long	21286                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	33                      @ Abbrev [33] 0x2e41:0xc DW_TAG_typedef
+	.long	21202                   @ DW_AT_type
+	.long	.Linfo_string592        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	370                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x2e4d:0x17 DW_TAG_subprogram
+	.long	.Linfo_string648        @ DW_AT_linkage_name
+	.long	.Linfo_string594        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	724                     @ DW_AT_decl_line
+	.long	11806                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	8                       @ Abbrev [8] 0x2e5e:0x5 DW_TAG_formal_parameter
+	.long	21274                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2e64:0x17 DW_TAG_subprogram
+	.long	.Linfo_string649        @ DW_AT_linkage_name
+	.long	.Linfo_string594        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	728                     @ DW_AT_decl_line
+	.long	11841                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	2                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_protected
+	.byte	8                       @ Abbrev [8] 0x2e75:0x5 DW_TAG_formal_parameter
+	.long	21286                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2e7b:0x1c DW_TAG_subprogram
+	.long	.Linfo_string650        @ DW_AT_linkage_name
+	.long	.Linfo_string651        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	739                     @ DW_AT_decl_line
+	.long	14263                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2e8c:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2e91:0x5 DW_TAG_formal_parameter
+	.long	21348                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	33                      @ Abbrev [33] 0x2e97:0xc DW_TAG_typedef
+	.long	14061                   @ DW_AT_type
+	.long	.Linfo_string666        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	480                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x2ea3:0x1c DW_TAG_subprogram
+	.long	.Linfo_string667        @ DW_AT_linkage_name
+	.long	.Linfo_string668        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	742                     @ DW_AT_decl_line
+	.long	14263                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2eb4:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2eb9:0x5 DW_TAG_formal_parameter
+	.long	21348                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x2ebf:0x21 DW_TAG_subprogram
+	.long	.Linfo_string669        @ DW_AT_linkage_name
+	.long	.Linfo_string670        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	745                     @ DW_AT_decl_line
+	.long	14263                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2ed0:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2ed5:0x5 DW_TAG_formal_parameter
+	.long	12000                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x2eda:0x5 DW_TAG_formal_parameter
+	.long	21348                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	33                      @ Abbrev [33] 0x2ee0:0xc DW_TAG_typedef
+	.long	14612                   @ DW_AT_type
+	.long	.Linfo_string102        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	733                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x2eec:0x21 DW_TAG_subprogram
+	.long	.Linfo_string672        @ DW_AT_linkage_name
+	.long	.Linfo_string673        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	749                     @ DW_AT_decl_line
+	.long	14263                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x2efd:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2f02:0x5 DW_TAG_formal_parameter
+	.long	12000                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x2f07:0x5 DW_TAG_formal_parameter
+	.long	21348                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	32                      @ Abbrev [32] 0x2f0d:0x25 DW_TAG_subprogram
+	.long	.Linfo_string674        @ DW_AT_linkage_name
+	.long	.Linfo_string675        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	759                     @ DW_AT_decl_line
+	.long	12082                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x2f1d:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2f22:0x5 DW_TAG_formal_parameter
+	.long	21274                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x2f27:0x5 DW_TAG_formal_parameter
+	.long	21274                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x2f2c:0x5 DW_TAG_formal_parameter
+	.long	11249                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	33                      @ Abbrev [33] 0x2f32:0xc DW_TAG_typedef
+	.long	14617                   @ DW_AT_type
+	.long	.Linfo_string99         @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	732                     @ DW_AT_decl_line
+	.byte	32                      @ Abbrev [32] 0x2f3e:0x20 DW_TAG_subprogram
+	.long	.Linfo_string677        @ DW_AT_linkage_name
+	.long	.Linfo_string678        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	770                     @ DW_AT_decl_line
+	.long	12082                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x2f4e:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2f53:0x5 DW_TAG_formal_parameter
+	.long	21274                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x2f58:0x5 DW_TAG_formal_parameter
+	.long	11249                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	32                      @ Abbrev [32] 0x2f5e:0x1b DW_TAG_subprogram
+	.long	.Linfo_string679        @ DW_AT_linkage_name
+	.long	.Linfo_string680        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	773                     @ DW_AT_decl_line
+	.long	12082                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x2f6e:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2f73:0x5 DW_TAG_formal_parameter
+	.long	11249                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	32                      @ Abbrev [32] 0x2f79:0x20 DW_TAG_subprogram
+	.long	.Linfo_string681        @ DW_AT_linkage_name
+	.long	.Linfo_string682        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	794                     @ DW_AT_decl_line
+	.long	11249                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x2f89:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2f8e:0x5 DW_TAG_formal_parameter
+	.long	11517                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x2f93:0x5 DW_TAG_formal_parameter
+	.long	21274                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	24                      @ Abbrev [24] 0x2f99:0x17 DW_TAG_subprogram
+	.long	.Linfo_string683        @ DW_AT_linkage_name
+	.long	.Linfo_string190        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	801                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x2fa5:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2faa:0x5 DW_TAG_formal_parameter
+	.long	11249                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	32                      @ Abbrev [32] 0x2fb0:0x25 DW_TAG_subprogram
+	.long	.Linfo_string684        @ DW_AT_linkage_name
+	.long	.Linfo_string685        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	804                     @ DW_AT_decl_line
+	.long	12082                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x2fc0:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2fc5:0x5 DW_TAG_formal_parameter
+	.long	11249                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x2fca:0x5 DW_TAG_formal_parameter
+	.long	21274                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x2fcf:0x5 DW_TAG_formal_parameter
+	.long	21187                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	32                      @ Abbrev [32] 0x2fd5:0x25 DW_TAG_subprogram
+	.long	.Linfo_string686        @ DW_AT_linkage_name
+	.long	.Linfo_string685        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	808                     @ DW_AT_decl_line
+	.long	12000                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x2fe5:0x5 DW_TAG_formal_parameter
+	.long	21259                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x2fea:0x5 DW_TAG_formal_parameter
+	.long	11517                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x2fef:0x5 DW_TAG_formal_parameter
+	.long	21286                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x2ff4:0x5 DW_TAG_formal_parameter
+	.long	21187                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	32                      @ Abbrev [32] 0x2ffa:0x25 DW_TAG_subprogram
+	.long	.Linfo_string687        @ DW_AT_linkage_name
+	.long	.Linfo_string688        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	812                     @ DW_AT_decl_line
+	.long	12082                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x300a:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x300f:0x5 DW_TAG_formal_parameter
+	.long	11249                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x3014:0x5 DW_TAG_formal_parameter
+	.long	21274                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x3019:0x5 DW_TAG_formal_parameter
+	.long	21187                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	32                      @ Abbrev [32] 0x301f:0x25 DW_TAG_subprogram
+	.long	.Linfo_string689        @ DW_AT_linkage_name
+	.long	.Linfo_string688        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	816                     @ DW_AT_decl_line
+	.long	12000                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x302f:0x5 DW_TAG_formal_parameter
+	.long	21259                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x3034:0x5 DW_TAG_formal_parameter
+	.long	11517                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x3039:0x5 DW_TAG_formal_parameter
+	.long	21286                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x303e:0x5 DW_TAG_formal_parameter
+	.long	21187                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	21                      @ Abbrev [21] 0x3044:0xf DW_TAG_subprogram
+	.long	.Linfo_string690        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	821                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x304d:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	21                      @ Abbrev [21] 0x3053:0x19 DW_TAG_subprogram
+	.long	.Linfo_string690        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	823                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x305c:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x3061:0x5 DW_TAG_formal_parameter
+	.long	21229                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x3066:0x5 DW_TAG_formal_parameter
+	.long	21358                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	21                      @ Abbrev [21] 0x306c:0x14 DW_TAG_subprogram
+	.long	.Linfo_string690        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	827                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3075:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x307a:0x5 DW_TAG_formal_parameter
+	.long	21368                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	21                      @ Abbrev [21] 0x3080:0x14 DW_TAG_subprogram
+	.long	.Linfo_string690        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	841                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3089:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x308e:0x5 DW_TAG_formal_parameter
+	.long	21358                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	21                      @ Abbrev [21] 0x3094:0x19 DW_TAG_subprogram
+	.long	.Linfo_string690        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	845                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x309d:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x30a2:0x5 DW_TAG_formal_parameter
+	.long	21368                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x30a7:0x5 DW_TAG_formal_parameter
+	.long	21358                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	21                      @ Abbrev [21] 0x30ad:0x14 DW_TAG_subprogram
+	.long	.Linfo_string690        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	857                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x30b6:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x30bb:0x5 DW_TAG_formal_parameter
+	.long	21373                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	21                      @ Abbrev [21] 0x30c1:0x19 DW_TAG_subprogram
+	.long	.Linfo_string690        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	865                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x30ca:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x30cf:0x5 DW_TAG_formal_parameter
+	.long	21373                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x30d4:0x5 DW_TAG_formal_parameter
+	.long	21358                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	21                      @ Abbrev [21] 0x30da:0x19 DW_TAG_subprogram
+	.long	.Linfo_string690        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	869                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x30e3:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x30e8:0x5 DW_TAG_formal_parameter
+	.long	21373                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x30ed:0x5 DW_TAG_formal_parameter
+	.long	21244                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	21                      @ Abbrev [21] 0x30f3:0xf DW_TAG_subprogram
+	.long	.Linfo_string691        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	872                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x30fc:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x3102:0x1c DW_TAG_subprogram
+	.long	.Linfo_string692        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	876                     @ DW_AT_decl_line
+	.long	21378                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3113:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x3118:0x5 DW_TAG_formal_parameter
+	.long	21368                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x311e:0x17 DW_TAG_subprogram
+	.long	.Linfo_string693        @ DW_AT_linkage_name
+	.long	.Linfo_string694        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	880                     @ DW_AT_decl_line
+	.long	13961                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x312f:0x5 DW_TAG_formal_parameter
+	.long	21259                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x3135:0x17 DW_TAG_subprogram
+	.long	.Linfo_string695        @ DW_AT_linkage_name
+	.long	.Linfo_string97         @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	884                     @ DW_AT_decl_line
+	.long	12082                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3146:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x314c:0x17 DW_TAG_subprogram
+	.long	.Linfo_string696        @ DW_AT_linkage_name
+	.long	.Linfo_string97         @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	888                     @ DW_AT_decl_line
+	.long	12000                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x315d:0x5 DW_TAG_formal_parameter
+	.long	21259                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x3163:0x17 DW_TAG_subprogram
+	.long	.Linfo_string697        @ DW_AT_linkage_name
+	.long	.Linfo_string104        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	892                     @ DW_AT_decl_line
+	.long	12082                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3174:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x317a:0x17 DW_TAG_subprogram
+	.long	.Linfo_string698        @ DW_AT_linkage_name
+	.long	.Linfo_string104        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	896                     @ DW_AT_decl_line
+	.long	12000                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x318b:0x5 DW_TAG_formal_parameter
+	.long	21259                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x3191:0x17 DW_TAG_subprogram
+	.long	.Linfo_string699        @ DW_AT_linkage_name
+	.long	.Linfo_string107        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	900                     @ DW_AT_decl_line
+	.long	12712                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x31a2:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	33                      @ Abbrev [33] 0x31a8:0xc DW_TAG_typedef
+	.long	14622                   @ DW_AT_type
+	.long	.Linfo_string109        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	735                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x31b4:0x17 DW_TAG_subprogram
+	.long	.Linfo_string701        @ DW_AT_linkage_name
+	.long	.Linfo_string107        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	904                     @ DW_AT_decl_line
+	.long	12747                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x31c5:0x5 DW_TAG_formal_parameter
+	.long	21259                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	33                      @ Abbrev [33] 0x31cb:0xc DW_TAG_typedef
+	.long	14627                   @ DW_AT_type
+	.long	.Linfo_string112        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	736                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x31d7:0x17 DW_TAG_subprogram
+	.long	.Linfo_string703        @ DW_AT_linkage_name
+	.long	.Linfo_string114        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	908                     @ DW_AT_decl_line
+	.long	12712                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x31e8:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x31ee:0x17 DW_TAG_subprogram
+	.long	.Linfo_string704        @ DW_AT_linkage_name
+	.long	.Linfo_string114        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	912                     @ DW_AT_decl_line
+	.long	12747                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x31ff:0x5 DW_TAG_formal_parameter
+	.long	21259                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x3205:0x17 DW_TAG_subprogram
+	.long	.Linfo_string705        @ DW_AT_linkage_name
+	.long	.Linfo_string135        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	916                     @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3216:0x5 DW_TAG_formal_parameter
+	.long	21259                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x321c:0x17 DW_TAG_subprogram
+	.long	.Linfo_string706        @ DW_AT_linkage_name
+	.long	.Linfo_string125        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	920                     @ DW_AT_decl_line
+	.long	21212                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x322d:0x5 DW_TAG_formal_parameter
+	.long	21259                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x3233:0x17 DW_TAG_subprogram
+	.long	.Linfo_string707        @ DW_AT_linkage_name
+	.long	.Linfo_string29         @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	924                     @ DW_AT_decl_line
+	.long	21212                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3244:0x5 DW_TAG_formal_parameter
+	.long	21259                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x324a:0x18 DW_TAG_subprogram
+	.long	.Linfo_string708        @ DW_AT_linkage_name
+	.long	.Linfo_string169        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	928                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3257:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x325c:0x5 DW_TAG_formal_parameter
+	.long	21378                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	24                      @ Abbrev [24] 0x3262:0x17 DW_TAG_subprogram
+	.long	.Linfo_string709        @ DW_AT_linkage_name
+	.long	.Linfo_string710        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	1021                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x326e:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x3273:0x5 DW_TAG_formal_parameter
+	.long	12000                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	24                      @ Abbrev [24] 0x3279:0x1c DW_TAG_subprogram
+	.long	.Linfo_string711        @ DW_AT_linkage_name
+	.long	.Linfo_string710        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	1024                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x3285:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x328a:0x5 DW_TAG_formal_parameter
+	.long	12000                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x328f:0x5 DW_TAG_formal_parameter
+	.long	12000                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x3295:0x1c DW_TAG_subprogram
+	.long	.Linfo_string712        @ DW_AT_linkage_name
+	.long	.Linfo_string166        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	1032                    @ DW_AT_decl_line
+	.long	12082                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x32a6:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x32ab:0x5 DW_TAG_formal_parameter
+	.long	12000                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x32b1:0x1c DW_TAG_subprogram
+	.long	.Linfo_string713        @ DW_AT_linkage_name
+	.long	.Linfo_string166        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	1043                    @ DW_AT_decl_line
+	.long	12082                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x32c2:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x32c7:0x5 DW_TAG_formal_parameter
+	.long	12082                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x32cd:0x1c DW_TAG_subprogram
+	.long	.Linfo_string714        @ DW_AT_linkage_name
+	.long	.Linfo_string166        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	1060                    @ DW_AT_decl_line
+	.long	13033                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x32de:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x32e3:0x5 DW_TAG_formal_parameter
+	.long	21348                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	33                      @ Abbrev [33] 0x32e9:0xc DW_TAG_typedef
+	.long	3010                    @ DW_AT_type
+	.long	.Linfo_string25         @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	486                     @ DW_AT_decl_line
+	.byte	22                      @ Abbrev [22] 0x32f5:0x21 DW_TAG_subprogram
+	.long	.Linfo_string715        @ DW_AT_linkage_name
+	.long	.Linfo_string166        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	1067                    @ DW_AT_decl_line
+	.long	12082                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3306:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x330b:0x5 DW_TAG_formal_parameter
+	.long	12000                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x3310:0x5 DW_TAG_formal_parameter
+	.long	12000                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x3316:0x1d DW_TAG_subprogram
+	.long	.Linfo_string716        @ DW_AT_linkage_name
+	.long	.Linfo_string166        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	1082                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3323:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x3328:0x5 DW_TAG_formal_parameter
+	.long	21383                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x332d:0x5 DW_TAG_formal_parameter
+	.long	21383                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	23                      @ Abbrev [23] 0x3333:0x13 DW_TAG_subprogram
+	.long	.Linfo_string717        @ DW_AT_linkage_name
+	.long	.Linfo_string171        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	1085                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3340:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x3346:0x1c DW_TAG_subprogram
+	.long	.Linfo_string718        @ DW_AT_linkage_name
+	.long	.Linfo_string719        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	1093                    @ DW_AT_decl_line
+	.long	12082                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3357:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x335c:0x5 DW_TAG_formal_parameter
+	.long	21348                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x3362:0x1c DW_TAG_subprogram
+	.long	.Linfo_string720        @ DW_AT_linkage_name
+	.long	.Linfo_string719        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	1096                    @ DW_AT_decl_line
+	.long	12000                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3373:0x5 DW_TAG_formal_parameter
+	.long	21259                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x3378:0x5 DW_TAG_formal_parameter
+	.long	21348                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x337e:0x1c DW_TAG_subprogram
+	.long	.Linfo_string721        @ DW_AT_linkage_name
+	.long	.Linfo_string722        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	1099                    @ DW_AT_decl_line
+	.long	13033                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x338f:0x5 DW_TAG_formal_parameter
+	.long	21259                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x3394:0x5 DW_TAG_formal_parameter
+	.long	21348                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x339a:0x1c DW_TAG_subprogram
+	.long	.Linfo_string723        @ DW_AT_linkage_name
+	.long	.Linfo_string724        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	1102                    @ DW_AT_decl_line
+	.long	12082                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x33ab:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x33b0:0x5 DW_TAG_formal_parameter
+	.long	21348                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x33b6:0x1c DW_TAG_subprogram
+	.long	.Linfo_string725        @ DW_AT_linkage_name
+	.long	.Linfo_string724        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	1106                    @ DW_AT_decl_line
+	.long	12000                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x33c7:0x5 DW_TAG_formal_parameter
+	.long	21259                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x33cc:0x5 DW_TAG_formal_parameter
+	.long	21348                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x33d2:0x1c DW_TAG_subprogram
+	.long	.Linfo_string726        @ DW_AT_linkage_name
+	.long	.Linfo_string727        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	1110                    @ DW_AT_decl_line
+	.long	12082                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x33e3:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x33e8:0x5 DW_TAG_formal_parameter
+	.long	21348                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x33ee:0x1c DW_TAG_subprogram
+	.long	.Linfo_string728        @ DW_AT_linkage_name
+	.long	.Linfo_string727        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	1114                    @ DW_AT_decl_line
+	.long	12000                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x33ff:0x5 DW_TAG_formal_parameter
+	.long	21259                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x3404:0x5 DW_TAG_formal_parameter
+	.long	21348                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x340a:0x1c DW_TAG_subprogram
+	.long	.Linfo_string729        @ DW_AT_linkage_name
+	.long	.Linfo_string730        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	1118                    @ DW_AT_decl_line
+	.long	14632                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x341b:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x3420:0x5 DW_TAG_formal_parameter
+	.long	21348                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x3426:0x1c DW_TAG_subprogram
+	.long	.Linfo_string732        @ DW_AT_linkage_name
+	.long	.Linfo_string730        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	1121                    @ DW_AT_decl_line
+	.long	14637                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3437:0x5 DW_TAG_formal_parameter
+	.long	21259                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x343c:0x5 DW_TAG_formal_parameter
+	.long	21348                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x3442:0x17 DW_TAG_subprogram
+	.long	.Linfo_string734        @ DW_AT_linkage_name
+	.long	.Linfo_string735        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	1242                    @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3453:0x5 DW_TAG_formal_parameter
+	.long	21259                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	22                      @ Abbrev [22] 0x3459:0x1c DW_TAG_subprogram
+	.long	.Linfo_string736        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	1246                    @ DW_AT_decl_line
+	.long	21378                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x346a:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x346f:0x5 DW_TAG_formal_parameter
+	.long	21373                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	24                      @ Abbrev [24] 0x3475:0x1c DW_TAG_subprogram
+	.long	.Linfo_string737        @ DW_AT_linkage_name
+	.long	.Linfo_string738        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	1261                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x3481:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x3486:0x5 DW_TAG_formal_parameter
+	.long	21378                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x348b:0x5 DW_TAG_formal_parameter
+	.long	3036                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	24                      @ Abbrev [24] 0x3491:0x1c DW_TAG_subprogram
+	.long	.Linfo_string739        @ DW_AT_linkage_name
+	.long	.Linfo_string738        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	1266                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x349d:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x34a2:0x5 DW_TAG_formal_parameter
+	.long	21378                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x34a7:0x5 DW_TAG_formal_parameter
+	.long	3119                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	24                      @ Abbrev [24] 0x34ad:0x1c DW_TAG_subprogram
+	.long	.Linfo_string740        @ DW_AT_linkage_name
+	.long	.Linfo_string193        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	1270                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x34b9:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x34be:0x5 DW_TAG_formal_parameter
+	.long	21378                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x34c3:0x5 DW_TAG_formal_parameter
+	.long	3036                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	24                      @ Abbrev [24] 0x34c9:0x1c DW_TAG_subprogram
+	.long	.Linfo_string741        @ DW_AT_linkage_name
+	.long	.Linfo_string193        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	1275                    @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x34d5:0x5 DW_TAG_formal_parameter
+	.long	21254                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x34da:0x5 DW_TAG_formal_parameter
+	.long	21378                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x34df:0x5 DW_TAG_formal_parameter
+	.long	3119                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	25                      @ Abbrev [25] 0x34e5:0x9 DW_TAG_template_type_parameter
+	.long	14061                   @ DW_AT_type
+	.long	.Linfo_string742        @ DW_AT_name
+	.byte	25                      @ Abbrev [25] 0x34ee:0x9 DW_TAG_template_type_parameter
+	.long	13785                   @ DW_AT_type
+	.long	.Linfo_string743        @ DW_AT_name
+	.byte	25                      @ Abbrev [25] 0x34f7:0x9 DW_TAG_template_type_parameter
+	.long	14642                   @ DW_AT_type
+	.long	.Linfo_string745        @ DW_AT_name
+	.byte	25                      @ Abbrev [25] 0x3500:0x9 DW_TAG_template_type_parameter
+	.long	13961                   @ DW_AT_type
+	.long	.Linfo_string746        @ DW_AT_name
+	.byte	25                      @ Abbrev [25] 0x3509:0x9 DW_TAG_template_type_parameter
+	.long	13790                   @ DW_AT_type
+	.long	.Linfo_string43         @ DW_AT_name
+	.byte	0                       @ End Of Children Mark
+	.byte	31                      @ Abbrev [31] 0x3513:0xc6 DW_TAG_structure_type
+	.long	.Linfo_string550        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	2                       @ DW_AT_decl_file
+	.short	384                     @ DW_AT_decl_line
+	.byte	32                      @ Abbrev [32] 0x351c:0x1b DW_TAG_subprogram
+	.long	.Linfo_string536        @ DW_AT_linkage_name
+	.long	.Linfo_string12         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	435                     @ DW_AT_decl_line
+	.long	13623                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x352c:0x5 DW_TAG_formal_parameter
+	.long	21042                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x3531:0x5 DW_TAG_formal_parameter
+	.long	18393                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	33                      @ Abbrev [33] 0x3537:0xc DW_TAG_typedef
+	.long	21037                   @ DW_AT_type
+	.long	.Linfo_string13         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	392                     @ DW_AT_decl_line
+	.byte	33                      @ Abbrev [33] 0x3543:0xc DW_TAG_typedef
+	.long	13790                   @ DW_AT_type
+	.long	.Linfo_string36         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	387                     @ DW_AT_decl_line
+	.byte	32                      @ Abbrev [32] 0x354f:0x20 DW_TAG_subprogram
+	.long	.Linfo_string546        @ DW_AT_linkage_name
+	.long	.Linfo_string12         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	449                     @ DW_AT_decl_line
+	.long	13623                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x355f:0x5 DW_TAG_formal_parameter
+	.long	21042                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x3564:0x5 DW_TAG_formal_parameter
+	.long	18393                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x3569:0x5 DW_TAG_formal_parameter
+	.long	18405                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	24                      @ Abbrev [24] 0x356f:0x1c DW_TAG_subprogram
+	.long	.Linfo_string547        @ DW_AT_linkage_name
+	.long	.Linfo_string27         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	461                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x357b:0x5 DW_TAG_formal_parameter
+	.long	21042                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x3580:0x5 DW_TAG_formal_parameter
+	.long	13623                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x3585:0x5 DW_TAG_formal_parameter
+	.long	18393                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	32                      @ Abbrev [32] 0x358b:0x16 DW_TAG_subprogram
+	.long	.Linfo_string548        @ DW_AT_linkage_name
+	.long	.Linfo_string29         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	495                     @ DW_AT_decl_line
+	.long	13729                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x359b:0x5 DW_TAG_formal_parameter
+	.long	21102                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	33                      @ Abbrev [33] 0x35a1:0xc DW_TAG_typedef
+	.long	3010                    @ DW_AT_type
+	.long	.Linfo_string25         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	407                     @ DW_AT_decl_line
+	.byte	32                      @ Abbrev [32] 0x35ad:0x16 DW_TAG_subprogram
+	.long	.Linfo_string549        @ DW_AT_linkage_name
+	.long	.Linfo_string42         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	504                     @ DW_AT_decl_line
+	.long	13635                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x35bd:0x5 DW_TAG_formal_parameter
+	.long	21102                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	25                      @ Abbrev [25] 0x35c3:0x9 DW_TAG_template_type_parameter
+	.long	13790                   @ DW_AT_type
+	.long	.Linfo_string43         @ DW_AT_name
+	.byte	33                      @ Abbrev [33] 0x35cc:0xc DW_TAG_typedef
+	.long	13878                   @ DW_AT_type
+	.long	.Linfo_string569        @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	422                     @ DW_AT_decl_line
+	.byte	0                       @ End Of Children Mark
+	.byte	49                      @ Abbrev [49] 0x35d9:0x5 DW_TAG_structure_type
+	.long	.Linfo_string537        @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	17                      @ Abbrev [17] 0x35de:0x48 DW_TAG_class_type
+	.long	.Linfo_string545        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	5                       @ DW_AT_decl_file
+	.byte	108                     @ DW_AT_decl_line
+	.byte	18                      @ Abbrev [18] 0x35e6:0x7 DW_TAG_inheritance
+	.long	13862                   @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	6                       @ Abbrev [6] 0x35ed:0xe DW_TAG_subprogram
+	.long	.Linfo_string33         @ DW_AT_name
+	.byte	5                       @ DW_AT_decl_file
+	.byte	131                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x35f5:0x5 DW_TAG_formal_parameter
+	.long	21087                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x35fb:0x13 DW_TAG_subprogram
+	.long	.Linfo_string33         @ DW_AT_name
+	.byte	5                       @ DW_AT_decl_file
+	.byte	133                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3603:0x5 DW_TAG_formal_parameter
+	.long	21087                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x3608:0x5 DW_TAG_formal_parameter
+	.long	21092                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x360e:0xe DW_TAG_subprogram
+	.long	.Linfo_string34         @ DW_AT_name
+	.byte	5                       @ DW_AT_decl_file
+	.byte	139                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3616:0x5 DW_TAG_formal_parameter
+	.long	21087                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	25                      @ Abbrev [25] 0x361c:0x9 DW_TAG_template_type_parameter
+	.long	13785                   @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x3626:0xb DW_TAG_typedef
+	.long	17614                   @ DW_AT_type
+	.long	.Linfo_string544        @ DW_AT_name
+	.byte	4                       @ DW_AT_decl_file
+	.byte	48                      @ DW_AT_decl_line
+	.byte	49                      @ Abbrev [49] 0x3631:0x5 DW_TAG_structure_type
+	.long	.Linfo_string559        @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	17                      @ Abbrev [17] 0x3636:0x48 DW_TAG_class_type
+	.long	.Linfo_string568        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	5                       @ DW_AT_decl_file
+	.byte	108                     @ DW_AT_decl_line
+	.byte	18                      @ Abbrev [18] 0x363e:0x7 DW_TAG_inheritance
+	.long	13950                   @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	6                       @ Abbrev [6] 0x3645:0xe DW_TAG_subprogram
+	.long	.Linfo_string33         @ DW_AT_name
+	.byte	5                       @ DW_AT_decl_file
+	.byte	131                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x364d:0x5 DW_TAG_formal_parameter
+	.long	21162                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x3653:0x13 DW_TAG_subprogram
+	.long	.Linfo_string33         @ DW_AT_name
+	.byte	5                       @ DW_AT_decl_file
+	.byte	133                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x365b:0x5 DW_TAG_formal_parameter
+	.long	21162                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x3660:0x5 DW_TAG_formal_parameter
+	.long	21167                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x3666:0xe DW_TAG_subprogram
+	.long	.Linfo_string34         @ DW_AT_name
+	.byte	5                       @ DW_AT_decl_file
+	.byte	139                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x366e:0x5 DW_TAG_formal_parameter
+	.long	21162                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	25                      @ Abbrev [25] 0x3674:0x9 DW_TAG_template_type_parameter
+	.long	13873                   @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x367e:0xb DW_TAG_typedef
+	.long	17859                   @ DW_AT_type
+	.long	.Linfo_string567        @ DW_AT_name
+	.byte	4                       @ DW_AT_decl_file
+	.byte	48                      @ DW_AT_decl_line
+	.byte	31                      @ Abbrev [31] 0x3689:0x39 DW_TAG_structure_type
+	.long	.Linfo_string579        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	19                      @ DW_AT_decl_file
+	.short	381                     @ DW_AT_decl_line
+	.byte	27                      @ Abbrev [27] 0x3692:0x6 DW_TAG_inheritance
+	.long	14018                   @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	32                      @ Abbrev [32] 0x3698:0x20 DW_TAG_subprogram
+	.long	.Linfo_string578        @ DW_AT_linkage_name
+	.long	.Linfo_string412        @ DW_AT_name
+	.byte	19                      @ DW_AT_decl_file
+	.short	385                     @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x36a8:0x5 DW_TAG_formal_parameter
+	.long	21177                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x36ad:0x5 DW_TAG_formal_parameter
+	.long	21187                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x36b2:0x5 DW_TAG_formal_parameter
+	.long	21187                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	25                      @ Abbrev [25] 0x36b8:0x9 DW_TAG_template_type_parameter
+	.long	14061                   @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	0                       @ End Of Children Mark
+	.byte	26                      @ Abbrev [26] 0x36c2:0x24 DW_TAG_structure_type
+	.long	.Linfo_string577        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	19                      @ DW_AT_decl_file
+	.byte	118                     @ DW_AT_decl_line
+	.byte	25                      @ Abbrev [25] 0x36ca:0x9 DW_TAG_template_type_parameter
+	.long	14061                   @ DW_AT_type
+	.long	.Linfo_string574        @ DW_AT_name
+	.byte	25                      @ Abbrev [25] 0x36d3:0x9 DW_TAG_template_type_parameter
+	.long	14061                   @ DW_AT_type
+	.long	.Linfo_string575        @ DW_AT_name
+	.byte	25                      @ Abbrev [25] 0x36dc:0x9 DW_TAG_template_type_parameter
+	.long	18432                   @ DW_AT_type
+	.long	.Linfo_string576        @ DW_AT_name
+	.byte	0                       @ End Of Children Mark
+	.byte	16                      @ Abbrev [16] 0x36e6:0x19 DW_TAG_namespace
+	.long	.Linfo_string572        @ DW_AT_name
+	.byte	1                       @ DW_AT_decl_file
+	.byte	223                     @ DW_AT_decl_line
+	.byte	50                      @ Abbrev [50] 0x36ed:0x6 DW_TAG_class_type
+	.long	.Linfo_string573        @ DW_AT_name
+	.byte	24                      @ DW_AT_byte_size
+                                        @ DW_AT_declaration
+	.byte	20                      @ Abbrev [20] 0x36f3:0xb DW_TAG_typedef
+	.long	14061                   @ DW_AT_type
+	.long	.Linfo_string845        @ DW_AT_name
+	.byte	22                      @ DW_AT_decl_file
+	.byte	78                      @ DW_AT_decl_line
+	.byte	0                       @ End Of Children Mark
+	.byte	26                      @ Abbrev [26] 0x36ff:0xa3 DW_TAG_structure_type
+	.long	.Linfo_string596        @ DW_AT_name
+	.byte	16                      @ DW_AT_byte_size
+	.byte	18                      @ DW_AT_decl_file
+	.byte	98                      @ DW_AT_decl_line
+	.byte	5                       @ Abbrev [5] 0x3707:0xc DW_TAG_member
+	.long	.Linfo_string581        @ DW_AT_name
+	.long	14242                   @ DW_AT_type
+	.byte	18                      @ DW_AT_decl_file
+	.byte	103                     @ DW_AT_decl_line
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x3713:0xc DW_TAG_member
+	.long	.Linfo_string585        @ DW_AT_name
+	.long	14111                   @ DW_AT_type
+	.byte	18                      @ DW_AT_decl_file
+	.byte	104                     @ DW_AT_decl_line
+	.byte	4                       @ DW_AT_data_member_location
+	.byte	20                      @ Abbrev [20] 0x371f:0xb DW_TAG_typedef
+	.long	21197                   @ DW_AT_type
+	.long	.Linfo_string586        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.byte	100                     @ DW_AT_decl_line
+	.byte	5                       @ Abbrev [5] 0x372a:0xc DW_TAG_member
+	.long	.Linfo_string587        @ DW_AT_name
+	.long	14111                   @ DW_AT_type
+	.byte	18                      @ DW_AT_decl_file
+	.byte	105                     @ DW_AT_decl_line
+	.byte	8                       @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x3736:0xc DW_TAG_member
+	.long	.Linfo_string588        @ DW_AT_name
+	.long	14111                   @ DW_AT_type
+	.byte	18                      @ DW_AT_decl_file
+	.byte	106                     @ DW_AT_decl_line
+	.byte	12                      @ DW_AT_data_member_location
+	.byte	30                      @ Abbrev [30] 0x3742:0x15 DW_TAG_subprogram
+	.long	.Linfo_string589        @ DW_AT_linkage_name
+	.long	.Linfo_string590        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.byte	109                     @ DW_AT_decl_line
+	.long	14111                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x3751:0x5 DW_TAG_formal_parameter
+	.long	14111                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	30                      @ Abbrev [30] 0x3757:0x15 DW_TAG_subprogram
+	.long	.Linfo_string591        @ DW_AT_linkage_name
+	.long	.Linfo_string590        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.byte	116                     @ DW_AT_decl_line
+	.long	14188                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x3766:0x5 DW_TAG_formal_parameter
+	.long	14188                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x376c:0xb DW_TAG_typedef
+	.long	21202                   @ DW_AT_type
+	.long	.Linfo_string592        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.byte	101                     @ DW_AT_decl_line
+	.byte	30                      @ Abbrev [30] 0x3777:0x15 DW_TAG_subprogram
+	.long	.Linfo_string593        @ DW_AT_linkage_name
+	.long	.Linfo_string594        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.byte	123                     @ DW_AT_decl_line
+	.long	14111                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x3786:0x5 DW_TAG_formal_parameter
+	.long	14111                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	30                      @ Abbrev [30] 0x378c:0x15 DW_TAG_subprogram
+	.long	.Linfo_string595        @ DW_AT_linkage_name
+	.long	.Linfo_string594        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.byte	130                     @ DW_AT_decl_line
+	.long	14188                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x379b:0x5 DW_TAG_formal_parameter
+	.long	14188                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	0                       @ End Of Children Mark
+	.byte	51                      @ Abbrev [51] 0x37a2:0x15 DW_TAG_enumeration_type
+	.long	.Linfo_string584        @ DW_AT_name
+	.byte	4                       @ DW_AT_byte_size
+	.byte	18                      @ DW_AT_decl_file
+	.byte	96                      @ DW_AT_decl_line
+	.byte	52                      @ Abbrev [52] 0x37aa:0x6 DW_TAG_enumerator
+	.long	.Linfo_string582        @ DW_AT_name
+	.byte	0                       @ DW_AT_const_value
+	.byte	52                      @ Abbrev [52] 0x37b0:0x6 DW_TAG_enumerator
+	.long	.Linfo_string583        @ DW_AT_name
+	.byte	1                       @ DW_AT_const_value
+	.byte	0                       @ End Of Children Mark
+	.byte	26                      @ Abbrev [26] 0x37b7:0xc1 DW_TAG_structure_type
+	.long	.Linfo_string665        @ DW_AT_name
+	.byte	8                       @ DW_AT_byte_size
+	.byte	20                      @ DW_AT_decl_file
+	.byte	194                     @ DW_AT_decl_line
+	.byte	5                       @ Abbrev [5] 0x37bf:0xc DW_TAG_member
+	.long	.Linfo_string652        @ DW_AT_name
+	.long	21197                   @ DW_AT_type
+	.byte	20                      @ DW_AT_decl_file
+	.byte	199                     @ DW_AT_decl_line
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x37cb:0xc DW_TAG_member
+	.long	.Linfo_string653        @ DW_AT_name
+	.long	21197                   @ DW_AT_type
+	.byte	20                      @ DW_AT_decl_file
+	.byte	200                     @ DW_AT_decl_line
+	.byte	4                       @ DW_AT_data_member_location
+	.byte	43                      @ Abbrev [43] 0x37d7:0x13 DW_TAG_subprogram
+	.long	.Linfo_string654        @ DW_AT_name
+	.byte	20                      @ DW_AT_decl_file
+	.short	288                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x37df:0x5 DW_TAG_formal_parameter
+	.long	21308                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x37e4:0x5 DW_TAG_formal_parameter
+	.long	21313                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	43                      @ Abbrev [43] 0x37ea:0x13 DW_TAG_subprogram
+	.long	.Linfo_string654        @ DW_AT_name
+	.byte	20                      @ DW_AT_decl_file
+	.short	289                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x37f2:0x5 DW_TAG_formal_parameter
+	.long	21308                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x37f7:0x5 DW_TAG_formal_parameter
+	.long	21323                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	32                      @ Abbrev [32] 0x37fd:0x1b DW_TAG_subprogram
+	.long	.Linfo_string655        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	20                      @ DW_AT_decl_file
+	.short	363                     @ DW_AT_decl_line
+	.long	21328                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x380d:0x5 DW_TAG_formal_parameter
+	.long	21308                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x3812:0x5 DW_TAG_formal_parameter
+	.long	14493                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	32                      @ Abbrev [32] 0x3818:0x1b DW_TAG_subprogram
+	.long	.Linfo_string658        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	20                      @ DW_AT_decl_file
+	.short	374                     @ DW_AT_decl_line
+	.long	21328                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x3828:0x5 DW_TAG_formal_parameter
+	.long	21308                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x382d:0x5 DW_TAG_formal_parameter
+	.long	14549                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	32                      @ Abbrev [32] 0x3833:0x1b DW_TAG_subprogram
+	.long	.Linfo_string660        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	20                      @ DW_AT_decl_file
+	.short	380                     @ DW_AT_decl_line
+	.long	21328                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x3843:0x5 DW_TAG_formal_parameter
+	.long	21308                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x3848:0x5 DW_TAG_formal_parameter
+	.long	14599                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	24                      @ Abbrev [24] 0x384e:0x17 DW_TAG_subprogram
+	.long	.Linfo_string662        @ DW_AT_linkage_name
+	.long	.Linfo_string169        @ DW_AT_name
+	.byte	20                      @ DW_AT_decl_file
+	.short	415                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x385a:0x5 DW_TAG_formal_parameter
+	.long	21308                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x385f:0x5 DW_TAG_formal_parameter
+	.long	21328                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	25                      @ Abbrev [25] 0x3865:0x9 DW_TAG_template_type_parameter
+	.long	21197                   @ DW_AT_type
+	.long	.Linfo_string663        @ DW_AT_name
+	.byte	25                      @ Abbrev [25] 0x386e:0x9 DW_TAG_template_type_parameter
+	.long	21197                   @ DW_AT_type
+	.long	.Linfo_string664        @ DW_AT_name
+	.byte	0                       @ End Of Children Mark
+	.byte	31                      @ Abbrev [31] 0x3878:0x32 DW_TAG_structure_type
+	.long	.Linfo_string657        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	8                       @ DW_AT_decl_file
+	.short	2179                    @ DW_AT_decl_line
+	.byte	36                      @ Abbrev [36] 0x3881:0xa DW_TAG_template_value_parameter
+	.long	18432                   @ DW_AT_type
+	.long	.Linfo_string461        @ DW_AT_name
+	.byte	1                       @ DW_AT_const_value
+	.byte	25                      @ Abbrev [25] 0x388b:0x9 DW_TAG_template_type_parameter
+	.long	21313                   @ DW_AT_type
+	.long	.Linfo_string462        @ DW_AT_name
+	.byte	25                      @ Abbrev [25] 0x3894:0x9 DW_TAG_template_type_parameter
+	.long	21333                   @ DW_AT_type
+	.long	.Linfo_string463        @ DW_AT_name
+	.byte	33                      @ Abbrev [33] 0x389d:0xc DW_TAG_typedef
+	.long	21313                   @ DW_AT_type
+	.long	.Linfo_string460        @ DW_AT_name
+	.byte	8                       @ DW_AT_decl_file
+	.short	2180                    @ DW_AT_decl_line
+	.byte	0                       @ End Of Children Mark
+	.byte	53                      @ Abbrev [53] 0x38aa:0x6 DW_TAG_structure_type
+	.long	.Linfo_string656        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+                                        @ DW_AT_declaration
+	.byte	31                      @ Abbrev [31] 0x38b0:0x32 DW_TAG_structure_type
+	.long	.Linfo_string659        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	8                       @ DW_AT_decl_file
+	.short	2184                    @ DW_AT_decl_line
+	.byte	36                      @ Abbrev [36] 0x38b9:0xa DW_TAG_template_value_parameter
+	.long	18432                   @ DW_AT_type
+	.long	.Linfo_string461        @ DW_AT_name
+	.byte	0                       @ DW_AT_const_value
+	.byte	25                      @ Abbrev [25] 0x38c3:0x9 DW_TAG_template_type_parameter
+	.long	21313                   @ DW_AT_type
+	.long	.Linfo_string462        @ DW_AT_name
+	.byte	25                      @ Abbrev [25] 0x38cc:0x9 DW_TAG_template_type_parameter
+	.long	21333                   @ DW_AT_type
+	.long	.Linfo_string463        @ DW_AT_name
+	.byte	33                      @ Abbrev [33] 0x38d5:0xc DW_TAG_typedef
+	.long	21333                   @ DW_AT_type
+	.long	.Linfo_string460        @ DW_AT_name
+	.byte	8                       @ DW_AT_decl_file
+	.short	2185                    @ DW_AT_decl_line
+	.byte	0                       @ End Of Children Mark
+	.byte	31                      @ Abbrev [31] 0x38e2:0x32 DW_TAG_structure_type
+	.long	.Linfo_string661        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	8                       @ DW_AT_decl_file
+	.short	2179                    @ DW_AT_decl_line
+	.byte	36                      @ Abbrev [36] 0x38eb:0xa DW_TAG_template_value_parameter
+	.long	18432                   @ DW_AT_type
+	.long	.Linfo_string461        @ DW_AT_name
+	.byte	1                       @ DW_AT_const_value
+	.byte	25                      @ Abbrev [25] 0x38f5:0x9 DW_TAG_template_type_parameter
+	.long	21323                   @ DW_AT_type
+	.long	.Linfo_string462        @ DW_AT_name
+	.byte	25                      @ Abbrev [25] 0x38fe:0x9 DW_TAG_template_type_parameter
+	.long	21343                   @ DW_AT_type
+	.long	.Linfo_string463        @ DW_AT_name
+	.byte	33                      @ Abbrev [33] 0x3907:0xc DW_TAG_typedef
+	.long	21323                   @ DW_AT_type
+	.long	.Linfo_string460        @ DW_AT_name
+	.byte	8                       @ DW_AT_decl_file
+	.short	2180                    @ DW_AT_decl_line
+	.byte	0                       @ End Of Children Mark
+	.byte	49                      @ Abbrev [49] 0x3914:0x5 DW_TAG_structure_type
+	.long	.Linfo_string671        @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	49                      @ Abbrev [49] 0x3919:0x5 DW_TAG_structure_type
+	.long	.Linfo_string676        @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	34                      @ Abbrev [34] 0x391e:0x5 DW_TAG_class_type
+	.long	.Linfo_string700        @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	34                      @ Abbrev [34] 0x3923:0x5 DW_TAG_class_type
+	.long	.Linfo_string702        @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	49                      @ Abbrev [49] 0x3928:0x5 DW_TAG_structure_type
+	.long	.Linfo_string731        @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	49                      @ Abbrev [49] 0x392d:0x5 DW_TAG_structure_type
+	.long	.Linfo_string733        @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	49                      @ Abbrev [49] 0x3932:0x5 DW_TAG_structure_type
+	.long	.Linfo_string744        @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	34                      @ Abbrev [34] 0x3937:0x5 DW_TAG_class_type
+	.long	.Linfo_string750        @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	49                      @ Abbrev [49] 0x393c:0x5 DW_TAG_structure_type
+	.long	.Linfo_string776        @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	54                      @ Abbrev [54] 0x3941:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	124                     @ DW_AT_decl_line
+	.long	22051                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3948:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	125                     @ DW_AT_decl_line
+	.long	22064                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x394f:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	127                     @ DW_AT_decl_line
+	.long	22111                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3956:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	128                     @ DW_AT_decl_line
+	.long	22119                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x395d:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	129                     @ DW_AT_decl_line
+	.long	22137                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3964:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	132                     @ DW_AT_decl_line
+	.long	22161                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x396b:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	135                     @ DW_AT_decl_line
+	.long	22179                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3972:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	136                     @ DW_AT_decl_line
+	.long	22196                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3979:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	137                     @ DW_AT_decl_line
+	.long	22213                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3980:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	138                     @ DW_AT_decl_line
+	.long	22230                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3987:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	139                     @ DW_AT_decl_line
+	.long	22312                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x398e:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	140                     @ DW_AT_decl_line
+	.long	22335                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3995:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	141                     @ DW_AT_decl_line
+	.long	22358                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x399c:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	142                     @ DW_AT_decl_line
+	.long	22372                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x39a3:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	143                     @ DW_AT_decl_line
+	.long	22386                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x39aa:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	144                     @ DW_AT_decl_line
+	.long	22409                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x39b1:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	145                     @ DW_AT_decl_line
+	.long	22427                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x39b8:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	146                     @ DW_AT_decl_line
+	.long	22450                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x39bf:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	148                     @ DW_AT_decl_line
+	.long	22468                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x39c6:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	149                     @ DW_AT_decl_line
+	.long	22491                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x39cd:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	150                     @ DW_AT_decl_line
+	.long	22541                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x39d4:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	152                     @ DW_AT_decl_line
+	.long	22569                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x39db:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	155                     @ DW_AT_decl_line
+	.long	22598                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x39e2:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	158                     @ DW_AT_decl_line
+	.long	22612                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x39e9:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	159                     @ DW_AT_decl_line
+	.long	22624                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x39f0:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	160                     @ DW_AT_decl_line
+	.long	22647                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x39f7:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	161                     @ DW_AT_decl_line
+	.long	22661                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x39fe:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	162                     @ DW_AT_decl_line
+	.long	22693                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3a05:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	163                     @ DW_AT_decl_line
+	.long	22720                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3a0c:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	164                     @ DW_AT_decl_line
+	.long	22754                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3a13:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	166                     @ DW_AT_decl_line
+	.long	22772                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3a1a:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	167                     @ DW_AT_decl_line
+	.long	22820                   @ DW_AT_import
+	.byte	55                      @ Abbrev [55] 0x3a21:0x8 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.short	260                     @ DW_AT_decl_line
+	.long	22843                   @ DW_AT_import
+	.byte	55                      @ Abbrev [55] 0x3a29:0x8 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.short	262                     @ DW_AT_decl_line
+	.long	22890                   @ DW_AT_import
+	.byte	55                      @ Abbrev [55] 0x3a31:0x8 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.short	264                     @ DW_AT_decl_line
+	.long	22904                   @ DW_AT_import
+	.byte	55                      @ Abbrev [55] 0x3a39:0x8 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.short	265                     @ DW_AT_decl_line
+	.long	18194                   @ DW_AT_import
+	.byte	55                      @ Abbrev [55] 0x3a41:0x8 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.short	266                     @ DW_AT_decl_line
+	.long	22922                   @ DW_AT_import
+	.byte	55                      @ Abbrev [55] 0x3a49:0x8 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.short	268                     @ DW_AT_decl_line
+	.long	22945                   @ DW_AT_import
+	.byte	55                      @ Abbrev [55] 0x3a51:0x8 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.short	269                     @ DW_AT_decl_line
+	.long	23016                   @ DW_AT_import
+	.byte	55                      @ Abbrev [55] 0x3a59:0x8 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.short	270                     @ DW_AT_decl_line
+	.long	22962                   @ DW_AT_import
+	.byte	55                      @ Abbrev [55] 0x3a61:0x8 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.short	271                     @ DW_AT_decl_line
+	.long	22989                   @ DW_AT_import
+	.byte	55                      @ Abbrev [55] 0x3a69:0x8 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.short	272                     @ DW_AT_decl_line
+	.long	23038                   @ DW_AT_import
+	.byte	30                      @ Abbrev [30] 0x3a71:0x15 DW_TAG_subprogram
+	.long	.Linfo_string913        @ DW_AT_linkage_name
+	.long	.Linfo_string869        @ DW_AT_name
+	.byte	29                      @ DW_AT_decl_file
+	.byte	180                     @ DW_AT_decl_line
+	.long	22883                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x3a80:0x5 DW_TAG_formal_parameter
+	.long	22883                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	56                      @ Abbrev [56] 0x3a86:0x7 DW_TAG_namespace
+	.long	.Linfo_string915        @ DW_AT_name
+	.byte	31                      @ DW_AT_decl_file
+	.byte	50                      @ DW_AT_decl_line
+	.byte	16                      @ Abbrev [16] 0x3a8d:0x13b DW_TAG_namespace
+	.long	.Linfo_string916        @ DW_AT_name
+	.byte	32                      @ DW_AT_decl_file
+	.byte	55                      @ DW_AT_decl_line
+	.byte	17                      @ Abbrev [17] 0x3a94:0x12c DW_TAG_class_type
+	.long	.Linfo_string918        @ DW_AT_name
+	.byte	4                       @ DW_AT_byte_size
+	.byte	32                      @ DW_AT_decl_file
+	.byte	79                      @ DW_AT_decl_line
+	.byte	5                       @ Abbrev [5] 0x3a9c:0xc DW_TAG_member
+	.long	.Linfo_string917        @ DW_AT_name
+	.long	22267                   @ DW_AT_type
+	.byte	32                      @ DW_AT_decl_file
+	.byte	81                      @ DW_AT_decl_line
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	42                      @ Abbrev [42] 0x3aa8:0x12 DW_TAG_subprogram
+	.long	.Linfo_string918        @ DW_AT_name
+	.byte	32                      @ DW_AT_decl_file
+	.byte	83                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+                                        @ DW_AT_explicit
+	.byte	7                       @ Abbrev [7] 0x3aaf:0x5 DW_TAG_formal_parameter
+	.long	23306                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x3ab4:0x5 DW_TAG_formal_parameter
+	.long	22267                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	29                      @ Abbrev [29] 0x3aba:0x11 DW_TAG_subprogram
+	.long	.Linfo_string919        @ DW_AT_linkage_name
+	.long	.Linfo_string920        @ DW_AT_name
+	.byte	32                      @ DW_AT_decl_file
+	.byte	85                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x3ac5:0x5 DW_TAG_formal_parameter
+	.long	23306                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	29                      @ Abbrev [29] 0x3acb:0x11 DW_TAG_subprogram
+	.long	.Linfo_string921        @ DW_AT_linkage_name
+	.long	.Linfo_string922        @ DW_AT_name
+	.byte	32                      @ DW_AT_decl_file
+	.byte	86                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x3ad6:0x5 DW_TAG_formal_parameter
+	.long	23306                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	30                      @ Abbrev [30] 0x3adc:0x15 DW_TAG_subprogram
+	.long	.Linfo_string923        @ DW_AT_linkage_name
+	.long	.Linfo_string924        @ DW_AT_name
+	.byte	32                      @ DW_AT_decl_file
+	.byte	88                      @ DW_AT_decl_line
+	.long	22267                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x3aeb:0x5 DW_TAG_formal_parameter
+	.long	23311                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x3af1:0xe DW_TAG_subprogram
+	.long	.Linfo_string918        @ DW_AT_name
+	.byte	32                      @ DW_AT_decl_file
+	.byte	94                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3af9:0x5 DW_TAG_formal_parameter
+	.long	23306                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x3aff:0x13 DW_TAG_subprogram
+	.long	.Linfo_string918        @ DW_AT_name
+	.byte	32                      @ DW_AT_decl_file
+	.byte	96                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3b07:0x5 DW_TAG_formal_parameter
+	.long	23306                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x3b0c:0x5 DW_TAG_formal_parameter
+	.long	23321                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x3b12:0x13 DW_TAG_subprogram
+	.long	.Linfo_string918        @ DW_AT_name
+	.byte	32                      @ DW_AT_decl_file
+	.byte	99                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3b1a:0x5 DW_TAG_formal_parameter
+	.long	23306                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x3b1f:0x5 DW_TAG_formal_parameter
+	.long	7664                    @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x3b25:0x13 DW_TAG_subprogram
+	.long	.Linfo_string918        @ DW_AT_name
+	.byte	32                      @ DW_AT_decl_file
+	.byte	103                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3b2d:0x5 DW_TAG_formal_parameter
+	.long	23306                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x3b32:0x5 DW_TAG_formal_parameter
+	.long	23326                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	10                      @ Abbrev [10] 0x3b38:0x1b DW_TAG_subprogram
+	.long	.Linfo_string925        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	32                      @ DW_AT_decl_file
+	.byte	116                     @ DW_AT_decl_line
+	.long	23331                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3b48:0x5 DW_TAG_formal_parameter
+	.long	23306                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x3b4d:0x5 DW_TAG_formal_parameter
+	.long	23321                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	10                      @ Abbrev [10] 0x3b53:0x1b DW_TAG_subprogram
+	.long	.Linfo_string926        @ DW_AT_linkage_name
+	.long	.Linfo_string90         @ DW_AT_name
+	.byte	32                      @ DW_AT_decl_file
+	.byte	120                     @ DW_AT_decl_line
+	.long	23331                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3b63:0x5 DW_TAG_formal_parameter
+	.long	23306                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x3b68:0x5 DW_TAG_formal_parameter
+	.long	23326                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x3b6e:0xe DW_TAG_subprogram
+	.long	.Linfo_string927        @ DW_AT_name
+	.byte	32                      @ DW_AT_decl_file
+	.byte	127                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3b76:0x5 DW_TAG_formal_parameter
+	.long	23306                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	9                       @ Abbrev [9] 0x3b7c:0x17 DW_TAG_subprogram
+	.long	.Linfo_string928        @ DW_AT_linkage_name
+	.long	.Linfo_string169        @ DW_AT_name
+	.byte	32                      @ DW_AT_decl_file
+	.byte	130                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3b88:0x5 DW_TAG_formal_parameter
+	.long	23306                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x3b8d:0x5 DW_TAG_formal_parameter
+	.long	23331                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	57                      @ Abbrev [57] 0x3b93:0x16 DW_TAG_subprogram
+	.long	.Linfo_string929        @ DW_AT_linkage_name
+	.long	.Linfo_string196        @ DW_AT_name
+	.byte	32                      @ DW_AT_decl_file
+	.byte	142                     @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+                                        @ DW_AT_explicit
+	.byte	7                       @ Abbrev [7] 0x3ba3:0x5 DW_TAG_formal_parameter
+	.long	23311                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	10                      @ Abbrev [10] 0x3ba9:0x16 DW_TAG_subprogram
+	.long	.Linfo_string930        @ DW_AT_linkage_name
+	.long	.Linfo_string931        @ DW_AT_name
+	.byte	32                      @ DW_AT_decl_file
+	.byte	151                     @ DW_AT_decl_line
+	.long	23336                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x3bb9:0x5 DW_TAG_formal_parameter
+	.long	23311                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	0                       @ End Of Children Mark
+	.byte	54                      @ Abbrev [54] 0x3bc0:0x7 DW_TAG_imported_declaration
+	.byte	32                      @ DW_AT_decl_file
+	.byte	73                      @ DW_AT_decl_line
+	.long	15316                   @ DW_AT_import
+	.byte	0                       @ End Of Children Mark
+	.byte	34                      @ Abbrev [34] 0x3bc8:0x5 DW_TAG_class_type
+	.long	.Linfo_string932        @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	54                      @ Abbrev [54] 0x3bcd:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	60                      @ DW_AT_decl_line
+	.long	14996                   @ DW_AT_import
+	.byte	29                      @ Abbrev [29] 0x3bd4:0x11 DW_TAG_subprogram
+	.long	.Linfo_string933        @ DW_AT_linkage_name
+	.long	.Linfo_string934        @ DW_AT_name
+	.byte	32                      @ DW_AT_decl_file
+	.byte	69                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x3bdf:0x5 DW_TAG_formal_parameter
+	.long	14996                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x3be5:0xb DW_TAG_typedef
+	.long	343                     @ DW_AT_type
+	.long	.Linfo_string935        @ DW_AT_name
+	.byte	1                       @ DW_AT_decl_file
+	.byte	202                     @ DW_AT_decl_line
+	.byte	54                      @ Abbrev [54] 0x3bf0:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	64                      @ DW_AT_decl_line
+	.long	23346                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3bf7:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	139                     @ DW_AT_decl_line
+	.long	23438                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3bfe:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	141                     @ DW_AT_decl_line
+	.long	23449                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3c05:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	142                     @ DW_AT_decl_line
+	.long	23467                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3c0c:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	143                     @ DW_AT_decl_line
+	.long	23977                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3c13:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	144                     @ DW_AT_decl_line
+	.long	24010                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3c1a:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	145                     @ DW_AT_decl_line
+	.long	24033                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3c21:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	146                     @ DW_AT_decl_line
+	.long	24056                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3c28:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	147                     @ DW_AT_decl_line
+	.long	24079                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3c2f:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	148                     @ DW_AT_decl_line
+	.long	24103                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3c36:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	149                     @ DW_AT_decl_line
+	.long	24127                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3c3d:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	150                     @ DW_AT_decl_line
+	.long	24145                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3c44:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	151                     @ DW_AT_decl_line
+	.long	24157                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3c4b:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	152                     @ DW_AT_decl_line
+	.long	24195                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3c52:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	153                     @ DW_AT_decl_line
+	.long	24228                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3c59:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	154                     @ DW_AT_decl_line
+	.long	24256                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3c60:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	155                     @ DW_AT_decl_line
+	.long	24299                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3c67:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	156                     @ DW_AT_decl_line
+	.long	24322                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3c6e:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	158                     @ DW_AT_decl_line
+	.long	24340                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3c75:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	160                     @ DW_AT_decl_line
+	.long	24369                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3c7c:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	161                     @ DW_AT_decl_line
+	.long	24393                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3c83:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	162                     @ DW_AT_decl_line
+	.long	24416                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3c8a:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	164                     @ DW_AT_decl_line
+	.long	24487                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3c91:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	167                     @ DW_AT_decl_line
+	.long	24515                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3c98:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	170                     @ DW_AT_decl_line
+	.long	24548                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3c9f:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	172                     @ DW_AT_decl_line
+	.long	24576                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3ca6:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	174                     @ DW_AT_decl_line
+	.long	24599                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3cad:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	176                     @ DW_AT_decl_line
+	.long	24622                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3cb4:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	177                     @ DW_AT_decl_line
+	.long	24650                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3cbb:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	178                     @ DW_AT_decl_line
+	.long	24672                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3cc2:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	179                     @ DW_AT_decl_line
+	.long	24694                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3cc9:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	180                     @ DW_AT_decl_line
+	.long	24716                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3cd0:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	181                     @ DW_AT_decl_line
+	.long	24738                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3cd7:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	182                     @ DW_AT_decl_line
+	.long	24760                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3cde:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	183                     @ DW_AT_decl_line
+	.long	24814                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3ce5:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	184                     @ DW_AT_decl_line
+	.long	24832                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3cec:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	185                     @ DW_AT_decl_line
+	.long	24859                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3cf3:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	186                     @ DW_AT_decl_line
+	.long	24886                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3cfa:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	187                     @ DW_AT_decl_line
+	.long	24913                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3d01:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	188                     @ DW_AT_decl_line
+	.long	24956                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3d08:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	189                     @ DW_AT_decl_line
+	.long	24979                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3d0f:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	191                     @ DW_AT_decl_line
+	.long	25012                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3d16:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	193                     @ DW_AT_decl_line
+	.long	25035                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3d1d:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	194                     @ DW_AT_decl_line
+	.long	25063                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3d24:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	195                     @ DW_AT_decl_line
+	.long	25091                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3d2b:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	196                     @ DW_AT_decl_line
+	.long	25119                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3d32:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	197                     @ DW_AT_decl_line
+	.long	25146                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3d39:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	198                     @ DW_AT_decl_line
+	.long	25164                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3d40:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	199                     @ DW_AT_decl_line
+	.long	25192                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3d47:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	200                     @ DW_AT_decl_line
+	.long	25220                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3d4e:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	201                     @ DW_AT_decl_line
+	.long	25248                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3d55:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	202                     @ DW_AT_decl_line
+	.long	25276                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3d5c:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	203                     @ DW_AT_decl_line
+	.long	25295                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3d63:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	204                     @ DW_AT_decl_line
+	.long	25314                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3d6a:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	205                     @ DW_AT_decl_line
+	.long	25336                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3d71:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	206                     @ DW_AT_decl_line
+	.long	25359                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3d78:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	207                     @ DW_AT_decl_line
+	.long	25381                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3d7f:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	208                     @ DW_AT_decl_line
+	.long	25404                   @ DW_AT_import
+	.byte	55                      @ Abbrev [55] 0x3d86:0x8 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.short	264                     @ DW_AT_decl_line
+	.long	25432                   @ DW_AT_import
+	.byte	55                      @ Abbrev [55] 0x3d8e:0x8 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.short	265                     @ DW_AT_decl_line
+	.long	25455                   @ DW_AT_import
+	.byte	55                      @ Abbrev [55] 0x3d96:0x8 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.short	266                     @ DW_AT_decl_line
+	.long	25483                   @ DW_AT_import
+	.byte	55                      @ Abbrev [55] 0x3d9e:0x8 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.short	280                     @ DW_AT_decl_line
+	.long	25012                   @ DW_AT_import
+	.byte	55                      @ Abbrev [55] 0x3da6:0x8 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.short	283                     @ DW_AT_decl_line
+	.long	24487                   @ DW_AT_import
+	.byte	55                      @ Abbrev [55] 0x3dae:0x8 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.short	286                     @ DW_AT_decl_line
+	.long	24548                   @ DW_AT_import
+	.byte	55                      @ Abbrev [55] 0x3db6:0x8 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.short	289                     @ DW_AT_decl_line
+	.long	24599                   @ DW_AT_import
+	.byte	55                      @ Abbrev [55] 0x3dbe:0x8 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.short	293                     @ DW_AT_decl_line
+	.long	25432                   @ DW_AT_import
+	.byte	55                      @ Abbrev [55] 0x3dc6:0x8 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.short	294                     @ DW_AT_decl_line
+	.long	25455                   @ DW_AT_import
+	.byte	55                      @ Abbrev [55] 0x3dce:0x8 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.short	295                     @ DW_AT_decl_line
+	.long	25483                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3dd6:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	48                      @ DW_AT_decl_line
+	.long	25511                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3ddd:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	49                      @ DW_AT_decl_line
+	.long	25522                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3de4:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	50                      @ DW_AT_decl_line
+	.long	25540                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3deb:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	51                      @ DW_AT_decl_line
+	.long	25551                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3df2:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	53                      @ DW_AT_decl_line
+	.long	25562                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3df9:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	54                      @ DW_AT_decl_line
+	.long	25573                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3e00:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	55                      @ DW_AT_decl_line
+	.long	25584                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3e07:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	56                      @ DW_AT_decl_line
+	.long	25595                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3e0e:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	58                      @ DW_AT_decl_line
+	.long	25606                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3e15:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	59                      @ DW_AT_decl_line
+	.long	25617                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3e1c:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	60                      @ DW_AT_decl_line
+	.long	25628                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3e23:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	61                      @ DW_AT_decl_line
+	.long	25639                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3e2a:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	63                      @ DW_AT_decl_line
+	.long	25650                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3e31:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	64                      @ DW_AT_decl_line
+	.long	25661                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3e38:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	66                      @ DW_AT_decl_line
+	.long	25672                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3e3f:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	67                      @ DW_AT_decl_line
+	.long	25690                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3e46:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	68                      @ DW_AT_decl_line
+	.long	19022                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3e4d:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	69                      @ DW_AT_decl_line
+	.long	18622                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3e54:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	71                      @ DW_AT_decl_line
+	.long	25701                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3e5b:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	72                      @ DW_AT_decl_line
+	.long	25712                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3e62:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	73                      @ DW_AT_decl_line
+	.long	25723                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3e69:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	74                      @ DW_AT_decl_line
+	.long	25734                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3e70:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	76                      @ DW_AT_decl_line
+	.long	25745                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3e77:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	77                      @ DW_AT_decl_line
+	.long	25756                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3e7e:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	78                      @ DW_AT_decl_line
+	.long	25767                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3e85:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	79                      @ DW_AT_decl_line
+	.long	25778                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3e8c:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	81                      @ DW_AT_decl_line
+	.long	25789                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3e93:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	82                      @ DW_AT_decl_line
+	.long	25800                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3e9a:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	53                      @ DW_AT_decl_line
+	.long	25811                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3ea1:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	54                      @ DW_AT_decl_line
+	.long	25817                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3ea8:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	55                      @ DW_AT_decl_line
+	.long	25839                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3eaf:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	64                      @ DW_AT_decl_line
+	.long	25855                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3eb6:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	65                      @ DW_AT_decl_line
+	.long	25872                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3ebd:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	66                      @ DW_AT_decl_line
+	.long	25889                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3ec4:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	67                      @ DW_AT_decl_line
+	.long	25906                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3ecb:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	68                      @ DW_AT_decl_line
+	.long	25923                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3ed2:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	69                      @ DW_AT_decl_line
+	.long	25940                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3ed9:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	70                      @ DW_AT_decl_line
+	.long	25957                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3ee0:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	71                      @ DW_AT_decl_line
+	.long	25974                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3ee7:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	72                      @ DW_AT_decl_line
+	.long	25991                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3eee:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	73                      @ DW_AT_decl_line
+	.long	26008                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3ef5:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	74                      @ DW_AT_decl_line
+	.long	26025                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3efc:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	75                      @ DW_AT_decl_line
+	.long	26042                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3f03:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	76                      @ DW_AT_decl_line
+	.long	26059                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3f0a:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	87                      @ DW_AT_decl_line
+	.long	26076                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3f11:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	98                      @ DW_AT_decl_line
+	.long	26093                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3f18:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	99                      @ DW_AT_decl_line
+	.long	26104                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3f1f:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	101                     @ DW_AT_decl_line
+	.long	26128                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3f26:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	102                     @ DW_AT_decl_line
+	.long	26147                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3f2d:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	103                     @ DW_AT_decl_line
+	.long	26164                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3f34:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	104                     @ DW_AT_decl_line
+	.long	26182                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3f3b:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	105                     @ DW_AT_decl_line
+	.long	26200                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3f42:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	106                     @ DW_AT_decl_line
+	.long	26217                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3f49:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	107                     @ DW_AT_decl_line
+	.long	26235                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3f50:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	108                     @ DW_AT_decl_line
+	.long	26273                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3f57:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	109                     @ DW_AT_decl_line
+	.long	26301                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3f5e:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	110                     @ DW_AT_decl_line
+	.long	26324                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3f65:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	111                     @ DW_AT_decl_line
+	.long	26348                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3f6c:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	112                     @ DW_AT_decl_line
+	.long	26371                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3f73:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	113                     @ DW_AT_decl_line
+	.long	26394                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3f7a:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	114                     @ DW_AT_decl_line
+	.long	26432                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3f81:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	115                     @ DW_AT_decl_line
+	.long	26460                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3f88:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	116                     @ DW_AT_decl_line
+	.long	26484                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3f8f:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	117                     @ DW_AT_decl_line
+	.long	26512                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3f96:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	118                     @ DW_AT_decl_line
+	.long	26545                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3f9d:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	119                     @ DW_AT_decl_line
+	.long	26563                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3fa4:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	120                     @ DW_AT_decl_line
+	.long	26601                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3fab:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	121                     @ DW_AT_decl_line
+	.long	26619                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3fb2:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	124                     @ DW_AT_decl_line
+	.long	26630                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3fb9:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	126                     @ DW_AT_decl_line
+	.long	26648                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3fc0:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	127                     @ DW_AT_decl_line
+	.long	26662                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3fc7:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	128                     @ DW_AT_decl_line
+	.long	26681                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3fce:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	129                     @ DW_AT_decl_line
+	.long	26704                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3fd5:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	130                     @ DW_AT_decl_line
+	.long	26721                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3fdc:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	131                     @ DW_AT_decl_line
+	.long	26739                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3fe3:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	132                     @ DW_AT_decl_line
+	.long	26756                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3fea:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	133                     @ DW_AT_decl_line
+	.long	26778                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3ff1:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	134                     @ DW_AT_decl_line
+	.long	26792                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3ff8:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	135                     @ DW_AT_decl_line
+	.long	26811                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x3fff:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	136                     @ DW_AT_decl_line
+	.long	26830                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x4006:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	137                     @ DW_AT_decl_line
+	.long	26863                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x400d:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	138                     @ DW_AT_decl_line
+	.long	26887                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x4014:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	139                     @ DW_AT_decl_line
+	.long	26911                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x401b:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	141                     @ DW_AT_decl_line
+	.long	26922                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x4022:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	143                     @ DW_AT_decl_line
+	.long	26939                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x4029:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	144                     @ DW_AT_decl_line
+	.long	26962                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x4030:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	145                     @ DW_AT_decl_line
+	.long	26990                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x4037:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	146                     @ DW_AT_decl_line
+	.long	27012                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x403e:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	185                     @ DW_AT_decl_line
+	.long	27040                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x4045:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	186                     @ DW_AT_decl_line
+	.long	27069                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x404c:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	187                     @ DW_AT_decl_line
+	.long	27097                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x4053:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	188                     @ DW_AT_decl_line
+	.long	27120                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x405a:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	189                     @ DW_AT_decl_line
+	.long	27153                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x4061:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	81                      @ DW_AT_decl_line
+	.long	18104                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x4068:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	82                      @ DW_AT_decl_line
+	.long	18292                   @ DW_AT_import
+	.byte	0                       @ End Of Children Mark
+	.byte	16                      @ Abbrev [16] 0x4070:0x710 DW_TAG_namespace
+	.long	.Linfo_string10         @ DW_AT_name
+	.byte	1                       @ DW_AT_decl_file
+	.byte	225                     @ DW_AT_decl_line
+	.byte	26                      @ Abbrev [26] 0x4077:0xd7 DW_TAG_structure_type
+	.long	.Linfo_string60         @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	6                       @ DW_AT_decl_file
+	.byte	50                      @ DW_AT_decl_line
+	.byte	27                      @ Abbrev [27] 0x407f:0x6 DW_TAG_inheritance
+	.long	2717                    @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	30                      @ Abbrev [30] 0x4085:0x15 DW_TAG_subprogram
+	.long	.Linfo_string45         @ DW_AT_linkage_name
+	.long	.Linfo_string46         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	94                      @ DW_AT_decl_line
+	.long	2927                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x4094:0x5 DW_TAG_formal_parameter
+	.long	18383                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	29                      @ Abbrev [29] 0x409a:0x16 DW_TAG_subprogram
+	.long	.Linfo_string47         @ DW_AT_linkage_name
+	.long	.Linfo_string48         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	97                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x40a5:0x5 DW_TAG_formal_parameter
+	.long	18427                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x40aa:0x5 DW_TAG_formal_parameter
+	.long	18427                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	58                      @ Abbrev [58] 0x40b0:0xf DW_TAG_subprogram
+	.long	.Linfo_string49         @ DW_AT_linkage_name
+	.long	.Linfo_string50         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	100                     @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	58                      @ Abbrev [58] 0x40bf:0xf DW_TAG_subprogram
+	.long	.Linfo_string52         @ DW_AT_linkage_name
+	.long	.Linfo_string53         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	103                     @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	58                      @ Abbrev [58] 0x40ce:0xf DW_TAG_subprogram
+	.long	.Linfo_string54         @ DW_AT_linkage_name
+	.long	.Linfo_string55         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	106                     @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	58                      @ Abbrev [58] 0x40dd:0xf DW_TAG_subprogram
+	.long	.Linfo_string56         @ DW_AT_linkage_name
+	.long	.Linfo_string57         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	109                     @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	58                      @ Abbrev [58] 0x40ec:0xf DW_TAG_subprogram
+	.long	.Linfo_string58         @ DW_AT_linkage_name
+	.long	.Linfo_string59         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	112                     @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	25                      @ Abbrev [25] 0x40fb:0x9 DW_TAG_template_type_parameter
+	.long	2927                    @ DW_AT_type
+	.long	.Linfo_string43         @ DW_AT_name
+	.byte	26                      @ Abbrev [26] 0x4104:0x1d DW_TAG_structure_type
+	.long	.Linfo_string61         @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	6                       @ DW_AT_decl_file
+	.byte	116                     @ DW_AT_decl_line
+	.byte	25                      @ Abbrev [25] 0x410c:0x9 DW_TAG_template_type_parameter
+	.long	343                     @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	20                      @ Abbrev [20] 0x4115:0xb DW_TAG_typedef
+	.long	2902                    @ DW_AT_type
+	.long	.Linfo_string63         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	117                     @ DW_AT_decl_line
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x4121:0xb DW_TAG_typedef
+	.long	2753                    @ DW_AT_type
+	.long	.Linfo_string13         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	59                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x412c:0xb DW_TAG_typedef
+	.long	18560                   @ DW_AT_type
+	.long	.Linfo_string18         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	64                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x4137:0xb DW_TAG_typedef
+	.long	2914                    @ DW_AT_type
+	.long	.Linfo_string86         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	58                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x4142:0xb DW_TAG_typedef
+	.long	18565                   @ DW_AT_type
+	.long	.Linfo_string21         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	65                      @ DW_AT_decl_line
+	.byte	0                       @ End Of Children Mark
+	.byte	17                      @ Abbrev [17] 0x414e:0xf5 DW_TAG_class_type
+	.long	.Linfo_string31         @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	3                       @ DW_AT_decl_file
+	.byte	58                      @ DW_AT_decl_line
+	.byte	6                       @ Abbrev [6] 0x4156:0xe DW_TAG_subprogram
+	.long	.Linfo_string14         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	79                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x415e:0x5 DW_TAG_formal_parameter
+	.long	18314                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x4164:0x13 DW_TAG_subprogram
+	.long	.Linfo_string14         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	81                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x416c:0x5 DW_TAG_formal_parameter
+	.long	18314                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x4171:0x5 DW_TAG_formal_parameter
+	.long	18319                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x4177:0xe DW_TAG_subprogram
+	.long	.Linfo_string15         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	86                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x417f:0x5 DW_TAG_formal_parameter
+	.long	18314                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	10                      @ Abbrev [10] 0x4185:0x1b DW_TAG_subprogram
+	.long	.Linfo_string16         @ DW_AT_linkage_name
+	.long	.Linfo_string17         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	89                      @ DW_AT_decl_line
+	.long	16800                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x4195:0x5 DW_TAG_formal_parameter
+	.long	18329                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x419a:0x5 DW_TAG_formal_parameter
+	.long	16811                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x41a0:0xb DW_TAG_typedef
+	.long	18304                   @ DW_AT_type
+	.long	.Linfo_string13         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	63                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x41ab:0xb DW_TAG_typedef
+	.long	18334                   @ DW_AT_type
+	.long	.Linfo_string18         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	65                      @ DW_AT_decl_line
+	.byte	10                      @ Abbrev [10] 0x41b6:0x1b DW_TAG_subprogram
+	.long	.Linfo_string19         @ DW_AT_linkage_name
+	.long	.Linfo_string17         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	93                      @ DW_AT_decl_line
+	.long	16849                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x41c6:0x5 DW_TAG_formal_parameter
+	.long	18329                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x41cb:0x5 DW_TAG_formal_parameter
+	.long	16860                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x41d1:0xb DW_TAG_typedef
+	.long	18339                   @ DW_AT_type
+	.long	.Linfo_string20         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	64                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x41dc:0xb DW_TAG_typedef
+	.long	18349                   @ DW_AT_type
+	.long	.Linfo_string21         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	66                      @ DW_AT_decl_line
+	.byte	10                      @ Abbrev [10] 0x41e7:0x20 DW_TAG_subprogram
+	.long	.Linfo_string22         @ DW_AT_linkage_name
+	.long	.Linfo_string12         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	99                      @ DW_AT_decl_line
+	.long	16800                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x41f7:0x5 DW_TAG_formal_parameter
+	.long	18314                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x41fc:0x5 DW_TAG_formal_parameter
+	.long	18354                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x4201:0x5 DW_TAG_formal_parameter
+	.long	18372                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	9                       @ Abbrev [9] 0x4207:0x1c DW_TAG_subprogram
+	.long	.Linfo_string26         @ DW_AT_linkage_name
+	.long	.Linfo_string27         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	109                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x4213:0x5 DW_TAG_formal_parameter
+	.long	18314                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x4218:0x5 DW_TAG_formal_parameter
+	.long	16800                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x421d:0x5 DW_TAG_formal_parameter
+	.long	18354                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	10                      @ Abbrev [10] 0x4223:0x16 DW_TAG_subprogram
+	.long	.Linfo_string28         @ DW_AT_linkage_name
+	.long	.Linfo_string29         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	113                     @ DW_AT_decl_line
+	.long	18354                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x4233:0x5 DW_TAG_formal_parameter
+	.long	18329                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	25                      @ Abbrev [25] 0x4239:0x9 DW_TAG_template_type_parameter
+	.long	343                     @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	0                       @ End Of Children Mark
+	.byte	34                      @ Abbrev [34] 0x4243:0x5 DW_TAG_class_type
+	.long	.Linfo_string98         @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	34                      @ Abbrev [34] 0x4248:0x5 DW_TAG_class_type
+	.long	.Linfo_string101        @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	26                      @ Abbrev [26] 0x424d:0xd7 DW_TAG_structure_type
+	.long	.Linfo_string305        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	6                       @ DW_AT_decl_file
+	.byte	50                      @ DW_AT_decl_line
+	.byte	27                      @ Abbrev [27] 0x4255:0x6 DW_TAG_inheritance
+	.long	5562                    @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	30                      @ Abbrev [30] 0x425b:0x15 DW_TAG_subprogram
+	.long	.Linfo_string298        @ DW_AT_linkage_name
+	.long	.Linfo_string46         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	94                      @ DW_AT_decl_line
+	.long	5772                    @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x426a:0x5 DW_TAG_formal_parameter
+	.long	20328                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	29                      @ Abbrev [29] 0x4270:0x16 DW_TAG_subprogram
+	.long	.Linfo_string299        @ DW_AT_linkage_name
+	.long	.Linfo_string48         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	97                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x427b:0x5 DW_TAG_formal_parameter
+	.long	20348                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x4280:0x5 DW_TAG_formal_parameter
+	.long	20348                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	58                      @ Abbrev [58] 0x4286:0xf DW_TAG_subprogram
+	.long	.Linfo_string300        @ DW_AT_linkage_name
+	.long	.Linfo_string50         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	100                     @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	58                      @ Abbrev [58] 0x4295:0xf DW_TAG_subprogram
+	.long	.Linfo_string301        @ DW_AT_linkage_name
+	.long	.Linfo_string53         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	103                     @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	58                      @ Abbrev [58] 0x42a4:0xf DW_TAG_subprogram
+	.long	.Linfo_string302        @ DW_AT_linkage_name
+	.long	.Linfo_string55         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	106                     @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	58                      @ Abbrev [58] 0x42b3:0xf DW_TAG_subprogram
+	.long	.Linfo_string303        @ DW_AT_linkage_name
+	.long	.Linfo_string57         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	109                     @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	58                      @ Abbrev [58] 0x42c2:0xf DW_TAG_subprogram
+	.long	.Linfo_string304        @ DW_AT_linkage_name
+	.long	.Linfo_string59         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	112                     @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	25                      @ Abbrev [25] 0x42d1:0x9 DW_TAG_template_type_parameter
+	.long	5772                    @ DW_AT_type
+	.long	.Linfo_string43         @ DW_AT_name
+	.byte	26                      @ Abbrev [26] 0x42da:0x1d DW_TAG_structure_type
+	.long	.Linfo_string306        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	6                       @ DW_AT_decl_file
+	.byte	116                     @ DW_AT_decl_line
+	.byte	25                      @ Abbrev [25] 0x42e2:0x9 DW_TAG_template_type_parameter
+	.long	18995                   @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	20                      @ Abbrev [20] 0x42eb:0xb DW_TAG_typedef
+	.long	5747                    @ DW_AT_type
+	.long	.Linfo_string63         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	117                     @ DW_AT_decl_line
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x42f7:0xb DW_TAG_typedef
+	.long	5598                    @ DW_AT_type
+	.long	.Linfo_string13         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	59                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x4302:0xb DW_TAG_typedef
+	.long	20463                   @ DW_AT_type
+	.long	.Linfo_string18         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	64                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x430d:0xb DW_TAG_typedef
+	.long	5759                    @ DW_AT_type
+	.long	.Linfo_string86         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	58                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x4318:0xb DW_TAG_typedef
+	.long	20468                   @ DW_AT_type
+	.long	.Linfo_string21         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	65                      @ DW_AT_decl_line
+	.byte	0                       @ End Of Children Mark
+	.byte	17                      @ Abbrev [17] 0x4324:0xf5 DW_TAG_class_type
+	.long	.Linfo_string290        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	3                       @ DW_AT_decl_file
+	.byte	58                      @ DW_AT_decl_line
+	.byte	6                       @ Abbrev [6] 0x432c:0xe DW_TAG_subprogram
+	.long	.Linfo_string14         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	79                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x4334:0x5 DW_TAG_formal_parameter
+	.long	20293                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x433a:0x13 DW_TAG_subprogram
+	.long	.Linfo_string14         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	81                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x4342:0x5 DW_TAG_formal_parameter
+	.long	20293                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x4347:0x5 DW_TAG_formal_parameter
+	.long	20298                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x434d:0xe DW_TAG_subprogram
+	.long	.Linfo_string15         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	86                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x4355:0x5 DW_TAG_formal_parameter
+	.long	20293                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	10                      @ Abbrev [10] 0x435b:0x1b DW_TAG_subprogram
+	.long	.Linfo_string285        @ DW_AT_linkage_name
+	.long	.Linfo_string17         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	89                      @ DW_AT_decl_line
+	.long	17270                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x436b:0x5 DW_TAG_formal_parameter
+	.long	20308                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x4370:0x5 DW_TAG_formal_parameter
+	.long	17281                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x4376:0xb DW_TAG_typedef
+	.long	19007                   @ DW_AT_type
+	.long	.Linfo_string13         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	63                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x4381:0xb DW_TAG_typedef
+	.long	20313                   @ DW_AT_type
+	.long	.Linfo_string18         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	65                      @ DW_AT_decl_line
+	.byte	10                      @ Abbrev [10] 0x438c:0x1b DW_TAG_subprogram
+	.long	.Linfo_string286        @ DW_AT_linkage_name
+	.long	.Linfo_string17         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	93                      @ DW_AT_decl_line
+	.long	17319                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x439c:0x5 DW_TAG_formal_parameter
+	.long	20308                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x43a1:0x5 DW_TAG_formal_parameter
+	.long	17330                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x43a7:0xb DW_TAG_typedef
+	.long	18985                   @ DW_AT_type
+	.long	.Linfo_string20         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	64                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x43b2:0xb DW_TAG_typedef
+	.long	20318                   @ DW_AT_type
+	.long	.Linfo_string21         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	66                      @ DW_AT_decl_line
+	.byte	10                      @ Abbrev [10] 0x43bd:0x20 DW_TAG_subprogram
+	.long	.Linfo_string287        @ DW_AT_linkage_name
+	.long	.Linfo_string12         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	99                      @ DW_AT_decl_line
+	.long	17270                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x43cd:0x5 DW_TAG_formal_parameter
+	.long	20293                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x43d2:0x5 DW_TAG_formal_parameter
+	.long	18354                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x43d7:0x5 DW_TAG_formal_parameter
+	.long	18372                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	9                       @ Abbrev [9] 0x43dd:0x1c DW_TAG_subprogram
+	.long	.Linfo_string288        @ DW_AT_linkage_name
+	.long	.Linfo_string27         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	109                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x43e9:0x5 DW_TAG_formal_parameter
+	.long	20293                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x43ee:0x5 DW_TAG_formal_parameter
+	.long	17270                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x43f3:0x5 DW_TAG_formal_parameter
+	.long	18354                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	10                      @ Abbrev [10] 0x43f9:0x16 DW_TAG_subprogram
+	.long	.Linfo_string289        @ DW_AT_linkage_name
+	.long	.Linfo_string29         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	113                     @ DW_AT_decl_line
+	.long	18354                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x4409:0x5 DW_TAG_formal_parameter
+	.long	20308                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	25                      @ Abbrev [25] 0x440f:0x9 DW_TAG_template_type_parameter
+	.long	18995                   @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	0                       @ End Of Children Mark
+	.byte	34                      @ Abbrev [34] 0x4419:0x5 DW_TAG_class_type
+	.long	.Linfo_string323        @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	34                      @ Abbrev [34] 0x441e:0x5 DW_TAG_class_type
+	.long	.Linfo_string325        @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	26                      @ Abbrev [26] 0x4423:0xab DW_TAG_structure_type
+	.long	.Linfo_string558        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	6                       @ DW_AT_decl_file
+	.byte	50                      @ DW_AT_decl_line
+	.byte	27                      @ Abbrev [27] 0x442b:0x6 DW_TAG_inheritance
+	.long	13587                   @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	30                      @ Abbrev [30] 0x4431:0x15 DW_TAG_subprogram
+	.long	.Linfo_string551        @ DW_AT_linkage_name
+	.long	.Linfo_string46         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	94                      @ DW_AT_decl_line
+	.long	13790                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x4440:0x5 DW_TAG_formal_parameter
+	.long	21092                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	29                      @ Abbrev [29] 0x4446:0x16 DW_TAG_subprogram
+	.long	.Linfo_string552        @ DW_AT_linkage_name
+	.long	.Linfo_string48         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	97                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x4451:0x5 DW_TAG_formal_parameter
+	.long	21112                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x4456:0x5 DW_TAG_formal_parameter
+	.long	21112                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	58                      @ Abbrev [58] 0x445c:0xf DW_TAG_subprogram
+	.long	.Linfo_string553        @ DW_AT_linkage_name
+	.long	.Linfo_string50         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	100                     @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	58                      @ Abbrev [58] 0x446b:0xf DW_TAG_subprogram
+	.long	.Linfo_string554        @ DW_AT_linkage_name
+	.long	.Linfo_string53         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	103                     @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	58                      @ Abbrev [58] 0x447a:0xf DW_TAG_subprogram
+	.long	.Linfo_string555        @ DW_AT_linkage_name
+	.long	.Linfo_string55         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	106                     @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	58                      @ Abbrev [58] 0x4489:0xf DW_TAG_subprogram
+	.long	.Linfo_string556        @ DW_AT_linkage_name
+	.long	.Linfo_string57         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	109                     @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	58                      @ Abbrev [58] 0x4498:0xf DW_TAG_subprogram
+	.long	.Linfo_string557        @ DW_AT_linkage_name
+	.long	.Linfo_string59         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	112                     @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	25                      @ Abbrev [25] 0x44a7:0x9 DW_TAG_template_type_parameter
+	.long	13790                   @ DW_AT_type
+	.long	.Linfo_string43         @ DW_AT_name
+	.byte	26                      @ Abbrev [26] 0x44b0:0x1d DW_TAG_structure_type
+	.long	.Linfo_string560        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	6                       @ DW_AT_decl_file
+	.byte	116                     @ DW_AT_decl_line
+	.byte	25                      @ Abbrev [25] 0x44b8:0x9 DW_TAG_template_type_parameter
+	.long	13873                   @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	20                      @ Abbrev [20] 0x44c1:0xb DW_TAG_typedef
+	.long	13772                   @ DW_AT_type
+	.long	.Linfo_string63         @ DW_AT_name
+	.byte	6                       @ DW_AT_decl_file
+	.byte	117                     @ DW_AT_decl_line
+	.byte	0                       @ End Of Children Mark
+	.byte	0                       @ End Of Children Mark
+	.byte	17                      @ Abbrev [17] 0x44ce:0xf5 DW_TAG_class_type
+	.long	.Linfo_string543        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	3                       @ DW_AT_decl_file
+	.byte	58                      @ DW_AT_decl_line
+	.byte	6                       @ Abbrev [6] 0x44d6:0xe DW_TAG_subprogram
+	.long	.Linfo_string14         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	79                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x44de:0x5 DW_TAG_formal_parameter
+	.long	21047                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x44e4:0x13 DW_TAG_subprogram
+	.long	.Linfo_string14         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	81                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x44ec:0x5 DW_TAG_formal_parameter
+	.long	21047                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x44f1:0x5 DW_TAG_formal_parameter
+	.long	21052                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x44f7:0xe DW_TAG_subprogram
+	.long	.Linfo_string15         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	86                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x44ff:0x5 DW_TAG_formal_parameter
+	.long	21047                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	10                      @ Abbrev [10] 0x4505:0x1b DW_TAG_subprogram
+	.long	.Linfo_string538        @ DW_AT_linkage_name
+	.long	.Linfo_string17         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	89                      @ DW_AT_decl_line
+	.long	17696                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x4515:0x5 DW_TAG_formal_parameter
+	.long	21062                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x451a:0x5 DW_TAG_formal_parameter
+	.long	17707                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x4520:0xb DW_TAG_typedef
+	.long	21037                   @ DW_AT_type
+	.long	.Linfo_string13         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	63                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x452b:0xb DW_TAG_typedef
+	.long	21067                   @ DW_AT_type
+	.long	.Linfo_string18         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	65                      @ DW_AT_decl_line
+	.byte	10                      @ Abbrev [10] 0x4536:0x1b DW_TAG_subprogram
+	.long	.Linfo_string539        @ DW_AT_linkage_name
+	.long	.Linfo_string17         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	93                      @ DW_AT_decl_line
+	.long	17745                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x4546:0x5 DW_TAG_formal_parameter
+	.long	21062                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x454b:0x5 DW_TAG_formal_parameter
+	.long	17756                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x4551:0xb DW_TAG_typedef
+	.long	21072                   @ DW_AT_type
+	.long	.Linfo_string20         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	64                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x455c:0xb DW_TAG_typedef
+	.long	21082                   @ DW_AT_type
+	.long	.Linfo_string21         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	66                      @ DW_AT_decl_line
+	.byte	10                      @ Abbrev [10] 0x4567:0x20 DW_TAG_subprogram
+	.long	.Linfo_string540        @ DW_AT_linkage_name
+	.long	.Linfo_string12         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	99                      @ DW_AT_decl_line
+	.long	17696                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x4577:0x5 DW_TAG_formal_parameter
+	.long	21047                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x457c:0x5 DW_TAG_formal_parameter
+	.long	18354                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x4581:0x5 DW_TAG_formal_parameter
+	.long	18372                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	9                       @ Abbrev [9] 0x4587:0x1c DW_TAG_subprogram
+	.long	.Linfo_string541        @ DW_AT_linkage_name
+	.long	.Linfo_string27         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	109                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x4593:0x5 DW_TAG_formal_parameter
+	.long	21047                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x4598:0x5 DW_TAG_formal_parameter
+	.long	17696                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x459d:0x5 DW_TAG_formal_parameter
+	.long	18354                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	10                      @ Abbrev [10] 0x45a3:0x16 DW_TAG_subprogram
+	.long	.Linfo_string542        @ DW_AT_linkage_name
+	.long	.Linfo_string29         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	113                     @ DW_AT_decl_line
+	.long	18354                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x45b3:0x5 DW_TAG_formal_parameter
+	.long	21062                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	25                      @ Abbrev [25] 0x45b9:0x9 DW_TAG_template_type_parameter
+	.long	13785                   @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	0                       @ End Of Children Mark
+	.byte	17                      @ Abbrev [17] 0x45c3:0xf5 DW_TAG_class_type
+	.long	.Linfo_string566        @ DW_AT_name
+	.byte	1                       @ DW_AT_byte_size
+	.byte	3                       @ DW_AT_decl_file
+	.byte	58                      @ DW_AT_decl_line
+	.byte	6                       @ Abbrev [6] 0x45cb:0xe DW_TAG_subprogram
+	.long	.Linfo_string14         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	79                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x45d3:0x5 DW_TAG_formal_parameter
+	.long	21117                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x45d9:0x13 DW_TAG_subprogram
+	.long	.Linfo_string14         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	81                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x45e1:0x5 DW_TAG_formal_parameter
+	.long	21117                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x45e6:0x5 DW_TAG_formal_parameter
+	.long	21122                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x45ec:0xe DW_TAG_subprogram
+	.long	.Linfo_string15         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	86                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x45f4:0x5 DW_TAG_formal_parameter
+	.long	21117                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	10                      @ Abbrev [10] 0x45fa:0x1b DW_TAG_subprogram
+	.long	.Linfo_string561        @ DW_AT_linkage_name
+	.long	.Linfo_string17         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	89                      @ DW_AT_decl_line
+	.long	17941                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x460a:0x5 DW_TAG_formal_parameter
+	.long	21137                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x460f:0x5 DW_TAG_formal_parameter
+	.long	17952                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x4615:0xb DW_TAG_typedef
+	.long	21132                   @ DW_AT_type
+	.long	.Linfo_string13         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	63                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x4620:0xb DW_TAG_typedef
+	.long	21142                   @ DW_AT_type
+	.long	.Linfo_string18         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	65                      @ DW_AT_decl_line
+	.byte	10                      @ Abbrev [10] 0x462b:0x1b DW_TAG_subprogram
+	.long	.Linfo_string562        @ DW_AT_linkage_name
+	.long	.Linfo_string17         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	93                      @ DW_AT_decl_line
+	.long	17990                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x463b:0x5 DW_TAG_formal_parameter
+	.long	21137                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x4640:0x5 DW_TAG_formal_parameter
+	.long	18001                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x4646:0xb DW_TAG_typedef
+	.long	21147                   @ DW_AT_type
+	.long	.Linfo_string20         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	64                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x4651:0xb DW_TAG_typedef
+	.long	21157                   @ DW_AT_type
+	.long	.Linfo_string21         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	66                      @ DW_AT_decl_line
+	.byte	10                      @ Abbrev [10] 0x465c:0x20 DW_TAG_subprogram
+	.long	.Linfo_string563        @ DW_AT_linkage_name
+	.long	.Linfo_string12         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	99                      @ DW_AT_decl_line
+	.long	17941                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x466c:0x5 DW_TAG_formal_parameter
+	.long	21117                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x4671:0x5 DW_TAG_formal_parameter
+	.long	18354                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x4676:0x5 DW_TAG_formal_parameter
+	.long	18372                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	9                       @ Abbrev [9] 0x467c:0x1c DW_TAG_subprogram
+	.long	.Linfo_string564        @ DW_AT_linkage_name
+	.long	.Linfo_string27         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	109                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x4688:0x5 DW_TAG_formal_parameter
+	.long	21117                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x468d:0x5 DW_TAG_formal_parameter
+	.long	17941                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x4692:0x5 DW_TAG_formal_parameter
+	.long	18354                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	10                      @ Abbrev [10] 0x4698:0x16 DW_TAG_subprogram
+	.long	.Linfo_string565        @ DW_AT_linkage_name
+	.long	.Linfo_string29         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	113                     @ DW_AT_decl_line
+	.long	18354                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x46a8:0x5 DW_TAG_formal_parameter
+	.long	21137                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	25                      @ Abbrev [25] 0x46ae:0x9 DW_TAG_template_type_parameter
+	.long	13873                   @ DW_AT_type
+	.long	.Linfo_string30         @ DW_AT_name
+	.byte	0                       @ End Of Children Mark
+	.byte	51                      @ Abbrev [51] 0x46b8:0x1b DW_TAG_enumeration_type
+	.long	.Linfo_string857        @ DW_AT_name
+	.byte	4                       @ DW_AT_byte_size
+	.byte	23                      @ DW_AT_decl_file
+	.byte	49                      @ DW_AT_decl_line
+	.byte	52                      @ Abbrev [52] 0x46c0:0x6 DW_TAG_enumerator
+	.long	.Linfo_string854        @ DW_AT_name
+	.byte	0                       @ DW_AT_const_value
+	.byte	52                      @ Abbrev [52] 0x46c6:0x6 DW_TAG_enumerator
+	.long	.Linfo_string855        @ DW_AT_name
+	.byte	1                       @ DW_AT_const_value
+	.byte	52                      @ Abbrev [52] 0x46cc:0x6 DW_TAG_enumerator
+	.long	.Linfo_string856        @ DW_AT_name
+	.byte	2                       @ DW_AT_const_value
+	.byte	0                       @ End Of Children Mark
+	.byte	54                      @ Abbrev [54] 0x46d3:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	220                     @ DW_AT_decl_line
+	.long	22843                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x46da:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	226                     @ DW_AT_decl_line
+	.long	22890                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x46e1:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	230                     @ DW_AT_decl_line
+	.long	22904                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x46e8:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	236                     @ DW_AT_decl_line
+	.long	22922                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x46ef:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	247                     @ DW_AT_decl_line
+	.long	22945                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x46f6:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	248                     @ DW_AT_decl_line
+	.long	22962                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x46fd:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	249                     @ DW_AT_decl_line
+	.long	22989                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x4704:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	251                     @ DW_AT_decl_line
+	.long	23016                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x470b:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	252                     @ DW_AT_decl_line
+	.long	23038                   @ DW_AT_import
+	.byte	30                      @ Abbrev [30] 0x4712:0x1a DW_TAG_subprogram
+	.long	.Linfo_string912        @ DW_AT_linkage_name
+	.long	.Linfo_string878        @ DW_AT_name
+	.byte	29                      @ DW_AT_decl_file
+	.byte	233                     @ DW_AT_decl_line
+	.long	22843                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x4721:0x5 DW_TAG_formal_parameter
+	.long	22883                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x4726:0x5 DW_TAG_formal_parameter
+	.long	22883                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	54                      @ Abbrev [54] 0x472c:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	44                      @ DW_AT_decl_line
+	.long	3010                    @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x4733:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	45                      @ DW_AT_decl_line
+	.long	15333                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x473a:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	248                     @ DW_AT_decl_line
+	.long	25432                   @ DW_AT_import
+	.byte	55                      @ Abbrev [55] 0x4741:0x8 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.short	257                     @ DW_AT_decl_line
+	.long	25455                   @ DW_AT_import
+	.byte	55                      @ Abbrev [55] 0x4749:0x8 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.short	258                     @ DW_AT_decl_line
+	.long	25483                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x4751:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	175                     @ DW_AT_decl_line
+	.long	27040                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x4758:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	176                     @ DW_AT_decl_line
+	.long	27069                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x475f:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	177                     @ DW_AT_decl_line
+	.long	27097                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x4766:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	178                     @ DW_AT_decl_line
+	.long	27120                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x476d:0x7 DW_TAG_imported_declaration
+	.byte	1                       @ DW_AT_decl_file
+	.byte	179                     @ DW_AT_decl_line
+	.long	27153                   @ DW_AT_import
+	.byte	59                      @ Abbrev [59] 0x4774:0xb DW_TAG_variable
+	.long	.Linfo_string1139       @ DW_AT_name
+	.long	27181                   @ DW_AT_type
+	.byte	23                      @ DW_AT_decl_file
+	.byte	53                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+	.byte	0                       @ End Of Children Mark
+	.byte	12                      @ Abbrev [12] 0x4780:0x5 DW_TAG_pointer_type
+	.long	343                     @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x4785:0x5 DW_TAG_reference_type
+	.long	2765                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x478a:0x5 DW_TAG_pointer_type
+	.long	16718                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x478f:0x5 DW_TAG_reference_type
+	.long	18324                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x4794:0x5 DW_TAG_const_type
+	.long	16718                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x4799:0x5 DW_TAG_pointer_type
+	.long	18324                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x479e:0x5 DW_TAG_reference_type
+	.long	343                     @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x47a3:0x5 DW_TAG_pointer_type
+	.long	18344                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x47a8:0x5 DW_TAG_const_type
+	.long	343                     @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x47ad:0x5 DW_TAG_reference_type
+	.long	18344                   @ DW_AT_type
+	.byte	20                      @ Abbrev [20] 0x47b2:0xb DW_TAG_typedef
+	.long	3010                    @ DW_AT_type
+	.long	.Linfo_string25         @ DW_AT_name
+	.byte	3                       @ DW_AT_decl_file
+	.byte	61                      @ DW_AT_decl_line
+	.byte	15                      @ Abbrev [15] 0x47bd:0x7 DW_TAG_base_type
+	.long	.Linfo_string23         @ DW_AT_name
+	.byte	7                       @ DW_AT_encoding
+	.byte	4                       @ DW_AT_byte_size
+	.byte	12                      @ Abbrev [12] 0x47c4:0x5 DW_TAG_pointer_type
+	.long	18377                   @ DW_AT_type
+	.byte	62                      @ Abbrev [62] 0x47c9:0x1 DW_TAG_const_type
+	.byte	12                      @ Abbrev [12] 0x47ca:0x5 DW_TAG_pointer_type
+	.long	2927                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x47cf:0x5 DW_TAG_reference_type
+	.long	18388                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x47d4:0x5 DW_TAG_const_type
+	.long	2927                    @ DW_AT_type
+	.byte	33                      @ Abbrev [33] 0x47d9:0xc DW_TAG_typedef
+	.long	3010                    @ DW_AT_type
+	.long	.Linfo_string25         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	407                     @ DW_AT_decl_line
+	.byte	33                      @ Abbrev [33] 0x47e5:0xc DW_TAG_typedef
+	.long	18372                   @ DW_AT_type
+	.long	.Linfo_string38         @ DW_AT_name
+	.byte	2                       @ DW_AT_decl_file
+	.short	401                     @ DW_AT_decl_line
+	.byte	60                      @ Abbrev [60] 0x47f1:0x5 DW_TAG_reference_type
+	.long	18422                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x47f6:0x5 DW_TAG_const_type
+	.long	2765                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x47fb:0x5 DW_TAG_reference_type
+	.long	2927                    @ DW_AT_type
+	.byte	15                      @ Abbrev [15] 0x4800:0x7 DW_TAG_base_type
+	.long	.Linfo_string51         @ DW_AT_name
+	.byte	2                       @ DW_AT_encoding
+	.byte	1                       @ DW_AT_byte_size
+	.byte	12                      @ Abbrev [12] 0x4807:0x5 DW_TAG_pointer_type
+	.long	2260                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x480c:0x5 DW_TAG_reference_type
+	.long	18449                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x4811:0x5 DW_TAG_const_type
+	.long	2382                    @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x4816:0x5 DW_TAG_rvalue_reference_type
+	.long	2382                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x481b:0x5 DW_TAG_reference_type
+	.long	2260                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x4820:0x5 DW_TAG_reference_type
+	.long	2382                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x4825:0x5 DW_TAG_pointer_type
+	.long	2240                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x482a:0x5 DW_TAG_pointer_type
+	.long	18479                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x482f:0x5 DW_TAG_const_type
+	.long	2240                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x4834:0x5 DW_TAG_reference_type
+	.long	18489                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x4839:0x5 DW_TAG_const_type
+	.long	2467                    @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x483e:0x5 DW_TAG_rvalue_reference_type
+	.long	2240                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x4843:0x5 DW_TAG_pointer_type
+	.long	357                     @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x4848:0x5 DW_TAG_reference_type
+	.long	18509                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x484d:0x5 DW_TAG_const_type
+	.long	406                     @ DW_AT_type
+	.byte	20                      @ Abbrev [20] 0x4852:0xb DW_TAG_typedef
+	.long	3010                    @ DW_AT_type
+	.long	.Linfo_string25         @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.byte	238                     @ DW_AT_decl_line
+	.byte	60                      @ Abbrev [60] 0x485d:0x5 DW_TAG_reference_type
+	.long	18530                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x4862:0x5 DW_TAG_const_type
+	.long	472                     @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x4867:0x5 DW_TAG_reference_type
+	.long	18540                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x486c:0x5 DW_TAG_const_type
+	.long	357                     @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x4871:0x5 DW_TAG_rvalue_reference_type
+	.long	357                     @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x4876:0x5 DW_TAG_reference_type
+	.long	357                     @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x487b:0x5 DW_TAG_pointer_type
+	.long	18540                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x4880:0x5 DW_TAG_reference_type
+	.long	16695                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x4885:0x5 DW_TAG_reference_type
+	.long	18570                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x488a:0x5 DW_TAG_const_type
+	.long	16695                   @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x488f:0x5 DW_TAG_rvalue_reference_type
+	.long	472                     @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x4894:0x5 DW_TAG_pointer_type
+	.long	18585                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x4899:0x5 DW_TAG_const_type
+	.long	18590                   @ DW_AT_type
+	.byte	15                      @ Abbrev [15] 0x489e:0x7 DW_TAG_base_type
+	.long	.Linfo_string186        @ DW_AT_name
+	.byte	8                       @ DW_AT_encoding
+	.byte	1                       @ DW_AT_byte_size
+	.byte	61                      @ Abbrev [61] 0x48a5:0x5 DW_TAG_const_type
+	.long	18432                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x48aa:0x5 DW_TAG_pointer_type
+	.long	18607                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x48af:0x5 DW_TAG_const_type
+	.long	3047                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x48b4:0x5 DW_TAG_pointer_type
+	.long	18617                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x48b9:0x5 DW_TAG_const_type
+	.long	3130                    @ DW_AT_type
+	.byte	20                      @ Abbrev [20] 0x48be:0xb DW_TAG_typedef
+	.long	18633                   @ DW_AT_type
+	.long	.Linfo_string210        @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	58                      @ DW_AT_decl_line
+	.byte	15                      @ Abbrev [15] 0x48c9:0x7 DW_TAG_base_type
+	.long	.Linfo_string209        @ DW_AT_name
+	.byte	7                       @ DW_AT_encoding
+	.byte	8                       @ DW_AT_byte_size
+	.byte	12                      @ Abbrev [12] 0x48d0:0x5 DW_TAG_pointer_type
+	.long	58                      @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x48d5:0x5 DW_TAG_pointer_type
+	.long	18650                   @ DW_AT_type
+	.byte	33                      @ Abbrev [33] 0x48da:0xc DW_TAG_typedef
+	.long	18662                   @ DW_AT_type
+	.long	.Linfo_string240        @ DW_AT_name
+	.byte	11                      @ DW_AT_decl_file
+	.short	419                     @ DW_AT_decl_line
+	.byte	64                      @ Abbrev [64] 0x48e6:0x13e DW_TAG_structure_type
+	.short	352                     @ DW_AT_byte_size
+	.byte	11                      @ DW_AT_decl_file
+	.byte	229                     @ DW_AT_decl_line
+	.byte	5                       @ Abbrev [5] 0x48eb:0xc DW_TAG_member
+	.long	.Linfo_string213        @ DW_AT_name
+	.long	18980                   @ DW_AT_type
+	.byte	11                      @ DW_AT_decl_file
+	.byte	247                     @ DW_AT_decl_line
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x48f7:0xd DW_TAG_member
+	.long	.Linfo_string215        @ DW_AT_name
+	.long	19002                   @ DW_AT_type
+	.byte	11                      @ DW_AT_decl_file
+	.short	262                     @ DW_AT_decl_line
+	.byte	4                       @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x4904:0xd DW_TAG_member
+	.long	.Linfo_string216        @ DW_AT_name
+	.long	18980                   @ DW_AT_type
+	.byte	11                      @ DW_AT_decl_file
+	.short	281                     @ DW_AT_decl_line
+	.byte	8                       @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x4911:0xd DW_TAG_member
+	.long	.Linfo_string217        @ DW_AT_name
+	.long	19002                   @ DW_AT_type
+	.byte	11                      @ DW_AT_decl_file
+	.short	296                     @ DW_AT_decl_line
+	.byte	12                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x491e:0xd DW_TAG_member
+	.long	.Linfo_string218        @ DW_AT_name
+	.long	19012                   @ DW_AT_type
+	.byte	11                      @ DW_AT_decl_file
+	.short	306                     @ DW_AT_decl_line
+	.byte	16                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x492b:0xd DW_TAG_member
+	.long	.Linfo_string220        @ DW_AT_name
+	.long	19033                   @ DW_AT_type
+	.byte	11                      @ DW_AT_decl_file
+	.short	320                     @ DW_AT_decl_line
+	.byte	20                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x4938:0xd DW_TAG_member
+	.long	.Linfo_string221        @ DW_AT_name
+	.long	19033                   @ DW_AT_type
+	.byte	11                      @ DW_AT_decl_file
+	.short	322                     @ DW_AT_decl_line
+	.byte	24                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x4945:0xd DW_TAG_member
+	.long	.Linfo_string222        @ DW_AT_name
+	.long	19033                   @ DW_AT_type
+	.byte	11                      @ DW_AT_decl_file
+	.short	324                     @ DW_AT_decl_line
+	.byte	28                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x4952:0xd DW_TAG_member
+	.long	.Linfo_string223        @ DW_AT_name
+	.long	18990                   @ DW_AT_type
+	.byte	11                      @ DW_AT_decl_file
+	.short	326                     @ DW_AT_decl_line
+	.byte	32                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x495f:0xd DW_TAG_member
+	.long	.Linfo_string224        @ DW_AT_name
+	.long	19033                   @ DW_AT_type
+	.byte	11                      @ DW_AT_decl_file
+	.short	339                     @ DW_AT_decl_line
+	.byte	36                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x496c:0xd DW_TAG_member
+	.long	.Linfo_string225        @ DW_AT_name
+	.long	19033                   @ DW_AT_type
+	.byte	11                      @ DW_AT_decl_file
+	.short	344                     @ DW_AT_decl_line
+	.byte	40                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x4979:0xd DW_TAG_member
+	.long	.Linfo_string226        @ DW_AT_name
+	.long	19033                   @ DW_AT_type
+	.byte	11                      @ DW_AT_decl_file
+	.short	349                     @ DW_AT_decl_line
+	.byte	44                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x4986:0xd DW_TAG_member
+	.long	.Linfo_string227        @ DW_AT_name
+	.long	18990                   @ DW_AT_type
+	.byte	11                      @ DW_AT_decl_file
+	.short	360                     @ DW_AT_decl_line
+	.byte	48                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x4993:0xd DW_TAG_member
+	.long	.Linfo_string228        @ DW_AT_name
+	.long	19033                   @ DW_AT_type
+	.byte	11                      @ DW_AT_decl_file
+	.short	363                     @ DW_AT_decl_line
+	.byte	52                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x49a0:0xd DW_TAG_member
+	.long	.Linfo_string229        @ DW_AT_name
+	.long	19033                   @ DW_AT_type
+	.byte	11                      @ DW_AT_decl_file
+	.short	367                     @ DW_AT_decl_line
+	.byte	56                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x49ad:0xd DW_TAG_member
+	.long	.Linfo_string230        @ DW_AT_name
+	.long	18990                   @ DW_AT_type
+	.byte	11                      @ DW_AT_decl_file
+	.short	369                     @ DW_AT_decl_line
+	.byte	60                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x49ba:0xd DW_TAG_member
+	.long	.Linfo_string231        @ DW_AT_name
+	.long	19038                   @ DW_AT_type
+	.byte	11                      @ DW_AT_decl_file
+	.short	377                     @ DW_AT_decl_line
+	.byte	64                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x49c7:0xd DW_TAG_member
+	.long	.Linfo_string232        @ DW_AT_name
+	.long	19033                   @ DW_AT_type
+	.byte	11                      @ DW_AT_decl_file
+	.short	383                     @ DW_AT_decl_line
+	.byte	72                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x49d4:0xd DW_TAG_member
+	.long	.Linfo_string233        @ DW_AT_name
+	.long	19033                   @ DW_AT_type
+	.byte	11                      @ DW_AT_decl_file
+	.short	389                     @ DW_AT_decl_line
+	.byte	76                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x49e1:0xd DW_TAG_member
+	.long	.Linfo_string234        @ DW_AT_name
+	.long	18980                   @ DW_AT_type
+	.byte	11                      @ DW_AT_decl_file
+	.short	396                     @ DW_AT_decl_line
+	.byte	80                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x49ee:0xd DW_TAG_member
+	.long	.Linfo_string235        @ DW_AT_name
+	.long	19033                   @ DW_AT_type
+	.byte	11                      @ DW_AT_decl_file
+	.short	402                     @ DW_AT_decl_line
+	.byte	84                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x49fb:0xd DW_TAG_member
+	.long	.Linfo_string236        @ DW_AT_name
+	.long	19033                   @ DW_AT_type
+	.byte	11                      @ DW_AT_decl_file
+	.short	412                     @ DW_AT_decl_line
+	.byte	88                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x4a08:0xd DW_TAG_member
+	.long	.Linfo_string237        @ DW_AT_name
+	.long	19043                   @ DW_AT_type
+	.byte	11                      @ DW_AT_decl_file
+	.short	415                     @ DW_AT_decl_line
+	.byte	92                      @ DW_AT_data_member_location
+	.byte	65                      @ Abbrev [65] 0x4a15:0xe DW_TAG_member
+	.long	.Linfo_string239        @ DW_AT_name
+	.long	19063                   @ DW_AT_type
+	.byte	11                      @ DW_AT_decl_file
+	.short	418                     @ DW_AT_decl_line
+	.short	348                     @ DW_AT_data_member_location
+	.byte	0                       @ End Of Children Mark
+	.byte	61                      @ Abbrev [61] 0x4a24:0x5 DW_TAG_const_type
+	.long	18985                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x4a29:0x5 DW_TAG_pointer_type
+	.long	18990                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x4a2e:0x5 DW_TAG_const_type
+	.long	18995                   @ DW_AT_type
+	.byte	15                      @ Abbrev [15] 0x4a33:0x7 DW_TAG_base_type
+	.long	.Linfo_string214        @ DW_AT_name
+	.byte	4                       @ DW_AT_encoding
+	.byte	4                       @ DW_AT_byte_size
+	.byte	61                      @ Abbrev [61] 0x4a3a:0x5 DW_TAG_const_type
+	.long	19007                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x4a3f:0x5 DW_TAG_pointer_type
+	.long	18995                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x4a44:0x5 DW_TAG_const_type
+	.long	19017                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x4a49:0x5 DW_TAG_pointer_type
+	.long	19022                   @ DW_AT_type
+	.byte	20                      @ Abbrev [20] 0x4a4e:0xb DW_TAG_typedef
+	.long	18365                   @ DW_AT_type
+	.long	.Linfo_string219        @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	51                      @ DW_AT_decl_line
+	.byte	61                      @ Abbrev [61] 0x4a59:0x5 DW_TAG_const_type
+	.long	19022                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x4a5e:0x5 DW_TAG_const_type
+	.long	18622                   @ DW_AT_type
+	.byte	66                      @ Abbrev [66] 0x4a63:0xd DW_TAG_array_type
+	.long	18590                   @ DW_AT_type
+	.byte	67                      @ Abbrev [67] 0x4a68:0x7 DW_TAG_subrange_type
+	.long	19056                   @ DW_AT_type
+	.short	256                     @ DW_AT_count
+	.byte	0                       @ End Of Children Mark
+	.byte	68                      @ Abbrev [68] 0x4a70:0x7 DW_TAG_base_type
+	.long	.Linfo_string238        @ DW_AT_name
+	.byte	8                       @ DW_AT_byte_size
+	.byte	7                       @ DW_AT_encoding
+	.byte	61                      @ Abbrev [61] 0x4a77:0x5 DW_TAG_const_type
+	.long	18365                   @ DW_AT_type
+	.byte	2                       @ Abbrev [2] 0x4a7c:0x11 DW_TAG_variable
+	.long	.Linfo_string250        @ DW_AT_name
+	.long	19085                   @ DW_AT_type
+                                        @ DW_AT_external
+	.byte	12                      @ DW_AT_decl_file
+	.byte	54                      @ DW_AT_decl_line
+	.byte	5                       @ DW_AT_location
+	.byte	3
+	.long	scope
+	.byte	17                      @ Abbrev [17] 0x4a8d:0x4ae DW_TAG_class_type
+	.long	.Linfo_string800        @ DW_AT_name
+	.byte	212                     @ DW_AT_byte_size
+	.byte	13                      @ DW_AT_decl_file
+	.byte	23                      @ DW_AT_decl_line
+	.byte	5                       @ Abbrev [5] 0x4a95:0xc DW_TAG_member
+	.long	.Linfo_string251        @ DW_AT_name
+	.long	20283                   @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	106                     @ DW_AT_decl_line
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4aa1:0xc DW_TAG_member
+	.long	.Linfo_string252        @ DW_AT_name
+	.long	20283                   @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	107                     @ DW_AT_decl_line
+	.byte	1                       @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4aad:0xc DW_TAG_member
+	.long	.Linfo_string253        @ DW_AT_name
+	.long	20283                   @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	108                     @ DW_AT_decl_line
+	.byte	2                       @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4ab9:0xc DW_TAG_member
+	.long	.Linfo_string254        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	111                     @ DW_AT_decl_line
+	.byte	4                       @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4ac5:0xc DW_TAG_member
+	.long	.Linfo_string255        @ DW_AT_name
+	.long	18995                   @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	112                     @ DW_AT_decl_line
+	.byte	8                       @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4ad1:0xc DW_TAG_member
+	.long	.Linfo_string256        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	113                     @ DW_AT_decl_line
+	.byte	12                      @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4add:0xc DW_TAG_member
+	.long	.Linfo_string257        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	114                     @ DW_AT_decl_line
+	.byte	16                      @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4ae9:0xc DW_TAG_member
+	.long	.Linfo_string258        @ DW_AT_name
+	.long	19189                   @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	115                     @ DW_AT_decl_line
+	.byte	20                      @ DW_AT_data_member_location
+	.byte	20                      @ Abbrev [20] 0x4af5:0xb DW_TAG_typedef
+	.long	19200                   @ DW_AT_type
+	.long	.Linfo_string261        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	90                      @ DW_AT_decl_line
+	.byte	69                      @ Abbrev [69] 0x4b00:0x11 DW_TAG_enumeration_type
+	.byte	4                       @ DW_AT_byte_size
+	.byte	13                      @ DW_AT_decl_file
+	.byte	87                      @ DW_AT_decl_line
+	.byte	52                      @ Abbrev [52] 0x4b04:0x6 DW_TAG_enumerator
+	.long	.Linfo_string259        @ DW_AT_name
+	.byte	0                       @ DW_AT_const_value
+	.byte	52                      @ Abbrev [52] 0x4b0a:0x6 DW_TAG_enumerator
+	.long	.Linfo_string260        @ DW_AT_name
+	.byte	1                       @ DW_AT_const_value
+	.byte	0                       @ End Of Children Mark
+	.byte	5                       @ Abbrev [5] 0x4b11:0xc DW_TAG_member
+	.long	.Linfo_string262        @ DW_AT_name
+	.long	19229                   @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	116                     @ DW_AT_decl_line
+	.byte	24                      @ DW_AT_data_member_location
+	.byte	20                      @ Abbrev [20] 0x4b1d:0xb DW_TAG_typedef
+	.long	19240                   @ DW_AT_type
+	.long	.Linfo_string266        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	29                      @ DW_AT_decl_line
+	.byte	69                      @ Abbrev [69] 0x4b28:0x17 DW_TAG_enumeration_type
+	.byte	4                       @ DW_AT_byte_size
+	.byte	13                      @ DW_AT_decl_file
+	.byte	25                      @ DW_AT_decl_line
+	.byte	52                      @ Abbrev [52] 0x4b2c:0x6 DW_TAG_enumerator
+	.long	.Linfo_string263        @ DW_AT_name
+	.byte	0                       @ DW_AT_const_value
+	.byte	52                      @ Abbrev [52] 0x4b32:0x6 DW_TAG_enumerator
+	.long	.Linfo_string264        @ DW_AT_name
+	.byte	1                       @ DW_AT_const_value
+	.byte	52                      @ Abbrev [52] 0x4b38:0x6 DW_TAG_enumerator
+	.long	.Linfo_string265        @ DW_AT_name
+	.byte	2                       @ DW_AT_const_value
+	.byte	0                       @ End Of Children Mark
+	.byte	5                       @ Abbrev [5] 0x4b3f:0xc DW_TAG_member
+	.long	.Linfo_string267        @ DW_AT_name
+	.long	18365                   @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	117                     @ DW_AT_decl_line
+	.byte	28                      @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4b4b:0xc DW_TAG_member
+	.long	.Linfo_string268        @ DW_AT_name
+	.long	19287                   @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	118                     @ DW_AT_decl_line
+	.byte	32                      @ DW_AT_data_member_location
+	.byte	20                      @ Abbrev [20] 0x4b57:0xb DW_TAG_typedef
+	.long	19298                   @ DW_AT_type
+	.long	.Linfo_string272        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	34                      @ DW_AT_decl_line
+	.byte	69                      @ Abbrev [69] 0x4b62:0x17 DW_TAG_enumeration_type
+	.byte	4                       @ DW_AT_byte_size
+	.byte	13                      @ DW_AT_decl_file
+	.byte	30                      @ DW_AT_decl_line
+	.byte	52                      @ Abbrev [52] 0x4b66:0x6 DW_TAG_enumerator
+	.long	.Linfo_string269        @ DW_AT_name
+	.byte	0                       @ DW_AT_const_value
+	.byte	52                      @ Abbrev [52] 0x4b6c:0x6 DW_TAG_enumerator
+	.long	.Linfo_string270        @ DW_AT_name
+	.byte	1                       @ DW_AT_const_value
+	.byte	52                      @ Abbrev [52] 0x4b72:0x6 DW_TAG_enumerator
+	.long	.Linfo_string271        @ DW_AT_name
+	.byte	2                       @ DW_AT_const_value
+	.byte	0                       @ End Of Children Mark
+	.byte	5                       @ Abbrev [5] 0x4b79:0xc DW_TAG_member
+	.long	.Linfo_string273        @ DW_AT_name
+	.long	18995                   @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	119                     @ DW_AT_decl_line
+	.byte	36                      @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4b85:0xc DW_TAG_member
+	.long	.Linfo_string274        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	120                     @ DW_AT_decl_line
+	.byte	40                      @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4b91:0xc DW_TAG_member
+	.long	.Linfo_string275        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	121                     @ DW_AT_decl_line
+	.byte	44                      @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4b9d:0xc DW_TAG_member
+	.long	.Linfo_string276        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	122                     @ DW_AT_decl_line
+	.byte	48                      @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4ba9:0xc DW_TAG_member
+	.long	.Linfo_string277        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	123                     @ DW_AT_decl_line
+	.byte	52                      @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4bb5:0xc DW_TAG_member
+	.long	.Linfo_string278        @ DW_AT_name
+	.long	18995                   @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	124                     @ DW_AT_decl_line
+	.byte	56                      @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4bc1:0xc DW_TAG_member
+	.long	.Linfo_string279        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	126                     @ DW_AT_decl_line
+	.byte	60                      @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4bcd:0xc DW_TAG_member
+	.long	.Linfo_string280        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	128                     @ DW_AT_decl_line
+	.byte	64                      @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4bd9:0xc DW_TAG_member
+	.long	.Linfo_string281        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	129                     @ DW_AT_decl_line
+	.byte	68                      @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4be5:0xc DW_TAG_member
+	.long	.Linfo_string282        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	130                     @ DW_AT_decl_line
+	.byte	72                      @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4bf1:0xc DW_TAG_member
+	.long	.Linfo_string283        @ DW_AT_name
+	.long	3202                    @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	133                     @ DW_AT_decl_line
+	.byte	76                      @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4bfd:0xc DW_TAG_member
+	.long	.Linfo_string381        @ DW_AT_name
+	.long	3202                    @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	134                     @ DW_AT_decl_line
+	.byte	88                      @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4c09:0xc DW_TAG_member
+	.long	.Linfo_string382        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	137                     @ DW_AT_decl_line
+	.byte	100                     @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4c15:0xc DW_TAG_member
+	.long	.Linfo_string383        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	138                     @ DW_AT_decl_line
+	.byte	104                     @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4c21:0xc DW_TAG_member
+	.long	.Linfo_string384        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	139                     @ DW_AT_decl_line
+	.byte	108                     @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4c2d:0xc DW_TAG_member
+	.long	.Linfo_string385        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	140                     @ DW_AT_decl_line
+	.byte	112                     @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4c39:0xc DW_TAG_member
+	.long	.Linfo_string386        @ DW_AT_name
+	.long	18432                   @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	143                     @ DW_AT_decl_line
+	.byte	116                     @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4c45:0xc DW_TAG_member
+	.long	.Linfo_string387        @ DW_AT_name
+	.long	18432                   @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	144                     @ DW_AT_decl_line
+	.byte	117                     @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4c51:0xc DW_TAG_member
+	.long	.Linfo_string388        @ DW_AT_name
+	.long	18432                   @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	145                     @ DW_AT_decl_line
+	.byte	118                     @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4c5d:0xc DW_TAG_member
+	.long	.Linfo_string389        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	146                     @ DW_AT_decl_line
+	.byte	120                     @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4c69:0xc DW_TAG_member
+	.long	.Linfo_string390        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	147                     @ DW_AT_decl_line
+	.byte	124                     @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4c75:0xc DW_TAG_member
+	.long	.Linfo_string391        @ DW_AT_name
+	.long	18432                   @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	148                     @ DW_AT_decl_line
+	.byte	128                     @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4c81:0xc DW_TAG_member
+	.long	.Linfo_string392        @ DW_AT_name
+	.long	18432                   @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	149                     @ DW_AT_decl_line
+	.byte	129                     @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4c8d:0xc DW_TAG_member
+	.long	.Linfo_string393        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	152                     @ DW_AT_decl_line
+	.byte	132                     @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4c99:0xc DW_TAG_member
+	.long	.Linfo_string394        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	153                     @ DW_AT_decl_line
+	.byte	136                     @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4ca5:0xc DW_TAG_member
+	.long	.Linfo_string395        @ DW_AT_name
+	.long	18995                   @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	154                     @ DW_AT_decl_line
+	.byte	140                     @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4cb1:0xc DW_TAG_member
+	.long	.Linfo_string396        @ DW_AT_name
+	.long	18995                   @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	155                     @ DW_AT_decl_line
+	.byte	144                     @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4cbd:0xc DW_TAG_member
+	.long	.Linfo_string397        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	156                     @ DW_AT_decl_line
+	.byte	148                     @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4cc9:0xc DW_TAG_member
+	.long	.Linfo_string398        @ DW_AT_name
+	.long	18432                   @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	157                     @ DW_AT_decl_line
+	.byte	152                     @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4cd5:0xc DW_TAG_member
+	.long	.Linfo_string399        @ DW_AT_name
+	.long	19007                   @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	158                     @ DW_AT_decl_line
+	.byte	156                     @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4ce1:0xc DW_TAG_member
+	.long	.Linfo_string400        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	159                     @ DW_AT_decl_line
+	.byte	160                     @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4ced:0xc DW_TAG_member
+	.long	.Linfo_string401        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	160                     @ DW_AT_decl_line
+	.byte	164                     @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4cf9:0xc DW_TAG_member
+	.long	.Linfo_string402        @ DW_AT_name
+	.long	20483                   @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	162                     @ DW_AT_decl_line
+	.byte	168                     @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4d05:0xc DW_TAG_member
+	.long	.Linfo_string404        @ DW_AT_name
+	.long	20483                   @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	163                     @ DW_AT_decl_line
+	.byte	172                     @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4d11:0xc DW_TAG_member
+	.long	.Linfo_string405        @ DW_AT_name
+	.long	20501                   @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	164                     @ DW_AT_decl_line
+	.byte	176                     @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4d1d:0xc DW_TAG_member
+	.long	.Linfo_string408        @ DW_AT_name
+	.long	5870                    @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	166                     @ DW_AT_decl_line
+	.byte	180                     @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4d29:0xc DW_TAG_member
+	.long	.Linfo_string491        @ DW_AT_name
+	.long	7712                    @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	171                     @ DW_AT_decl_line
+	.byte	184                     @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x4d35:0xc DW_TAG_member
+	.long	.Linfo_string535        @ DW_AT_name
+	.long	9455                    @ DW_AT_type
+	.byte	13                      @ DW_AT_decl_file
+	.byte	173                     @ DW_AT_decl_line
+	.byte	188                     @ DW_AT_data_member_location
+	.byte	6                       @ Abbrev [6] 0x4d41:0xe DW_TAG_subprogram
+	.long	.Linfo_string800        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	36                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x4d49:0x5 DW_TAG_formal_parameter
+	.long	21468                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x4d4f:0x18 DW_TAG_subprogram
+	.long	.Linfo_string800        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	37                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x4d57:0x5 DW_TAG_formal_parameter
+	.long	21468                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x4d5c:0x5 DW_TAG_formal_parameter
+	.long	18365                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x4d61:0x5 DW_TAG_formal_parameter
+	.long	18995                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	6                       @ Abbrev [6] 0x4d67:0xe DW_TAG_subprogram
+	.long	.Linfo_string801        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	38                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x4d6f:0x5 DW_TAG_formal_parameter
+	.long	21468                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	9                       @ Abbrev [9] 0x4d75:0x1c DW_TAG_subprogram
+	.long	.Linfo_string802        @ DW_AT_linkage_name
+	.long	.Linfo_string242        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	51                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x4d81:0x5 DW_TAG_formal_parameter
+	.long	21468                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x4d86:0x5 DW_TAG_formal_parameter
+	.long	18365                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x4d8b:0x5 DW_TAG_formal_parameter
+	.long	18995                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	9                       @ Abbrev [9] 0x4d91:0x12 DW_TAG_subprogram
+	.long	.Linfo_string803        @ DW_AT_linkage_name
+	.long	.Linfo_string248        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	53                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x4d9d:0x5 DW_TAG_formal_parameter
+	.long	21468                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	9                       @ Abbrev [9] 0x4da3:0x18 DW_TAG_subprogram
+	.long	.Linfo_string804        @ DW_AT_linkage_name
+	.long	.Linfo_string805        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	61                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x4daf:0x5 DW_TAG_formal_parameter
+	.long	21468                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x4db4:0x5 DW_TAG_formal_parameter
+	.long	21473                   @ DW_AT_type
+	.byte	70                      @ Abbrev [70] 0x4db9:0x1 DW_TAG_unspecified_parameters
+	.byte	0                       @ End Of Children Mark
+	.byte	9                       @ Abbrev [9] 0x4dbb:0x17 DW_TAG_subprogram
+	.long	.Linfo_string807        @ DW_AT_linkage_name
+	.long	.Linfo_string805        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	71                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x4dc7:0x5 DW_TAG_formal_parameter
+	.long	21468                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x4dcc:0x5 DW_TAG_formal_parameter
+	.long	18985                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	10                      @ Abbrev [10] 0x4dd2:0x16 DW_TAG_subprogram
+	.long	.Linfo_string808        @ DW_AT_linkage_name
+	.long	.Linfo_string809        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	79                      @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x4de2:0x5 DW_TAG_formal_parameter
+	.long	21468                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	9                       @ Abbrev [9] 0x4de8:0x26 DW_TAG_subprogram
+	.long	.Linfo_string810        @ DW_AT_linkage_name
+	.long	.Linfo_string811        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	84                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	1                       @ DW_AT_accessibility
+                                        @ DW_ACCESS_public
+	.byte	7                       @ Abbrev [7] 0x4df4:0x5 DW_TAG_formal_parameter
+	.long	21468                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x4df9:0x5 DW_TAG_formal_parameter
+	.long	19229                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x4dfe:0x5 DW_TAG_formal_parameter
+	.long	18365                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x4e03:0x5 DW_TAG_formal_parameter
+	.long	19287                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x4e08:0x5 DW_TAG_formal_parameter
+	.long	18995                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	29                      @ Abbrev [29] 0x4e0e:0x11 DW_TAG_subprogram
+	.long	.Linfo_string812        @ DW_AT_linkage_name
+	.long	.Linfo_string813        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	91                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x4e19:0x5 DW_TAG_formal_parameter
+	.long	21468                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	29                      @ Abbrev [29] 0x4e1f:0x11 DW_TAG_subprogram
+	.long	.Linfo_string814        @ DW_AT_linkage_name
+	.long	.Linfo_string815        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	92                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x4e2a:0x5 DW_TAG_formal_parameter
+	.long	21468                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	29                      @ Abbrev [29] 0x4e30:0x11 DW_TAG_subprogram
+	.long	.Linfo_string816        @ DW_AT_linkage_name
+	.long	.Linfo_string817        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	93                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x4e3b:0x5 DW_TAG_formal_parameter
+	.long	21468                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	29                      @ Abbrev [29] 0x4e41:0x11 DW_TAG_subprogram
+	.long	.Linfo_string818        @ DW_AT_linkage_name
+	.long	.Linfo_string819        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	94                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x4e4c:0x5 DW_TAG_formal_parameter
+	.long	21468                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	29                      @ Abbrev [29] 0x4e52:0x11 DW_TAG_subprogram
+	.long	.Linfo_string820        @ DW_AT_linkage_name
+	.long	.Linfo_string821        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	95                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x4e5d:0x5 DW_TAG_formal_parameter
+	.long	21468                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	30                      @ Abbrev [30] 0x4e63:0x15 DW_TAG_subprogram
+	.long	.Linfo_string822        @ DW_AT_linkage_name
+	.long	.Linfo_string823        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	96                      @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x4e72:0x5 DW_TAG_formal_parameter
+	.long	21468                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	30                      @ Abbrev [30] 0x4e78:0x15 DW_TAG_subprogram
+	.long	.Linfo_string824        @ DW_AT_linkage_name
+	.long	.Linfo_string825        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	97                      @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x4e87:0x5 DW_TAG_formal_parameter
+	.long	21468                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	29                      @ Abbrev [29] 0x4e8d:0x11 DW_TAG_subprogram
+	.long	.Linfo_string826        @ DW_AT_linkage_name
+	.long	.Linfo_string827        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	98                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x4e98:0x5 DW_TAG_formal_parameter
+	.long	21468                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	29                      @ Abbrev [29] 0x4e9e:0x11 DW_TAG_subprogram
+	.long	.Linfo_string828        @ DW_AT_linkage_name
+	.long	.Linfo_string829        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	99                      @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x4ea9:0x5 DW_TAG_formal_parameter
+	.long	21468                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	29                      @ Abbrev [29] 0x4eaf:0x11 DW_TAG_subprogram
+	.long	.Linfo_string830        @ DW_AT_linkage_name
+	.long	.Linfo_string831        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	100                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x4eba:0x5 DW_TAG_formal_parameter
+	.long	21468                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	29                      @ Abbrev [29] 0x4ec0:0x11 DW_TAG_subprogram
+	.long	.Linfo_string832        @ DW_AT_linkage_name
+	.long	.Linfo_string833        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	101                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x4ecb:0x5 DW_TAG_formal_parameter
+	.long	21468                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	29                      @ Abbrev [29] 0x4ed1:0x11 DW_TAG_subprogram
+	.long	.Linfo_string834        @ DW_AT_linkage_name
+	.long	.Linfo_string835        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	102                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x4edc:0x5 DW_TAG_formal_parameter
+	.long	21468                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	29                      @ Abbrev [29] 0x4ee2:0x16 DW_TAG_subprogram
+	.long	.Linfo_string836        @ DW_AT_linkage_name
+	.long	.Linfo_string837        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	103                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x4eed:0x5 DW_TAG_formal_parameter
+	.long	21468                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x4ef2:0x5 DW_TAG_formal_parameter
+	.long	18580                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	29                      @ Abbrev [29] 0x4ef8:0x16 DW_TAG_subprogram
+	.long	.Linfo_string838        @ DW_AT_linkage_name
+	.long	.Linfo_string839        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	104                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x4f03:0x5 DW_TAG_formal_parameter
+	.long	21468                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x4f08:0x5 DW_TAG_formal_parameter
+	.long	21480                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	29                      @ Abbrev [29] 0x4f0e:0x11 DW_TAG_subprogram
+	.long	.Linfo_string841        @ DW_AT_linkage_name
+	.long	.Linfo_string842        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	167                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x4f19:0x5 DW_TAG_formal_parameter
+	.long	21468                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	29                      @ Abbrev [29] 0x4f1f:0x1b DW_TAG_subprogram
+	.long	.Linfo_string843        @ DW_AT_linkage_name
+	.long	.Linfo_string844        @ DW_AT_name
+	.byte	13                      @ DW_AT_decl_file
+	.byte	169                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	7                       @ Abbrev [7] 0x4f2a:0x5 DW_TAG_formal_parameter
+	.long	21468                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	8                       @ Abbrev [8] 0x4f2f:0x5 DW_TAG_formal_parameter
+	.long	14067                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x4f34:0x5 DW_TAG_formal_parameter
+	.long	18995                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	0                       @ End Of Children Mark
+	.byte	71                      @ Abbrev [71] 0x4f3b:0x5 DW_TAG_volatile_type
+	.long	18432                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x4f40:0x5 DW_TAG_reference_type
+	.long	5610                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x4f45:0x5 DW_TAG_pointer_type
+	.long	17188                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x4f4a:0x5 DW_TAG_reference_type
+	.long	20303                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x4f4f:0x5 DW_TAG_const_type
+	.long	17188                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x4f54:0x5 DW_TAG_pointer_type
+	.long	20303                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x4f59:0x5 DW_TAG_reference_type
+	.long	18995                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x4f5e:0x5 DW_TAG_reference_type
+	.long	18990                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x4f63:0x5 DW_TAG_pointer_type
+	.long	5772                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x4f68:0x5 DW_TAG_reference_type
+	.long	20333                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x4f6d:0x5 DW_TAG_const_type
+	.long	5772                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x4f72:0x5 DW_TAG_reference_type
+	.long	20343                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x4f77:0x5 DW_TAG_const_type
+	.long	5610                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x4f7c:0x5 DW_TAG_reference_type
+	.long	5772                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x4f81:0x5 DW_TAG_pointer_type
+	.long	5105                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x4f86:0x5 DW_TAG_reference_type
+	.long	20363                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x4f8b:0x5 DW_TAG_const_type
+	.long	5227                    @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x4f90:0x5 DW_TAG_rvalue_reference_type
+	.long	5227                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x4f95:0x5 DW_TAG_reference_type
+	.long	5105                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x4f9a:0x5 DW_TAG_reference_type
+	.long	5227                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x4f9f:0x5 DW_TAG_pointer_type
+	.long	5085                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x4fa4:0x5 DW_TAG_pointer_type
+	.long	20393                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x4fa9:0x5 DW_TAG_const_type
+	.long	5085                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x4fae:0x5 DW_TAG_reference_type
+	.long	20403                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x4fb3:0x5 DW_TAG_const_type
+	.long	5312                    @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x4fb8:0x5 DW_TAG_rvalue_reference_type
+	.long	5085                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x4fbd:0x5 DW_TAG_pointer_type
+	.long	3202                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x4fc2:0x5 DW_TAG_reference_type
+	.long	20423                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x4fc7:0x5 DW_TAG_const_type
+	.long	3251                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x4fcc:0x5 DW_TAG_reference_type
+	.long	20433                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x4fd1:0x5 DW_TAG_const_type
+	.long	3317                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x4fd6:0x5 DW_TAG_reference_type
+	.long	20443                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x4fdb:0x5 DW_TAG_const_type
+	.long	3202                    @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x4fe0:0x5 DW_TAG_rvalue_reference_type
+	.long	3202                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x4fe5:0x5 DW_TAG_reference_type
+	.long	3202                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x4fea:0x5 DW_TAG_pointer_type
+	.long	20443                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x4fef:0x5 DW_TAG_reference_type
+	.long	17165                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x4ff4:0x5 DW_TAG_reference_type
+	.long	20473                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x4ff9:0x5 DW_TAG_const_type
+	.long	17165                   @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x4ffe:0x5 DW_TAG_rvalue_reference_type
+	.long	3317                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x5003:0x5 DW_TAG_pointer_type
+	.long	20488                   @ DW_AT_type
+	.byte	20                      @ Abbrev [20] 0x5008:0xb DW_TAG_typedef
+	.long	20499                   @ DW_AT_type
+	.long	.Linfo_string403        @ DW_AT_name
+	.byte	14                      @ DW_AT_decl_file
+	.byte	230                     @ DW_AT_decl_line
+	.byte	72                      @ Abbrev [72] 0x5013:0x2 DW_TAG_structure_type
+	.byte	8                       @ DW_AT_byte_size
+                                        @ DW_AT_declaration
+	.byte	33                      @ Abbrev [33] 0x5015:0xc DW_TAG_typedef
+	.long	20513                   @ DW_AT_type
+	.long	.Linfo_string407        @ DW_AT_name
+	.byte	14                      @ DW_AT_decl_file
+	.short	263                     @ DW_AT_decl_line
+	.byte	12                      @ Abbrev [12] 0x5021:0x5 DW_TAG_pointer_type
+	.long	20518                   @ DW_AT_type
+	.byte	33                      @ Abbrev [33] 0x5026:0xc DW_TAG_typedef
+	.long	20530                   @ DW_AT_type
+	.long	.Linfo_string406        @ DW_AT_name
+	.byte	14                      @ DW_AT_decl_file
+	.short	258                     @ DW_AT_decl_line
+	.byte	72                      @ Abbrev [72] 0x5032:0x2 DW_TAG_structure_type
+	.byte	28                      @ DW_AT_byte_size
+                                        @ DW_AT_declaration
+	.byte	12                      @ Abbrev [12] 0x5034:0x5 DW_TAG_pointer_type
+	.long	7260                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x5039:0x5 DW_TAG_pointer_type
+	.long	20542                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x503e:0x5 DW_TAG_const_type
+	.long	7260                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x5043:0x5 DW_TAG_pointer_type
+	.long	20552                   @ DW_AT_type
+	.byte	34                      @ Abbrev [34] 0x5048:0x5 DW_TAG_class_type
+	.long	.Linfo_string413        @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	12                      @ Abbrev [12] 0x504d:0x5 DW_TAG_pointer_type
+	.long	7084                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5052:0x5 DW_TAG_reference_type
+	.long	20542                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5057:0x5 DW_TAG_reference_type
+	.long	20572                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x505c:0x5 DW_TAG_const_type
+	.long	7084                    @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x5061:0x5 DW_TAG_rvalue_reference_type
+	.long	7084                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x5066:0x5 DW_TAG_pointer_type
+	.long	7313                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x506b:0x5 DW_TAG_pointer_type
+	.long	7361                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5070:0x5 DW_TAG_reference_type
+	.long	7260                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5075:0x5 DW_TAG_reference_type
+	.long	7084                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x507a:0x5 DW_TAG_reference_type
+	.long	6853                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x507f:0x5 DW_TAG_reference_type
+	.long	20612                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x5084:0x5 DW_TAG_const_type
+	.long	6853                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x5089:0x5 DW_TAG_pointer_type
+	.long	6853                    @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x508e:0x5 DW_TAG_rvalue_reference_type
+	.long	6853                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x5093:0x5 DW_TAG_pointer_type
+	.long	7401                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5098:0x5 DW_TAG_reference_type
+	.long	20637                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x509d:0x5 DW_TAG_const_type
+	.long	20547                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x50a2:0x5 DW_TAG_reference_type
+	.long	20647                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x50a7:0x5 DW_TAG_const_type
+	.long	7401                    @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x50ac:0x5 DW_TAG_rvalue_reference_type
+	.long	7401                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x50b1:0x5 DW_TAG_reference_type
+	.long	20547                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x50b6:0x5 DW_TAG_reference_type
+	.long	7401                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x50bb:0x5 DW_TAG_reference_type
+	.long	6560                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x50c0:0x5 DW_TAG_reference_type
+	.long	20677                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x50c5:0x5 DW_TAG_const_type
+	.long	6560                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x50ca:0x5 DW_TAG_reference_type
+	.long	6644                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x50cf:0x5 DW_TAG_reference_type
+	.long	20692                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x50d4:0x5 DW_TAG_const_type
+	.long	6644                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x50d9:0x5 DW_TAG_pointer_type
+	.long	6560                    @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x50de:0x5 DW_TAG_rvalue_reference_type
+	.long	6560                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x50e3:0x5 DW_TAG_pointer_type
+	.long	6407                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x50e8:0x5 DW_TAG_reference_type
+	.long	20717                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x50ed:0x5 DW_TAG_const_type
+	.long	6407                    @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x50f2:0x5 DW_TAG_rvalue_reference_type
+	.long	6407                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x50f7:0x5 DW_TAG_reference_type
+	.long	6407                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x50fc:0x5 DW_TAG_pointer_type
+	.long	5870                    @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x5101:0x5 DW_TAG_rvalue_reference_type
+	.long	7651                    @ DW_AT_type
+	.byte	73                      @ Abbrev [73] 0x5106:0x5 DW_TAG_unspecified_type
+	.long	.Linfo_string466        @ DW_AT_name
+	.byte	63                      @ Abbrev [63] 0x510b:0x5 DW_TAG_rvalue_reference_type
+	.long	5870                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5110:0x5 DW_TAG_reference_type
+	.long	5870                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5115:0x5 DW_TAG_reference_type
+	.long	20552                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x511a:0x5 DW_TAG_pointer_type
+	.long	20767                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x511f:0x5 DW_TAG_const_type
+	.long	5870                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5124:0x5 DW_TAG_reference_type
+	.long	6212                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5129:0x5 DW_TAG_reference_type
+	.long	20782                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x512e:0x5 DW_TAG_const_type
+	.long	6212                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5133:0x5 DW_TAG_reference_type
+	.long	20767                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x5138:0x5 DW_TAG_pointer_type
+	.long	9102                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x513d:0x5 DW_TAG_pointer_type
+	.long	20802                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x5142:0x5 DW_TAG_const_type
+	.long	9102                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x5147:0x5 DW_TAG_pointer_type
+	.long	20812                   @ DW_AT_type
+	.byte	34                      @ Abbrev [34] 0x514c:0x5 DW_TAG_class_type
+	.long	.Linfo_string493        @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	12                      @ Abbrev [12] 0x5151:0x5 DW_TAG_pointer_type
+	.long	8926                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5156:0x5 DW_TAG_reference_type
+	.long	20802                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x515b:0x5 DW_TAG_reference_type
+	.long	20832                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x5160:0x5 DW_TAG_const_type
+	.long	8926                    @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x5165:0x5 DW_TAG_rvalue_reference_type
+	.long	8926                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x516a:0x5 DW_TAG_reference_type
+	.long	9102                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x516f:0x5 DW_TAG_reference_type
+	.long	8926                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5174:0x5 DW_TAG_reference_type
+	.long	8695                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5179:0x5 DW_TAG_reference_type
+	.long	20862                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x517e:0x5 DW_TAG_const_type
+	.long	8695                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x5183:0x5 DW_TAG_pointer_type
+	.long	8695                    @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x5188:0x5 DW_TAG_rvalue_reference_type
+	.long	8695                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x518d:0x5 DW_TAG_pointer_type
+	.long	9155                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5192:0x5 DW_TAG_reference_type
+	.long	20887                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x5197:0x5 DW_TAG_const_type
+	.long	20807                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x519c:0x5 DW_TAG_reference_type
+	.long	20897                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x51a1:0x5 DW_TAG_const_type
+	.long	9155                    @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x51a6:0x5 DW_TAG_rvalue_reference_type
+	.long	9155                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x51ab:0x5 DW_TAG_reference_type
+	.long	20807                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x51b0:0x5 DW_TAG_reference_type
+	.long	9155                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x51b5:0x5 DW_TAG_reference_type
+	.long	8402                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x51ba:0x5 DW_TAG_reference_type
+	.long	20927                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x51bf:0x5 DW_TAG_const_type
+	.long	8402                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x51c4:0x5 DW_TAG_reference_type
+	.long	8486                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x51c9:0x5 DW_TAG_reference_type
+	.long	20942                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x51ce:0x5 DW_TAG_const_type
+	.long	8486                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x51d3:0x5 DW_TAG_pointer_type
+	.long	8402                    @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x51d8:0x5 DW_TAG_rvalue_reference_type
+	.long	8402                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x51dd:0x5 DW_TAG_pointer_type
+	.long	8249                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x51e2:0x5 DW_TAG_reference_type
+	.long	20967                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x51e7:0x5 DW_TAG_const_type
+	.long	8249                    @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x51ec:0x5 DW_TAG_rvalue_reference_type
+	.long	8249                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x51f1:0x5 DW_TAG_reference_type
+	.long	8249                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x51f6:0x5 DW_TAG_pointer_type
+	.long	7712                    @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x51fb:0x5 DW_TAG_rvalue_reference_type
+	.long	9405                    @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x5200:0x5 DW_TAG_rvalue_reference_type
+	.long	7712                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5205:0x5 DW_TAG_reference_type
+	.long	7712                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x520a:0x5 DW_TAG_reference_type
+	.long	20812                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x520f:0x5 DW_TAG_pointer_type
+	.long	21012                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x5214:0x5 DW_TAG_const_type
+	.long	7712                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5219:0x5 DW_TAG_reference_type
+	.long	8054                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x521e:0x5 DW_TAG_reference_type
+	.long	21027                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x5223:0x5 DW_TAG_const_type
+	.long	8054                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5228:0x5 DW_TAG_reference_type
+	.long	21012                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x522d:0x5 DW_TAG_pointer_type
+	.long	13785                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5232:0x5 DW_TAG_reference_type
+	.long	13635                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x5237:0x5 DW_TAG_pointer_type
+	.long	17614                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x523c:0x5 DW_TAG_reference_type
+	.long	21057                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x5241:0x5 DW_TAG_const_type
+	.long	17614                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x5246:0x5 DW_TAG_pointer_type
+	.long	21057                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x524b:0x5 DW_TAG_reference_type
+	.long	13785                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x5250:0x5 DW_TAG_pointer_type
+	.long	21077                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x5255:0x5 DW_TAG_const_type
+	.long	13785                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x525a:0x5 DW_TAG_reference_type
+	.long	21077                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x525f:0x5 DW_TAG_pointer_type
+	.long	13790                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5264:0x5 DW_TAG_reference_type
+	.long	21097                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x5269:0x5 DW_TAG_const_type
+	.long	13790                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x526e:0x5 DW_TAG_reference_type
+	.long	21107                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x5273:0x5 DW_TAG_const_type
+	.long	13635                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5278:0x5 DW_TAG_reference_type
+	.long	13790                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x527d:0x5 DW_TAG_pointer_type
+	.long	17859                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5282:0x5 DW_TAG_reference_type
+	.long	21127                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x5287:0x5 DW_TAG_const_type
+	.long	17859                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x528c:0x5 DW_TAG_pointer_type
+	.long	13873                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x5291:0x5 DW_TAG_pointer_type
+	.long	21127                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5296:0x5 DW_TAG_reference_type
+	.long	13873                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x529b:0x5 DW_TAG_pointer_type
+	.long	21152                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x52a0:0x5 DW_TAG_const_type
+	.long	13873                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x52a5:0x5 DW_TAG_reference_type
+	.long	21152                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x52aa:0x5 DW_TAG_pointer_type
+	.long	13878                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x52af:0x5 DW_TAG_reference_type
+	.long	21172                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x52b4:0x5 DW_TAG_const_type
+	.long	13878                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x52b9:0x5 DW_TAG_pointer_type
+	.long	21182                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x52be:0x5 DW_TAG_const_type
+	.long	13961                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x52c3:0x5 DW_TAG_reference_type
+	.long	21192                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x52c8:0x5 DW_TAG_const_type
+	.long	14061                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x52cd:0x5 DW_TAG_pointer_type
+	.long	14079                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x52d2:0x5 DW_TAG_pointer_type
+	.long	21207                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x52d7:0x5 DW_TAG_const_type
+	.long	14079                   @ DW_AT_type
+	.byte	33                      @ Abbrev [33] 0x52dc:0xc DW_TAG_typedef
+	.long	3010                    @ DW_AT_type
+	.long	.Linfo_string25         @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	486                     @ DW_AT_decl_line
+	.byte	12                      @ Abbrev [12] 0x52e8:0x5 DW_TAG_pointer_type
+	.long	10964                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x52ed:0x5 DW_TAG_reference_type
+	.long	21182                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x52f2:0x5 DW_TAG_reference_type
+	.long	21239                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x52f7:0x5 DW_TAG_const_type
+	.long	11133                   @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x52fc:0x5 DW_TAG_rvalue_reference_type
+	.long	11133                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5301:0x5 DW_TAG_reference_type
+	.long	11133                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x5306:0x5 DW_TAG_pointer_type
+	.long	10941                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x530b:0x5 DW_TAG_pointer_type
+	.long	21264                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x5310:0x5 DW_TAG_const_type
+	.long	10941                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5315:0x5 DW_TAG_reference_type
+	.long	21274                   @ DW_AT_type
+	.byte	33                      @ Abbrev [33] 0x531a:0xc DW_TAG_typedef
+	.long	21197                   @ DW_AT_type
+	.long	.Linfo_string586        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	369                     @ DW_AT_decl_line
+	.byte	33                      @ Abbrev [33] 0x5326:0xc DW_TAG_typedef
+	.long	21202                   @ DW_AT_type
+	.long	.Linfo_string592        @ DW_AT_name
+	.byte	18                      @ DW_AT_decl_file
+	.short	370                     @ DW_AT_decl_line
+	.byte	60                      @ Abbrev [60] 0x5332:0x5 DW_TAG_reference_type
+	.long	21303                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x5337:0x5 DW_TAG_const_type
+	.long	11610                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x533c:0x5 DW_TAG_pointer_type
+	.long	14263                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5341:0x5 DW_TAG_reference_type
+	.long	21318                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x5346:0x5 DW_TAG_const_type
+	.long	14263                   @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x534b:0x5 DW_TAG_rvalue_reference_type
+	.long	14263                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5350:0x5 DW_TAG_reference_type
+	.long	14263                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5355:0x5 DW_TAG_reference_type
+	.long	21338                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x535a:0x5 DW_TAG_const_type
+	.long	14506                   @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x535f:0x5 DW_TAG_rvalue_reference_type
+	.long	14506                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5364:0x5 DW_TAG_reference_type
+	.long	21353                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x5369:0x5 DW_TAG_const_type
+	.long	11927                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x536e:0x5 DW_TAG_reference_type
+	.long	21363                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x5373:0x5 DW_TAG_const_type
+	.long	11214                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5378:0x5 DW_TAG_reference_type
+	.long	21264                   @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x537d:0x5 DW_TAG_rvalue_reference_type
+	.long	10941                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5382:0x5 DW_TAG_reference_type
+	.long	10941                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x5387:0x5 DW_TAG_pointer_type
+	.long	21353                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x538c:0x5 DW_TAG_pointer_type
+	.long	9455                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5391:0x5 DW_TAG_reference_type
+	.long	21398                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x5396:0x5 DW_TAG_const_type
+	.long	9524                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x539b:0x5 DW_TAG_reference_type
+	.long	21408                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x53a0:0x5 DW_TAG_const_type
+	.long	9455                    @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x53a5:0x5 DW_TAG_rvalue_reference_type
+	.long	9455                    @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x53aa:0x5 DW_TAG_reference_type
+	.long	9455                    @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x53af:0x5 DW_TAG_pointer_type
+	.long	21408                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x53b4:0x5 DW_TAG_reference_type
+	.long	10228                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x53b9:0x5 DW_TAG_reference_type
+	.long	21438                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x53be:0x5 DW_TAG_const_type
+	.long	10239                   @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x53c3:0x5 DW_TAG_rvalue_reference_type
+	.long	10239                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x53c8:0x5 DW_TAG_reference_type
+	.long	21453                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x53cd:0x5 DW_TAG_const_type
+	.long	10228                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x53d2:0x5 DW_TAG_reference_type
+	.long	21463                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x53d7:0x5 DW_TAG_const_type
+	.long	10362                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x53dc:0x5 DW_TAG_pointer_type
+	.long	19085                   @ DW_AT_type
+	.byte	15                      @ Abbrev [15] 0x53e1:0x7 DW_TAG_base_type
+	.long	.Linfo_string806        @ DW_AT_name
+	.byte	4                       @ DW_AT_encoding
+	.byte	8                       @ DW_AT_byte_size
+	.byte	12                      @ Abbrev [12] 0x53e8:0x5 DW_TAG_pointer_type
+	.long	21485                   @ DW_AT_type
+	.byte	34                      @ Abbrev [34] 0x53ed:0x5 DW_TAG_class_type
+	.long	.Linfo_string840        @ DW_AT_name
+                                        @ DW_AT_declaration
+	.byte	2                       @ Abbrev [2] 0x53f2:0x14 DW_TAG_variable
+	.long	.Linfo_string846        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_external
+	.byte	12                      @ DW_AT_decl_file
+	.byte	55                      @ DW_AT_decl_line
+	.byte	8                       @ DW_AT_location
+	.byte	3
+	.long	.L_MergedGlobals
+	.byte	16
+	.byte	0
+	.byte	34
+	.byte	2                       @ Abbrev [2] 0x5406:0x14 DW_TAG_variable
+	.long	.Linfo_string847        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_external
+	.byte	12                      @ DW_AT_decl_file
+	.byte	56                      @ DW_AT_decl_line
+	.byte	8                       @ DW_AT_location
+	.byte	3
+	.long	.L_MergedGlobals
+	.byte	16
+	.byte	4
+	.byte	34
+	.byte	2                       @ Abbrev [2] 0x541a:0x14 DW_TAG_variable
+	.long	.Linfo_string848        @ DW_AT_name
+	.long	18995                   @ DW_AT_type
+                                        @ DW_AT_external
+	.byte	12                      @ DW_AT_decl_file
+	.byte	57                      @ DW_AT_decl_line
+	.byte	8                       @ DW_AT_location
+	.byte	3
+	.long	.L_MergedGlobals
+	.byte	16
+	.byte	8
+	.byte	34
+	.byte	2                       @ Abbrev [2] 0x542e:0x14 DW_TAG_variable
+	.long	.Linfo_string849        @ DW_AT_name
+	.long	18365                   @ DW_AT_type
+                                        @ DW_AT_external
+	.byte	12                      @ DW_AT_decl_file
+	.byte	58                      @ DW_AT_decl_line
+	.byte	8                       @ DW_AT_location
+	.byte	3
+	.long	.L_MergedGlobals
+	.byte	16
+	.byte	12
+	.byte	34
+	.byte	2                       @ Abbrev [2] 0x5442:0x14 DW_TAG_variable
+	.long	.Linfo_string850        @ DW_AT_name
+	.long	18365                   @ DW_AT_type
+                                        @ DW_AT_external
+	.byte	12                      @ DW_AT_decl_file
+	.byte	59                      @ DW_AT_decl_line
+	.byte	8                       @ DW_AT_location
+	.byte	3
+	.long	.L_MergedGlobals
+	.byte	16
+	.byte	16
+	.byte	34
+	.byte	2                       @ Abbrev [2] 0x5456:0x14 DW_TAG_variable
+	.long	.Linfo_string851        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_external
+	.byte	12                      @ DW_AT_decl_file
+	.byte	60                      @ DW_AT_decl_line
+	.byte	8                       @ DW_AT_location
+	.byte	3
+	.long	.L_MergedGlobals
+	.byte	16
+	.byte	20
+	.byte	34
+	.byte	2                       @ Abbrev [2] 0x546a:0x11 DW_TAG_variable
+	.long	.Linfo_string852        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_external
+	.byte	12                      @ DW_AT_decl_file
+	.byte	61                      @ DW_AT_decl_line
+	.byte	5                       @ DW_AT_location
+	.byte	3
+	.long	gPrintfCount
+	.byte	74                      @ Abbrev [74] 0x547b:0x181 DW_TAG_subprogram
+	.long	.Lfunc_begin1           @ DW_AT_low_pc
+	.long	.Lfunc_end1-.Lfunc_begin1 @ DW_AT_high_pc
+	.byte	1                       @ DW_AT_frame_base
+	.byte	91
+	.long	.Linfo_string1159       @ DW_AT_name
+	.byte	12                      @ DW_AT_decl_file
+	.byte	73                      @ DW_AT_decl_line
+                                        @ DW_AT_external
+	.byte	75                      @ Abbrev [75] 0x548c:0x14 DW_TAG_variable
+	.long	.Linfo_string853        @ DW_AT_name
+	.long	18995                   @ DW_AT_type
+	.byte	12                      @ DW_AT_decl_file
+	.byte	103                     @ DW_AT_decl_line
+	.byte	8                       @ DW_AT_location
+	.byte	3
+	.long	.L_MergedGlobals.2
+	.byte	16
+	.byte	0
+	.byte	34
+	.byte	75                      @ Abbrev [75] 0x54a0:0x14 DW_TAG_variable
+	.long	.Linfo_string722        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	12                      @ DW_AT_decl_file
+	.byte	110                     @ DW_AT_decl_line
+	.byte	8                       @ DW_AT_location
+	.byte	3
+	.long	.L_MergedGlobals.2
+	.byte	16
+	.byte	4
+	.byte	34
+	.byte	76                      @ Abbrev [76] 0x54b4:0xf DW_TAG_formal_parameter
+	.long	.Ldebug_loc2            @ DW_AT_location
+	.long	.Linfo_string1142       @ DW_AT_name
+	.byte	12                      @ DW_AT_decl_file
+	.byte	73                      @ DW_AT_decl_line
+	.long	18645                   @ DW_AT_type
+	.byte	76                      @ Abbrev [76] 0x54c3:0xf DW_TAG_formal_parameter
+	.long	.Ldebug_loc3            @ DW_AT_location
+	.long	.Linfo_string1161       @ DW_AT_name
+	.byte	12                      @ DW_AT_decl_file
+	.byte	73                      @ DW_AT_decl_line
+	.long	22267                   @ DW_AT_type
+	.byte	77                      @ Abbrev [77] 0x54d2:0x129 DW_TAG_lexical_block
+	.long	.Ltmp23                 @ DW_AT_low_pc
+	.long	.Ltmp88-.Ltmp23         @ DW_AT_high_pc
+	.byte	78                      @ Abbrev [78] 0x54db:0xf DW_TAG_variable
+	.long	.Ldebug_loc4            @ DW_AT_location
+	.long	.Linfo_string1162       @ DW_AT_name
+	.byte	12                      @ DW_AT_decl_file
+	.byte	75                      @ DW_AT_decl_line
+	.long	18365                   @ DW_AT_type
+	.byte	77                      @ Abbrev [77] 0x54ea:0x110 DW_TAG_lexical_block
+	.long	.Ltmp24                 @ DW_AT_low_pc
+	.long	.Ltmp86-.Ltmp24         @ DW_AT_high_pc
+	.byte	78                      @ Abbrev [78] 0x54f3:0xf DW_TAG_variable
+	.long	.Ldebug_loc8            @ DW_AT_location
+	.long	.Linfo_string1163       @ DW_AT_name
+	.byte	12                      @ DW_AT_decl_file
+	.byte	77                      @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+	.byte	78                      @ Abbrev [78] 0x5502:0xf DW_TAG_variable
+	.long	.Ldebug_loc14           @ DW_AT_location
+	.long	.Linfo_string1164       @ DW_AT_name
+	.byte	12                      @ DW_AT_decl_file
+	.byte	95                      @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+	.byte	78                      @ Abbrev [78] 0x5511:0xf DW_TAG_variable
+	.long	.Ldebug_loc15           @ DW_AT_location
+	.long	.Linfo_string1165       @ DW_AT_name
+	.byte	12                      @ DW_AT_decl_file
+	.byte	99                      @ DW_AT_decl_line
+	.long	18995                   @ DW_AT_type
+	.byte	78                      @ Abbrev [78] 0x5520:0xf DW_TAG_variable
+	.long	.Ldebug_loc16           @ DW_AT_location
+	.long	.Linfo_string1166       @ DW_AT_name
+	.byte	12                      @ DW_AT_decl_file
+	.byte	94                      @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+	.byte	79                      @ Abbrev [79] 0x552f:0x24 DW_TAG_inlined_subroutine
+	.long	27238                   @ DW_AT_abstract_origin
+	.long	.Ldebug_ranges0         @ DW_AT_ranges
+	.byte	12                      @ DW_AT_call_file
+	.byte	81                      @ DW_AT_call_line
+	.byte	80                      @ Abbrev [80] 0x553a:0x9 DW_TAG_formal_parameter
+	.long	.Ldebug_loc11           @ DW_AT_location
+	.long	27251                   @ DW_AT_abstract_origin
+	.byte	80                      @ Abbrev [80] 0x5543:0x9 DW_TAG_formal_parameter
+	.long	.Ldebug_loc10           @ DW_AT_location
+	.long	27275                   @ DW_AT_abstract_origin
+	.byte	81                      @ Abbrev [81] 0x554c:0x6 DW_TAG_formal_parameter
+	.byte	0                       @ DW_AT_const_value
+	.long	27287                   @ DW_AT_abstract_origin
+	.byte	0                       @ End Of Children Mark
+	.byte	79                      @ Abbrev [79] 0x5553:0x1b DW_TAG_inlined_subroutine
+	.long	27347                   @ DW_AT_abstract_origin
+	.long	.Ldebug_ranges1         @ DW_AT_ranges
+	.byte	12                      @ DW_AT_call_file
+	.byte	79                      @ DW_AT_call_line
+	.byte	81                      @ Abbrev [81] 0x555e:0x6 DW_TAG_formal_parameter
+	.byte	0                       @ DW_AT_const_value
+	.long	27372                   @ DW_AT_abstract_origin
+	.byte	82                      @ Abbrev [82] 0x5564:0x9 DW_TAG_variable
+	.long	.Ldebug_loc6            @ DW_AT_location
+	.long	27408                   @ DW_AT_abstract_origin
+	.byte	0                       @ End Of Children Mark
+	.byte	79                      @ Abbrev [79] 0x556e:0x1b DW_TAG_inlined_subroutine
+	.long	27347                   @ DW_AT_abstract_origin
+	.long	.Ldebug_ranges2         @ DW_AT_ranges
+	.byte	12                      @ DW_AT_call_file
+	.byte	91                      @ DW_AT_call_line
+	.byte	81                      @ Abbrev [81] 0x5579:0x6 DW_TAG_formal_parameter
+	.byte	0                       @ DW_AT_const_value
+	.long	27372                   @ DW_AT_abstract_origin
+	.byte	82                      @ Abbrev [82] 0x557f:0x9 DW_TAG_variable
+	.long	.Ldebug_loc5            @ DW_AT_location
+	.long	27408                   @ DW_AT_abstract_origin
+	.byte	0                       @ End Of Children Mark
+	.byte	79                      @ Abbrev [79] 0x5589:0x1b DW_TAG_inlined_subroutine
+	.long	27347                   @ DW_AT_abstract_origin
+	.long	.Ldebug_ranges3         @ DW_AT_ranges
+	.byte	12                      @ DW_AT_call_file
+	.byte	83                      @ DW_AT_call_line
+	.byte	81                      @ Abbrev [81] 0x5594:0x6 DW_TAG_formal_parameter
+	.byte	0                       @ DW_AT_const_value
+	.long	27372                   @ DW_AT_abstract_origin
+	.byte	82                      @ Abbrev [82] 0x559a:0x9 DW_TAG_variable
+	.long	.Ldebug_loc7            @ DW_AT_location
+	.long	27408                   @ DW_AT_abstract_origin
+	.byte	0                       @ End Of Children Mark
+	.byte	79                      @ Abbrev [79] 0x55a4:0x1b DW_TAG_inlined_subroutine
+	.long	27238                   @ DW_AT_abstract_origin
+	.long	.Ldebug_ranges4         @ DW_AT_ranges
+	.byte	12                      @ DW_AT_call_file
+	.byte	85                      @ DW_AT_call_line
+	.byte	80                      @ Abbrev [80] 0x55af:0x9 DW_TAG_formal_parameter
+	.long	.Ldebug_loc9            @ DW_AT_location
+	.long	27275                   @ DW_AT_abstract_origin
+	.byte	81                      @ Abbrev [81] 0x55b8:0x6 DW_TAG_formal_parameter
+	.byte	1                       @ DW_AT_const_value
+	.long	27287                   @ DW_AT_abstract_origin
+	.byte	0                       @ End Of Children Mark
+	.byte	83                      @ Abbrev [83] 0x55bf:0x2e DW_TAG_inlined_subroutine
+	.long	27300                   @ DW_AT_abstract_origin
+	.long	.Ldebug_ranges5         @ DW_AT_ranges
+	.byte	12                      @ DW_AT_call_file
+	.byte	95                      @ DW_AT_call_line
+	.byte	1                       @ DW_AT_GNU_discriminator
+	.byte	80                      @ Abbrev [80] 0x55cb:0x9 DW_TAG_formal_parameter
+	.long	.Ldebug_loc12           @ DW_AT_location
+	.long	27310                   @ DW_AT_abstract_origin
+	.byte	80                      @ Abbrev [80] 0x55d4:0x9 DW_TAG_formal_parameter
+	.long	.Ldebug_loc13           @ DW_AT_location
+	.long	27319                   @ DW_AT_abstract_origin
+	.byte	84                      @ Abbrev [84] 0x55dd:0xf DW_TAG_inlined_subroutine
+	.long	27475                   @ DW_AT_abstract_origin
+	.long	.Ltmp69                 @ DW_AT_low_pc
+	.long	.Ltmp70-.Ltmp69         @ DW_AT_high_pc
+	.byte	9                       @ DW_AT_call_file
+	.byte	74                      @ DW_AT_call_line
+	.byte	0                       @ End Of Children Mark
+	.byte	85                      @ Abbrev [85] 0x55ed:0xc DW_TAG_inlined_subroutine
+	.long	27421                   @ DW_AT_abstract_origin
+	.long	.Ldebug_ranges6         @ DW_AT_ranges
+	.byte	12                      @ DW_AT_call_file
+	.byte	94                      @ DW_AT_call_line
+	.byte	1                       @ DW_AT_GNU_discriminator
+	.byte	0                       @ End Of Children Mark
+	.byte	0                       @ End Of Children Mark
+	.byte	0                       @ End Of Children Mark
+	.byte	51                      @ Abbrev [51] 0x55fc:0x15 DW_TAG_enumeration_type
+	.long	.Linfo_string860        @ DW_AT_name
+	.byte	4                       @ DW_AT_byte_size
+	.byte	24                      @ DW_AT_decl_file
+	.byte	58                      @ DW_AT_decl_line
+	.byte	52                      @ Abbrev [52] 0x5604:0x6 DW_TAG_enumerator
+	.long	.Linfo_string858        @ DW_AT_name
+	.byte	0                       @ DW_AT_const_value
+	.byte	52                      @ Abbrev [52] 0x560a:0x6 DW_TAG_enumerator
+	.long	.Linfo_string859        @ DW_AT_name
+	.byte	1                       @ DW_AT_const_value
+	.byte	0                       @ End Of Children Mark
+	.byte	86                      @ Abbrev [86] 0x5611:0x12 DW_TAG_enumeration_type
+	.byte	4                       @ DW_AT_byte_size
+	.byte	11                      @ DW_AT_decl_file
+	.short	1154                    @ DW_AT_decl_line
+	.byte	52                      @ Abbrev [52] 0x5616:0x6 DW_TAG_enumerator
+	.long	.Linfo_string861        @ DW_AT_name
+	.byte	0                       @ DW_AT_const_value
+	.byte	52                      @ Abbrev [52] 0x561c:0x6 DW_TAG_enumerator
+	.long	.Linfo_string862        @ DW_AT_name
+	.byte	1                       @ DW_AT_const_value
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x5623:0xb DW_TAG_typedef
+	.long	22062                   @ DW_AT_type
+	.long	.Linfo_string863        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.byte	62                      @ DW_AT_decl_line
+	.byte	72                      @ Abbrev [72] 0x562e:0x2 DW_TAG_structure_type
+	.byte	8                       @ DW_AT_byte_size
+                                        @ DW_AT_declaration
+	.byte	20                      @ Abbrev [20] 0x5630:0xb DW_TAG_typedef
+	.long	22075                   @ DW_AT_type
+	.long	.Linfo_string867        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.byte	70                      @ DW_AT_decl_line
+	.byte	87                      @ Abbrev [87] 0x563b:0x1d DW_TAG_structure_type
+	.byte	8                       @ DW_AT_byte_size
+	.byte	25                      @ DW_AT_decl_file
+	.byte	66                      @ DW_AT_decl_line
+	.byte	5                       @ Abbrev [5] 0x563f:0xc DW_TAG_member
+	.long	.Linfo_string864        @ DW_AT_name
+	.long	22104                   @ DW_AT_type
+	.byte	25                      @ DW_AT_decl_file
+	.byte	68                      @ DW_AT_decl_line
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x564b:0xc DW_TAG_member
+	.long	.Linfo_string866        @ DW_AT_name
+	.long	22104                   @ DW_AT_type
+	.byte	25                      @ DW_AT_decl_file
+	.byte	69                      @ DW_AT_decl_line
+	.byte	4                       @ DW_AT_data_member_location
+	.byte	0                       @ End Of Children Mark
+	.byte	15                      @ Abbrev [15] 0x5658:0x7 DW_TAG_base_type
+	.long	.Linfo_string865        @ DW_AT_name
+	.byte	5                       @ DW_AT_encoding
+	.byte	4                       @ DW_AT_byte_size
+	.byte	88                      @ Abbrev [88] 0x565f:0x8 DW_TAG_subprogram
+	.long	.Linfo_string868        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	476                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	89                      @ Abbrev [89] 0x5667:0x12 DW_TAG_subprogram
+	.long	.Linfo_string869        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	735                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5673:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x5679:0x12 DW_TAG_subprogram
+	.long	.Linfo_string870        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	480                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5685:0x5 DW_TAG_formal_parameter
+	.long	22155                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	12                      @ Abbrev [12] 0x568b:0x5 DW_TAG_pointer_type
+	.long	22160                   @ DW_AT_type
+	.byte	90                      @ Abbrev [90] 0x5690:0x1 DW_TAG_subroutine_type
+	.byte	89                      @ Abbrev [89] 0x5691:0x12 DW_TAG_subprogram
+	.long	.Linfo_string871        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	485                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x569d:0x5 DW_TAG_formal_parameter
+	.long	22155                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x56a3:0x11 DW_TAG_subprogram
+	.long	.Linfo_string872        @ DW_AT_name
+	.byte	26                      @ DW_AT_decl_file
+	.byte	26                      @ DW_AT_decl_line
+	.long	21473                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x56ae:0x5 DW_TAG_formal_parameter
+	.long	18580                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x56b4:0x11 DW_TAG_subprogram
+	.long	.Linfo_string873        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.byte	239                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x56bf:0x5 DW_TAG_formal_parameter
+	.long	18580                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x56c5:0x11 DW_TAG_subprogram
+	.long	.Linfo_string874        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.byte	244                     @ DW_AT_decl_line
+	.long	22104                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x56d0:0x5 DW_TAG_formal_parameter
+	.long	18580                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x56d6:0x25 DW_TAG_subprogram
+	.long	.Linfo_string875        @ DW_AT_name
+	.byte	27                      @ DW_AT_decl_file
+	.byte	20                      @ DW_AT_decl_line
+	.long	22267                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x56e1:0x5 DW_TAG_formal_parameter
+	.long	18372                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x56e6:0x5 DW_TAG_formal_parameter
+	.long	18372                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x56eb:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x56f0:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x56f5:0x5 DW_TAG_formal_parameter
+	.long	22279                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	92                      @ Abbrev [92] 0x56fb:0x1 DW_TAG_pointer_type
+	.byte	20                      @ Abbrev [20] 0x56fc:0xb DW_TAG_typedef
+	.long	18365                   @ DW_AT_type
+	.long	.Linfo_string24         @ DW_AT_name
+	.byte	28                      @ DW_AT_decl_file
+	.byte	62                      @ DW_AT_decl_line
+	.byte	33                      @ Abbrev [33] 0x5707:0xc DW_TAG_typedef
+	.long	22291                   @ DW_AT_type
+	.long	.Linfo_string876        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	702                     @ DW_AT_decl_line
+	.byte	12                      @ Abbrev [12] 0x5713:0x5 DW_TAG_pointer_type
+	.long	22296                   @ DW_AT_type
+	.byte	93                      @ Abbrev [93] 0x5718:0x10 DW_TAG_subroutine_type
+	.long	343                     @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x571d:0x5 DW_TAG_formal_parameter
+	.long	18372                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5722:0x5 DW_TAG_formal_parameter
+	.long	18372                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x5728:0x17 DW_TAG_subprogram
+	.long	.Linfo_string877        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	429                     @ DW_AT_decl_line
+	.long	22267                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5734:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5739:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x573f:0x17 DW_TAG_subprogram
+	.long	.Linfo_string878        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	749                     @ DW_AT_decl_line
+	.long	22051                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x574b:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5750:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	43                      @ Abbrev [43] 0x5756:0xe DW_TAG_subprogram
+	.long	.Linfo_string879        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	504                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x575e:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	43                      @ Abbrev [43] 0x5764:0xe DW_TAG_subprogram
+	.long	.Linfo_string880        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	444                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x576c:0x5 DW_TAG_formal_parameter
+	.long	22267                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x5772:0x12 DW_TAG_subprogram
+	.long	.Linfo_string881        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	525                     @ DW_AT_decl_line
+	.long	22404                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x577e:0x5 DW_TAG_formal_parameter
+	.long	18580                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	12                      @ Abbrev [12] 0x5784:0x5 DW_TAG_pointer_type
+	.long	18590                   @ DW_AT_type
+	.byte	89                      @ Abbrev [89] 0x5789:0x12 DW_TAG_subprogram
+	.long	.Linfo_string882        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	736                     @ DW_AT_decl_line
+	.long	22104                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5795:0x5 DW_TAG_formal_parameter
+	.long	22104                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x579b:0x17 DW_TAG_subprogram
+	.long	.Linfo_string883        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	751                     @ DW_AT_decl_line
+	.long	22064                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x57a7:0x5 DW_TAG_formal_parameter
+	.long	22104                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x57ac:0x5 DW_TAG_formal_parameter
+	.long	22104                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x57b2:0x12 DW_TAG_subprogram
+	.long	.Linfo_string884        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	427                     @ DW_AT_decl_line
+	.long	22267                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x57be:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x57c4:0x17 DW_TAG_subprogram
+	.long	.Linfo_string885        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	823                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x57d0:0x5 DW_TAG_formal_parameter
+	.long	18580                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x57d5:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x57db:0x1c DW_TAG_subprogram
+	.long	.Linfo_string886        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	834                     @ DW_AT_decl_line
+	.long	22268                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x57e7:0x5 DW_TAG_formal_parameter
+	.long	22519                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x57ec:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x57f1:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	94                      @ Abbrev [94] 0x57f7:0x5 DW_TAG_restrict_type
+	.long	22524                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x57fc:0x5 DW_TAG_pointer_type
+	.long	22529                   @ DW_AT_type
+	.byte	15                      @ Abbrev [15] 0x5801:0x7 DW_TAG_base_type
+	.long	.Linfo_string887        @ DW_AT_name
+	.byte	7                       @ DW_AT_encoding
+	.byte	4                       @ DW_AT_byte_size
+	.byte	94                      @ Abbrev [94] 0x5808:0x5 DW_TAG_restrict_type
+	.long	18580                   @ DW_AT_type
+	.byte	89                      @ Abbrev [89] 0x580d:0x1c DW_TAG_subprogram
+	.long	.Linfo_string888        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	826                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5819:0x5 DW_TAG_formal_parameter
+	.long	22519                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x581e:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5823:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	43                      @ Abbrev [43] 0x5829:0x1d DW_TAG_subprogram
+	.long	.Linfo_string889        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	725                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5831:0x5 DW_TAG_formal_parameter
+	.long	22267                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5836:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x583b:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5840:0x5 DW_TAG_formal_parameter
+	.long	22279                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	43                      @ Abbrev [43] 0x5846:0xe DW_TAG_subprogram
+	.long	.Linfo_string890        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	510                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x584e:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	95                      @ Abbrev [95] 0x5854:0xc DW_TAG_subprogram
+	.long	.Linfo_string891        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	335                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	89                      @ Abbrev [89] 0x5860:0x17 DW_TAG_subprogram
+	.long	.Linfo_string892        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	441                     @ DW_AT_decl_line
+	.long	22267                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x586c:0x5 DW_TAG_formal_parameter
+	.long	22267                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5871:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	43                      @ Abbrev [43] 0x5877:0xe DW_TAG_subprogram
+	.long	.Linfo_string893        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	337                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x587f:0x5 DW_TAG_formal_parameter
+	.long	18365                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x5885:0x16 DW_TAG_subprogram
+	.long	.Linfo_string894        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.byte	125                     @ DW_AT_decl_line
+	.long	21473                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5890:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5895:0x5 DW_TAG_formal_parameter
+	.long	22683                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	94                      @ Abbrev [94] 0x589b:0x5 DW_TAG_restrict_type
+	.long	22688                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x58a0:0x5 DW_TAG_pointer_type
+	.long	22404                   @ DW_AT_type
+	.byte	91                      @ Abbrev [91] 0x58a5:0x1b DW_TAG_subprogram
+	.long	.Linfo_string895        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.byte	144                     @ DW_AT_decl_line
+	.long	22104                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x58b0:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x58b5:0x5 DW_TAG_formal_parameter
+	.long	22683                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x58ba:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x58c0:0x1b DW_TAG_subprogram
+	.long	.Linfo_string896        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.byte	148                     @ DW_AT_decl_line
+	.long	22747                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x58cb:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x58d0:0x5 DW_TAG_formal_parameter
+	.long	22683                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x58d5:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	15                      @ Abbrev [15] 0x58db:0x7 DW_TAG_base_type
+	.long	.Linfo_string897        @ DW_AT_name
+	.byte	7                       @ DW_AT_encoding
+	.byte	4                       @ DW_AT_byte_size
+	.byte	89                      @ Abbrev [89] 0x58e2:0x12 DW_TAG_subprogram
+	.long	.Linfo_string898        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	677                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x58ee:0x5 DW_TAG_formal_parameter
+	.long	18580                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x58f4:0x1c DW_TAG_subprogram
+	.long	.Linfo_string899        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	837                     @ DW_AT_decl_line
+	.long	22268                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5900:0x5 DW_TAG_formal_parameter
+	.long	22800                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5905:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x590a:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	94                      @ Abbrev [94] 0x5910:0x5 DW_TAG_restrict_type
+	.long	22404                   @ DW_AT_type
+	.byte	94                      @ Abbrev [94] 0x5915:0x5 DW_TAG_restrict_type
+	.long	22810                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x591a:0x5 DW_TAG_pointer_type
+	.long	22815                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x591f:0x5 DW_TAG_const_type
+	.long	22529                   @ DW_AT_type
+	.byte	89                      @ Abbrev [89] 0x5924:0x17 DW_TAG_subprogram
+	.long	.Linfo_string900        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	830                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5930:0x5 DW_TAG_formal_parameter
+	.long	22404                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5935:0x5 DW_TAG_formal_parameter
+	.long	22529                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x593b:0xb DW_TAG_typedef
+	.long	22854                   @ DW_AT_type
+	.long	.Linfo_string902        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.byte	82                      @ DW_AT_decl_line
+	.byte	87                      @ Abbrev [87] 0x5946:0x1d DW_TAG_structure_type
+	.byte	16                      @ DW_AT_byte_size
+	.byte	25                      @ DW_AT_decl_file
+	.byte	78                      @ DW_AT_decl_line
+	.byte	5                       @ Abbrev [5] 0x594a:0xc DW_TAG_member
+	.long	.Linfo_string864        @ DW_AT_name
+	.long	22883                   @ DW_AT_type
+	.byte	25                      @ DW_AT_decl_file
+	.byte	80                      @ DW_AT_decl_line
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x5956:0xc DW_TAG_member
+	.long	.Linfo_string866        @ DW_AT_name
+	.long	22883                   @ DW_AT_type
+	.byte	25                      @ DW_AT_decl_file
+	.byte	81                      @ DW_AT_decl_line
+	.byte	8                       @ DW_AT_data_member_location
+	.byte	0                       @ End Of Children Mark
+	.byte	15                      @ Abbrev [15] 0x5963:0x7 DW_TAG_base_type
+	.long	.Linfo_string901        @ DW_AT_name
+	.byte	5                       @ DW_AT_encoding
+	.byte	8                       @ DW_AT_byte_size
+	.byte	43                      @ Abbrev [43] 0x596a:0xe DW_TAG_subprogram
+	.long	.Linfo_string903        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	518                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5972:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x5978:0x12 DW_TAG_subprogram
+	.long	.Linfo_string904        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	740                     @ DW_AT_decl_line
+	.long	22883                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5984:0x5 DW_TAG_formal_parameter
+	.long	22883                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x598a:0x17 DW_TAG_subprogram
+	.long	.Linfo_string905        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.short	757                     @ DW_AT_decl_line
+	.long	22843                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5996:0x5 DW_TAG_formal_parameter
+	.long	22883                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x599b:0x5 DW_TAG_formal_parameter
+	.long	22883                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x59a1:0x11 DW_TAG_subprogram
+	.long	.Linfo_string906        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.byte	253                     @ DW_AT_decl_line
+	.long	22883                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x59ac:0x5 DW_TAG_formal_parameter
+	.long	18580                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x59b2:0x1b DW_TAG_subprogram
+	.long	.Linfo_string907        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.byte	170                     @ DW_AT_decl_line
+	.long	22883                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x59bd:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x59c2:0x5 DW_TAG_formal_parameter
+	.long	22683                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x59c7:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x59cd:0x1b DW_TAG_subprogram
+	.long	.Linfo_string908        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.byte	175                     @ DW_AT_decl_line
+	.long	18633                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x59d8:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x59dd:0x5 DW_TAG_formal_parameter
+	.long	22683                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x59e2:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x59e8:0x16 DW_TAG_subprogram
+	.long	.Linfo_string909        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.byte	133                     @ DW_AT_decl_line
+	.long	18995                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x59f3:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x59f8:0x5 DW_TAG_formal_parameter
+	.long	22683                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x59fe:0x16 DW_TAG_subprogram
+	.long	.Linfo_string910        @ DW_AT_name
+	.byte	25                      @ DW_AT_decl_file
+	.byte	136                     @ DW_AT_decl_line
+	.long	23060                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5a09:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5a0e:0x5 DW_TAG_formal_parameter
+	.long	22683                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	15                      @ Abbrev [15] 0x5a14:0x7 DW_TAG_base_type
+	.long	.Linfo_string911        @ DW_AT_name
+	.byte	4                       @ DW_AT_encoding
+	.byte	8                       @ DW_AT_byte_size
+	.byte	54                      @ Abbrev [54] 0x5a1b:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	38                      @ DW_AT_decl_line
+	.long	22111                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5a22:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	39                      @ DW_AT_decl_line
+	.long	22137                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5a29:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	40                      @ DW_AT_decl_line
+	.long	22358                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5a30:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	43                      @ DW_AT_decl_line
+	.long	22161                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5a37:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	46                      @ DW_AT_decl_line
+	.long	22598                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5a3e:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	51                      @ DW_AT_decl_line
+	.long	22051                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5a45:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	52                      @ DW_AT_decl_line
+	.long	22064                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5a4c:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	54                      @ DW_AT_decl_line
+	.long	14961                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5a53:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	55                      @ DW_AT_decl_line
+	.long	22179                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5a5a:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	56                      @ DW_AT_decl_line
+	.long	22196                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5a61:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	57                      @ DW_AT_decl_line
+	.long	22213                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5a68:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	58                      @ DW_AT_decl_line
+	.long	22230                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5a6f:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	59                      @ DW_AT_decl_line
+	.long	22312                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5a76:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	60                      @ DW_AT_decl_line
+	.long	18194                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5a7d:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	61                      @ DW_AT_decl_line
+	.long	22372                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5a84:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	62                      @ DW_AT_decl_line
+	.long	22386                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5a8b:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	63                      @ DW_AT_decl_line
+	.long	22409                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5a92:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	64                      @ DW_AT_decl_line
+	.long	22427                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5a99:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	65                      @ DW_AT_decl_line
+	.long	22450                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5aa0:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	67                      @ DW_AT_decl_line
+	.long	22468                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5aa7:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	68                      @ DW_AT_decl_line
+	.long	22491                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5aae:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	69                      @ DW_AT_decl_line
+	.long	22541                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5ab5:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	71                      @ DW_AT_decl_line
+	.long	22569                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5abc:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	72                      @ DW_AT_decl_line
+	.long	22612                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5ac3:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	73                      @ DW_AT_decl_line
+	.long	22624                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5aca:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	74                      @ DW_AT_decl_line
+	.long	22647                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5ad1:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	75                      @ DW_AT_decl_line
+	.long	22661                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5ad8:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	76                      @ DW_AT_decl_line
+	.long	22693                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5adf:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	77                      @ DW_AT_decl_line
+	.long	22720                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5ae6:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	78                      @ DW_AT_decl_line
+	.long	22754                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5aed:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	80                      @ DW_AT_decl_line
+	.long	22772                   @ DW_AT_import
+	.byte	54                      @ Abbrev [54] 0x5af4:0x7 DW_TAG_imported_declaration
+	.byte	30                      @ DW_AT_decl_file
+	.byte	81                      @ DW_AT_decl_line
+	.long	22820                   @ DW_AT_import
+	.byte	16                      @ Abbrev [16] 0x5afb:0xf DW_TAG_namespace
+	.long	.Linfo_string914        @ DW_AT_name
+	.byte	31                      @ DW_AT_decl_file
+	.byte	56                      @ DW_AT_decl_line
+	.byte	96                      @ Abbrev [96] 0x5b02:0x7 DW_TAG_imported_module
+	.byte	31                      @ DW_AT_decl_file
+	.byte	58                      @ DW_AT_decl_line
+	.long	14982                   @ DW_AT_import
+	.byte	0                       @ End Of Children Mark
+	.byte	12                      @ Abbrev [12] 0x5b0a:0x5 DW_TAG_pointer_type
+	.long	14996                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x5b0f:0x5 DW_TAG_pointer_type
+	.long	23316                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x5b14:0x5 DW_TAG_const_type
+	.long	14996                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5b19:0x5 DW_TAG_reference_type
+	.long	23316                   @ DW_AT_type
+	.byte	63                      @ Abbrev [63] 0x5b1e:0x5 DW_TAG_rvalue_reference_type
+	.long	14996                   @ DW_AT_type
+	.byte	60                      @ Abbrev [60] 0x5b23:0x5 DW_TAG_reference_type
+	.long	14996                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x5b28:0x5 DW_TAG_pointer_type
+	.long	23341                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x5b2d:0x5 DW_TAG_const_type
+	.long	15304                   @ DW_AT_type
+	.byte	20                      @ Abbrev [20] 0x5b32:0xb DW_TAG_typedef
+	.long	23357                   @ DW_AT_type
+	.long	.Linfo_string941        @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.byte	106                     @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x5b3d:0xb DW_TAG_typedef
+	.long	23368                   @ DW_AT_type
+	.long	.Linfo_string940        @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.byte	94                      @ DW_AT_decl_line
+	.byte	87                      @ Abbrev [87] 0x5b48:0x3a DW_TAG_structure_type
+	.byte	8                       @ DW_AT_byte_size
+	.byte	33                      @ DW_AT_decl_file
+	.byte	82                      @ DW_AT_decl_line
+	.byte	5                       @ Abbrev [5] 0x5b4c:0xc DW_TAG_member
+	.long	.Linfo_string936        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	33                      @ DW_AT_decl_file
+	.byte	84                      @ DW_AT_decl_line
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x5b58:0xc DW_TAG_member
+	.long	.Linfo_string937        @ DW_AT_name
+	.long	23396                   @ DW_AT_type
+	.byte	33                      @ DW_AT_decl_file
+	.byte	93                      @ DW_AT_decl_line
+	.byte	4                       @ DW_AT_data_member_location
+	.byte	97                      @ Abbrev [97] 0x5b64:0x1d DW_TAG_union_type
+	.byte	4                       @ DW_AT_byte_size
+	.byte	33                      @ DW_AT_decl_file
+	.byte	85                      @ DW_AT_decl_line
+	.byte	5                       @ Abbrev [5] 0x5b68:0xc DW_TAG_member
+	.long	.Linfo_string938        @ DW_AT_name
+	.long	18365                   @ DW_AT_type
+	.byte	33                      @ DW_AT_decl_file
+	.byte	88                      @ DW_AT_decl_line
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x5b74:0xc DW_TAG_member
+	.long	.Linfo_string939        @ DW_AT_name
+	.long	23426                   @ DW_AT_type
+	.byte	33                      @ DW_AT_decl_file
+	.byte	92                      @ DW_AT_decl_line
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	0                       @ End Of Children Mark
+	.byte	0                       @ End Of Children Mark
+	.byte	66                      @ Abbrev [66] 0x5b82:0xc DW_TAG_array_type
+	.long	18590                   @ DW_AT_type
+	.byte	98                      @ Abbrev [98] 0x5b87:0x6 DW_TAG_subrange_type
+	.long	19056                   @ DW_AT_type
+	.byte	4                       @ DW_AT_count
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x5b8e:0xb DW_TAG_typedef
+	.long	18365                   @ DW_AT_type
+	.long	.Linfo_string942        @ DW_AT_name
+	.byte	28                      @ DW_AT_decl_file
+	.byte	132                     @ DW_AT_decl_line
+	.byte	89                      @ Abbrev [89] 0x5b99:0x12 DW_TAG_subprogram
+	.long	.Linfo_string943        @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	391                     @ DW_AT_decl_line
+	.long	23438                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5ba5:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x5bab:0x12 DW_TAG_subprogram
+	.long	.Linfo_string944        @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	748                     @ DW_AT_decl_line
+	.long	23438                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5bb7:0x5 DW_TAG_formal_parameter
+	.long	23485                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	12                      @ Abbrev [12] 0x5bbd:0x5 DW_TAG_pointer_type
+	.long	23490                   @ DW_AT_type
+	.byte	20                      @ Abbrev [20] 0x5bc2:0xb DW_TAG_typedef
+	.long	23501                   @ DW_AT_type
+	.long	.Linfo_string982        @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.byte	64                      @ DW_AT_decl_line
+	.byte	26                      @ Abbrev [26] 0x5bcd:0x179 DW_TAG_structure_type
+	.long	.Linfo_string981        @ DW_AT_name
+	.byte	152                     @ DW_AT_byte_size
+	.byte	34                      @ DW_AT_decl_file
+	.byte	241                     @ DW_AT_decl_line
+	.byte	5                       @ Abbrev [5] 0x5bd5:0xc DW_TAG_member
+	.long	.Linfo_string945        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.byte	242                     @ DW_AT_decl_line
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x5be1:0xc DW_TAG_member
+	.long	.Linfo_string946        @ DW_AT_name
+	.long	22404                   @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.byte	247                     @ DW_AT_decl_line
+	.byte	4                       @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x5bed:0xc DW_TAG_member
+	.long	.Linfo_string947        @ DW_AT_name
+	.long	22404                   @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.byte	248                     @ DW_AT_decl_line
+	.byte	8                       @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x5bf9:0xc DW_TAG_member
+	.long	.Linfo_string948        @ DW_AT_name
+	.long	22404                   @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.byte	249                     @ DW_AT_decl_line
+	.byte	12                      @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x5c05:0xc DW_TAG_member
+	.long	.Linfo_string949        @ DW_AT_name
+	.long	22404                   @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.byte	250                     @ DW_AT_decl_line
+	.byte	16                      @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x5c11:0xc DW_TAG_member
+	.long	.Linfo_string950        @ DW_AT_name
+	.long	22404                   @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.byte	251                     @ DW_AT_decl_line
+	.byte	20                      @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x5c1d:0xc DW_TAG_member
+	.long	.Linfo_string951        @ DW_AT_name
+	.long	22404                   @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.byte	252                     @ DW_AT_decl_line
+	.byte	24                      @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x5c29:0xc DW_TAG_member
+	.long	.Linfo_string952        @ DW_AT_name
+	.long	22404                   @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.byte	253                     @ DW_AT_decl_line
+	.byte	28                      @ DW_AT_data_member_location
+	.byte	5                       @ Abbrev [5] 0x5c35:0xc DW_TAG_member
+	.long	.Linfo_string953        @ DW_AT_name
+	.long	22404                   @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.byte	254                     @ DW_AT_decl_line
+	.byte	32                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x5c41:0xd DW_TAG_member
+	.long	.Linfo_string954        @ DW_AT_name
+	.long	22404                   @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.short	256                     @ DW_AT_decl_line
+	.byte	36                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x5c4e:0xd DW_TAG_member
+	.long	.Linfo_string955        @ DW_AT_name
+	.long	22404                   @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.short	257                     @ DW_AT_decl_line
+	.byte	40                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x5c5b:0xd DW_TAG_member
+	.long	.Linfo_string956        @ DW_AT_name
+	.long	22404                   @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.short	258                     @ DW_AT_decl_line
+	.byte	44                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x5c68:0xd DW_TAG_member
+	.long	.Linfo_string957        @ DW_AT_name
+	.long	23878                   @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.short	260                     @ DW_AT_decl_line
+	.byte	48                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x5c75:0xd DW_TAG_member
+	.long	.Linfo_string959        @ DW_AT_name
+	.long	23889                   @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.short	262                     @ DW_AT_decl_line
+	.byte	52                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x5c82:0xd DW_TAG_member
+	.long	.Linfo_string960        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.short	264                     @ DW_AT_decl_line
+	.byte	56                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x5c8f:0xd DW_TAG_member
+	.long	.Linfo_string961        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.short	268                     @ DW_AT_decl_line
+	.byte	60                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x5c9c:0xd DW_TAG_member
+	.long	.Linfo_string962        @ DW_AT_name
+	.long	23894                   @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.short	270                     @ DW_AT_decl_line
+	.byte	64                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x5ca9:0xd DW_TAG_member
+	.long	.Linfo_string964        @ DW_AT_name
+	.long	23905                   @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.short	274                     @ DW_AT_decl_line
+	.byte	68                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x5cb6:0xd DW_TAG_member
+	.long	.Linfo_string966        @ DW_AT_name
+	.long	23912                   @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.short	275                     @ DW_AT_decl_line
+	.byte	70                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x5cc3:0xd DW_TAG_member
+	.long	.Linfo_string968        @ DW_AT_name
+	.long	23919                   @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.short	276                     @ DW_AT_decl_line
+	.byte	71                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x5cd0:0xd DW_TAG_member
+	.long	.Linfo_string969        @ DW_AT_name
+	.long	23931                   @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.short	280                     @ DW_AT_decl_line
+	.byte	72                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x5cdd:0xd DW_TAG_member
+	.long	.Linfo_string971        @ DW_AT_name
+	.long	23943                   @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.short	289                     @ DW_AT_decl_line
+	.byte	80                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x5cea:0xd DW_TAG_member
+	.long	.Linfo_string974        @ DW_AT_name
+	.long	22267                   @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.short	297                     @ DW_AT_decl_line
+	.byte	88                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x5cf7:0xd DW_TAG_member
+	.long	.Linfo_string975        @ DW_AT_name
+	.long	22267                   @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.short	298                     @ DW_AT_decl_line
+	.byte	92                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x5d04:0xd DW_TAG_member
+	.long	.Linfo_string976        @ DW_AT_name
+	.long	22267                   @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.short	299                     @ DW_AT_decl_line
+	.byte	96                      @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x5d11:0xd DW_TAG_member
+	.long	.Linfo_string977        @ DW_AT_name
+	.long	22267                   @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.short	300                     @ DW_AT_decl_line
+	.byte	100                     @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x5d1e:0xd DW_TAG_member
+	.long	.Linfo_string978        @ DW_AT_name
+	.long	22268                   @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.short	302                     @ DW_AT_decl_line
+	.byte	104                     @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x5d2b:0xd DW_TAG_member
+	.long	.Linfo_string979        @ DW_AT_name
+	.long	343                     @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.short	303                     @ DW_AT_decl_line
+	.byte	108                     @ DW_AT_data_member_location
+	.byte	48                      @ Abbrev [48] 0x5d38:0xd DW_TAG_member
+	.long	.Linfo_string980        @ DW_AT_name
+	.long	23965                   @ DW_AT_type
+	.byte	34                      @ DW_AT_decl_file
+	.short	305                     @ DW_AT_decl_line
+	.byte	112                     @ DW_AT_data_member_location
+	.byte	0                       @ End Of Children Mark
+	.byte	12                      @ Abbrev [12] 0x5d46:0x5 DW_TAG_pointer_type
+	.long	23883                   @ DW_AT_type
+	.byte	53                      @ Abbrev [53] 0x5d4b:0x6 DW_TAG_structure_type
+	.long	.Linfo_string958        @ DW_AT_name
+	.byte	12                      @ DW_AT_byte_size
+                                        @ DW_AT_declaration
+	.byte	12                      @ Abbrev [12] 0x5d51:0x5 DW_TAG_pointer_type
+	.long	23501                   @ DW_AT_type
+	.byte	20                      @ Abbrev [20] 0x5d56:0xb DW_TAG_typedef
+	.long	22104                   @ DW_AT_type
+	.long	.Linfo_string963        @ DW_AT_name
+	.byte	35                      @ DW_AT_decl_file
+	.byte	131                     @ DW_AT_decl_line
+	.byte	15                      @ Abbrev [15] 0x5d61:0x7 DW_TAG_base_type
+	.long	.Linfo_string965        @ DW_AT_name
+	.byte	7                       @ DW_AT_encoding
+	.byte	2                       @ DW_AT_byte_size
+	.byte	15                      @ Abbrev [15] 0x5d68:0x7 DW_TAG_base_type
+	.long	.Linfo_string967        @ DW_AT_name
+	.byte	6                       @ DW_AT_encoding
+	.byte	1                       @ DW_AT_byte_size
+	.byte	66                      @ Abbrev [66] 0x5d6f:0xc DW_TAG_array_type
+	.long	18590                   @ DW_AT_type
+	.byte	98                      @ Abbrev [98] 0x5d74:0x6 DW_TAG_subrange_type
+	.long	19056                   @ DW_AT_type
+	.byte	1                       @ DW_AT_count
+	.byte	0                       @ End Of Children Mark
+	.byte	12                      @ Abbrev [12] 0x5d7b:0x5 DW_TAG_pointer_type
+	.long	23936                   @ DW_AT_type
+	.byte	99                      @ Abbrev [99] 0x5d80:0x7 DW_TAG_typedef
+	.long	.Linfo_string970        @ DW_AT_name
+	.byte	34                      @ DW_AT_decl_file
+	.byte	150                     @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x5d87:0xb DW_TAG_typedef
+	.long	23954                   @ DW_AT_type
+	.long	.Linfo_string973        @ DW_AT_name
+	.byte	35                      @ DW_AT_decl_file
+	.byte	132                     @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x5d92:0xb DW_TAG_typedef
+	.long	22883                   @ DW_AT_type
+	.long	.Linfo_string972        @ DW_AT_name
+	.byte	35                      @ DW_AT_decl_file
+	.byte	55                      @ DW_AT_decl_line
+	.byte	66                      @ Abbrev [66] 0x5d9d:0xc DW_TAG_array_type
+	.long	18590                   @ DW_AT_type
+	.byte	98                      @ Abbrev [98] 0x5da2:0x6 DW_TAG_subrange_type
+	.long	19056                   @ DW_AT_type
+	.byte	40                      @ DW_AT_count
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x5da9:0x1c DW_TAG_subprogram
+	.long	.Linfo_string983        @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	777                     @ DW_AT_decl_line
+	.long	22524                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5db5:0x5 DW_TAG_formal_parameter
+	.long	22519                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5dba:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5dbf:0x5 DW_TAG_formal_parameter
+	.long	24005                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	94                      @ Abbrev [94] 0x5dc5:0x5 DW_TAG_restrict_type
+	.long	23485                   @ DW_AT_type
+	.byte	89                      @ Abbrev [89] 0x5dca:0x17 DW_TAG_subprogram
+	.long	.Linfo_string984        @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	762                     @ DW_AT_decl_line
+	.long	23438                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5dd6:0x5 DW_TAG_formal_parameter
+	.long	22529                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5ddb:0x5 DW_TAG_formal_parameter
+	.long	23485                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x5de1:0x17 DW_TAG_subprogram
+	.long	.Linfo_string985        @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	784                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5ded:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5df2:0x5 DW_TAG_formal_parameter
+	.long	24005                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x5df8:0x17 DW_TAG_subprogram
+	.long	.Linfo_string986        @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	590                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5e04:0x5 DW_TAG_formal_parameter
+	.long	23485                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5e09:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x5e0f:0x18 DW_TAG_subprogram
+	.long	.Linfo_string987        @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	597                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5e1b:0x5 DW_TAG_formal_parameter
+	.long	24005                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5e20:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	70                      @ Abbrev [70] 0x5e25:0x1 DW_TAG_unspecified_parameters
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x5e27:0x18 DW_TAG_subprogram
+	.long	.Linfo_string988        @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	638                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5e33:0x5 DW_TAG_formal_parameter
+	.long	24005                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5e38:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	70                      @ Abbrev [70] 0x5e3d:0x1 DW_TAG_unspecified_parameters
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x5e3f:0x12 DW_TAG_subprogram
+	.long	.Linfo_string989        @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	749                     @ DW_AT_decl_line
+	.long	23438                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5e4b:0x5 DW_TAG_formal_parameter
+	.long	23485                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	95                      @ Abbrev [95] 0x5e51:0xc DW_TAG_subprogram
+	.long	.Linfo_string990        @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	755                     @ DW_AT_decl_line
+	.long	23438                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	89                      @ Abbrev [89] 0x5e5d:0x1c DW_TAG_subprogram
+	.long	.Linfo_string991        @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	402                     @ DW_AT_decl_line
+	.long	22268                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5e69:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5e6e:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5e73:0x5 DW_TAG_formal_parameter
+	.long	24185                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	94                      @ Abbrev [94] 0x5e79:0x5 DW_TAG_restrict_type
+	.long	24190                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x5e7e:0x5 DW_TAG_pointer_type
+	.long	23346                   @ DW_AT_type
+	.byte	89                      @ Abbrev [89] 0x5e83:0x21 DW_TAG_subprogram
+	.long	.Linfo_string992        @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	368                     @ DW_AT_decl_line
+	.long	22268                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5e8f:0x5 DW_TAG_formal_parameter
+	.long	22519                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5e94:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5e99:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5e9e:0x5 DW_TAG_formal_parameter
+	.long	24185                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x5ea4:0x12 DW_TAG_subprogram
+	.long	.Linfo_string993        @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	364                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5eb0:0x5 DW_TAG_formal_parameter
+	.long	24246                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	12                      @ Abbrev [12] 0x5eb6:0x5 DW_TAG_pointer_type
+	.long	24251                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x5ebb:0x5 DW_TAG_const_type
+	.long	23346                   @ DW_AT_type
+	.byte	89                      @ Abbrev [89] 0x5ec0:0x21 DW_TAG_subprogram
+	.long	.Linfo_string994        @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	411                     @ DW_AT_decl_line
+	.long	22268                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5ecc:0x5 DW_TAG_formal_parameter
+	.long	22519                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5ed1:0x5 DW_TAG_formal_parameter
+	.long	24289                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5ed6:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5edb:0x5 DW_TAG_formal_parameter
+	.long	24185                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	94                      @ Abbrev [94] 0x5ee1:0x5 DW_TAG_restrict_type
+	.long	24294                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x5ee6:0x5 DW_TAG_pointer_type
+	.long	18580                   @ DW_AT_type
+	.byte	89                      @ Abbrev [89] 0x5eeb:0x17 DW_TAG_subprogram
+	.long	.Linfo_string995        @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	763                     @ DW_AT_decl_line
+	.long	23438                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5ef7:0x5 DW_TAG_formal_parameter
+	.long	22529                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5efc:0x5 DW_TAG_formal_parameter
+	.long	23485                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x5f02:0x12 DW_TAG_subprogram
+	.long	.Linfo_string996        @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	769                     @ DW_AT_decl_line
+	.long	23438                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5f0e:0x5 DW_TAG_formal_parameter
+	.long	22529                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x5f14:0x1d DW_TAG_subprogram
+	.long	.Linfo_string997        @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	607                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5f20:0x5 DW_TAG_formal_parameter
+	.long	22519                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5f25:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5f2a:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	70                      @ Abbrev [70] 0x5f2f:0x1 DW_TAG_unspecified_parameters
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x5f31:0x18 DW_TAG_subprogram
+	.long	.Linfo_string998        @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	648                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5f3d:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5f42:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	70                      @ Abbrev [70] 0x5f47:0x1 DW_TAG_unspecified_parameters
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x5f49:0x17 DW_TAG_subprogram
+	.long	.Linfo_string999        @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	792                     @ DW_AT_decl_line
+	.long	23438                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5f55:0x5 DW_TAG_formal_parameter
+	.long	23438                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5f5a:0x5 DW_TAG_formal_parameter
+	.long	23485                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x5f60:0x1c DW_TAG_subprogram
+	.long	.Linfo_string1000       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	615                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5f6c:0x5 DW_TAG_formal_parameter
+	.long	24005                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5f71:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5f76:0x5 DW_TAG_formal_parameter
+	.long	24444                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x5f7c:0xb DW_TAG_typedef
+	.long	24455                   @ DW_AT_type
+	.long	.Linfo_string1004       @ DW_AT_name
+	.byte	37                      @ DW_AT_decl_file
+	.byte	50                      @ DW_AT_decl_line
+	.byte	100                     @ Abbrev [100] 0x5f87:0x9 DW_TAG_typedef
+	.long	24469                   @ DW_AT_type
+	.long	.Linfo_string1003       @ DW_AT_name
+	.byte	101                     @ Abbrev [101] 0x5f90:0x17 DW_TAG_namespace
+	.long	.Linfo_string8          @ DW_AT_name
+	.byte	102                     @ Abbrev [102] 0x5f95:0x11 DW_TAG_structure_type
+	.long	.Linfo_string1002       @ DW_AT_name
+	.byte	4                       @ DW_AT_byte_size
+	.byte	103                     @ Abbrev [103] 0x5f9b:0xa DW_TAG_member
+	.long	.Linfo_string1001       @ DW_AT_name
+	.long	22267                   @ DW_AT_type
+	.byte	0                       @ DW_AT_data_member_location
+	.byte	0                       @ End Of Children Mark
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x5fa7:0x1c DW_TAG_subprogram
+	.long	.Linfo_string1005       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	692                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5fb3:0x5 DW_TAG_formal_parameter
+	.long	24005                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5fb8:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5fbd:0x5 DW_TAG_formal_parameter
+	.long	24444                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x5fc3:0x21 DW_TAG_subprogram
+	.long	.Linfo_string1006       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	628                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5fcf:0x5 DW_TAG_formal_parameter
+	.long	22519                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5fd4:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5fd9:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5fde:0x5 DW_TAG_formal_parameter
+	.long	24444                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x5fe4:0x1c DW_TAG_subprogram
+	.long	.Linfo_string1007       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	704                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x5ff0:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5ff5:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x5ffa:0x5 DW_TAG_formal_parameter
+	.long	24444                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x6000:0x17 DW_TAG_subprogram
+	.long	.Linfo_string1008       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	623                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x600c:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6011:0x5 DW_TAG_formal_parameter
+	.long	24444                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x6017:0x17 DW_TAG_subprogram
+	.long	.Linfo_string1009       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	700                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6023:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6028:0x5 DW_TAG_formal_parameter
+	.long	24444                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x602e:0x1c DW_TAG_subprogram
+	.long	.Linfo_string1010       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	373                     @ DW_AT_decl_line
+	.long	22268                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x603a:0x5 DW_TAG_formal_parameter
+	.long	22800                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x603f:0x5 DW_TAG_formal_parameter
+	.long	22529                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6044:0x5 DW_TAG_formal_parameter
+	.long	24185                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x604a:0x16 DW_TAG_subprogram
+	.long	.Linfo_string1011       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.byte	157                     @ DW_AT_decl_line
+	.long	22524                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6055:0x5 DW_TAG_formal_parameter
+	.long	22519                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x605a:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x6060:0x16 DW_TAG_subprogram
+	.long	.Linfo_string1012       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.byte	166                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x606b:0x5 DW_TAG_formal_parameter
+	.long	22810                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6070:0x5 DW_TAG_formal_parameter
+	.long	22810                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x6076:0x16 DW_TAG_subprogram
+	.long	.Linfo_string1013       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.byte	195                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6081:0x5 DW_TAG_formal_parameter
+	.long	22810                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6086:0x5 DW_TAG_formal_parameter
+	.long	22810                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x608c:0x16 DW_TAG_subprogram
+	.long	.Linfo_string1014       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.byte	147                     @ DW_AT_decl_line
+	.long	22524                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6097:0x5 DW_TAG_formal_parameter
+	.long	22519                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x609c:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x60a2:0x16 DW_TAG_subprogram
+	.long	.Linfo_string1015       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.byte	255                     @ DW_AT_decl_line
+	.long	22268                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x60ad:0x5 DW_TAG_formal_parameter
+	.long	22810                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x60b2:0x5 DW_TAG_formal_parameter
+	.long	22810                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x60b8:0x21 DW_TAG_subprogram
+	.long	.Linfo_string1016       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	858                     @ DW_AT_decl_line
+	.long	22268                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x60c4:0x5 DW_TAG_formal_parameter
+	.long	22519                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x60c9:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x60ce:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x60d3:0x5 DW_TAG_formal_parameter
+	.long	24793                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	94                      @ Abbrev [94] 0x60d9:0x5 DW_TAG_restrict_type
+	.long	24798                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x60de:0x5 DW_TAG_pointer_type
+	.long	24803                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x60e3:0x5 DW_TAG_const_type
+	.long	24808                   @ DW_AT_type
+	.byte	53                      @ Abbrev [53] 0x60e8:0x6 DW_TAG_structure_type
+	.long	.Linfo_string1017       @ DW_AT_name
+	.byte	44                      @ DW_AT_byte_size
+                                        @ DW_AT_declaration
+	.byte	89                      @ Abbrev [89] 0x60ee:0x12 DW_TAG_subprogram
+	.long	.Linfo_string1018       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	290                     @ DW_AT_decl_line
+	.long	22268                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x60fa:0x5 DW_TAG_formal_parameter
+	.long	22810                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x6100:0x1b DW_TAG_subprogram
+	.long	.Linfo_string1019       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.byte	161                     @ DW_AT_decl_line
+	.long	22524                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x610b:0x5 DW_TAG_formal_parameter
+	.long	22519                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6110:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6115:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x611b:0x1b DW_TAG_subprogram
+	.long	.Linfo_string1020       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.byte	169                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6126:0x5 DW_TAG_formal_parameter
+	.long	22810                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x612b:0x5 DW_TAG_formal_parameter
+	.long	22810                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6130:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x6136:0x1b DW_TAG_subprogram
+	.long	.Linfo_string1021       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.byte	152                     @ DW_AT_decl_line
+	.long	22524                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6141:0x5 DW_TAG_formal_parameter
+	.long	22519                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6146:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x614b:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x6151:0x21 DW_TAG_subprogram
+	.long	.Linfo_string1022       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	417                     @ DW_AT_decl_line
+	.long	22268                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x615d:0x5 DW_TAG_formal_parameter
+	.long	22800                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6162:0x5 DW_TAG_formal_parameter
+	.long	24946                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6167:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x616c:0x5 DW_TAG_formal_parameter
+	.long	24185                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	94                      @ Abbrev [94] 0x6172:0x5 DW_TAG_restrict_type
+	.long	24951                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x6177:0x5 DW_TAG_pointer_type
+	.long	22810                   @ DW_AT_type
+	.byte	89                      @ Abbrev [89] 0x617c:0x17 DW_TAG_subprogram
+	.long	.Linfo_string1023       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	259                     @ DW_AT_decl_line
+	.long	22268                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6188:0x5 DW_TAG_formal_parameter
+	.long	22810                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x618d:0x5 DW_TAG_formal_parameter
+	.long	22810                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x6193:0x17 DW_TAG_subprogram
+	.long	.Linfo_string1024       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	453                     @ DW_AT_decl_line
+	.long	21473                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x619f:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x61a4:0x5 DW_TAG_formal_parameter
+	.long	25002                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	94                      @ Abbrev [94] 0x61aa:0x5 DW_TAG_restrict_type
+	.long	25007                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x61af:0x5 DW_TAG_pointer_type
+	.long	22524                   @ DW_AT_type
+	.byte	89                      @ Abbrev [89] 0x61b4:0x17 DW_TAG_subprogram
+	.long	.Linfo_string1025       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	460                     @ DW_AT_decl_line
+	.long	18995                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x61c0:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x61c5:0x5 DW_TAG_formal_parameter
+	.long	25002                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x61cb:0x1c DW_TAG_subprogram
+	.long	.Linfo_string1026       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	285                     @ DW_AT_decl_line
+	.long	22524                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x61d7:0x5 DW_TAG_formal_parameter
+	.long	22519                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x61dc:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x61e1:0x5 DW_TAG_formal_parameter
+	.long	25002                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x61e7:0x1c DW_TAG_subprogram
+	.long	.Linfo_string1027       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	471                     @ DW_AT_decl_line
+	.long	22104                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x61f3:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x61f8:0x5 DW_TAG_formal_parameter
+	.long	25002                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x61fd:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x6203:0x1c DW_TAG_subprogram
+	.long	.Linfo_string1028       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	476                     @ DW_AT_decl_line
+	.long	22747                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x620f:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6214:0x5 DW_TAG_formal_parameter
+	.long	25002                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6219:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x621f:0x1b DW_TAG_subprogram
+	.long	.Linfo_string1029       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.byte	199                     @ DW_AT_decl_line
+	.long	22268                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x622a:0x5 DW_TAG_formal_parameter
+	.long	22519                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x622f:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6234:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x623a:0x12 DW_TAG_subprogram
+	.long	.Linfo_string1030       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	397                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6246:0x5 DW_TAG_formal_parameter
+	.long	23438                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x624c:0x1c DW_TAG_subprogram
+	.long	.Linfo_string1031       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	328                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6258:0x5 DW_TAG_formal_parameter
+	.long	22810                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x625d:0x5 DW_TAG_formal_parameter
+	.long	22810                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6262:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x6268:0x1c DW_TAG_subprogram
+	.long	.Linfo_string1032       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	332                     @ DW_AT_decl_line
+	.long	22524                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6274:0x5 DW_TAG_formal_parameter
+	.long	22519                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6279:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x627e:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x6284:0x1c DW_TAG_subprogram
+	.long	.Linfo_string1033       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	337                     @ DW_AT_decl_line
+	.long	22524                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6290:0x5 DW_TAG_formal_parameter
+	.long	22524                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6295:0x5 DW_TAG_formal_parameter
+	.long	22810                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x629a:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x62a0:0x1c DW_TAG_subprogram
+	.long	.Linfo_string1034       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	341                     @ DW_AT_decl_line
+	.long	22524                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x62ac:0x5 DW_TAG_formal_parameter
+	.long	22524                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x62b1:0x5 DW_TAG_formal_parameter
+	.long	22529                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x62b6:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x62bc:0x13 DW_TAG_subprogram
+	.long	.Linfo_string1035       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	604                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x62c8:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	70                      @ Abbrev [70] 0x62cd:0x1 DW_TAG_unspecified_parameters
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x62cf:0x13 DW_TAG_subprogram
+	.long	.Linfo_string1036       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	645                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x62db:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	70                      @ Abbrev [70] 0x62e0:0x1 DW_TAG_unspecified_parameters
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x62e2:0x16 DW_TAG_subprogram
+	.long	.Linfo_string1037       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.byte	230                     @ DW_AT_decl_line
+	.long	22524                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x62ed:0x5 DW_TAG_formal_parameter
+	.long	22810                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x62f2:0x5 DW_TAG_formal_parameter
+	.long	22529                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x62f8:0x17 DW_TAG_subprogram
+	.long	.Linfo_string1038       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	269                     @ DW_AT_decl_line
+	.long	22524                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6304:0x5 DW_TAG_formal_parameter
+	.long	22810                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6309:0x5 DW_TAG_formal_parameter
+	.long	22810                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x630f:0x16 DW_TAG_subprogram
+	.long	.Linfo_string1039       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.byte	240                     @ DW_AT_decl_line
+	.long	22524                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x631a:0x5 DW_TAG_formal_parameter
+	.long	22810                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x631f:0x5 DW_TAG_formal_parameter
+	.long	22529                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x6325:0x17 DW_TAG_subprogram
+	.long	.Linfo_string1040       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	280                     @ DW_AT_decl_line
+	.long	22524                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6331:0x5 DW_TAG_formal_parameter
+	.long	22810                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6336:0x5 DW_TAG_formal_parameter
+	.long	22810                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x633c:0x1c DW_TAG_subprogram
+	.long	.Linfo_string1041       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	323                     @ DW_AT_decl_line
+	.long	22524                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6348:0x5 DW_TAG_formal_parameter
+	.long	22810                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x634d:0x5 DW_TAG_formal_parameter
+	.long	22529                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6352:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x6358:0x17 DW_TAG_subprogram
+	.long	.Linfo_string1042       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	462                     @ DW_AT_decl_line
+	.long	23060                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6364:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6369:0x5 DW_TAG_formal_parameter
+	.long	25002                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x636f:0x1c DW_TAG_subprogram
+	.long	.Linfo_string1043       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	486                     @ DW_AT_decl_line
+	.long	22883                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x637b:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6380:0x5 DW_TAG_formal_parameter
+	.long	25002                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6385:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x638b:0x1c DW_TAG_subprogram
+	.long	.Linfo_string1044       @ DW_AT_name
+	.byte	33                      @ DW_AT_decl_file
+	.short	493                     @ DW_AT_decl_line
+	.long	18633                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6397:0x5 DW_TAG_formal_parameter
+	.long	22805                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x639c:0x5 DW_TAG_formal_parameter
+	.long	25002                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x63a1:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x63a7:0xb DW_TAG_typedef
+	.long	23912                   @ DW_AT_type
+	.long	.Linfo_string1045       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	36                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x63b2:0xb DW_TAG_typedef
+	.long	25533                   @ DW_AT_type
+	.long	.Linfo_string1047       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	37                      @ DW_AT_decl_line
+	.byte	15                      @ Abbrev [15] 0x63bd:0x7 DW_TAG_base_type
+	.long	.Linfo_string1046       @ DW_AT_name
+	.byte	5                       @ DW_AT_encoding
+	.byte	2                       @ DW_AT_byte_size
+	.byte	20                      @ Abbrev [20] 0x63c4:0xb DW_TAG_typedef
+	.long	343                     @ DW_AT_type
+	.long	.Linfo_string1048       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	38                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x63cf:0xb DW_TAG_typedef
+	.long	22883                   @ DW_AT_type
+	.long	.Linfo_string1049       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	43                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x63da:0xb DW_TAG_typedef
+	.long	23912                   @ DW_AT_type
+	.long	.Linfo_string1050       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	90                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x63e5:0xb DW_TAG_typedef
+	.long	343                     @ DW_AT_type
+	.long	.Linfo_string1051       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	96                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x63f0:0xb DW_TAG_typedef
+	.long	343                     @ DW_AT_type
+	.long	.Linfo_string1052       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	97                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x63fb:0xb DW_TAG_typedef
+	.long	22883                   @ DW_AT_type
+	.long	.Linfo_string1053       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	99                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x6406:0xb DW_TAG_typedef
+	.long	23912                   @ DW_AT_type
+	.long	.Linfo_string1054       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	65                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x6411:0xb DW_TAG_typedef
+	.long	25533                   @ DW_AT_type
+	.long	.Linfo_string1055       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	66                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x641c:0xb DW_TAG_typedef
+	.long	343                     @ DW_AT_type
+	.long	.Linfo_string1056       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	67                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x6427:0xb DW_TAG_typedef
+	.long	22883                   @ DW_AT_type
+	.long	.Linfo_string1057       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	72                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x6432:0xb DW_TAG_typedef
+	.long	22883                   @ DW_AT_type
+	.long	.Linfo_string1058       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	138                     @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x643d:0xb DW_TAG_typedef
+	.long	343                     @ DW_AT_type
+	.long	.Linfo_string1059       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	125                     @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x6448:0xb DW_TAG_typedef
+	.long	25683                   @ DW_AT_type
+	.long	.Linfo_string1061       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	48                      @ DW_AT_decl_line
+	.byte	15                      @ Abbrev [15] 0x6453:0x7 DW_TAG_base_type
+	.long	.Linfo_string1060       @ DW_AT_name
+	.byte	8                       @ DW_AT_encoding
+	.byte	1                       @ DW_AT_byte_size
+	.byte	20                      @ Abbrev [20] 0x645a:0xb DW_TAG_typedef
+	.long	23905                   @ DW_AT_type
+	.long	.Linfo_string1062       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	49                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x6465:0xb DW_TAG_typedef
+	.long	25683                   @ DW_AT_type
+	.long	.Linfo_string1063       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	103                     @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x6470:0xb DW_TAG_typedef
+	.long	18365                   @ DW_AT_type
+	.long	.Linfo_string1064       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	109                     @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x647b:0xb DW_TAG_typedef
+	.long	18365                   @ DW_AT_type
+	.long	.Linfo_string1065       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	110                     @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x6486:0xb DW_TAG_typedef
+	.long	18633                   @ DW_AT_type
+	.long	.Linfo_string1066       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	112                     @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x6491:0xb DW_TAG_typedef
+	.long	25683                   @ DW_AT_type
+	.long	.Linfo_string1067       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	76                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x649c:0xb DW_TAG_typedef
+	.long	23905                   @ DW_AT_type
+	.long	.Linfo_string1068       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	77                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x64a7:0xb DW_TAG_typedef
+	.long	18365                   @ DW_AT_type
+	.long	.Linfo_string1069       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	78                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x64b2:0xb DW_TAG_typedef
+	.long	18633                   @ DW_AT_type
+	.long	.Linfo_string1070       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	83                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x64bd:0xb DW_TAG_typedef
+	.long	18633                   @ DW_AT_type
+	.long	.Linfo_string1071       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	140                     @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x64c8:0xb DW_TAG_typedef
+	.long	18365                   @ DW_AT_type
+	.long	.Linfo_string1072       @ DW_AT_name
+	.byte	10                      @ DW_AT_decl_file
+	.byte	128                     @ DW_AT_decl_line
+	.byte	53                      @ Abbrev [53] 0x64d3:0x6 DW_TAG_structure_type
+	.long	.Linfo_string1073       @ DW_AT_name
+	.byte	56                      @ DW_AT_byte_size
+                                        @ DW_AT_declaration
+	.byte	91                      @ Abbrev [91] 0x64d9:0x16 DW_TAG_subprogram
+	.long	.Linfo_string1074       @ DW_AT_name
+	.byte	38                      @ DW_AT_decl_file
+	.byte	124                     @ DW_AT_decl_line
+	.long	22404                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x64e4:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x64e9:0x5 DW_TAG_formal_parameter
+	.long	18580                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	104                     @ Abbrev [104] 0x64ef:0xb DW_TAG_subprogram
+	.long	.Linfo_string1075       @ DW_AT_name
+	.byte	38                      @ DW_AT_decl_file
+	.byte	127                     @ DW_AT_decl_line
+	.long	25850                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	12                      @ Abbrev [12] 0x64fa:0x5 DW_TAG_pointer_type
+	.long	25811                   @ DW_AT_type
+	.byte	91                      @ Abbrev [91] 0x64ff:0x11 DW_TAG_subprogram
+	.long	.Linfo_string1076       @ DW_AT_name
+	.byte	39                      @ DW_AT_decl_file
+	.byte	110                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x650a:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x6510:0x11 DW_TAG_subprogram
+	.long	.Linfo_string1077       @ DW_AT_name
+	.byte	39                      @ DW_AT_decl_file
+	.byte	111                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x651b:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x6521:0x11 DW_TAG_subprogram
+	.long	.Linfo_string1078       @ DW_AT_name
+	.byte	39                      @ DW_AT_decl_file
+	.byte	112                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x652c:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x6532:0x11 DW_TAG_subprogram
+	.long	.Linfo_string1079       @ DW_AT_name
+	.byte	39                      @ DW_AT_decl_file
+	.byte	113                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x653d:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x6543:0x11 DW_TAG_subprogram
+	.long	.Linfo_string1080       @ DW_AT_name
+	.byte	39                      @ DW_AT_decl_file
+	.byte	115                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x654e:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x6554:0x11 DW_TAG_subprogram
+	.long	.Linfo_string1081       @ DW_AT_name
+	.byte	39                      @ DW_AT_decl_file
+	.byte	114                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x655f:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x6565:0x11 DW_TAG_subprogram
+	.long	.Linfo_string1082       @ DW_AT_name
+	.byte	39                      @ DW_AT_decl_file
+	.byte	116                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6570:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x6576:0x11 DW_TAG_subprogram
+	.long	.Linfo_string1083       @ DW_AT_name
+	.byte	39                      @ DW_AT_decl_file
+	.byte	117                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6581:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x6587:0x11 DW_TAG_subprogram
+	.long	.Linfo_string1084       @ DW_AT_name
+	.byte	39                      @ DW_AT_decl_file
+	.byte	118                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6592:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x6598:0x11 DW_TAG_subprogram
+	.long	.Linfo_string1085       @ DW_AT_name
+	.byte	39                      @ DW_AT_decl_file
+	.byte	119                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x65a3:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x65a9:0x11 DW_TAG_subprogram
+	.long	.Linfo_string1086       @ DW_AT_name
+	.byte	39                      @ DW_AT_decl_file
+	.byte	120                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x65b4:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x65ba:0x11 DW_TAG_subprogram
+	.long	.Linfo_string1087       @ DW_AT_name
+	.byte	39                      @ DW_AT_decl_file
+	.byte	124                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x65c5:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x65cb:0x11 DW_TAG_subprogram
+	.long	.Linfo_string1088       @ DW_AT_name
+	.byte	39                      @ DW_AT_decl_file
+	.byte	127                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x65d6:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x65dc:0x11 DW_TAG_subprogram
+	.long	.Linfo_string1089       @ DW_AT_name
+	.byte	39                      @ DW_AT_decl_file
+	.byte	136                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x65e7:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	20                      @ Abbrev [20] 0x65ed:0xb DW_TAG_typedef
+	.long	23501                   @ DW_AT_type
+	.long	.Linfo_string1090       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.byte	48                      @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x65f8:0xb DW_TAG_typedef
+	.long	26115                   @ DW_AT_type
+	.long	.Linfo_string1092       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.byte	112                     @ DW_AT_decl_line
+	.byte	20                      @ Abbrev [20] 0x6603:0xb DW_TAG_typedef
+	.long	26126                   @ DW_AT_type
+	.long	.Linfo_string1091       @ DW_AT_name
+	.byte	40                      @ DW_AT_decl_file
+	.byte	25                      @ DW_AT_decl_line
+	.byte	72                      @ Abbrev [72] 0x660e:0x2 DW_TAG_structure_type
+	.byte	12                      @ DW_AT_byte_size
+                                        @ DW_AT_declaration
+	.byte	43                      @ Abbrev [43] 0x6610:0xe DW_TAG_subprogram
+	.long	.Linfo_string1093       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	828                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6618:0x5 DW_TAG_formal_parameter
+	.long	26142                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	12                      @ Abbrev [12] 0x661e:0x5 DW_TAG_pointer_type
+	.long	26093                   @ DW_AT_type
+	.byte	91                      @ Abbrev [91] 0x6623:0x11 DW_TAG_subprogram
+	.long	.Linfo_string1094       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.byte	239                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x662e:0x5 DW_TAG_formal_parameter
+	.long	26142                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x6634:0x12 DW_TAG_subprogram
+	.long	.Linfo_string1095       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	830                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6640:0x5 DW_TAG_formal_parameter
+	.long	26142                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x6646:0x12 DW_TAG_subprogram
+	.long	.Linfo_string1096       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	832                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6652:0x5 DW_TAG_formal_parameter
+	.long	26142                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x6658:0x11 DW_TAG_subprogram
+	.long	.Linfo_string1097       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.byte	244                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6663:0x5 DW_TAG_formal_parameter
+	.long	26142                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x6669:0x12 DW_TAG_subprogram
+	.long	.Linfo_string1098       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	533                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6675:0x5 DW_TAG_formal_parameter
+	.long	26142                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x667b:0x17 DW_TAG_subprogram
+	.long	.Linfo_string1099       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	800                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6687:0x5 DW_TAG_formal_parameter
+	.long	26258                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x668c:0x5 DW_TAG_formal_parameter
+	.long	26263                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	94                      @ Abbrev [94] 0x6692:0x5 DW_TAG_restrict_type
+	.long	26142                   @ DW_AT_type
+	.byte	94                      @ Abbrev [94] 0x6697:0x5 DW_TAG_restrict_type
+	.long	26268                   @ DW_AT_type
+	.byte	12                      @ Abbrev [12] 0x669c:0x5 DW_TAG_pointer_type
+	.long	26104                   @ DW_AT_type
+	.byte	89                      @ Abbrev [89] 0x66a1:0x1c DW_TAG_subprogram
+	.long	.Linfo_string1100       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	624                     @ DW_AT_decl_line
+	.long	22404                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x66ad:0x5 DW_TAG_formal_parameter
+	.long	22800                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x66b2:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x66b7:0x5 DW_TAG_formal_parameter
+	.long	26258                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x66bd:0x17 DW_TAG_subprogram
+	.long	.Linfo_string1101       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	274                     @ DW_AT_decl_line
+	.long	26142                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x66c9:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x66ce:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x66d4:0x18 DW_TAG_subprogram
+	.long	.Linfo_string1102       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	358                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x66e0:0x5 DW_TAG_formal_parameter
+	.long	26258                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x66e5:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	70                      @ Abbrev [70] 0x66ea:0x1 DW_TAG_unspecified_parameters
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x66ec:0x17 DW_TAG_subprogram
+	.long	.Linfo_string1103       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	575                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x66f8:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x66fd:0x5 DW_TAG_formal_parameter
+	.long	26142                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x6703:0x17 DW_TAG_subprogram
+	.long	.Linfo_string1104       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	691                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x670f:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6714:0x5 DW_TAG_formal_parameter
+	.long	26258                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x671a:0x21 DW_TAG_subprogram
+	.long	.Linfo_string1105       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	711                     @ DW_AT_decl_line
+	.long	22268                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6726:0x5 DW_TAG_formal_parameter
+	.long	26427                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x672b:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6730:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6735:0x5 DW_TAG_formal_parameter
+	.long	26258                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	94                      @ Abbrev [94] 0x673b:0x5 DW_TAG_restrict_type
+	.long	22267                   @ DW_AT_type
+	.byte	89                      @ Abbrev [89] 0x6740:0x1c DW_TAG_subprogram
+	.long	.Linfo_string1106       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	280                     @ DW_AT_decl_line
+	.long	26142                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x674c:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6751:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6756:0x5 DW_TAG_formal_parameter
+	.long	26258                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x675c:0x18 DW_TAG_subprogram
+	.long	.Linfo_string1107       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	427                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6768:0x5 DW_TAG_formal_parameter
+	.long	26258                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x676d:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	70                      @ Abbrev [70] 0x6772:0x1 DW_TAG_unspecified_parameters
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x6774:0x1c DW_TAG_subprogram
+	.long	.Linfo_string1108       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	751                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6780:0x5 DW_TAG_formal_parameter
+	.long	26142                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6785:0x5 DW_TAG_formal_parameter
+	.long	22104                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x678a:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x6790:0x17 DW_TAG_subprogram
+	.long	.Linfo_string1109       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	805                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x679c:0x5 DW_TAG_formal_parameter
+	.long	26142                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x67a1:0x5 DW_TAG_formal_parameter
+	.long	26535                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	12                      @ Abbrev [12] 0x67a7:0x5 DW_TAG_pointer_type
+	.long	26540                   @ DW_AT_type
+	.byte	61                      @ Abbrev [61] 0x67ac:0x5 DW_TAG_const_type
+	.long	26104                   @ DW_AT_type
+	.byte	89                      @ Abbrev [89] 0x67b1:0x12 DW_TAG_subprogram
+	.long	.Linfo_string1110       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	756                     @ DW_AT_decl_line
+	.long	22104                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x67bd:0x5 DW_TAG_formal_parameter
+	.long	26142                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x67c3:0x21 DW_TAG_subprogram
+	.long	.Linfo_string1111       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	717                     @ DW_AT_decl_line
+	.long	22268                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x67cf:0x5 DW_TAG_formal_parameter
+	.long	26596                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x67d4:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x67d9:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x67de:0x5 DW_TAG_formal_parameter
+	.long	26258                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	94                      @ Abbrev [94] 0x67e4:0x5 DW_TAG_restrict_type
+	.long	18372                   @ DW_AT_type
+	.byte	89                      @ Abbrev [89] 0x67e9:0x12 DW_TAG_subprogram
+	.long	.Linfo_string1112       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	534                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x67f5:0x5 DW_TAG_formal_parameter
+	.long	26142                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	104                     @ Abbrev [104] 0x67fb:0xb DW_TAG_subprogram
+	.long	.Linfo_string1113       @ DW_AT_name
+	.byte	41                      @ DW_AT_decl_file
+	.byte	44                      @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	89                      @ Abbrev [89] 0x6806:0x12 DW_TAG_subprogram
+	.long	.Linfo_string1114       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	640                     @ DW_AT_decl_line
+	.long	22404                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6812:0x5 DW_TAG_formal_parameter
+	.long	22404                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	43                      @ Abbrev [43] 0x6818:0xe DW_TAG_subprogram
+	.long	.Linfo_string1115       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	848                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6820:0x5 DW_TAG_formal_parameter
+	.long	18580                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x6826:0x13 DW_TAG_subprogram
+	.long	.Linfo_string1116       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	364                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6832:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	70                      @ Abbrev [70] 0x6837:0x1 DW_TAG_unspecified_parameters
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x6839:0x17 DW_TAG_subprogram
+	.long	.Linfo_string1117       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	576                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6845:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x684a:0x5 DW_TAG_formal_parameter
+	.long	26142                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x6850:0x11 DW_TAG_subprogram
+	.long	.Linfo_string1118       @ DW_AT_name
+	.byte	41                      @ DW_AT_decl_file
+	.byte	79                      @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x685b:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x6861:0x12 DW_TAG_subprogram
+	.long	.Linfo_string1119       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	697                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x686d:0x5 DW_TAG_formal_parameter
+	.long	18580                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x6873:0x11 DW_TAG_subprogram
+	.long	.Linfo_string1120       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.byte	180                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x687e:0x5 DW_TAG_formal_parameter
+	.long	18580                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x6884:0x16 DW_TAG_subprogram
+	.long	.Linfo_string1121       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.byte	182                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x688f:0x5 DW_TAG_formal_parameter
+	.long	18580                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6894:0x5 DW_TAG_formal_parameter
+	.long	18580                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	43                      @ Abbrev [43] 0x689a:0xe DW_TAG_subprogram
+	.long	.Linfo_string1122       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	761                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x68a2:0x5 DW_TAG_formal_parameter
+	.long	26142                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x68a8:0x13 DW_TAG_subprogram
+	.long	.Linfo_string1123       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	433                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x68b4:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	70                      @ Abbrev [70] 0x68b9:0x1 DW_TAG_unspecified_parameters
+	.byte	0                       @ End Of Children Mark
+	.byte	43                      @ Abbrev [43] 0x68bb:0x13 DW_TAG_subprogram
+	.long	.Linfo_string1124       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	334                     @ DW_AT_decl_line
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x68c3:0x5 DW_TAG_formal_parameter
+	.long	26258                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x68c8:0x5 DW_TAG_formal_parameter
+	.long	22800                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x68ce:0x21 DW_TAG_subprogram
+	.long	.Linfo_string1125       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	338                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x68da:0x5 DW_TAG_formal_parameter
+	.long	26258                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x68df:0x5 DW_TAG_formal_parameter
+	.long	22800                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x68e4:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x68e9:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x68ef:0x18 DW_TAG_subprogram
+	.long	.Linfo_string1126       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	366                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x68fb:0x5 DW_TAG_formal_parameter
+	.long	22800                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6900:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	70                      @ Abbrev [70] 0x6905:0x1 DW_TAG_unspecified_parameters
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x6907:0x18 DW_TAG_subprogram
+	.long	.Linfo_string1127       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	435                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6913:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6918:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	70                      @ Abbrev [70] 0x691d:0x1 DW_TAG_unspecified_parameters
+	.byte	0                       @ End Of Children Mark
+	.byte	104                     @ Abbrev [104] 0x691f:0xb DW_TAG_subprogram
+	.long	.Linfo_string1128       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.byte	197                     @ DW_AT_decl_line
+	.long	26142                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	91                      @ Abbrev [91] 0x692a:0x11 DW_TAG_subprogram
+	.long	.Linfo_string1129       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.byte	211                     @ DW_AT_decl_line
+	.long	22404                   @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6935:0x5 DW_TAG_formal_parameter
+	.long	22404                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x693b:0x17 DW_TAG_subprogram
+	.long	.Linfo_string1130       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	704                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6947:0x5 DW_TAG_formal_parameter
+	.long	343                     @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x694c:0x5 DW_TAG_formal_parameter
+	.long	26142                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x6952:0x1c DW_TAG_subprogram
+	.long	.Linfo_string1131       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	373                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x695e:0x5 DW_TAG_formal_parameter
+	.long	26258                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6963:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6968:0x5 DW_TAG_formal_parameter
+	.long	24444                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	91                      @ Abbrev [91] 0x696e:0x16 DW_TAG_subprogram
+	.long	.Linfo_string1132       @ DW_AT_name
+	.byte	41                      @ DW_AT_decl_file
+	.byte	36                      @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6979:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x697e:0x5 DW_TAG_formal_parameter
+	.long	24444                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x6984:0x1c DW_TAG_subprogram
+	.long	.Linfo_string1133       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	381                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6990:0x5 DW_TAG_formal_parameter
+	.long	22800                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6995:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x699a:0x5 DW_TAG_formal_parameter
+	.long	24444                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x69a0:0x1d DW_TAG_subprogram
+	.long	.Linfo_string1134       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	388                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x69ac:0x5 DW_TAG_formal_parameter
+	.long	22800                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x69b1:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x69b6:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	70                      @ Abbrev [70] 0x69bb:0x1 DW_TAG_unspecified_parameters
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x69bd:0x1c DW_TAG_subprogram
+	.long	.Linfo_string1135       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	473                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x69c9:0x5 DW_TAG_formal_parameter
+	.long	26258                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x69ce:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x69d3:0x5 DW_TAG_formal_parameter
+	.long	24444                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x69d9:0x17 DW_TAG_subprogram
+	.long	.Linfo_string1136       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	481                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x69e5:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x69ea:0x5 DW_TAG_formal_parameter
+	.long	24444                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x69f0:0x21 DW_TAG_subprogram
+	.long	.Linfo_string1137       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	392                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x69fc:0x5 DW_TAG_formal_parameter
+	.long	22800                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6a01:0x5 DW_TAG_formal_parameter
+	.long	22268                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6a06:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6a0b:0x5 DW_TAG_formal_parameter
+	.long	24444                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	89                      @ Abbrev [89] 0x6a11:0x1c DW_TAG_subprogram
+	.long	.Linfo_string1138       @ DW_AT_name
+	.byte	36                      @ DW_AT_decl_file
+	.short	485                     @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+                                        @ DW_AT_declaration
+                                        @ DW_AT_external
+	.byte	8                       @ Abbrev [8] 0x6a1d:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6a22:0x5 DW_TAG_formal_parameter
+	.long	22536                   @ DW_AT_type
+	.byte	8                       @ Abbrev [8] 0x6a27:0x5 DW_TAG_formal_parameter
+	.long	24444                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	61                      @ Abbrev [61] 0x6a2d:0x5 DW_TAG_const_type
+	.long	18104                   @ DW_AT_type
+	.byte	105                     @ Abbrev [105] 0x6a32:0x34 DW_TAG_subprogram
+	.long	.Lfunc_begin0           @ DW_AT_low_pc
+	.long	.Lfunc_end0-.Lfunc_begin0 @ DW_AT_high_pc
+	.byte	1                       @ DW_AT_frame_base
+	.byte	91
+	.long	.Linfo_string242        @ DW_AT_name
+	.byte	12                      @ DW_AT_decl_file
+	.byte	63                      @ DW_AT_decl_line
+	.long	18432                   @ DW_AT_type
+                                        @ DW_AT_external
+	.byte	76                      @ Abbrev [76] 0x6a47:0xf DW_TAG_formal_parameter
+	.long	.Ldebug_loc0            @ DW_AT_location
+	.long	.Linfo_string1142       @ DW_AT_name
+	.byte	12                      @ DW_AT_decl_file
+	.byte	63                      @ DW_AT_decl_line
+	.long	18645                   @ DW_AT_type
+	.byte	76                      @ Abbrev [76] 0x6a56:0xf DW_TAG_formal_parameter
+	.long	.Ldebug_loc1            @ DW_AT_location
+	.long	.Linfo_string1161       @ DW_AT_name
+	.byte	12                      @ DW_AT_decl_file
+	.byte	63                      @ DW_AT_decl_line
+	.long	22267                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	106                     @ Abbrev [106] 0x6a66:0x3e DW_TAG_subprogram
+	.long	.Linfo_string1140       @ DW_AT_linkage_name
+	.long	.Linfo_string1141       @ DW_AT_name
+	.byte	11                      @ DW_AT_decl_file
+	.short	1534                    @ DW_AT_decl_line
+	.byte	1                       @ DW_AT_inline
+	.byte	107                     @ Abbrev [107] 0x6a73:0xc DW_TAG_formal_parameter
+	.long	.Linfo_string1142       @ DW_AT_name
+	.byte	11                      @ DW_AT_decl_file
+	.short	1534                    @ DW_AT_decl_line
+	.long	18645                   @ DW_AT_type
+	.byte	107                     @ Abbrev [107] 0x6a7f:0xc DW_TAG_formal_parameter
+	.long	.Linfo_string1143       @ DW_AT_name
+	.byte	11                      @ DW_AT_decl_file
+	.short	1534                    @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+	.byte	107                     @ Abbrev [107] 0x6a8b:0xc DW_TAG_formal_parameter
+	.long	.Linfo_string1144       @ DW_AT_name
+	.byte	11                      @ DW_AT_decl_file
+	.short	1534                    @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+	.byte	107                     @ Abbrev [107] 0x6a97:0xc DW_TAG_formal_parameter
+	.long	.Linfo_string194        @ DW_AT_name
+	.byte	11                      @ DW_AT_decl_file
+	.short	1534                    @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	108                     @ Abbrev [108] 0x6aa4:0x2a DW_TAG_subprogram
+	.long	251                     @ DW_AT_specification
+	.byte	1                       @ DW_AT_inline
+	.long	27310                   @ DW_AT_object_pointer
+	.byte	109                     @ Abbrev [109] 0x6aae:0x9 DW_TAG_formal_parameter
+	.long	.Linfo_string1145       @ DW_AT_name
+	.long	27342                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	110                     @ Abbrev [110] 0x6ab7:0xb DW_TAG_formal_parameter
+	.long	.Linfo_string1142       @ DW_AT_name
+	.byte	9                       @ DW_AT_decl_file
+	.byte	70                      @ DW_AT_decl_line
+	.long	18645                   @ DW_AT_type
+	.byte	110                     @ Abbrev [110] 0x6ac2:0xb DW_TAG_formal_parameter
+	.long	.Linfo_string1143       @ DW_AT_name
+	.byte	9                       @ DW_AT_decl_file
+	.byte	70                      @ DW_AT_decl_line
+	.long	18365                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	12                      @ Abbrev [12] 0x6ace:0x5 DW_TAG_pointer_type
+	.long	58                      @ DW_AT_type
+	.byte	106                     @ Abbrev [106] 0x6ad3:0x4a DW_TAG_subprogram
+	.long	.Linfo_string1146       @ DW_AT_linkage_name
+	.long	.Linfo_string1147       @ DW_AT_name
+	.byte	11                      @ DW_AT_decl_file
+	.short	1544                    @ DW_AT_decl_line
+	.byte	1                       @ DW_AT_inline
+	.byte	107                     @ Abbrev [107] 0x6ae0:0xc DW_TAG_formal_parameter
+	.long	.Linfo_string1142       @ DW_AT_name
+	.byte	11                      @ DW_AT_decl_file
+	.short	1544                    @ DW_AT_decl_line
+	.long	18645                   @ DW_AT_type
+	.byte	107                     @ Abbrev [107] 0x6aec:0xc DW_TAG_formal_parameter
+	.long	.Linfo_string1143       @ DW_AT_name
+	.byte	11                      @ DW_AT_decl_file
+	.short	1544                    @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+	.byte	107                     @ Abbrev [107] 0x6af8:0xc DW_TAG_formal_parameter
+	.long	.Linfo_string1144       @ DW_AT_name
+	.byte	11                      @ DW_AT_decl_file
+	.short	1544                    @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+	.byte	107                     @ Abbrev [107] 0x6b04:0xc DW_TAG_formal_parameter
+	.long	.Linfo_string1148       @ DW_AT_name
+	.byte	11                      @ DW_AT_decl_file
+	.short	1544                    @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+	.byte	111                     @ Abbrev [111] 0x6b10:0xc DW_TAG_variable
+	.long	.Linfo_string1149       @ DW_AT_name
+	.byte	11                      @ DW_AT_decl_file
+	.short	1545                    @ DW_AT_decl_line
+	.long	18365                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	112                     @ Abbrev [112] 0x6b1d:0x36 DW_TAG_subprogram
+	.long	.Linfo_string1150       @ DW_AT_linkage_name
+	.long	.Linfo_string1151       @ DW_AT_name
+	.byte	11                      @ DW_AT_decl_file
+	.short	1514                    @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+	.byte	1                       @ DW_AT_inline
+	.byte	107                     @ Abbrev [107] 0x6b2e:0xc DW_TAG_formal_parameter
+	.long	.Linfo_string1142       @ DW_AT_name
+	.byte	11                      @ DW_AT_decl_file
+	.short	1514                    @ DW_AT_decl_line
+	.long	18645                   @ DW_AT_type
+	.byte	107                     @ Abbrev [107] 0x6b3a:0xc DW_TAG_formal_parameter
+	.long	.Linfo_string1143       @ DW_AT_name
+	.byte	11                      @ DW_AT_decl_file
+	.short	1514                    @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+	.byte	107                     @ Abbrev [107] 0x6b46:0xc DW_TAG_formal_parameter
+	.long	.Linfo_string1144       @ DW_AT_name
+	.byte	11                      @ DW_AT_decl_file
+	.short	1514                    @ DW_AT_decl_line
+	.long	343                     @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	108                     @ Abbrev [108] 0x6b53:0x20 DW_TAG_subprogram
+	.long	1258                    @ DW_AT_specification
+	.byte	1                       @ DW_AT_inline
+	.long	27485                   @ DW_AT_object_pointer
+	.byte	109                     @ Abbrev [109] 0x6b5d:0x9 DW_TAG_formal_parameter
+	.long	.Linfo_string1145       @ DW_AT_name
+	.long	27507                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	107                     @ Abbrev [107] 0x6b66:0xc DW_TAG_formal_parameter
+	.long	.Linfo_string1152       @ DW_AT_name
+	.byte	7                       @ DW_AT_decl_file
+	.short	780                     @ DW_AT_decl_line
+	.long	18514                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	12                      @ Abbrev [12] 0x6b73:0x5 DW_TAG_pointer_type
+	.long	357                     @ DW_AT_type
+	.byte	74                      @ Abbrev [74] 0x6b78:0x2c DW_TAG_subprogram
+	.long	.Lfunc_begin2           @ DW_AT_low_pc
+	.long	.Lfunc_end2-.Lfunc_begin2 @ DW_AT_high_pc
+	.byte	1                       @ DW_AT_frame_base
+	.byte	93
+	.long	.Linfo_string248        @ DW_AT_name
+	.byte	12                      @ DW_AT_decl_file
+	.byte	121                     @ DW_AT_decl_line
+                                        @ DW_AT_external
+	.byte	113                     @ Abbrev [113] 0x6b89:0xd DW_TAG_formal_parameter
+	.byte	1                       @ DW_AT_location
+	.byte	80
+	.long	.Linfo_string1142       @ DW_AT_name
+	.byte	12                      @ DW_AT_decl_file
+	.byte	121                     @ DW_AT_decl_line
+	.long	18645                   @ DW_AT_type
+	.byte	113                     @ Abbrev [113] 0x6b96:0xd DW_TAG_formal_parameter
+	.byte	1                       @ DW_AT_location
+	.byte	81
+	.long	.Linfo_string1161       @ DW_AT_name
+	.byte	12                      @ DW_AT_decl_file
+	.byte	121                     @ DW_AT_decl_line
+	.long	22267                   @ DW_AT_type
+	.byte	0                       @ End Of Children Mark
+	.byte	114                     @ Abbrev [114] 0x6ba4:0x18 DW_TAG_subprogram
+	.long	.Linfo_string1153       @ DW_AT_linkage_name
+	.long	152                     @ DW_AT_specification
+	.byte	1                       @ DW_AT_inline
+	.long	27570                   @ DW_AT_object_pointer
+	.byte	109                     @ Abbrev [109] 0x6bb2:0x9 DW_TAG_formal_parameter
+	.long	.Linfo_string1145       @ DW_AT_name
+	.long	27342                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	115                     @ Abbrev [115] 0x6bbc:0x8 DW_TAG_subprogram
+	.long	.Linfo_string1154       @ DW_AT_name
+	.byte	12                      @ DW_AT_decl_file
+	.byte	53                      @ DW_AT_decl_line
+	.byte	1                       @ DW_AT_inline
+	.byte	114                     @ Abbrev [114] 0x6bc4:0x18 DW_TAG_subprogram
+	.long	.Linfo_string1155       @ DW_AT_linkage_name
+	.long	2310                    @ DW_AT_specification
+	.byte	1                       @ DW_AT_inline
+	.long	27602                   @ DW_AT_object_pointer
+	.byte	109                     @ Abbrev [109] 0x6bd2:0x9 DW_TAG_formal_parameter
+	.long	.Linfo_string1145       @ DW_AT_name
+	.long	27612                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	12                      @ Abbrev [12] 0x6bdc:0x5 DW_TAG_pointer_type
+	.long	2260                    @ DW_AT_type
+	.byte	114                     @ Abbrev [114] 0x6be1:0x18 DW_TAG_subprogram
+	.long	.Linfo_string1156       @ DW_AT_linkage_name
+	.long	2478                    @ DW_AT_specification
+	.byte	1                       @ DW_AT_inline
+	.long	27631                   @ DW_AT_object_pointer
+	.byte	109                     @ Abbrev [109] 0x6bef:0x9 DW_TAG_formal_parameter
+	.long	.Linfo_string1145       @ DW_AT_name
+	.long	27641                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	12                      @ Abbrev [12] 0x6bf9:0x5 DW_TAG_pointer_type
+	.long	2240                    @ DW_AT_type
+	.byte	114                     @ Abbrev [114] 0x6bfe:0x18 DW_TAG_subprogram
+	.long	.Linfo_string1157       @ DW_AT_linkage_name
+	.long	372                     @ DW_AT_specification
+	.byte	1                       @ DW_AT_inline
+	.long	27660                   @ DW_AT_object_pointer
+	.byte	109                     @ Abbrev [109] 0x6c0c:0x9 DW_TAG_formal_parameter
+	.long	.Linfo_string1145       @ DW_AT_name
+	.long	27507                   @ DW_AT_type
+                                        @ DW_AT_artificial
+	.byte	0                       @ End Of Children Mark
+	.byte	115                     @ Abbrev [115] 0x6c16:0x8 DW_TAG_subprogram
+	.long	.Linfo_string1158       @ DW_AT_name
+	.byte	12                      @ DW_AT_decl_file
+	.byte	54                      @ DW_AT_decl_line
+	.byte	1                       @ DW_AT_inline
+	.byte	116                     @ Abbrev [116] 0x6c1e:0x69 DW_TAG_subprogram
+	.long	.Lfunc_begin3           @ DW_AT_low_pc
+	.long	.Lfunc_end3-.Lfunc_begin3 @ DW_AT_high_pc
+	.byte	1                       @ DW_AT_frame_base
+	.byte	91
+	.long	.Linfo_string1160       @ DW_AT_linkage_name
+                                        @ DW_AT_artificial
+	.byte	117                     @ Abbrev [117] 0x6c2d:0x49 DW_TAG_inlined_subroutine
+	.long	27580                   @ DW_AT_abstract_origin
+	.long	.Ltmp97                 @ DW_AT_low_pc
+	.long	.Ltmp106-.Ltmp97        @ DW_AT_high_pc
+	.byte	30                      @ DW_AT_call_file
+	.byte	0                       @ DW_AT_call_line
+	.byte	79                      @ Abbrev [79] 0x6c3c:0x39 DW_TAG_inlined_subroutine
+	.long	27556                   @ DW_AT_abstract_origin
+	.long	.Ldebug_ranges7         @ DW_AT_ranges
+	.byte	12                      @ DW_AT_call_file
+	.byte	53                      @ DW_AT_call_line
+	.byte	80                      @ Abbrev [80] 0x6c47:0x9 DW_TAG_formal_parameter
+	.long	.Ldebug_loc17           @ DW_AT_location
+	.long	27570                   @ DW_AT_abstract_origin
+	.byte	79                      @ Abbrev [79] 0x6c50:0x24 DW_TAG_inlined_subroutine
+	.long	27646                   @ DW_AT_abstract_origin
+	.long	.Ldebug_ranges8         @ DW_AT_ranges
+	.byte	9                       @ DW_AT_call_file
+	.byte	21                      @ DW_AT_call_line
+	.byte	118                     @ Abbrev [118] 0x6c5b:0x18 DW_TAG_inlined_subroutine
+	.long	27617                   @ DW_AT_abstract_origin
+	.long	.Ldebug_ranges9         @ DW_AT_ranges
+	.byte	7                       @ DW_AT_call_file
+	.short	259                     @ DW_AT_call_line
+	.byte	119                     @ Abbrev [119] 0x6c67:0xb DW_TAG_inlined_subroutine
+	.long	27588                   @ DW_AT_abstract_origin
+	.long	.Ldebug_ranges10        @ DW_AT_ranges
+	.byte	7                       @ DW_AT_call_file
+	.byte	125                     @ DW_AT_call_line
+	.byte	0                       @ End Of Children Mark
+	.byte	0                       @ End Of Children Mark
+	.byte	0                       @ End Of Children Mark
+	.byte	0                       @ End Of Children Mark
+	.byte	120                     @ Abbrev [120] 0x6c76:0x10 DW_TAG_inlined_subroutine
+	.long	27670                   @ DW_AT_abstract_origin
+	.long	.Ltmp106                @ DW_AT_low_pc
+	.long	.Ltmp107-.Ltmp106       @ DW_AT_high_pc
+	.byte	30                      @ DW_AT_call_file
+	.byte	0                       @ DW_AT_call_line
+	.byte	1                       @ DW_AT_GNU_discriminator
+	.byte	0                       @ End Of Children Mark
+	.byte	0                       @ End Of Children Mark
+	.section	.debug_ranges,"",%progbits
+.Ldebug_range:
+.Ldebug_ranges0:
+	.long	.Ltmp27
+	.long	.Ltmp28
+	.long	.Ltmp57
+	.long	.Ltmp58
+	.long	.Ltmp59
+	.long	.Ltmp62
+	.long	.Ltmp72
+	.long	.Ltmp73
+	.long	0
+	.long	0
+.Ldebug_ranges1:
+	.long	.Ltmp39
+	.long	.Ltmp40
+	.long	.Ltmp41
+	.long	.Ltmp44
+	.long	0
+	.long	0
+.Ldebug_ranges2:
+	.long	.Ltmp31
+	.long	.Ltmp32
+	.long	.Ltmp33
+	.long	.Ltmp36
+	.long	0
+	.long	0
+.Ldebug_ranges3:
+	.long	.Ltmp45
+	.long	.Ltmp46
+	.long	.Ltmp47
+	.long	.Ltmp50
+	.long	0
+	.long	0
+.Ldebug_ranges4:
+	.long	.Ltmp50
+	.long	.Ltmp51
+	.long	.Ltmp52
+	.long	.Ltmp55
+	.long	0
+	.long	0
+.Ldebug_ranges5:
+	.long	.Ltmp29
+	.long	.Ltmp30
+	.long	.Ltmp62
+	.long	.Ltmp63
+	.long	.Ltmp64
+	.long	.Ltmp65
+	.long	.Ltmp66
+	.long	.Ltmp70
+	.long	.Ltmp73
+	.long	.Ltmp74
+	.long	0
+	.long	0
+.Ldebug_ranges6:
+	.long	.Ltmp65
+	.long	.Ltmp66
+	.long	.Ltmp70
+	.long	.Ltmp71
+	.long	.Ltmp80
+	.long	.Ltmp81
+	.long	0
+	.long	0
+.Ldebug_ranges7:
+	.long	.Ltmp97
+	.long	.Ltmp98
+	.long	.Ltmp99
+	.long	.Ltmp101
+	.long	.Ltmp102
+	.long	.Ltmp103
+	.long	.Ltmp104
+	.long	.Ltmp105
+	.long	0
+	.long	0
+.Ldebug_ranges8:
+	.long	.Ltmp100
+	.long	.Ltmp101
+	.long	.Ltmp102
+	.long	.Ltmp103
+	.long	.Ltmp104
+	.long	.Ltmp105
+	.long	0
+	.long	0
+.Ldebug_ranges9:
+	.long	.Ltmp100
+	.long	.Ltmp101
+	.long	.Ltmp102
+	.long	.Ltmp103
+	.long	.Ltmp104
+	.long	.Ltmp105
+	.long	0
+	.long	0
+.Ldebug_ranges10:
+	.long	.Ltmp100
+	.long	.Ltmp101
+	.long	.Ltmp102
+	.long	.Ltmp103
+	.long	.Ltmp104
+	.long	.Ltmp105
+	.long	0
+	.long	0
+.Ldebug_ranges11:
+	.long	.Lfunc_begin0
+	.long	.Lfunc_end2
+	.long	.Lfunc_begin3
+	.long	.Lfunc_end3
+	.long	0
+	.long	0
+	.section	.debug_macinfo,"",%progbits
+.Ldebug_macinfo:
+.Lcu_macro_begin0:
+	.byte	0                       @ End Of Macro List Mark
+	.section	.debug_pubnames,"",%progbits
+	.long	.LpubNames_end0-.LpubNames_begin0 @ Length of Public Names Info
+.LpubNames_begin0:
+	.short	2                       @ DWARF Version
+	.long	.Lcu_begin0             @ Offset of Compilation Unit Info
+	.long	27784                   @ Compilation Unit Length
+	.long	38                      @ DIE offset
+	.asciz	"pulseIn"               @ External Name
+	.long	27475                   @ DIE offset
+	.asciz	"std::vector<int, std::allocator<int> >::operator[]" @ External Name
+	.long	27678                   @ DIE offset
+	.byte	0                       @ External Name
+	.long	14982                   @ DIE offset
+	.asciz	"std::__debug"          @ External Name
+	.long	21530                   @ DIE offset
+	.asciz	"gRescale"              @ External Name
+	.long	19068                   @ DIE offset
+	.asciz	"scope"                 @ External Name
+	.long	24464                   @ DIE offset
+	.asciz	"std"                   @ External Name
+	.long	27347                   @ DIE offset
+	.asciz	"pinMode"               @ External Name
+	.long	27238                   @ DIE offset
+	.asciz	"digitalWriteOnce"      @ External Name
+	.long	27646                   @ DIE offset
+	.asciz	"std::vector<int, std::allocator<int> >::vector" @ External Name
+	.long	14054                   @ DIE offset
+	.asciz	"std::__cxx11"          @ External Name
+	.long	21510                   @ DIE offset
+	.asciz	"gMinPulseLength"       @ External Name
+	.long	27421                   @ DIE offset
+	.asciz	"digitalRead"           @ External Name
+	.long	27580                   @ DIE offset
+	.asciz	"__cxx_global_var_init" @ External Name
+	.long	21664                   @ DIE offset
+	.asciz	"render::count"         @ External Name
+	.long	21490                   @ DIE offset
+	.asciz	"gTriggerInterval"      @ External Name
+	.long	14989                   @ DIE offset
+	.asciz	"std::__exception_ptr"  @ External Name
+	.long	21570                   @ DIE offset
+	.asciz	"gEchoDigitalInPin"     @ External Name
+	.long	21610                   @ DIE offset
+	.asciz	"gPrintfCount"          @ External Name
+	.long	21590                   @ DIE offset
+	.asciz	"gTriggerCount"         @ External Name
+	.long	21627                   @ DIE offset
+	.asciz	"render"                @ External Name
+	.long	27617                   @ DIE offset
+	.asciz	"std::_Vector_base<int, std::allocator<int> >::_Vector_base" @ External Name
+	.long	27512                   @ DIE offset
+	.asciz	"cleanup"               @ External Name
+	.long	23291                   @ DIE offset
+	.asciz	"__gnu_debug"           @ External Name
+	.long	27588                   @ DIE offset
+	.asciz	"std::_Vector_base<int, std::allocator<int> >::_Vector_impl::_Vector_impl" @ External Name
+	.long	27186                   @ DIE offset
+	.asciz	"setup"                 @ External Name
+	.long	27556                   @ DIE offset
+	.asciz	"PulseIn::PulseIn"      @ External Name
+	.long	21550                   @ DIE offset
+	.asciz	"gTrigDigitalOutPin"    @ External Name
+	.long	16496                   @ DIE offset
+	.asciz	"__gnu_cxx"             @ External Name
+	.long	27670                   @ DIE offset
+	.asciz	"__cxx_global_var_init.1" @ External Name
+	.long	27300                   @ DIE offset
+	.asciz	"PulseIn::hasPulsed"    @ External Name
+	.long	21644                   @ DIE offset
+	.asciz	"render::distance"      @ External Name
+	.long	0                       @ End Mark
+.LpubNames_end0:
+	.section	.debug_pubtypes,"",%progbits
+	.long	.LpubTypes_end0-.LpubTypes_begin0 @ Length of Public Types Info
+.LpubTypes_begin0:
+	.short	2                       @ DWARF Version
+	.long	.Lcu_begin0             @ Offset of Compilation Unit Info
+	.long	27784                   @ Compilation Unit Length
+	.long	25650                   @ DIE offset
+	.asciz	"intmax_t"              @ External Name
+	.long	7675                    @ DIE offset
+	.asciz	"std::__add_lvalue_reference_helper<AuxTaskRT, true>" @ External Name
+	.long	18432                   @ DIE offset
+	.asciz	"bool"                  @ External Name
+	.long	3010                    @ DIE offset
+	.asciz	"std::size_t"           @ External Name
+	.long	21286                   @ DIE offset
+	.asciz	"_Const_Base_ptr"       @ External Name
+	.long	6407                    @ DIE offset
+	.asciz	"std::tuple<AuxTaskRT *, std::default_delete<AuxTaskRT> >" @ External Name
+	.long	22747                   @ DIE offset
+	.asciz	"long unsigned int"     @ External Name
+	.long	22104                   @ DIE offset
+	.asciz	"long int"              @ External Name
+	.long	25628                   @ DIE offset
+	.asciz	"int_least32_t"         @ External Name
+	.long	2999                    @ DIE offset
+	.asciz	"std::__allocator_base<int>" @ External Name
+	.long	5562                    @ DIE offset
+	.asciz	"std::allocator_traits<std::allocator<float> >" @ External Name
+	.long	17859                   @ DIE offset
+	.asciz	"__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<const std::__cxx11::basic_string<wchar_t>, float> > >" @ External Name
+	.long	6560                    @ DIE offset
+	.asciz	"std::_Tuple_impl<0, AuxTaskRT *, std::default_delete<AuxTaskRT> >" @ External Name
+	.long	14263                   @ DIE offset
+	.asciz	"std::pair<std::_Rb_tree_node_base *, std::_Rb_tree_node_base *>" @ External Name
+	.long	22279                   @ DIE offset
+	.asciz	"__compar_fn_t"         @ External Name
+	.long	13878                   @ DIE offset
+	.asciz	"std::allocator<std::_Rb_tree_node<std::pair<const std::__cxx11::basic_string<wchar_t>, float> > >" @ External Name
+	.long	25551                   @ DIE offset
+	.asciz	"int64_t"               @ External Name
+	.long	26093                   @ DIE offset
+	.asciz	"FILE"                  @ External Name
+	.long	8249                    @ DIE offset
+	.asciz	"std::tuple<WSServer *, std::default_delete<WSServer> >" @ External Name
+	.long	7633                    @ DIE offset
+	.asciz	"std::remove_reference<std::default_delete<AuxTaskRT> >" @ External Name
+	.long	22843                   @ DIE offset
+	.asciz	"lldiv_t"               @ External Name
+	.long	17443                   @ DIE offset
+	.asciz	"__gnu_cxx::__alloc_traits<std::allocator<std::pair<const std::__cxx11::basic_string<wchar_t>, float> > >" @ External Name
+	.long	3047                    @ DIE offset
+	.asciz	"std::integral_constant<bool, true>" @ External Name
+	.long	23060                   @ DIE offset
+	.asciz	"long double"           @ External Name
+	.long	14067                   @ DIE offset
+	.asciz	"std::__cxx11::wstring" @ External Name
+	.long	25661                   @ DIE offset
+	.asciz	"intptr_t"              @ External Name
+	.long	23501                   @ DIE offset
+	.asciz	"_IO_FILE"              @ External Name
+	.long	8402                    @ DIE offset
+	.asciz	"std::_Tuple_impl<0, WSServer *, std::default_delete<WSServer> >" @ External Name
+	.long	3130                    @ DIE offset
+	.asciz	"std::integral_constant<bool, false>" @ External Name
+	.long	24444                   @ DIE offset
+	.asciz	"__gnuc_va_list"        @ External Name
+	.long	14456                   @ DIE offset
+	.asciz	"std::conditional<true, const std::pair<std::_Rb_tree_node_base *, std::_Rb_tree_node_base *> &, const std::__wrap_nonesuch &>" @ External Name
+	.long	15333                   @ DIE offset
+	.asciz	"std::ptrdiff_t"        @ External Name
+	.long	25723                   @ DIE offset
+	.asciz	"uint_fast32_t"         @ External Name
+	.long	357                     @ DIE offset
+	.asciz	"std::vector<int, std::allocator<int> >" @ External Name
+	.long	18365                   @ DIE offset
+	.asciz	"unsigned int"          @ External Name
+	.long	343                     @ DIE offset
+	.asciz	"int"                   @ External Name
+	.long	25584                   @ DIE offset
+	.asciz	"int_fast32_t"          @ External Name
+	.long	2717                    @ DIE offset
+	.asciz	"std::allocator_traits<std::allocator<int> >" @ External Name
+	.long	25511                   @ DIE offset
+	.asciz	"int8_t"                @ External Name
+	.long	7335                    @ DIE offset
+	.asciz	"std::__uses_alloc0"    @ External Name
+	.long	19022                   @ DIE offset
+	.asciz	"uint32_t"              @ External Name
+	.long	19085                   @ DIE offset
+	.asciz	"Scope"                 @ External Name
+	.long	21473                   @ DIE offset
+	.asciz	"double"                @ External Name
+	.long	16718                   @ DIE offset
+	.asciz	"__gnu_cxx::new_allocator<int>" @ External Name
+	.long	25617                   @ DIE offset
+	.asciz	"int_least16_t"         @ External Name
+	.long	25778                   @ DIE offset
+	.asciz	"uint_least64_t"        @ External Name
+	.long	58                      @ DIE offset
+	.asciz	"PulseIn"               @ External Name
+	.long	20518                   @ DIE offset
+	.asciz	"ne10_fft_state_float32_t" @ External Name
+	.long	14079                   @ DIE offset
+	.asciz	"std::_Rb_tree_node_base" @ External Name
+	.long	7084                    @ DIE offset
+	.asciz	"std::_Head_base<1, std::default_delete<AuxTaskRT>, true>" @ External Name
+	.long	2927                    @ DIE offset
+	.asciz	"std::allocator<int>"   @ External Name
+	.long	23346                   @ DIE offset
+	.asciz	"mbstate_t"             @ External Name
+	.long	9455                    @ DIE offset
+	.asciz	"std::map<std::__cxx11::basic_string<wchar_t>, float, std::less<std::__cxx11::basic_string<wchar_t> >, std::allocator<std::pair<const std::__cxx11::basic_string<wchar_t>, float> > >" @ External Name
+	.long	20501                   @ DIE offset
+	.asciz	"ne10_fft_cfg_float32_t" @ External Name
+	.long	5870                    @ DIE offset
+	.asciz	"std::unique_ptr<AuxTaskRT, std::default_delete<AuxTaskRT> >" @ External Name
+	.long	9102                    @ DIE offset
+	.asciz	"std::default_delete<WSServer>" @ External Name
+	.long	24469                   @ DIE offset
+	.asciz	"std::__va_list"        @ External Name
+	.long	18995                   @ DIE offset
+	.asciz	"float"                 @ External Name
+	.long	16973                   @ DIE offset
+	.asciz	"__gnu_cxx::__alloc_traits<std::allocator<float> >" @ External Name
+	.long	18405                   @ DIE offset
+	.asciz	"const_void_pointer"    @ External Name
+	.long	23943                   @ DIE offset
+	.asciz	"__off64_t"             @ External Name
+	.long	25789                   @ DIE offset
+	.asciz	"uintmax_t"             @ External Name
+	.long	14562                   @ DIE offset
+	.asciz	"std::conditional<true, std::pair<std::_Rb_tree_node_base *, std::_Rb_tree_node_base *> &&, std::__wrap_nonesuch &&>" @ External Name
+	.long	25683                   @ DIE offset
+	.asciz	"unsigned char"         @ External Name
+	.long	13862                   @ DIE offset
+	.asciz	"std::__allocator_base<std::pair<const std::__cxx11::basic_string<wchar_t>, float> >" @ External Name
+	.long	2240                    @ DIE offset
+	.asciz	"std::_Vector_base<int, std::allocator<int> >" @ External Name
+	.long	7393                    @ DIE offset
+	.asciz	"std::__uses_alloc_base" @ External Name
+	.long	7664                    @ DIE offset
+	.asciz	"std::nullptr_t"        @ External Name
+	.long	22012                   @ DIE offset
+	.asciz	"PIN_VALUE"             @ External Name
+	.long	25540                   @ DIE offset
+	.asciz	"int32_t"               @ External Name
+	.long	25712                   @ DIE offset
+	.asciz	"uint_fast16_t"         @ External Name
+	.long	7401                    @ DIE offset
+	.asciz	"std::_Head_base<0, AuxTaskRT *, false>" @ External Name
+	.long	14512                   @ DIE offset
+	.asciz	"std::conditional<false, const std::pair<std::_Rb_tree_node_base *, std::_Rb_tree_node_base *> &, const std::__wrap_nonesuch &>" @ External Name
+	.long	20488                   @ DIE offset
+	.asciz	"ne10_fft_cpx_float32_t" @ External Name
+	.long	25672                   @ DIE offset
+	.asciz	"uint8_t"               @ External Name
+	.long	23894                   @ DIE offset
+	.asciz	"__off_t"               @ External Name
+	.long	25562                   @ DIE offset
+	.asciz	"int_fast8_t"           @ External Name
+	.long	26104                   @ DIE offset
+	.asciz	"fpos_t"                @ External Name
+	.long	21274                   @ DIE offset
+	.asciz	"_Base_ptr"             @ External Name
+	.long	25573                   @ DIE offset
+	.asciz	"int_fast16_t"          @ External Name
+	.long	23438                   @ DIE offset
+	.asciz	"wint_t"                @ External Name
+	.long	7260                    @ DIE offset
+	.asciz	"std::default_delete<AuxTaskRT>" @ External Name
+	.long	5085                    @ DIE offset
+	.asciz	"std::_Vector_base<float, std::allocator<float> >" @ External Name
+	.long	25690                   @ DIE offset
+	.asciz	"uint16_t"              @ External Name
+	.long	21212                   @ DIE offset
+	.asciz	"size_type"             @ External Name
+	.long	20742                   @ DIE offset
+	.asciz	"decltype(nullptr)"     @ External Name
+	.long	8926                    @ DIE offset
+	.asciz	"std::_Head_base<1, std::default_delete<WSServer>, true>" @ External Name
+	.long	9337                    @ DIE offset
+	.asciz	"std::conditional<false, std::default_delete<WSServer>, const std::default_delete<WSServer> &>" @ External Name
+	.long	3036                    @ DIE offset
+	.asciz	"std::true_type"        @ External Name
+	.long	9155                    @ DIE offset
+	.asciz	"std::_Head_base<0, WSServer *, false>" @ External Name
+	.long	9387                    @ DIE offset
+	.asciz	"std::remove_reference<std::default_delete<WSServer> >" @ External Name
+	.long	5844                    @ DIE offset
+	.asciz	"std::__allocator_base<float>" @ External Name
+	.long	25800                   @ DIE offset
+	.asciz	"uintptr_t"             @ External Name
+	.long	25533                   @ DIE offset
+	.asciz	"short"                 @ External Name
+	.long	25767                   @ DIE offset
+	.asciz	"uint_least32_t"        @ External Name
+	.long	13587                   @ DIE offset
+	.asciz	"std::allocator_traits<std::allocator<std::pair<const std::__cxx11::basic_string<wchar_t>, float> > >" @ External Name
+	.long	18650                   @ DIE offset
+	.asciz	"BelaContext"           @ External Name
+	.long	23490                   @ DIE offset
+	.asciz	"__FILE"                @ External Name
+	.long	14242                   @ DIE offset
+	.asciz	"std::_Rb_tree_color"   @ External Name
+	.long	17614                   @ DIE offset
+	.asciz	"__gnu_cxx::new_allocator<std::pair<const std::__cxx11::basic_string<wchar_t>, float> >" @ External Name
+	.long	23357                   @ DIE offset
+	.asciz	"__mbstate_t"           @ External Name
+	.long	9418                    @ DIE offset
+	.asciz	"std::__add_lvalue_reference_helper<WSServer, true>" @ External Name
+	.long	7712                    @ DIE offset
+	.asciz	"std::unique_ptr<WSServer, std::default_delete<WSServer> >" @ External Name
+	.long	18104                   @ DIE offset
+	.asciz	"__gnu_cxx::_Lock_policy" @ External Name
+	.long	24455                   @ DIE offset
+	.asciz	"__builtin_va_list"     @ External Name
+	.long	6853                    @ DIE offset
+	.asciz	"std::_Tuple_impl<1, std::default_delete<AuxTaskRT> >" @ External Name
+	.long	14018                   @ DIE offset
+	.asciz	"std::binary_function<std::__cxx11::basic_string<wchar_t>, std::__cxx11::basic_string<wchar_t>, bool>" @ External Name
+	.long	13790                   @ DIE offset
+	.asciz	"std::allocator<std::pair<const std::__cxx11::basic_string<wchar_t>, float> >" @ External Name
+	.long	25639                   @ DIE offset
+	.asciz	"int_least64_t"         @ External Name
+	.long	3119                    @ DIE offset
+	.asciz	"std::false_type"       @ External Name
+	.long	22064                   @ DIE offset
+	.asciz	"ldiv_t"                @ External Name
+	.long	22529                   @ DIE offset
+	.asciz	"wchar_t"               @ External Name
+	.long	10941                   @ DIE offset
+	.asciz	"std::_Rb_tree<std::__cxx11::basic_string<wchar_t>, std::pair<const std::__cxx11::basic_string<wchar_t>, float>, std::_Select1st<std::pair<const std::__cxx11::basic_string<wchar_t>, float> >, std::less<std::__cxx11::basic_string<wchar_t> >, std::allocator<std::pair<const std::__cxx11::basic_string<wchar_t>, float> > >" @ External Name
+	.long	13961                   @ DIE offset
+	.asciz	"std::less<std::__cxx11::basic_string<wchar_t> >" @ External Name
+	.long	22268                   @ DIE offset
+	.asciz	"size_t"                @ External Name
+	.long	23936                   @ DIE offset
+	.asciz	"_IO_lock_t"            @ External Name
+	.long	25522                   @ DIE offset
+	.asciz	"int16_t"               @ External Name
+	.long	22051                   @ DIE offset
+	.asciz	"div_t"                 @ External Name
+	.long	23912                   @ DIE offset
+	.asciz	"signed char"           @ External Name
+	.long	14996                   @ DIE offset
+	.asciz	"std::__exception_ptr::exception_ptr" @ External Name
+	.long	25701                   @ DIE offset
+	.asciz	"uint_fast8_t"          @ External Name
+	.long	18590                   @ DIE offset
+	.asciz	"char"                  @ External Name
+	.long	3202                    @ DIE offset
+	.asciz	"std::vector<float, std::allocator<float> >" @ External Name
+	.long	13950                   @ DIE offset
+	.asciz	"std::__allocator_base<std::_Rb_tree_node<std::pair<const std::__cxx11::basic_string<wchar_t>, float> > >" @ External Name
+	.long	8695                    @ DIE offset
+	.asciz	"std::_Tuple_impl<1, std::default_delete<WSServer> >" @ External Name
+	.long	25745                   @ DIE offset
+	.asciz	"uint_least8_t"         @ External Name
+	.long	18633                   @ DIE offset
+	.asciz	"long long unsigned int" @ External Name
+	.long	17188                   @ DIE offset
+	.asciz	"__gnu_cxx::new_allocator<float>" @ External Name
+	.long	25734                   @ DIE offset
+	.asciz	"uint_fast64_t"         @ External Name
+	.long	7583                    @ DIE offset
+	.asciz	"std::conditional<false, std::default_delete<AuxTaskRT>, const std::default_delete<AuxTaskRT> &>" @ External Name
+	.long	7313                    @ DIE offset
+	.asciz	"std::allocator_arg_t"  @ External Name
+	.long	329                     @ DIE offset
+	.asciz	"__vtbl_ptr_type"       @ External Name
+	.long	22883                   @ DIE offset
+	.asciz	"long long int"         @ External Name
+	.long	16503                   @ DIE offset
+	.asciz	"__gnu_cxx::__alloc_traits<std::allocator<int> >" @ External Name
+	.long	5772                    @ DIE offset
+	.asciz	"std::allocator<float>" @ External Name
+	.long	25606                   @ DIE offset
+	.asciz	"int_least8_t"          @ External Name
+	.long	25756                   @ DIE offset
+	.asciz	"uint_least16_t"        @ External Name
+	.long	23905                   @ DIE offset
+	.asciz	"unsigned short"        @ External Name
+	.long	25595                   @ DIE offset
+	.asciz	"int_fast64_t"          @ External Name
+	.long	26115                   @ DIE offset
+	.asciz	"_G_fpos_t"             @ External Name
+	.long	23954                   @ DIE offset
+	.asciz	"__quad_t"              @ External Name
+	.long	18622                   @ DIE offset
+	.asciz	"uint64_t"              @ External Name
+	.long	0                       @ End Mark
+.LpubTypes_end0:
+	.cfi_sections .debug_frame
+
+	.globl	gTriggerInterval
+gTriggerInterval = .L_MergedGlobals
+	.size	gTriggerInterval, 4
+	.globl	gMinPulseLength
+gMinPulseLength = .L_MergedGlobals+4
+	.size	gMinPulseLength, 4
+	.globl	gRescale
+gRescale = .L_MergedGlobals+8
+	.size	gRescale, 4
+	.globl	gTrigDigitalOutPin
+gTrigDigitalOutPin = .L_MergedGlobals+12
+	.size	gTrigDigitalOutPin, 4
+	.globl	gEchoDigitalInPin
+gEchoDigitalInPin = .L_MergedGlobals+16
+	.size	gEchoDigitalInPin, 4
+	.globl	gTriggerCount
+gTriggerCount = .L_MergedGlobals+20
+	.size	gTriggerCount, 4
+	.globl	pulseIn
+pulseIn = .L_MergedGlobals+24
+	.size	pulseIn, 48
+_ZZ6renderE8distance = .L_MergedGlobals.2
+	.size	_ZZ6renderE8distance, 4
+_ZZ6renderE5count = .L_MergedGlobals.2+4
+	.size	_ZZ6renderE5count, 4
+	.ident	"clang version 3.9.1-9 (tags/RELEASE_391/rc2)"
+	.section	".note.GNU-stack","",%progbits
+	.eabi_attribute	30, 2	@ Tag_ABI_optimization_goals
+	.section	.debug_line,"",%progbits
+.Lline_table_start0:
diff --git a/ultrasonic-bela/render.cpp b/ultrasonic-bela/render.cpp
new file mode 100644
index 0000000..bda9e40
--- /dev/null
+++ b/ultrasonic-bela/render.cpp
@@ -0,0 +1,117 @@
+/*
+ ____  _____ _        _
+| __ )| ____| |      / \
+|  _ \|  _| | |     / _ \
+| |_) | |___| |___ / ___ \
+|____/|_____|_____/_/   \_\
+http://bela.io
+*/
+/**
+\example Sensors/ultrasonic-distance-sensor/render.cpp
+
+Measuring distances with ultrasonic sensors
+---------------------------
+
+Ultrasonic sensors can detect distances to a high degree of accuracy, even
+in many conditions where infrared sensors would not be suitable (e.g.: when natural
+light is a problem.
+For this example we used the [HC-SR04](https://cdn.sparkfun.com/datasheets/Sensors/Proximity/HCSR04.pdf).
+
+After it receives a short pulse (> 10us) at its TRIGGER input, the module outputs from the
+ECHO output a pulse whose length is proportional to the distance of the object that is in
+front of the sensor. When a trigger is received the module emits an ultrasonic wave
+from its emitter and then receives the signal back in its receiver, measuring the time
+difference between the two.
+
+According to the datasheet of this sensor, the following relation stands:
+	time[us] / 58 = distance[cm]
+The dataseheet recommends a minimum interval of 60ms between triggers, in order to be able to
+read the result appropriately.
+
+Bela sends out the TRIGGER event every 2646 samples(60ms) and then waits for a pulse to come
+appear on the ECHO pin. The `PulseIn` class is used here to monitor a digital pin for an HIGH
+pulse and once the pulse termiantes, it returnes the duration ( in samples ) of the pulse.
+
+The module requires a 5V power supply and its digital inputs and outputs are low at 0V and
+HIGH at 5V. Check the pin diagram in the IDE to see where to find the pins you need.
+It is important that the 5V ECHO output from the module *is not* connected
+straight to Bela's digital inputs, as that would most likely kill the Bela board
+(digital I/Os are 3.3V tolerant). You will need to use a passive resistor divider from the
+HC-SR04's ECHO output to scale down the voltage before connecting it to the digital input
+on `gEchoDigitalInPin`.
+
+On the scope you should see the pulses coming in from the trigger and the distance. The closer
+the object, the shorter the pulses. Make sure you set the trigger to "channel 1" (the pulse) and
+you set the horizontal zoom appropriately.
+*/
+
+#include <Bela.h>
+#include <stdlib.h>
+#include <libraries/Scope/Scope.h>
+#include <libraries/PulseIn/PulseIn.h>
+
+PulseIn pulseIn;
+Scope scope;
+int gTriggerInterval = 2646; // how often to send out a trigger. 2646 samples are 60ms
+int gMinPulseLength = 7; //to avoid spurious readings
+float gRescale = 58; // taken from the datasheet
+unsigned int gTrigDigitalOutPin = 7; //channel to be connected to the module's TRIGGER pin - check the pin diagram in the IDE
+unsigned int gEchoDigitalInPin = 7; //channel to be connected to the modules's ECHO pin via resistor divider. Check the pin diagram in the IDE
+int gTriggerCount = 0;
+int gPrintfCount = 0;
+
+bool setup(BelaContext *context, void *userData)
+{
+	// Set the mode of digital pins
+	// pinMode(context, 0, gTrigDigitalOutPin, OUTPUT); // writing to TRIGGER pin
+	// pinMode(context, 0, gEchoDigitalInPin, INPUT); // reading from ECHO pin
+	pulseIn.setup(context, gEchoDigitalInPin, HIGH); //detect HIGH pulses on the ECHO pin
+	scope.setup(2, context->digitalSampleRate);
+	return true;
+}
+
+void render(BelaContext *context, void *userData)
+{
+	for(unsigned int n = 0; n < context->digitalFrames; ++n){
+		gTriggerCount++;
+		bool state;
+		if(gTriggerCount == gTriggerInterval){
+			pinMode(context, 0, gTrigDigitalOutPin, OUTPUT); // writing to TRIGGER pin
+			state = LOW;
+			digitalWriteOnce(context, n, gTrigDigitalOutPin, state);
+		} else if (gTriggerCount == gTriggerInterval+1) {
+			pinMode(context, 0, gTrigDigitalOutPin, OUTPUT); // writing to TRIGGER pin
+			state = HIGH;
+			digitalWriteOnce(context, n, gTrigDigitalOutPin, state);
+		} else if (gTriggerCount == gTriggerInterval+2) {
+			gTriggerCount = 0;
+			state = LOW;
+			digitalWriteOnce(context, n, gTrigDigitalOutPin, state);
+		} else {
+			pinMode(context, 0, gTrigDigitalOutPin, INPUT); // writing to TRIGGER pin
+		}
+
+		auto dRead = digitalRead(context, n, gEchoDigitalInPin);
+		int pulseLength = pulseIn.hasPulsed(context, n); // will return the pulse duration(in samples) if a pulse just ended
+
+		float duration = 1e6 * pulseLength / context->digitalSampleRate; // pulse duration in microseconds
+
+		static float distance = 0;
+		if(pulseLength >= gMinPulseLength){
+			// rescaling according to the datasheet
+			distance = duration / gRescale;
+		}
+		static int count = 0;
+		if(count > 5000){ // we do not want to print the value every time we read it
+			rt_printf("pulseLength: %d, distance: %fcm\n", pulseLength, distance);
+			count = 0;
+		}
+		++count;
+		// Logging to the scope the pulse inputs (gEchoDigitalInPin) and the distance
+		scope.log(dRead * 0.5, distance/100);
+	}
+}
+
+void cleanup(BelaContext *context, void *userData)
+{
+}
diff --git a/ultrasonic-bela/settings.json b/ultrasonic-bela/settings.json
new file mode 100644
index 0000000..9641d89
--- /dev/null
+++ b/ultrasonic-bela/settings.json
@@ -0,0 +1,34 @@
+{
+  "fileName": "render.cpp",
+  "CLArgs": {
+    "-p": "16",
+    "-C": "8",
+    "-B": "16",
+    "-N": "1",
+    "-G": "1",
+    "-M": "0",
+    "-H0,": "-6",
+    "-H1,": "-6",
+    "-H2,": "-6",
+    "-H3,": "-6",
+    "-H4,": "-6",
+    "-H5,": "-6",
+    "-H6,": "-6",
+    "-H7,": "-6",
+    "-I0,": "10",
+    "-I1,": "10",
+    "-I2,": "10",
+    "-I3,": "10",
+    "-I4,": "10",
+    "-I5,": "10",
+    "-I6,": "10",
+    "-I7,": "10",
+    "user": "",
+    "make": "",
+    "-X": "0",
+    "audioExpander": "0",
+    "-Y": "",
+    "-Z": "",
+    "--disable-led": "0"
+  }
+}

--
Gitblit v1.9.1