]> git.wh0rd.org Git - ICEs.git/blob - 212337/Command.ii
initial import
[ICEs.git] / 212337 / Command.ii
1 # 1 "Command.cc"
2 # 1 "<built-in>"
3 #define __STDC__ 1
4 #define __cplusplus 1
5 #define __STDC_HOSTED__ 1
6 #define __GNUC__ 4
7 #define __GNUG__ 4
8 #define __GNUC_MINOR__ 2
9 #define __GNUC_PATCHLEVEL__ 3
10 #define __SIZE_TYPE__ long unsigned int
11 #define __PTRDIFF_TYPE__ long int
12 #define __WCHAR_TYPE__ int
13 #define __WINT_TYPE__ unsigned int
14 #define __INTMAX_TYPE__ long int
15 #define __UINTMAX_TYPE__ long unsigned int
16 #define __GXX_WEAK__ 1
17 #define __DEPRECATED 1
18 #define __EXCEPTIONS 1
19 #define __GXX_ABI_VERSION 1002
20 #define __SCHAR_MAX__ 127
21 #define __SHRT_MAX__ 32767
22 #define __INT_MAX__ 2147483647
23 #define __LONG_MAX__ 9223372036854775807L
24 #define __LONG_LONG_MAX__ 9223372036854775807LL
25 #define __WCHAR_MAX__ 2147483647
26 #define __CHAR_BIT__ 8
27 #define __INTMAX_MAX__ 9223372036854775807L
28 #define __FLT_EVAL_METHOD__ 0
29 #define __DEC_EVAL_METHOD__ 2
30 #define __FLT_RADIX__ 2
31 #define __FLT_MANT_DIG__ 24
32 #define __FLT_DIG__ 6
33 #define __FLT_MIN_EXP__ (-125)
34 #define __FLT_MIN_10_EXP__ (-37)
35 #define __FLT_MAX_EXP__ 128
36 #define __FLT_MAX_10_EXP__ 38
37 #define __FLT_MAX__ 3.40282347e+38F
38 #define __FLT_MIN__ 1.17549435e-38F
39 #define __FLT_EPSILON__ 1.19209290e-7F
40 #define __FLT_DENORM_MIN__ 1.40129846e-45F
41 #define __FLT_HAS_DENORM__ 1
42 #define __FLT_HAS_INFINITY__ 1
43 #define __FLT_HAS_QUIET_NAN__ 1
44 #define __DBL_MANT_DIG__ 53
45 #define __DBL_DIG__ 15
46 #define __DBL_MIN_EXP__ (-1021)
47 #define __DBL_MIN_10_EXP__ (-307)
48 #define __DBL_MAX_EXP__ 1024
49 #define __DBL_MAX_10_EXP__ 308
50 #define __DBL_MAX__ 1.7976931348623157e+308
51 #define __DBL_MIN__ 2.2250738585072014e-308
52 #define __DBL_EPSILON__ 2.2204460492503131e-16
53 #define __DBL_DENORM_MIN__ 4.9406564584124654e-324
54 #define __DBL_HAS_DENORM__ 1
55 #define __DBL_HAS_INFINITY__ 1
56 #define __DBL_HAS_QUIET_NAN__ 1
57 #define __LDBL_MANT_DIG__ 64
58 #define __LDBL_DIG__ 18
59 #define __LDBL_MIN_EXP__ (-16381)
60 #define __LDBL_MIN_10_EXP__ (-4931)
61 #define __LDBL_MAX_EXP__ 16384
62 #define __LDBL_MAX_10_EXP__ 4932
63 #define __DECIMAL_DIG__ 21
64 #define __LDBL_MAX__ 1.18973149535723176502e+4932L
65 #define __LDBL_MIN__ 3.36210314311209350626e-4932L
66 #define __LDBL_EPSILON__ 1.08420217248550443401e-19L
67 #define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L
68 #define __LDBL_HAS_DENORM__ 1
69 #define __LDBL_HAS_INFINITY__ 1
70 #define __LDBL_HAS_QUIET_NAN__ 1
71 #define __DEC32_MANT_DIG__ 7
72 #define __DEC32_MIN_EXP__ (-95)
73 #define __DEC32_MAX_EXP__ 96
74 #define __DEC32_MIN__ 1E-95DF
75 #define __DEC32_MAX__ 9.999999E96DF
76 #define __DEC32_EPSILON__ 1E-6DF
77 #define __DEC32_DEN__ 0.000001E-95DF
78 #define __DEC64_MANT_DIG__ 16
79 #define __DEC64_MIN_EXP__ (-383)
80 #define __DEC64_MAX_EXP__ 384
81 #define __DEC64_MIN__ 1E-383DD
82 #define __DEC64_MAX__ 9.999999999999999E384DD
83 #define __DEC64_EPSILON__ 1E-15DD
84 #define __DEC64_DEN__ 0.000000000000001E-383DD
85 #define __DEC128_MANT_DIG__ 34
86 #define __DEC128_MIN_EXP__ (-6143)
87 #define __DEC128_MAX_EXP__ 6144
88 #define __DEC128_MIN__ 1E-6143DL
89 #define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL
90 #define __DEC128_EPSILON__ 1E-33DL
91 #define __DEC128_DEN__ 0.000000000000000000000000000000001E-6143DL
92 #define __REGISTER_PREFIX__ 
93 #define __USER_LABEL_PREFIX__ 
94 #define __VERSION__ "4.2.3 (Gentoo 4.2.3 p1.0)"
95 #define __GNUC_GNU_INLINE__ 1
96 #define _LP64 1
97 #define __LP64__ 1
98 #define __OPTIMIZE__ 1
99 #define __FINITE_MATH_ONLY__ 0
100 #define __amd64 1
101 #define __amd64__ 1
102 #define __x86_64 1
103 #define __x86_64__ 1
104 #define __tune_k8__ 1
105 #define __MMX__ 1
106 #define __3dNOW__ 1
107 #define __3dNOW_A__ 1
108 #define __SSE__ 1
109 #define __SSE2__ 1
110 #define __SSE3__ 1
111 #define __SSE_MATH__ 1
112 #define __SSE2_MATH__ 1
113 #define __k8 1
114 #define __k8__ 1
115 #define __gnu_linux__ 1
116 #define __linux 1
117 #define __linux__ 1
118 #define linux 1
119 #define __unix 1
120 #define __unix__ 1
121 #define unix 1
122 #define __ELF__ 1
123 # 1 "<command-line>"
124 #define _GNU_SOURCE 1
125 #define HAVE_CONFIG_H 1
126 #define LOCALEDIR "/usr/share/locale"
127 #define HAVE_CONFIG_H 1
128 # 1 "Command.cc"
129 # 35 "Command.cc"
130 # 1 "Command.h" 1
131 # 36 "Command.h"
132 #define _D_COMMAND_H_ 
133
134 # 1 "common.h" 1
135 # 36 "common.h"
136 #define _D_COMMON_H_ 
137
138
139 # 1 "../config.h" 1
140 # 19 "../config.h"
141 #define ENABLE_MESSAGE_DIGEST 1
142 # 29 "../config.h"
143 #define ENABLE_SSL 1
144
145
146 #define HAVE_ALLOCA 1
147
148
149
150 #define HAVE_ALLOCA_H 1
151
152
153 #define HAVE_ARGZ_COUNT 1
154
155
156 #define HAVE_ARGZ_H 1
157
158
159 #define HAVE_ARGZ_NEXT 1
160
161
162 #define HAVE_ARGZ_STRINGIFY 1
163
164
165 #define HAVE_ARPA_INET_H 1
166
167
168 #define HAVE_ASPRINTF 1
169
170
171 #define HAVE_BASENAME 1
172
173
174 #define HAVE_BUILTIN_EXPECT 1
175 # 71 "../config.h"
176 #define HAVE_DAEMON 1
177
178
179
180
181
182
183
184 #define HAVE_DECL_FEOF_UNLOCKED 1
185
186
187
188 #define HAVE_DECL_FGETS_UNLOCKED 1
189
190
191
192 #define HAVE_DECL_GETC_UNLOCKED 1
193
194
195
196 #define HAVE_DECL__SNPRINTF 0
197
198
199
200 #define HAVE_DECL__SNWPRINTF 0
201
202
203
204
205
206 #define HAVE_EVP_DIGESTINIT_EX 1
207
208
209 #define HAVE_EVP_SHA256 1
210
211
212 #define HAVE_FCNTL_H 1
213
214
215 #define HAVE_FTRUNCATE 1
216
217
218 #define HAVE_FWPRINTF 1
219
220
221 #define HAVE_GAI_STRERROR 1
222
223
224 #define HAVE_GETADDRINFO 1
225
226
227 #define HAVE_GETCWD 1
228
229
230 #define HAVE_GETEGID 1
231
232
233 #define HAVE_GETEUID 1
234
235
236 #define HAVE_GETGID 1
237
238
239 #define HAVE_GETPAGESIZE 1
240
241
242
243
244
245 #define HAVE_GETTIMEOFDAY 1
246
247
248 #define HAVE_GETUID 1
249
250
251 #define HAVE_ICONV 1
252
253
254 #define HAVE_INET_ATON 1
255
256
257 #define HAVE_INET_NTOA 1
258
259
260 #define HAVE_INTMAX_T 1
261
262
263 #define HAVE_INTTYPES_H 1
264
265
266
267 #define HAVE_INTTYPES_H_WITH_UINTMAX 1
268
269
270
271
272
273 #define HAVE_LANGINFO_CODESET 1
274
275
276 #define HAVE_LANGINFO_H 1
277
278
279 #define HAVE_LC_MESSAGES 1
280 # 192 "../config.h"
281 #define HAVE_LIBGEN_H 1
282
283
284
285
286
287 #define HAVE_LIBINTL_H 1
288
289
290 #define HAVE_LIBSSL 1
291
292
293 #define HAVE_LIBXML2 1
294
295
296 #define HAVE_LIMITS_H 1
297
298
299 #define HAVE_LOCALE_H 1
300
301
302 #define HAVE_LOCALTIME_R 1
303
304
305 #define HAVE_LONG_LONG_INT 1
306
307
308
309 #define HAVE_MALLOC 1
310
311
312 #define HAVE_MALLOC_H 1
313
314
315 #define HAVE_MEMCHR 1
316
317
318 #define HAVE_MEMORY_H 1
319
320
321 #define HAVE_MEMPCPY 1
322
323
324 #define HAVE_MEMSET 1
325
326
327 #define HAVE_MKDIR 1
328
329
330 #define HAVE_MMAP 1
331
332
333 #define HAVE_MUNMAP 1
334
335
336 #define HAVE_NETDB_H 1
337
338
339 #define HAVE_NETINET_IN_H 1
340
341
342 #define HAVE_NL_LANGINFO 1
343
344
345
346 #define HAVE_NL_LOCALE_NAME 1
347
348
349
350
351
352 #define HAVE_POSIX_MEMALIGN 1
353
354
355 #define HAVE_POSIX_PRINTF 1
356
357
358 #define HAVE_PTHREAD_MUTEX_RECURSIVE 1
359
360
361 #define HAVE_PTHREAD_RWLOCK 1
362
363
364 #define HAVE_PUTENV 1
365
366
367 #define HAVE_RANDOM 1
368
369
370
371 #define HAVE_REALLOC 1
372
373
374 #define HAVE_RMDIR 1
375
376
377 #define HAVE_SELECT 1
378
379
380 #define HAVE_SETENV 1
381
382
383 #define HAVE_SETLOCALE 1
384
385
386 #define HAVE_SIGACTION 1
387
388
389 #define HAVE_SLEEP 1
390
391
392 #define HAVE_SNPRINTF 1
393
394
395 #define HAVE_SOCKET 1
396
397
398 #define HAVE_SRANDOM 1
399
400
401
402
403
404
405 #define HAVE_STDBOOL_H 1
406
407
408 #define HAVE_STDDEF_H 1
409
410
411 #define HAVE_STDINT_H 1
412
413
414
415 #define HAVE_STDINT_H_WITH_UINTMAX 1
416
417
418 #define HAVE_STDIO_EXT_H 1
419
420
421 #define HAVE_STDLIB_H 1
422
423
424 #define HAVE_STPCPY 1
425
426
427 #define HAVE_STRCASECMP 1
428
429
430 #define HAVE_STRCHR 1
431
432
433 #define HAVE_STRCSPN 1
434
435
436 #define HAVE_STRDUP 1
437
438
439 #define HAVE_STRERROR 1
440
441
442 #define HAVE_STRINGS_H 1
443
444
445 #define HAVE_STRING_H 1
446
447
448 #define HAVE_STRPTIME 1
449
450
451 #define HAVE_STRSTR 1
452
453
454 #define HAVE_STRTOL 1
455
456
457 #define HAVE_STRTOUL 1
458
459
460 #define HAVE_SYS_PARAM_H 1
461
462
463 #define HAVE_SYS_SELECT_H 1
464
465
466 #define HAVE_SYS_SOCKET_H 1
467
468
469 #define HAVE_SYS_STAT_H 1
470
471
472 #define HAVE_SYS_TIME_H 1
473
474
475 #define HAVE_SYS_TYPES_H 1
476
477
478 #define HAVE_TIMEGM 1
479
480
481 #define HAVE_TSEARCH 1
482
483
484 #define HAVE_UINTMAX_T 1
485
486
487 #define HAVE_UNISTD_H 1
488
489
490 #define HAVE_UNSETENV 1
491
492
493 #define HAVE_UNSIGNED_LONG_LONG_INT 1
494
495
496 #define HAVE_USLEEP 1
497
498
499
500 #define HAVE_VISIBILITY 1
501
502
503 #define HAVE_VPRINTF 1
504
505
506 #define HAVE_WCHAR_T 1
507
508
509 #define HAVE_WCSLEN 1
510
511
512
513
514
515 #define HAVE_WINT_T 1
516 # 435 "../config.h"
517 #define HAVE___ARGZ_COUNT 1
518
519
520 #define HAVE___ARGZ_NEXT 1
521
522
523 #define HAVE___ARGZ_STRINGIFY 1
524
525
526 #define HAVE___FSETLOCKING 1
527
528
529 #define ICONV_CONST 
530
531
532 #define INTDIV0_RAISES_SIGFPE 1
533
534
535
536 #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1
537
538
539 #define PACKAGE "aria2c"
540
541
542 #define PACKAGE_BUGREPORT "t-tujikawa@users.sourceforge.net"
543
544
545 #define PACKAGE_NAME "aria2c"
546
547
548 #define PACKAGE_STRING "aria2c 0.13.0"
549
550
551 #define PACKAGE_TARNAME "aria2c"
552
553
554 #define PACKAGE_VERSION "0.13.0"
555 # 481 "../config.h"
556 #define SELECT_TYPE_ARG1 int
557
558
559 #define SELECT_TYPE_ARG234 (fd_set *)
560
561
562 #define SELECT_TYPE_ARG5 (struct timeval *)
563
564
565
566 #define SIZE_MAX (((1UL << 63) - 1) * 2 + 1)
567 # 502 "../config.h"
568 #define STDC_HEADERS 1
569
570
571 #define TARGET "x86_64-pc-linux-gnu"
572
573
574 #define TIME_WITH_SYS_TIME 1
575
576
577
578
579
580 #define USE_POSIX_THREADS 1
581
582
583
584 #define USE_POSIX_THREADS_WEAK 1
585 # 538 "../config.h"
586 #define VERSION "0.13.0"
587 # 570 "../config.h"
588 #define __EXTENSIONS__ 1
589
590
591 #define _POSIX_PTHREAD_SEMANTICS 1
592
593
594 #define _TANDEM_SOURCE 1
595 # 610 "../config.h"
596 #define __libc_lock_t gl_lock_t
597 #define __libc_lock_define gl_lock_define
598 #define __libc_lock_define_initialized gl_lock_define_initialized
599 #define __libc_lock_init gl_lock_init
600 #define __libc_lock_lock gl_lock_lock
601 #define __libc_lock_unlock gl_lock_unlock
602 #define __libc_lock_recursive_t gl_recursive_lock_t
603 #define __libc_lock_define_recursive gl_recursive_lock_define
604 #define __libc_lock_define_initialized_recursive gl_recursive_lock_define_initialized
605 #define __libc_lock_init_recursive gl_recursive_lock_init
606 #define __libc_lock_lock_recursive gl_recursive_lock_lock
607 #define __libc_lock_unlock_recursive gl_recursive_lock_unlock
608 #define glthread_in_use libintl_thread_in_use
609 #define glthread_lock_init libintl_lock_init
610 #define glthread_lock_lock libintl_lock_lock
611 #define glthread_lock_unlock libintl_lock_unlock
612 #define glthread_lock_destroy libintl_lock_destroy
613 #define glthread_rwlock_init libintl_rwlock_init
614 #define glthread_rwlock_rdlock libintl_rwlock_rdlock
615 #define glthread_rwlock_wrlock libintl_rwlock_wrlock
616 #define glthread_rwlock_unlock libintl_rwlock_unlock
617 #define glthread_rwlock_destroy libintl_rwlock_destroy
618 #define glthread_recursive_lock_init libintl_recursive_lock_init
619 #define glthread_recursive_lock_lock libintl_recursive_lock_lock
620 #define glthread_recursive_lock_unlock libintl_recursive_lock_unlock
621 #define glthread_recursive_lock_destroy libintl_recursive_lock_destroy
622 #define glthread_once libintl_once
623 #define glthread_once_call libintl_once_call
624 #define glthread_once_singlethreaded libintl_once_singlethreaded
625 # 40 "common.h" 2
626 # 51 "common.h"
627 # 1 "../lib/gettext.h" 1
628 # 20 "../lib/gettext.h"
629 #define _LIBGETTEXT_H 1
630 # 45 "../lib/gettext.h"
631 #define gettext(Msgid) ((const char *) (Msgid))
632 #define dgettext(Domainname,Msgid) ((const char *) (Msgid))
633 #define dcgettext(Domainname,Msgid,Category) ((const char *) (Msgid))
634 #define ngettext(Msgid1,Msgid2,N) ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
635
636 #define dngettext(Domainname,Msgid1,Msgid2,N) ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
637
638 #define dcngettext(Domainname,Msgid1,Msgid2,N,Category) ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
639
640 #define textdomain(Domainname) ((const char *) (Domainname))
641 #define bindtextdomain(Domainname,Dirname) ((const char *) (Dirname))
642 #define bind_textdomain_codeset(Domainname,Codeset) ((const char *) (Codeset))
643 # 67 "../lib/gettext.h"
644 #define gettext_noop(String) String
645 # 52 "common.h" 2
646 #define _(String) gettext(String)
647
648
649 #define __STDC_LIMIT_MACROS 
650 # 39 "Command.h" 2
651 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/deque" 1 3
652 # 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/deque" 3
653 #define _GLIBCXX_DEQUE 1
654
655        
656 # 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/deque" 3
657
658 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/functexcept.h" 1 3
659 # 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/functexcept.h" 3
660 #define _FUNCTEXCEPT_H 1
661
662 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 1 3
663 # 38 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
664 #define _CXXCONFIG 1
665
666
667 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/os_defines.h" 1 3
668 # 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/os_defines.h" 3
669 #define _GLIBCXX_OS_DEFINES 1
670
671
672
673
674
675 #define __NO_CTYPE 1
676
677 # 1 "/usr/include/features.h" 1 3 4
678
679
680
681
682
683
684
685 # 1 "/usr/include/gentoo-multilib/amd64/features.h" 1 3 4
686 # 20 "/usr/include/gentoo-multilib/amd64/features.h" 3 4
687 #define _FEATURES_H 1
688 # 93 "/usr/include/gentoo-multilib/amd64/features.h" 3 4
689 #undef __USE_ISOC99
690 #undef __USE_ISOC95
691 #undef __USE_POSIX
692 #undef __USE_POSIX2
693 #undef __USE_POSIX199309
694 #undef __USE_POSIX199506
695 #undef __USE_XOPEN
696 #undef __USE_XOPEN_EXTENDED
697 #undef __USE_UNIX98
698 #undef __USE_XOPEN2K
699 #undef __USE_LARGEFILE
700 #undef __USE_LARGEFILE64
701 #undef __USE_FILE_OFFSET64
702 #undef __USE_BSD
703 #undef __USE_SVID
704 #undef __USE_MISC
705 #undef __USE_ATFILE
706 #undef __USE_GNU
707 #undef __USE_REENTRANT
708 #undef __USE_FORTIFY_LEVEL
709 #undef __FAVOR_BSD
710 #undef __KERNEL_STRICT_NAMES
711
712
713
714
715 #define __KERNEL_STRICT_NAMES 
716
717
718
719 #define __USE_ANSI 1
720 # 133 "/usr/include/gentoo-multilib/amd64/features.h" 3 4
721 #define __GNUC_PREREQ(maj,min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
722 # 150 "/usr/include/gentoo-multilib/amd64/features.h" 3 4
723 #undef _ISOC99_SOURCE
724 #define _ISOC99_SOURCE 1
725 #undef _POSIX_SOURCE
726 #define _POSIX_SOURCE 1
727 #undef _POSIX_C_SOURCE
728 #define _POSIX_C_SOURCE 200112L
729 #undef _XOPEN_SOURCE
730 #define _XOPEN_SOURCE 600
731 #undef _XOPEN_SOURCE_EXTENDED
732 #define _XOPEN_SOURCE_EXTENDED 1
733 #undef _LARGEFILE64_SOURCE
734 #define _LARGEFILE64_SOURCE 1
735 #undef _BSD_SOURCE
736 #define _BSD_SOURCE 1
737 #undef _SVID_SOURCE
738 #define _SVID_SOURCE 1
739 #undef _ATFILE_SOURCE
740 #define _ATFILE_SOURCE 1
741 # 186 "/usr/include/gentoo-multilib/amd64/features.h" 3 4
742 #define __USE_ISOC99 1
743
744
745
746
747
748 #define __USE_ISOC95 1
749 # 210 "/usr/include/gentoo-multilib/amd64/features.h" 3 4
750 #define __USE_POSIX 1
751
752
753
754 #define __USE_POSIX2 1
755
756
757
758 #define __USE_POSIX199309 1
759
760
761
762 #define __USE_POSIX199506 1
763
764
765
766 #define __USE_XOPEN2K 1
767
768
769
770 #define __USE_XOPEN 1
771
772 #define __USE_XOPEN_EXTENDED 1
773 #define __USE_UNIX98 1
774 #undef _LARGEFILE_SOURCE
775 #define _LARGEFILE_SOURCE 1
776
777 #define __USE_XOPEN2K 1
778 #undef __USE_ISOC99
779 #define __USE_ISOC99 1
780 # 249 "/usr/include/gentoo-multilib/amd64/features.h" 3 4
781 #define __USE_LARGEFILE 1
782
783
784
785 #define __USE_LARGEFILE64 1
786
787
788
789
790
791
792
793 #define __USE_MISC 1
794
795
796
797 #define __USE_BSD 1
798
799
800
801 #define __USE_SVID 1
802
803
804
805 #define __USE_ATFILE 1
806
807
808
809 #define __USE_GNU 1
810 # 292 "/usr/include/gentoo-multilib/amd64/features.h" 3 4
811 #define __USE_FORTIFY_LEVEL 0
812
813
814
815 #define __STDC_IEC_559__ 1
816 #define __STDC_IEC_559_COMPLEX__ 1
817
818
819 #define __STDC_ISO_10646__ 200009L
820
821
822
823
824
825
826
827 #undef __GNU_LIBRARY__
828 #define __GNU_LIBRARY__ 6
829
830
831
832 #define __GLIBC__ 2
833 #define __GLIBC_MINOR__ 7
834
835 #define __GLIBC_PREREQ(maj,min) ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min))
836
837
838
839
840
841
842
843 #define __GLIBC_HAVE_LONG_LONG 1
844
845
846
847
848
849 # 1 "/usr/include/sys/cdefs.h" 1 3 4
850
851
852
853
854
855
856
857 # 1 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 1 3 4
858 # 21 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
859 #define _SYS_CDEFS_H 1
860 # 36 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
861 #undef __P
862 #undef __PMT
863 # 51 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
864 #define __THROW throw ()
865 #define __NTH(fct) fct throw ()
866 # 74 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
867 #define __P(args) args
868 #define __PMT(args) args
869
870
871
872
873 #define __CONCAT(x,y) x ## y
874 #define __STRING(x) #x
875
876
877 #define __ptr_t void *
878 #define __long_double_t long double
879
880
881
882
883 #define __BEGIN_DECLS extern "C" {
884 #define __END_DECLS }
885 # 114 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
886 #define __BEGIN_NAMESPACE_STD 
887 #define __END_NAMESPACE_STD 
888 #define __USING_NAMESPACE_STD(name) 
889 #define __BEGIN_NAMESPACE_C99 
890 #define __END_NAMESPACE_C99 
891 #define __USING_NAMESPACE_C99(name) 
892
893
894
895
896
897 #define __bounded 
898 #define __unbounded 
899 #define __ptrvalue 
900
901
902
903
904 #define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)
905 #define __bos0(ptr) __builtin_object_size (ptr, 0)
906 # 142 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
907 #define __warndecl(name,msg) extern void name (void)
908 #define __warnattr(msg) 
909 #define __errordecl(name,msg) extern void name (void)
910
911
912
913
914
915 #define __flexarr []
916 # 177 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
917 #define __REDIRECT(name,proto,alias) name proto __asm__ (__ASMNAME (#alias))
918
919 #define __REDIRECT_NTH(name,proto,alias) name proto __THROW __asm__ (__ASMNAME (#alias))
920
921
922
923
924
925 #define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname)
926 #define __ASMNAME2(prefix,cname) __STRING (prefix) cname
927 # 207 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
928 #define __attribute_malloc__ __attribute__ ((__malloc__))
929 # 216 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
930 #define __attribute_pure__ __attribute__ ((__pure__))
931 # 225 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
932 #define __attribute_used__ __attribute__ ((__used__))
933 #define __attribute_noinline__ __attribute__ ((__noinline__))
934
935
936
937
938
939
940
941 #define __attribute_deprecated__ __attribute__ ((__deprecated__))
942 # 246 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
943 #define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x)))
944 # 256 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
945 #define __attribute_format_strfmon__(a,b) __attribute__ ((__format__ (__strfmon__, a, b)))
946 # 265 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
947 #define __nonnull(params) __attribute__ ((__nonnull__ params))
948
949
950
951
952
953
954
955 #define __attribute_warn_unused_result__ __attribute__ ((__warn_unused_result__))
956 # 282 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
957 #define __wur 
958
959
960
961
962 #define __always_inline __inline __attribute__ ((__always_inline__))
963 # 337 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
964 #define __restrict_arr 
965 # 348 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
966 # 1 "/usr/include/bits/wordsize.h" 1 3 4
967
968
969
970
971
972
973
974 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
975
976
977
978 #define __WORDSIZE 64
979 #define __WORDSIZE_COMPAT32 1
980 # 9 "/usr/include/bits/wordsize.h" 2 3 4
981 # 349 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 2 3 4
982 # 370 "/usr/include/gentoo-multilib/amd64/sys/cdefs.h" 3 4
983 #define __LDBL_REDIR1(name,proto,alias) name proto
984 #define __LDBL_REDIR(name,proto) name proto
985 #define __LDBL_REDIR1_NTH(name,proto,alias) name proto __THROW
986 #define __LDBL_REDIR_NTH(name,proto) name proto __THROW
987 #define __LDBL_REDIR_DECL(name) 
988
989 #define __REDIRECT_LDBL(name,proto,alias) __REDIRECT (name, proto, alias)
990 #define __REDIRECT_NTH_LDBL(name,proto,alias) __REDIRECT_NTH (name, proto, alias)
991 # 9 "/usr/include/sys/cdefs.h" 2 3 4
992 # 331 "/usr/include/gentoo-multilib/amd64/features.h" 2 3 4
993 # 354 "/usr/include/gentoo-multilib/amd64/features.h" 3 4
994 # 1 "/usr/include/gnu/stubs.h" 1 3 4
995
996
997
998
999
1000
1001
1002 # 1 "/usr/include/gentoo-multilib/amd64/gnu/stubs.h" 1 3 4
1003
1004
1005
1006 # 1 "/usr/include/bits/wordsize.h" 1 3 4
1007
1008
1009
1010
1011
1012
1013
1014 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
1015
1016
1017
1018 #define __WORDSIZE 64
1019 #define __WORDSIZE_COMPAT32 1
1020 # 9 "/usr/include/bits/wordsize.h" 2 3 4
1021 # 5 "/usr/include/gentoo-multilib/amd64/gnu/stubs.h" 2 3 4
1022
1023
1024
1025
1026 # 1 "/usr/include/gnu/stubs-64.h" 1 3 4
1027
1028
1029
1030 # 1 "/usr/include/gentoo-multilib/amd64/gnu/stubs-64.h" 1 3 4
1031 # 10 "/usr/include/gentoo-multilib/amd64/gnu/stubs-64.h" 3 4
1032 #define __stub_bdflush 
1033 #define __stub_chflags 
1034 #define __stub_fattach 
1035 #define __stub_fchflags 
1036 #define __stub_fdetach 
1037 #define __stub_getmsg 
1038 #define __stub_gtty 
1039 #define __stub_lchmod 
1040 #define __stub_putmsg 
1041 #define __stub_revoke 
1042 #define __stub_setlogin 
1043 #define __stub_sigreturn 
1044 #define __stub_sstk 
1045 #define __stub_stty 
1046 # 5 "/usr/include/gnu/stubs-64.h" 2 3 4
1047 # 10 "/usr/include/gentoo-multilib/amd64/gnu/stubs.h" 2 3 4
1048 # 9 "/usr/include/gnu/stubs.h" 2 3 4
1049 # 355 "/usr/include/gentoo-multilib/amd64/features.h" 2 3 4
1050 # 9 "/usr/include/features.h" 2 3 4
1051 # 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/os_defines.h" 2 3
1052
1053
1054
1055 #define __NO_STRING_INLINES 
1056 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 2 3
1057
1058
1059 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/cpu_defines.h" 1 3
1060 # 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/cpu_defines.h" 3
1061 #define _GLIBCXX_CPU_DEFINES 1
1062 # 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 2 3
1063
1064
1065 #define __GLIBCXX__ 20080201
1066
1067
1068 #define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY 1
1069
1070
1071 #define _GLIBCXX_VISIBILITY(V) __attribute__ ((__visibility__ (#V)))
1072 # 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
1073 #define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION 0
1074 # 76 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
1075 #define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY(default) {
1076 #define _GLIBCXX_END_NAMESPACE }
1077
1078
1079
1080
1081 #define _GLIBCXX_BEGIN_NESTED_NAMESPACE(X,Y) _GLIBCXX_BEGIN_NAMESPACE(X)
1082 #define _GLIBCXX_END_NESTED_NAMESPACE _GLIBCXX_END_NAMESPACE
1083 # 139 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
1084 #define _GLIBCXX_STD std
1085 #define _GLIBCXX_EXT __gnu_cxx
1086
1087
1088
1089
1090 #undef _GLIBCXX_LONG_DOUBLE_COMPAT
1091
1092
1093
1094 namespace std __attribute__ ((__visibility__ ("default"))) {
1095
1096
1097
1098
1099
1100
1101
1102 #define _GLIBCXX_LDBL_NAMESPACE 
1103 #define _GLIBCXX_BEGIN_LDBL_NAMESPACE 
1104 #define _GLIBCXX_END_LDBL_NAMESPACE 
1105
1106 }
1107 # 175 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
1108 #define _GLIBCXX_EXTERN_TEMPLATE 1
1109
1110
1111
1112
1113
1114
1115
1116 #define _GLIBCXX_WEAK_DEFINITION 
1117 # 193 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
1118 #define _GLIBCXX_FAST_MATH 0
1119
1120
1121
1122
1123
1124
1125 #define __N(msgid) (msgid)
1126
1127
1128 #undef min
1129 #undef max
1130
1131
1132
1133
1134
1135
1136 #define _GLIBCXX_HAVE_ACOSF 1
1137
1138
1139 #define _GLIBCXX_HAVE_ACOSL 1
1140
1141
1142 #define _GLIBCXX_HAVE_ASINF 1
1143
1144
1145 #define _GLIBCXX_HAVE_ASINL 1
1146
1147
1148 #define _GLIBCXX_HAVE_ATAN2F 1
1149
1150
1151 #define _GLIBCXX_HAVE_ATAN2L 1
1152
1153
1154 #define _GLIBCXX_HAVE_ATANF 1
1155
1156
1157 #define _GLIBCXX_HAVE_ATANL 1
1158
1159
1160 #define _GLIBCXX_HAVE_CEILF 1
1161
1162
1163 #define _GLIBCXX_HAVE_CEILL 1
1164
1165
1166 #define _GLIBCXX_HAVE_COMPLEX_H 1
1167
1168
1169 #define _GLIBCXX_HAVE_COPYSIGN 1
1170
1171
1172 #define _GLIBCXX_HAVE_COPYSIGNF 1
1173
1174
1175 #define _GLIBCXX_HAVE_COPYSIGNL 1
1176
1177
1178 #define _GLIBCXX_HAVE_COSF 1
1179
1180
1181 #define _GLIBCXX_HAVE_COSHF 1
1182
1183
1184 #define _GLIBCXX_HAVE_COSHL 1
1185
1186
1187 #define _GLIBCXX_HAVE_COSL 1
1188
1189
1190 #define _GLIBCXX_HAVE_ENDIAN_H 1
1191
1192
1193 #define _GLIBCXX_HAVE_EXPF 1
1194
1195
1196 #define _GLIBCXX_HAVE_EXPL 1
1197
1198
1199 #define _GLIBCXX_HAVE_FABSF 1
1200
1201
1202 #define _GLIBCXX_HAVE_FABSL 1
1203
1204
1205 #define _GLIBCXX_HAVE_FENV_H 1
1206
1207
1208 #define _GLIBCXX_HAVE_FINITE 1
1209
1210
1211 #define _GLIBCXX_HAVE_FINITEF 1
1212
1213
1214 #define _GLIBCXX_HAVE_FINITEL 1
1215
1216
1217 #define _GLIBCXX_HAVE_FLOAT_H 1
1218
1219
1220 #define _GLIBCXX_HAVE_FLOORF 1
1221
1222
1223 #define _GLIBCXX_HAVE_FLOORL 1
1224
1225
1226 #define _GLIBCXX_HAVE_FMODF 1
1227
1228
1229 #define _GLIBCXX_HAVE_FMODL 1
1230 # 313 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
1231 #define _GLIBCXX_HAVE_FREXPF 1
1232
1233
1234 #define _GLIBCXX_HAVE_FREXPL 1
1235
1236
1237 #define _GLIBCXX_HAVE_GCONV_H 1
1238
1239
1240 #define _GLIBCXX_HAVE_GETIPINFO 1
1241
1242
1243 #define _GLIBCXX_HAVE_GETPAGESIZE 1
1244
1245
1246
1247 #define _GLIBCXX_HAVE_GTHR_DEFAULT 1
1248
1249
1250 #define _GLIBCXX_HAVE_HYPOT 1
1251
1252
1253 #define _GLIBCXX_HAVE_HYPOTF 1
1254
1255
1256 #define _GLIBCXX_HAVE_HYPOTL 1
1257
1258
1259 #define _GLIBCXX_HAVE_ICONV 1
1260
1261
1262 #define _GLIBCXX_HAVE_ICONV_CLOSE 1
1263
1264
1265 #define _GLIBCXX_HAVE_ICONV_OPEN 1
1266
1267
1268
1269
1270
1271 #define _GLIBCXX_HAVE_INT64_T 1
1272
1273
1274 #define _GLIBCXX_HAVE_INTTYPES_H 1
1275
1276
1277 #define _GLIBCXX_HAVE_ISINF 1
1278
1279
1280 #define _GLIBCXX_HAVE_ISINFF 1
1281
1282
1283 #define _GLIBCXX_HAVE_ISINFL 1
1284
1285
1286 #define _GLIBCXX_HAVE_ISNAN 1
1287
1288
1289 #define _GLIBCXX_HAVE_ISNANF 1
1290
1291
1292 #define _GLIBCXX_HAVE_ISNANL 1
1293
1294
1295 #define _GLIBCXX_HAVE_ISWBLANK 1
1296
1297
1298 #define _GLIBCXX_HAVE_LC_MESSAGES 1
1299
1300
1301 #define _GLIBCXX_HAVE_LDEXPF 1
1302
1303
1304 #define _GLIBCXX_HAVE_LDEXPL 1
1305
1306
1307
1308
1309
1310 #define _GLIBCXX_HAVE_LIBM 1
1311
1312
1313 #define _GLIBCXX_HAVE_LIMIT_AS 1
1314
1315
1316 #define _GLIBCXX_HAVE_LIMIT_DATA 1
1317
1318
1319 #define _GLIBCXX_HAVE_LIMIT_FSIZE 1
1320
1321
1322 #define _GLIBCXX_HAVE_LIMIT_RSS 1
1323
1324
1325 #define _GLIBCXX_HAVE_LIMIT_VMEM 0
1326
1327
1328 #define _GLIBCXX_HAVE_LOCALE_H 1
1329
1330
1331 #define _GLIBCXX_HAVE_LOG10F 1
1332
1333
1334 #define _GLIBCXX_HAVE_LOG10L 1
1335
1336
1337 #define _GLIBCXX_HAVE_LOGF 1
1338
1339
1340 #define _GLIBCXX_HAVE_LOGL 1
1341 # 431 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
1342 #define _GLIBCXX_HAVE_MBSTATE_T 1
1343
1344
1345 #define _GLIBCXX_HAVE_MEMORY_H 1
1346
1347
1348 #define _GLIBCXX_HAVE_MMAP 1
1349
1350
1351 #define _GLIBCXX_HAVE_MODF 1
1352
1353
1354 #define _GLIBCXX_HAVE_MODFF 1
1355
1356
1357 #define _GLIBCXX_HAVE_MODFL 1
1358
1359
1360
1361
1362
1363 #define _GLIBCXX_HAVE_NL_LANGINFO 1
1364
1365
1366 #define _GLIBCXX_HAVE_POLL 1
1367
1368
1369 #define _GLIBCXX_HAVE_POWF 1
1370
1371
1372 #define _GLIBCXX_HAVE_POWL 1
1373
1374
1375
1376
1377
1378 #define _GLIBCXX_HAVE_SETENV 1
1379
1380
1381 #define _GLIBCXX_HAVE_SIGSETJMP 1
1382
1383
1384 #define _GLIBCXX_HAVE_SINCOS 1
1385
1386
1387 #define _GLIBCXX_HAVE_SINCOSF 1
1388
1389
1390 #define _GLIBCXX_HAVE_SINCOSL 1
1391
1392
1393 #define _GLIBCXX_HAVE_SINF 1
1394
1395
1396 #define _GLIBCXX_HAVE_SINHF 1
1397
1398
1399 #define _GLIBCXX_HAVE_SINHL 1
1400
1401
1402 #define _GLIBCXX_HAVE_SINL 1
1403
1404
1405 #define _GLIBCXX_HAVE_SQRTF 1
1406
1407
1408 #define _GLIBCXX_HAVE_SQRTL 1
1409
1410
1411 #define _GLIBCXX_HAVE_STDBOOL_H 1
1412
1413
1414 #define _GLIBCXX_HAVE_STDINT_H 1
1415
1416
1417 #define _GLIBCXX_HAVE_STDLIB_H 1
1418
1419
1420 #define _GLIBCXX_HAVE_STRERROR_L 1
1421
1422
1423 #define _GLIBCXX_HAVE_STRERROR_R 1
1424
1425
1426 #define _GLIBCXX_HAVE_STRINGS_H 1
1427
1428
1429 #define _GLIBCXX_HAVE_STRING_H 1
1430
1431
1432 #define _GLIBCXX_HAVE_STRTOF 1
1433
1434
1435 #define _GLIBCXX_HAVE_STRTOLD 1
1436
1437
1438 #define _GLIBCXX_HAVE_STRXFRM_L 1
1439
1440
1441
1442
1443
1444 #define _GLIBCXX_HAVE_SYS_IOCTL_H 1
1445
1446
1447 #define _GLIBCXX_HAVE_SYS_IPC_H 1
1448 # 548 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
1449 #define _GLIBCXX_HAVE_SYS_RESOURCE_H 1
1450
1451
1452 #define _GLIBCXX_HAVE_SYS_SEM_H 1
1453
1454
1455 #define _GLIBCXX_HAVE_SYS_STAT_H 1
1456
1457
1458 #define _GLIBCXX_HAVE_SYS_TIME_H 1
1459
1460
1461 #define _GLIBCXX_HAVE_SYS_TYPES_H 1
1462
1463
1464 #define _GLIBCXX_HAVE_SYS_UIO_H 1
1465
1466
1467
1468
1469
1470 #define _GLIBCXX_HAVE_S_ISREG 1
1471
1472
1473 #define _GLIBCXX_HAVE_TANF 1
1474
1475
1476 #define _GLIBCXX_HAVE_TANHF 1
1477
1478
1479 #define _GLIBCXX_HAVE_TANHL 1
1480
1481
1482 #define _GLIBCXX_HAVE_TANL 1
1483
1484
1485 #define _GLIBCXX_HAVE_TLS 1
1486
1487
1488 #define _GLIBCXX_HAVE_UNISTD_H 1
1489
1490
1491 #define _GLIBCXX_HAVE_VFWSCANF 1
1492
1493
1494 #define _GLIBCXX_HAVE_VSWSCANF 1
1495
1496
1497 #define _GLIBCXX_HAVE_VWSCANF 1
1498
1499
1500 #define _GLIBCXX_HAVE_WCHAR_H 1
1501
1502
1503 #define _GLIBCXX_HAVE_WCSTOF 1
1504
1505
1506 #define _GLIBCXX_HAVE_WCTYPE_H 1
1507
1508
1509 #define _GLIBCXX_HAVE_WRITEV 1
1510 # 803 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
1511 #define _GLIBCXX_HAVE___BUILTIN_ABS 1
1512
1513
1514 #define _GLIBCXX_HAVE___BUILTIN_COS 1
1515
1516
1517 #define _GLIBCXX_HAVE___BUILTIN_COSF 1
1518
1519
1520 #define _GLIBCXX_HAVE___BUILTIN_COSL 1
1521
1522
1523 #define _GLIBCXX_HAVE___BUILTIN_FABS 1
1524
1525
1526 #define _GLIBCXX_HAVE___BUILTIN_FABSF 1
1527
1528
1529 #define _GLIBCXX_HAVE___BUILTIN_FABSL 1
1530
1531
1532 #define _GLIBCXX_HAVE___BUILTIN_LABS 1
1533
1534
1535 #define _GLIBCXX_HAVE___BUILTIN_SIN 1
1536
1537
1538 #define _GLIBCXX_HAVE___BUILTIN_SINF 1
1539
1540
1541 #define _GLIBCXX_HAVE___BUILTIN_SINL 1
1542
1543
1544 #define _GLIBCXX_HAVE___BUILTIN_SQRT 1
1545
1546
1547 #define _GLIBCXX_HAVE___BUILTIN_SQRTF 1
1548
1549
1550 #define _GLIBCXX_HAVE___BUILTIN_SQRTL 1
1551
1552
1553 #define _GLIBCXX_HAVE___SIGNBIT 1
1554
1555
1556 #define _GLIBCXX_HAVE___SIGNBITF 1
1557
1558
1559 #define _GLIBCXX_HAVE___SIGNBITL 1
1560
1561
1562
1563
1564
1565 #define _GLIBCXX_PACKAGE_BUGREPORT ""
1566
1567
1568 #define _GLIBCXX_PACKAGE_NAME "package-unused"
1569
1570
1571 #define _GLIBCXX_PACKAGE_STRING "package-unused version-unused"
1572
1573
1574 #define _GLIBCXX_PACKAGE_TARNAME "libstdc++"
1575
1576
1577 #define _GLIBCXX_PACKAGE__GLIBCXX_VERSION "version-unused"
1578
1579
1580 #define STDC_HEADERS 1
1581
1582
1583
1584
1585
1586 #define _GLIBCXX_ATOMIC_BUILTINS 1
1587 # 887 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
1588 #define _GLIBCXX_HOSTED 1
1589
1590
1591
1592
1593
1594
1595
1596 #define _GLIBCXX_RES_LIMITS 1
1597 # 904 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++config.h" 3
1598 #define _GLIBCXX_SYMVER 1
1599
1600
1601
1602
1603
1604 #define _GLIBCXX_SYMVER_GNU 1
1605
1606
1607
1608
1609
1610
1611 #define _GLIBCXX_USE_C99 1
1612
1613
1614
1615
1616 #define _GLIBCXX_USE_C99_COMPLEX 1
1617
1618
1619
1620
1621 #define _GLIBCXX_USE_C99_COMPLEX_TR1 1
1622
1623
1624
1625 #define _GLIBCXX_USE_C99_CTYPE_TR1 1
1626
1627
1628
1629 #define _GLIBCXX_USE_C99_FENV_TR1 1
1630
1631
1632
1633 #define _GLIBCXX_USE_C99_INTTYPES_TR1 1
1634
1635
1636
1637 #define _GLIBCXX_USE_C99_MATH 1
1638
1639
1640
1641 #define _GLIBCXX_USE_C99_MATH_TR1 1
1642
1643
1644
1645 #define _GLIBCXX_USE_C99_STDINT_TR1 1
1646
1647
1648 #define _GLIBCXX_USE_ICONV 1
1649
1650
1651 #define _GLIBCXX_USE_LFS 1
1652
1653
1654 #define _GLIBCXX_USE_LONG_LONG 1
1655
1656
1657
1658
1659
1660
1661 #define _GLIBCXX_USE_RANDOM_TR1 1
1662
1663
1664 #define _GLIBCXX_USE_WCHAR_T 1
1665 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/functexcept.h" 2 3
1666 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/exception_defines.h" 1 3
1667 # 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/exception_defines.h" 3
1668 #define _EXCEPTION_DEFINES_H 1
1669 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/exception_defines.h" 3
1670 #define __throw_exception_again throw
1671 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/functexcept.h" 2 3
1672
1673 namespace std __attribute__ ((__visibility__ ("default"))) {
1674
1675
1676   void
1677   __throw_bad_exception(void) __attribute__((__noreturn__));
1678
1679
1680   void
1681   __throw_bad_alloc(void) __attribute__((__noreturn__));
1682
1683
1684   void
1685   __throw_bad_cast(void) __attribute__((__noreturn__));
1686
1687   void
1688   __throw_bad_typeid(void) __attribute__((__noreturn__));
1689
1690
1691   void
1692   __throw_logic_error(const char*) __attribute__((__noreturn__));
1693
1694   void
1695   __throw_domain_error(const char*) __attribute__((__noreturn__));
1696
1697   void
1698   __throw_invalid_argument(const char*) __attribute__((__noreturn__));
1699
1700   void
1701   __throw_length_error(const char*) __attribute__((__noreturn__));
1702
1703   void
1704   __throw_out_of_range(const char*) __attribute__((__noreturn__));
1705
1706   void
1707   __throw_runtime_error(const char*) __attribute__((__noreturn__));
1708
1709   void
1710   __throw_range_error(const char*) __attribute__((__noreturn__));
1711
1712   void
1713   __throw_overflow_error(const char*) __attribute__((__noreturn__));
1714
1715   void
1716   __throw_underflow_error(const char*) __attribute__((__noreturn__));
1717
1718
1719   void
1720   __throw_ios_failure(const char*) __attribute__((__noreturn__));
1721
1722 }
1723 # 66 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/deque" 2 3
1724 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 1 3
1725 # 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
1726 #define _ALGOBASE_H 1
1727
1728
1729 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstring" 1 3
1730 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstring" 3
1731 #define _GLIBCXX_CSTRING 1
1732
1733        
1734 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstring" 3
1735
1736
1737 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstddef" 1 3
1738 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstddef" 3
1739 #define _GLIBCXX_CSTDDEF 1
1740
1741        
1742 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstddef" 3
1743
1744
1745 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
1746 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1747 #define _STDDEF_H 
1748 #define _STDDEF_H_ 
1749
1750 #define _ANSI_STDDEF_H 
1751
1752 #define __STDDEF_H__ 
1753 # 141 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1754 #define _PTRDIFF_T 
1755 #define _T_PTRDIFF_ 
1756 #define _T_PTRDIFF 
1757 #define __PTRDIFF_T 
1758 #define _PTRDIFF_T_ 
1759 #define _BSD_PTRDIFF_T_ 
1760 #define ___int_ptrdiff_t_h 
1761 #define _GCC_PTRDIFF_T 
1762
1763
1764
1765 typedef long int ptrdiff_t;
1766 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1767 #undef __need_ptrdiff_t
1768 # 189 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1769 #define __size_t__ 
1770 #define __SIZE_T__ 
1771 #define _SIZE_T 
1772 #define _SYS_SIZE_T_H 
1773 #define _T_SIZE_ 
1774 #define _T_SIZE 
1775 #define __SIZE_T 
1776 #define _SIZE_T_ 
1777 #define _BSD_SIZE_T_ 
1778 #define _SIZE_T_DEFINED_ 
1779 #define _SIZE_T_DEFINED 
1780 #define _BSD_SIZE_T_DEFINED_ 
1781 #define _SIZE_T_DECLARED 
1782 #define ___int_size_t_h 
1783 #define _GCC_SIZE_T 
1784 #define _SIZET_ 
1785
1786
1787
1788 #define __size_t 
1789
1790
1791
1792
1793
1794 typedef long unsigned int size_t;
1795 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1796 #undef __need_size_t
1797 # 265 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1798 #define __wchar_t__ 
1799 #define __WCHAR_T__ 
1800 #define _WCHAR_T 
1801 #define _T_WCHAR_ 
1802 #define _T_WCHAR 
1803 #define __WCHAR_T 
1804 #define _WCHAR_T_ 
1805 #define _BSD_WCHAR_T_ 
1806 #define _WCHAR_T_DEFINED_ 
1807 #define _WCHAR_T_DEFINED 
1808 #define _WCHAR_T_H 
1809 #define ___int_wchar_t_h 
1810 #define __INT_WCHAR_T_H 
1811 #define _GCC_WCHAR_T 
1812 #define _WCHAR_T_DECLARED 
1813 # 292 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1814 #undef _BSD_WCHAR_T_
1815 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1816 #undef __need_wchar_t
1817 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1818 #undef NULL
1819
1820 #define NULL __null
1821 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1822 #undef __need_NULL
1823
1824
1825
1826
1827 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
1828 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstddef" 2 3
1829
1830 namespace std __attribute__ ((__visibility__ ("default"))) {
1831
1832   using ::ptrdiff_t;
1833   using ::size_t;
1834
1835 }
1836 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstring" 2 3
1837 # 1 "/usr/include/string.h" 1 3 4
1838
1839
1840
1841
1842
1843
1844
1845 # 1 "/usr/include/gentoo-multilib/amd64/string.h" 1 3 4
1846 # 24 "/usr/include/gentoo-multilib/amd64/string.h" 3 4
1847 #define _STRING_H 1
1848
1849 # 1 "/usr/include/features.h" 1 3 4
1850 # 27 "/usr/include/gentoo-multilib/amd64/string.h" 2 3 4
1851
1852 extern "C" {
1853
1854
1855 #define __need_size_t 
1856 #define __need_NULL 
1857 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
1858 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1859 #undef __need_ptrdiff_t
1860 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1861 #undef __need_size_t
1862 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1863 #undef __need_wchar_t
1864 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1865 #undef NULL
1866
1867 #define NULL __null
1868 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
1869 #undef __need_NULL
1870
1871
1872
1873
1874 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
1875 # 34 "/usr/include/gentoo-multilib/amd64/string.h" 2 3 4
1876
1877
1878
1879
1880 extern void *memcpy (void *__restrict __dest,
1881        __const void *__restrict __src, size_t __n)
1882      throw () __attribute__ ((__nonnull__ (1, 2)));
1883
1884
1885 extern void *memmove (void *__dest, __const void *__src, size_t __n)
1886      throw () __attribute__ ((__nonnull__ (1, 2)));
1887
1888
1889
1890
1891
1892
1893 extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
1894         int __c, size_t __n)
1895      throw () __attribute__ ((__nonnull__ (1, 2)));
1896
1897
1898
1899
1900
1901 extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
1902
1903
1904 extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
1905      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1906
1907
1908 extern void *memchr (__const void *__s, int __c, size_t __n)
1909       throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1910
1911
1912
1913
1914
1915 extern void *rawmemchr (__const void *__s, int __c)
1916      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1917
1918
1919 extern void *memrchr (__const void *__s, int __c, size_t __n)
1920       throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1921
1922
1923
1924
1925
1926 extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
1927      throw () __attribute__ ((__nonnull__ (1, 2)));
1928
1929 extern char *strncpy (char *__restrict __dest,
1930         __const char *__restrict __src, size_t __n)
1931      throw () __attribute__ ((__nonnull__ (1, 2)));
1932
1933
1934 extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
1935      throw () __attribute__ ((__nonnull__ (1, 2)));
1936
1937 extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
1938         size_t __n) throw () __attribute__ ((__nonnull__ (1, 2)));
1939
1940
1941 extern int strcmp (__const char *__s1, __const char *__s2)
1942      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1943
1944 extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
1945      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1946
1947
1948 extern int strcoll (__const char *__s1, __const char *__s2)
1949      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1950
1951 extern size_t strxfrm (char *__restrict __dest,
1952          __const char *__restrict __src, size_t __n)
1953      throw () __attribute__ ((__nonnull__ (2)));
1954
1955
1956
1957
1958
1959
1960 # 1 "/usr/include/xlocale.h" 1 3 4
1961
1962
1963
1964
1965
1966
1967
1968 # 1 "/usr/include/gentoo-multilib/amd64/xlocale.h" 1 3 4
1969 # 22 "/usr/include/gentoo-multilib/amd64/xlocale.h" 3 4
1970 #define _XLOCALE_H 1
1971
1972
1973
1974
1975
1976 typedef struct __locale_struct
1977 {
1978
1979   struct locale_data *__locales[13];
1980
1981
1982   const unsigned short int *__ctype_b;
1983   const int *__ctype_tolower;
1984   const int *__ctype_toupper;
1985
1986
1987   const char *__names[13];
1988 } *__locale_t;
1989 # 9 "/usr/include/xlocale.h" 2 3 4
1990 # 119 "/usr/include/gentoo-multilib/amd64/string.h" 2 3 4
1991
1992
1993 extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
1994      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
1995
1996 extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n,
1997     __locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4)));
1998
1999
2000
2001
2002 extern char *strdup (__const char *__s)
2003      throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
2004
2005
2006
2007
2008
2009
2010 extern char *strndup (__const char *__string, size_t __n)
2011      throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
2012
2013
2014
2015
2016 #define strdupa(s) (__extension__ ({ __const char *__old = (s); size_t __len = strlen (__old) + 1; char *__new = (char *) __builtin_alloca (__len); (char *) memcpy (__new, __old, __len); }))
2017 # 154 "/usr/include/gentoo-multilib/amd64/string.h" 3 4
2018 #define strndupa(s,n) (__extension__ ({ __const char *__old = (s); size_t __len = strnlen (__old, (n)); char *__new = (char *) __builtin_alloca (__len + 1); __new[__len] = '\0'; (char *) memcpy (__new, __old, __len); }))
2019 # 165 "/usr/include/gentoo-multilib/amd64/string.h" 3 4
2020
2021
2022 extern char *strchr (__const char *__s, int __c)
2023      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2024
2025 extern char *strrchr (__const char *__s, int __c)
2026      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2027
2028
2029
2030
2031
2032 extern char *strchrnul (__const char *__s, int __c)
2033      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2034
2035
2036
2037
2038
2039 extern size_t strcspn (__const char *__s, __const char *__reject)
2040      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2041
2042
2043 extern size_t strspn (__const char *__s, __const char *__accept)
2044      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2045
2046 extern char *strpbrk (__const char *__s, __const char *__accept)
2047      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2048
2049 extern char *strstr (__const char *__haystack, __const char *__needle)
2050      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2051
2052
2053
2054 extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
2055      throw () __attribute__ ((__nonnull__ (2)));
2056
2057
2058
2059
2060 extern char *__strtok_r (char *__restrict __s,
2061     __const char *__restrict __delim,
2062     char **__restrict __save_ptr)
2063      throw () __attribute__ ((__nonnull__ (2, 3)));
2064
2065 extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
2066          char **__restrict __save_ptr)
2067      throw () __attribute__ ((__nonnull__ (2, 3)));
2068
2069
2070
2071
2072 extern char *strcasestr (__const char *__haystack, __const char *__needle)
2073      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2074
2075
2076
2077
2078
2079
2080 extern void *memmem (__const void *__haystack, size_t __haystacklen,
2081        __const void *__needle, size_t __needlelen)
2082      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3)));
2083
2084
2085
2086 extern void *__mempcpy (void *__restrict __dest,
2087    __const void *__restrict __src, size_t __n)
2088      throw () __attribute__ ((__nonnull__ (1, 2)));
2089 extern void *mempcpy (void *__restrict __dest,
2090         __const void *__restrict __src, size_t __n)
2091      throw () __attribute__ ((__nonnull__ (1, 2)));
2092
2093
2094
2095
2096
2097 extern size_t strlen (__const char *__s)
2098      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2099
2100
2101
2102
2103
2104 extern size_t strnlen (__const char *__string, size_t __maxlen)
2105      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2106
2107
2108
2109
2110
2111 extern char *strerror (int __errnum) throw ();
2112
2113 # 281 "/usr/include/gentoo-multilib/amd64/string.h" 3 4
2114 extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
2115      throw () __attribute__ ((__nonnull__ (2)));
2116
2117
2118
2119
2120
2121 extern char *strerror_l (int __errnum, __locale_t __l) throw ();
2122
2123
2124
2125
2126
2127 extern void __bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
2128
2129
2130
2131 extern void bcopy (__const void *__src, void *__dest, size_t __n)
2132      throw () __attribute__ ((__nonnull__ (1, 2)));
2133
2134
2135 extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
2136
2137
2138 extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
2139      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2140
2141
2142 extern char *index (__const char *__s, int __c)
2143      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2144
2145
2146 extern char *rindex (__const char *__s, int __c)
2147      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
2148
2149
2150
2151 extern int ffs (int __i) throw () __attribute__ ((__const__));
2152
2153
2154
2155
2156 extern int ffsl (long int __l) throw () __attribute__ ((__const__));
2157
2158 __extension__ extern int ffsll (long long int __ll)
2159      throw () __attribute__ ((__const__));
2160
2161
2162
2163
2164 extern int strcasecmp (__const char *__s1, __const char *__s2)
2165      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2166
2167
2168 extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
2169      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2170
2171
2172
2173
2174
2175 extern int strcasecmp_l (__const char *__s1, __const char *__s2,
2176     __locale_t __loc)
2177      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
2178
2179 extern int strncasecmp_l (__const char *__s1, __const char *__s2,
2180      size_t __n, __locale_t __loc)
2181      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
2182
2183
2184
2185
2186
2187 extern char *strsep (char **__restrict __stringp,
2188        __const char *__restrict __delim)
2189      throw () __attribute__ ((__nonnull__ (1, 2)));
2190
2191
2192
2193
2194 extern int strverscmp (__const char *__s1, __const char *__s2)
2195      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
2196
2197
2198 extern char *strsignal (int __sig) throw ();
2199
2200
2201 extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
2202      throw () __attribute__ ((__nonnull__ (1, 2)));
2203 extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
2204      throw () __attribute__ ((__nonnull__ (1, 2)));
2205
2206
2207
2208 extern char *__stpncpy (char *__restrict __dest,
2209    __const char *__restrict __src, size_t __n)
2210      throw () __attribute__ ((__nonnull__ (1, 2)));
2211 extern char *stpncpy (char *__restrict __dest,
2212         __const char *__restrict __src, size_t __n)
2213      throw () __attribute__ ((__nonnull__ (1, 2)));
2214
2215
2216 extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1)));
2217
2218
2219 extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
2220
2221
2222
2223
2224
2225
2226 extern char *basename (__const char *__filename) throw () __attribute__ ((__nonnull__ (1)));
2227 # 432 "/usr/include/gentoo-multilib/amd64/string.h" 3 4
2228 }
2229 # 9 "/usr/include/string.h" 2 3 4
2230 # 53 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstring" 2 3
2231
2232
2233 #undef memcpy
2234 #undef memmove
2235 #undef strcpy
2236 #undef strncpy
2237 #undef strcat
2238 #undef strncat
2239 #undef memcmp
2240 #undef strcmp
2241 #undef strcoll
2242 #undef strncmp
2243 #undef strxfrm
2244 #undef memchr
2245 #undef strchr
2246 #undef strcspn
2247 #undef strpbrk
2248 #undef strrchr
2249 #undef strspn
2250 #undef strstr
2251 #undef strtok
2252 #undef memset
2253 #undef strerror
2254 #undef strlen
2255
2256 namespace std __attribute__ ((__visibility__ ("default"))) {
2257
2258   using ::memcpy;
2259   using ::memmove;
2260   using ::strcpy;
2261   using ::strncpy;
2262   using ::strcat;
2263   using ::strncat;
2264   using ::memcmp;
2265   using ::strcmp;
2266   using ::strcoll;
2267   using ::strncmp;
2268   using ::strxfrm;
2269   using ::strcspn;
2270   using ::strspn;
2271   using ::strtok;
2272   using ::memset;
2273   using ::strerror;
2274   using ::strlen;
2275
2276   using ::memchr;
2277
2278   inline void*
2279   memchr(void* __p, int __c, size_t __n)
2280   { return memchr(const_cast<const void*>(__p), __c, __n); }
2281
2282   using ::strchr;
2283
2284   inline char*
2285   strchr(char* __s1, int __n)
2286   { return __builtin_strchr(const_cast<const char*>(__s1), __n); }
2287
2288   using ::strpbrk;
2289
2290   inline char*
2291   strpbrk(char* __s1, const char* __s2)
2292   { return __builtin_strpbrk(const_cast<const char*>(__s1), __s2); }
2293
2294   using ::strrchr;
2295
2296   inline char*
2297   strrchr(char* __s1, int __n)
2298   { return __builtin_strrchr(const_cast<const char*>(__s1), __n); }
2299
2300   using ::strstr;
2301
2302   inline char*
2303   strstr(char* __s1, const char* __s2)
2304   { return __builtin_strstr(const_cast<const char*>(__s1), __s2); }
2305
2306 }
2307 # 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 2 3
2308 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/climits" 1 3
2309 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/climits" 3
2310 #define _GLIBCXX_CLIMITS 1
2311
2312        
2313 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/climits" 3
2314
2315 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/limits.h" 1 3 4
2316
2317
2318
2319
2320
2321
2322 #define _GCC_LIMITS_H_ 
2323
2324
2325
2326 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/syslimits.h" 1 3 4
2327
2328
2329
2330
2331
2332 #define _GCC_NEXT_LIMITS_H 
2333 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/limits.h" 1 3 4
2334 # 122 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/limits.h" 3 4
2335 # 1 "/usr/include/limits.h" 1 3 4
2336
2337
2338
2339
2340
2341
2342
2343 # 1 "/usr/include/gentoo-multilib/amd64/limits.h" 1 3 4
2344 # 25 "/usr/include/gentoo-multilib/amd64/limits.h" 3 4
2345 #define _LIBC_LIMITS_H_ 1
2346
2347 # 1 "/usr/include/features.h" 1 3 4
2348 # 28 "/usr/include/gentoo-multilib/amd64/limits.h" 2 3 4
2349
2350
2351
2352
2353
2354 #define MB_LEN_MAX 16
2355 # 133 "/usr/include/gentoo-multilib/amd64/limits.h" 3 4
2356 #define LLONG_MIN (-LLONG_MAX-1)
2357
2358
2359 #define LLONG_MAX __LONG_LONG_MAX__
2360
2361
2362 #define ULLONG_MAX (LLONG_MAX * 2ULL + 1)
2363
2364
2365
2366
2367
2368 # 1 "/usr/include/bits/posix1_lim.h" 1 3 4
2369
2370
2371
2372
2373
2374
2375
2376 # 1 "/usr/include/gentoo-multilib/amd64/bits/posix1_lim.h" 1 3 4
2377 # 26 "/usr/include/gentoo-multilib/amd64/bits/posix1_lim.h" 3 4
2378 #define _BITS_POSIX1_LIM_H 1
2379
2380
2381
2382
2383
2384 #define _POSIX_AIO_LISTIO_MAX 2
2385
2386
2387 #define _POSIX_AIO_MAX 1
2388
2389
2390 #define _POSIX_ARG_MAX 4096
2391
2392
2393
2394 #define _POSIX_CHILD_MAX 25
2395
2396
2397
2398
2399
2400 #define _POSIX_DELAYTIMER_MAX 32
2401
2402
2403
2404 #define _POSIX_HOST_NAME_MAX 255
2405
2406
2407 #define _POSIX_LINK_MAX 8
2408
2409
2410 #define _POSIX_LOGIN_NAME_MAX 9
2411
2412
2413 #define _POSIX_MAX_CANON 255
2414
2415
2416
2417 #define _POSIX_MAX_INPUT 255
2418
2419
2420 #define _POSIX_MQ_OPEN_MAX 8
2421
2422
2423 #define _POSIX_MQ_PRIO_MAX 32
2424
2425
2426 #define _POSIX_NAME_MAX 14
2427
2428
2429
2430 #define _POSIX_NGROUPS_MAX 8
2431
2432
2433
2434
2435
2436
2437 #define _POSIX_OPEN_MAX 20
2438
2439
2440
2441
2442
2443
2444 #define _POSIX_FD_SETSIZE _POSIX_OPEN_MAX
2445
2446
2447 #define _POSIX_PATH_MAX 256
2448
2449
2450 #define _POSIX_PIPE_BUF 512
2451
2452
2453
2454 #define _POSIX_RE_DUP_MAX 255
2455
2456
2457 #define _POSIX_RTSIG_MAX 8
2458
2459
2460 #define _POSIX_SEM_NSEMS_MAX 256
2461
2462
2463 #define _POSIX_SEM_VALUE_MAX 32767
2464
2465
2466 #define _POSIX_SIGQUEUE_MAX 32
2467
2468
2469 #define _POSIX_SSIZE_MAX 32767
2470
2471
2472 #define _POSIX_STREAM_MAX 8
2473
2474
2475 #define _POSIX_SYMLINK_MAX 255
2476
2477
2478
2479 #define _POSIX_SYMLOOP_MAX 8
2480
2481
2482 #define _POSIX_TIMER_MAX 32
2483
2484
2485 #define _POSIX_TTY_NAME_MAX 9
2486
2487
2488 #define _POSIX_TZNAME_MAX 6
2489
2490
2491 #define _POSIX_QLIMIT 1
2492
2493
2494
2495 #define _POSIX_HIWAT _POSIX_PIPE_BUF
2496
2497
2498 #define _POSIX_UIO_MAXIOV 16
2499
2500
2501 #define _POSIX_CLOCKRES_MIN 20000000
2502
2503
2504
2505 # 1 "/usr/include/bits/local_lim.h" 1 3 4
2506
2507
2508
2509
2510
2511
2512
2513 # 1 "/usr/include/gentoo-multilib/amd64/bits/local_lim.h" 1 3 4
2514 # 26 "/usr/include/gentoo-multilib/amd64/bits/local_lim.h" 3 4
2515 #define __undef_NR_OPEN 
2516
2517
2518 #define __undef_LINK_MAX 
2519
2520
2521 #define __undef_OPEN_MAX 
2522
2523
2524
2525 # 1 "/usr/include/linux/limits.h" 1 3 4
2526
2527 #define _LINUX_LIMITS_H 
2528
2529 #define NR_OPEN 1024
2530
2531 #define NGROUPS_MAX 65536
2532 #define ARG_MAX 131072
2533 #define LINK_MAX 127
2534 #define MAX_CANON 255
2535 #define MAX_INPUT 255
2536 #define NAME_MAX 255
2537 #define PATH_MAX 4096
2538 #define PIPE_BUF 4096
2539 #define XATTR_NAME_MAX 255
2540 #define XATTR_SIZE_MAX 65536
2541 #define XATTR_LIST_MAX 65536
2542
2543 #define RTSIG_MAX 32
2544 # 37 "/usr/include/gentoo-multilib/amd64/bits/local_lim.h" 2 3 4
2545
2546
2547
2548 #undef NR_OPEN
2549 #undef __undef_NR_OPEN
2550
2551
2552
2553 #undef LINK_MAX
2554 #undef __undef_LINK_MAX
2555
2556
2557
2558 #undef OPEN_MAX
2559 #undef __undef_OPEN_MAX
2560
2561
2562
2563 #define _POSIX_THREAD_KEYS_MAX 128
2564
2565 #define PTHREAD_KEYS_MAX 1024
2566
2567
2568 #define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
2569
2570 #define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
2571
2572
2573 #define _POSIX_THREAD_THREADS_MAX 64
2574
2575 #undef PTHREAD_THREADS_MAX
2576
2577
2578
2579 #define AIO_PRIO_DELTA_MAX 20
2580
2581
2582 #define PTHREAD_STACK_MIN 16384
2583
2584
2585 #define DELAYTIMER_MAX 2147483647
2586
2587
2588 #define TTY_NAME_MAX 32
2589
2590
2591 #define LOGIN_NAME_MAX 256
2592
2593
2594 #define HOST_NAME_MAX 64
2595
2596
2597 #define MQ_PRIO_MAX 32768
2598
2599
2600 #define SEM_VALUE_MAX (2147483647)
2601 # 9 "/usr/include/bits/local_lim.h" 2 3 4
2602 # 154 "/usr/include/gentoo-multilib/amd64/bits/posix1_lim.h" 2 3 4
2603
2604
2605
2606 #define SSIZE_MAX LONG_MAX
2607 # 9 "/usr/include/bits/posix1_lim.h" 2 3 4
2608 # 146 "/usr/include/gentoo-multilib/amd64/limits.h" 2 3 4
2609
2610
2611
2612 # 1 "/usr/include/bits/posix2_lim.h" 1 3 4
2613
2614
2615
2616
2617
2618
2619
2620 # 1 "/usr/include/gentoo-multilib/amd64/bits/posix2_lim.h" 1 3 4
2621 # 24 "/usr/include/gentoo-multilib/amd64/bits/posix2_lim.h" 3 4
2622 #define _BITS_POSIX2_LIM_H 1
2623
2624
2625
2626 #define _POSIX2_BC_BASE_MAX 99
2627
2628
2629 #define _POSIX2_BC_DIM_MAX 2048
2630
2631
2632 #define _POSIX2_BC_SCALE_MAX 99
2633
2634
2635 #define _POSIX2_BC_STRING_MAX 1000
2636
2637
2638
2639 #define _POSIX2_COLL_WEIGHTS_MAX 2
2640
2641
2642
2643 #define _POSIX2_EXPR_NEST_MAX 32
2644
2645
2646 #define _POSIX2_LINE_MAX 2048
2647
2648
2649
2650 #define _POSIX2_RE_DUP_MAX 255
2651
2652
2653
2654 #define _POSIX2_CHARCLASS_NAME_MAX 14
2655
2656
2657
2658
2659
2660
2661
2662 #define BC_BASE_MAX _POSIX2_BC_BASE_MAX
2663
2664
2665 #define BC_DIM_MAX _POSIX2_BC_DIM_MAX
2666
2667
2668 #define BC_SCALE_MAX _POSIX2_BC_SCALE_MAX
2669
2670
2671 #define BC_STRING_MAX _POSIX2_BC_STRING_MAX
2672
2673
2674 #define COLL_WEIGHTS_MAX 255
2675
2676
2677 #define EXPR_NEST_MAX _POSIX2_EXPR_NEST_MAX
2678
2679
2680 #define LINE_MAX _POSIX2_LINE_MAX
2681
2682
2683 #define CHARCLASS_NAME_MAX 2048
2684
2685
2686
2687 #define RE_DUP_MAX (0x7fff)
2688 # 9 "/usr/include/bits/posix2_lim.h" 2 3 4
2689 # 150 "/usr/include/gentoo-multilib/amd64/limits.h" 2 3 4
2690
2691
2692
2693 # 1 "/usr/include/bits/xopen_lim.h" 1 3 4
2694
2695
2696
2697
2698
2699
2700
2701 # 1 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 1 3 4
2702 # 31 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 3 4
2703 #define _XOPEN_LIM_H 1
2704
2705 #define __need_IOV_MAX 
2706 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
2707
2708
2709
2710
2711
2712
2713
2714 # 1 "/usr/include/gentoo-multilib/amd64/bits/stdio_lim.h" 1 3 4
2715 # 40 "/usr/include/gentoo-multilib/amd64/bits/stdio_lim.h" 3 4
2716 #define IOV_MAX 1024
2717 # 9 "/usr/include/bits/stdio_lim.h" 2 3 4
2718 # 35 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 2 3 4
2719 # 66 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 3 4
2720 #define _XOPEN_IOV_MAX _POSIX_UIO_MAXIOV
2721
2722
2723
2724
2725 #define NL_ARGMAX _POSIX_ARG_MAX
2726
2727
2728 #define NL_LANGMAX _POSIX2_LINE_MAX
2729
2730
2731 #define NL_MSGMAX INT_MAX
2732
2733
2734
2735 #define NL_NMAX INT_MAX
2736
2737
2738 #define NL_SETMAX INT_MAX
2739
2740
2741 #define NL_TEXTMAX INT_MAX
2742
2743
2744 #define NZERO 20
2745 # 110 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 3 4
2746 #define WORD_BIT 32
2747 # 133 "/usr/include/gentoo-multilib/amd64/bits/xopen_lim.h" 3 4
2748 #define LONG_BIT 64
2749 # 9 "/usr/include/bits/xopen_lim.h" 2 3 4
2750 # 154 "/usr/include/gentoo-multilib/amd64/limits.h" 2 3 4
2751 # 9 "/usr/include/limits.h" 2 3 4
2752 # 123 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/limits.h" 2 3 4
2753 # 8 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/syslimits.h" 2 3 4
2754 #undef _GCC_NEXT_LIMITS_H
2755 # 12 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/limits.h" 2 3 4
2756
2757
2758 #define _LIMITS_H___ 
2759
2760
2761 #undef CHAR_BIT
2762 #define CHAR_BIT __CHAR_BIT__
2763
2764
2765
2766
2767
2768
2769
2770 #undef SCHAR_MIN
2771 #define SCHAR_MIN (-SCHAR_MAX - 1)
2772 #undef SCHAR_MAX
2773 #define SCHAR_MAX __SCHAR_MAX__
2774
2775
2776 #undef UCHAR_MAX
2777
2778
2779
2780 #define UCHAR_MAX (SCHAR_MAX * 2 + 1)
2781 # 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/limits.h" 3 4
2782 #undef CHAR_MIN
2783 #define CHAR_MIN SCHAR_MIN
2784 #undef CHAR_MAX
2785 #define CHAR_MAX SCHAR_MAX
2786
2787
2788
2789 #undef SHRT_MIN
2790 #define SHRT_MIN (-SHRT_MAX - 1)
2791 #undef SHRT_MAX
2792 #define SHRT_MAX __SHRT_MAX__
2793
2794
2795 #undef USHRT_MAX
2796
2797
2798
2799 #define USHRT_MAX (SHRT_MAX * 2 + 1)
2800
2801
2802
2803 #undef INT_MIN
2804 #define INT_MIN (-INT_MAX - 1)
2805 #undef INT_MAX
2806 #define INT_MAX __INT_MAX__
2807
2808
2809 #undef UINT_MAX
2810 #define UINT_MAX (INT_MAX * 2U + 1U)
2811
2812
2813
2814 #undef LONG_MIN
2815 #define LONG_MIN (-LONG_MAX - 1L)
2816 #undef LONG_MAX
2817 #define LONG_MAX __LONG_MAX__
2818
2819
2820 #undef ULONG_MAX
2821 #define ULONG_MAX (LONG_MAX * 2UL + 1UL)
2822 # 105 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/limits.h" 3 4
2823 #undef LONG_LONG_MIN
2824 #define LONG_LONG_MIN (-LONG_LONG_MAX - 1LL)
2825 #undef LONG_LONG_MAX
2826 #define LONG_LONG_MAX __LONG_LONG_MAX__
2827
2828
2829 #undef ULONG_LONG_MAX
2830 #define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1ULL)
2831 # 51 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/climits" 2 3
2832 # 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 2 3
2833 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdlib" 1 3
2834 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdlib" 3
2835 #define _GLIBCXX_CSTDLIB 1
2836
2837        
2838 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdlib" 3
2839 # 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdlib" 3
2840 # 1 "/usr/include/stdlib.h" 1 3 4
2841
2842
2843
2844
2845
2846
2847
2848 # 1 "/usr/include/gentoo-multilib/amd64/stdlib.h" 1 3 4
2849 # 25 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
2850 # 1 "/usr/include/features.h" 1 3 4
2851 # 26 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4
2852
2853
2854 #define __need_size_t 
2855
2856 #define __need_wchar_t 
2857 #define __need_NULL 
2858
2859 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
2860 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
2861 #undef __need_ptrdiff_t
2862 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
2863 #undef __need_size_t
2864 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
2865 #undef __need_wchar_t
2866 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
2867 #undef NULL
2868
2869 #define NULL __null
2870 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
2871 #undef __need_NULL
2872
2873
2874
2875
2876 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
2877 # 34 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4
2878
2879 extern "C" {
2880
2881
2882 #define _STDLIB_H 1
2883
2884
2885
2886 # 1 "/usr/include/bits/waitflags.h" 1 3 4
2887
2888
2889
2890
2891
2892
2893
2894 # 1 "/usr/include/gentoo-multilib/amd64/bits/waitflags.h" 1 3 4
2895 # 26 "/usr/include/gentoo-multilib/amd64/bits/waitflags.h" 3 4
2896 #define WNOHANG 1
2897 #define WUNTRACED 2
2898
2899
2900 #define WSTOPPED 2
2901 #define WEXITED 4
2902 #define WCONTINUED 8
2903 #define WNOWAIT 0x01000000
2904
2905 #define __WNOTHREAD 0x20000000
2906
2907 #define __WALL 0x40000000
2908 #define __WCLONE 0x80000000
2909 # 9 "/usr/include/bits/waitflags.h" 2 3 4
2910 # 43 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4
2911 # 1 "/usr/include/bits/waitstatus.h" 1 3 4
2912
2913
2914
2915
2916
2917
2918
2919 # 1 "/usr/include/gentoo-multilib/amd64/bits/waitstatus.h" 1 3 4
2920 # 29 "/usr/include/gentoo-multilib/amd64/bits/waitstatus.h" 3 4
2921 #define __WEXITSTATUS(status) (((status) & 0xff00) >> 8)
2922
2923
2924 #define __WTERMSIG(status) ((status) & 0x7f)
2925
2926
2927 #define __WSTOPSIG(status) __WEXITSTATUS(status)
2928
2929
2930 #define __WIFEXITED(status) (__WTERMSIG(status) == 0)
2931
2932
2933 #define __WIFSIGNALED(status) (((signed char) (((status) & 0x7f) + 1) >> 1) > 0)
2934
2935
2936
2937 #define __WIFSTOPPED(status) (((status) & 0xff) == 0x7f)
2938
2939
2940
2941
2942 #define __WIFCONTINUED(status) ((status) == __W_CONTINUED)
2943
2944
2945
2946 #define __WCOREDUMP(status) ((status) & __WCOREFLAG)
2947
2948
2949 #define __W_EXITCODE(ret,sig) ((ret) << 8 | (sig))
2950 #define __W_STOPCODE(sig) ((sig) << 8 | 0x7f)
2951 #define __W_CONTINUED 0xffff
2952 #define __WCOREFLAG 0x80
2953
2954
2955
2956
2957 # 1 "/usr/include/endian.h" 1 3 4
2958
2959
2960
2961
2962
2963
2964
2965 # 1 "/usr/include/gentoo-multilib/amd64/endian.h" 1 3 4
2966 # 20 "/usr/include/gentoo-multilib/amd64/endian.h" 3 4
2967 #define _ENDIAN_H 1
2968
2969 # 1 "/usr/include/features.h" 1 3 4
2970 # 23 "/usr/include/gentoo-multilib/amd64/endian.h" 2 3 4
2971 # 32 "/usr/include/gentoo-multilib/amd64/endian.h" 3 4
2972 #define __LITTLE_ENDIAN 1234
2973 #define __BIG_ENDIAN 4321
2974 #define __PDP_ENDIAN 3412
2975
2976
2977 # 1 "/usr/include/bits/endian.h" 1 3 4
2978
2979
2980
2981
2982
2983
2984
2985 # 1 "/usr/include/gentoo-multilib/amd64/bits/endian.h" 1 3 4
2986
2987
2988
2989
2990
2991
2992 #define __BYTE_ORDER __LITTLE_ENDIAN
2993 # 9 "/usr/include/bits/endian.h" 2 3 4
2994 # 38 "/usr/include/gentoo-multilib/amd64/endian.h" 2 3 4
2995
2996
2997
2998
2999 #define __FLOAT_WORD_ORDER __BYTE_ORDER
3000
3001
3002
3003 #define LITTLE_ENDIAN __LITTLE_ENDIAN
3004 #define BIG_ENDIAN __BIG_ENDIAN
3005 #define PDP_ENDIAN __PDP_ENDIAN
3006 #define BYTE_ORDER __BYTE_ORDER
3007
3008
3009
3010 #define __LONG_LONG_PAIR(HI,LO) LO, HI
3011 # 9 "/usr/include/endian.h" 2 3 4
3012 # 66 "/usr/include/gentoo-multilib/amd64/bits/waitstatus.h" 2 3 4
3013
3014 union wait
3015   {
3016     int w_status;
3017     struct
3018       {
3019
3020  unsigned int __w_termsig:7;
3021  unsigned int __w_coredump:1;
3022  unsigned int __w_retcode:8;
3023  unsigned int:16;
3024
3025
3026
3027
3028
3029
3030
3031       } __wait_terminated;
3032     struct
3033       {
3034
3035  unsigned int __w_stopval:8;
3036  unsigned int __w_stopsig:8;
3037  unsigned int:16;
3038
3039
3040
3041
3042
3043
3044       } __wait_stopped;
3045   };
3046
3047 #define w_termsig __wait_terminated.__w_termsig
3048 #define w_coredump __wait_terminated.__w_coredump
3049 #define w_retcode __wait_terminated.__w_retcode
3050 #define w_stopsig __wait_stopped.__w_stopsig
3051 #define w_stopval __wait_stopped.__w_stopval
3052 # 9 "/usr/include/bits/waitstatus.h" 2 3 4
3053 # 44 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4
3054 # 55 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
3055 #define __WAIT_INT(status) (*(int *) &(status))
3056 # 64 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
3057 #define __WAIT_STATUS void *
3058 #define __WAIT_STATUS_DEFN void *
3059 # 85 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
3060 #define WEXITSTATUS(status) __WEXITSTATUS(__WAIT_INT(status))
3061 #define WTERMSIG(status) __WTERMSIG(__WAIT_INT(status))
3062 #define WSTOPSIG(status) __WSTOPSIG(__WAIT_INT(status))
3063 #define WIFEXITED(status) __WIFEXITED(__WAIT_INT(status))
3064 #define WIFSIGNALED(status) __WIFSIGNALED(__WAIT_INT(status))
3065 #define WIFSTOPPED(status) __WIFSTOPPED(__WAIT_INT(status))
3066
3067 #define WIFCONTINUED(status) __WIFCONTINUED(__WAIT_INT(status))
3068
3069
3070
3071
3072
3073 typedef struct
3074   {
3075     int quot;
3076     int rem;
3077   } div_t;
3078
3079
3080
3081 typedef struct
3082   {
3083     long int quot;
3084     long int rem;
3085   } ldiv_t;
3086 #define __ldiv_t_defined 1
3087
3088
3089
3090
3091
3092
3093 __extension__ typedef struct
3094   {
3095     long long int quot;
3096     long long int rem;
3097   } lldiv_t;
3098 #define __lldiv_t_defined 1
3099
3100
3101
3102
3103
3104 #define RAND_MAX 2147483647
3105
3106
3107
3108
3109 #define EXIT_FAILURE 1
3110 #define EXIT_SUCCESS 0
3111
3112
3113
3114 #define MB_CUR_MAX (__ctype_get_mb_cur_max ())
3115 extern size_t __ctype_get_mb_cur_max (void) throw () ;
3116
3117
3118
3119
3120 extern double atof (__const char *__nptr)
3121      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
3122
3123 extern int atoi (__const char *__nptr)
3124      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
3125
3126 extern long int atol (__const char *__nptr)
3127      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
3128
3129
3130
3131
3132
3133 __extension__ extern long long int atoll (__const char *__nptr)
3134      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
3135
3136
3137
3138
3139
3140 extern double strtod (__const char *__restrict __nptr,
3141         char **__restrict __endptr)
3142      throw () __attribute__ ((__nonnull__ (1))) ;
3143
3144
3145
3146
3147
3148 extern float strtof (__const char *__restrict __nptr,
3149        char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))) ;
3150
3151 extern long double strtold (__const char *__restrict __nptr,
3152        char **__restrict __endptr)
3153      throw () __attribute__ ((__nonnull__ (1))) ;
3154
3155
3156
3157
3158
3159 extern long int strtol (__const char *__restrict __nptr,
3160    char **__restrict __endptr, int __base)
3161      throw () __attribute__ ((__nonnull__ (1))) ;
3162
3163 extern unsigned long int strtoul (__const char *__restrict __nptr,
3164       char **__restrict __endptr, int __base)
3165      throw () __attribute__ ((__nonnull__ (1))) ;
3166
3167
3168
3169
3170 __extension__
3171 extern long long int strtoq (__const char *__restrict __nptr,
3172         char **__restrict __endptr, int __base)
3173      throw () __attribute__ ((__nonnull__ (1))) ;
3174
3175 __extension__
3176 extern unsigned long long int strtouq (__const char *__restrict __nptr,
3177            char **__restrict __endptr, int __base)
3178      throw () __attribute__ ((__nonnull__ (1))) ;
3179
3180
3181
3182
3183
3184 __extension__
3185 extern long long int strtoll (__const char *__restrict __nptr,
3186          char **__restrict __endptr, int __base)
3187      throw () __attribute__ ((__nonnull__ (1))) ;
3188
3189 __extension__
3190 extern unsigned long long int strtoull (__const char *__restrict __nptr,
3191      char **__restrict __endptr, int __base)
3192      throw () __attribute__ ((__nonnull__ (1))) ;
3193
3194 # 236 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
3195 # 1 "/usr/include/xlocale.h" 1 3 4
3196 # 237 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4
3197
3198
3199
3200 extern long int strtol_l (__const char *__restrict __nptr,
3201      char **__restrict __endptr, int __base,
3202      __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))) ;
3203
3204 extern unsigned long int strtoul_l (__const char *__restrict __nptr,
3205         char **__restrict __endptr,
3206         int __base, __locale_t __loc)
3207      throw () __attribute__ ((__nonnull__ (1, 4))) ;
3208
3209 __extension__
3210 extern long long int strtoll_l (__const char *__restrict __nptr,
3211     char **__restrict __endptr, int __base,
3212     __locale_t __loc)
3213      throw () __attribute__ ((__nonnull__ (1, 4))) ;
3214
3215 __extension__
3216 extern unsigned long long int strtoull_l (__const char *__restrict __nptr,
3217        char **__restrict __endptr,
3218        int __base, __locale_t __loc)
3219      throw () __attribute__ ((__nonnull__ (1, 4))) ;
3220
3221 extern double strtod_l (__const char *__restrict __nptr,
3222    char **__restrict __endptr, __locale_t __loc)
3223      throw () __attribute__ ((__nonnull__ (1, 3))) ;
3224
3225 extern float strtof_l (__const char *__restrict __nptr,
3226          char **__restrict __endptr, __locale_t __loc)
3227      throw () __attribute__ ((__nonnull__ (1, 3))) ;
3228
3229 extern long double strtold_l (__const char *__restrict __nptr,
3230          char **__restrict __endptr,
3231          __locale_t __loc)
3232      throw () __attribute__ ((__nonnull__ (1, 3))) ;
3233 # 311 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
3234 extern char *l64a (long int __n) throw () ;
3235
3236
3237 extern long int a64l (__const char *__s)
3238      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
3239
3240
3241
3242
3243 # 1 "/usr/include/sys/types.h" 1 3 4
3244
3245
3246
3247
3248
3249
3250
3251 # 1 "/usr/include/gentoo-multilib/amd64/sys/types.h" 1 3 4
3252 # 25 "/usr/include/gentoo-multilib/amd64/sys/types.h" 3 4
3253 #define _SYS_TYPES_H 1
3254
3255 # 1 "/usr/include/features.h" 1 3 4
3256 # 28 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4
3257
3258 extern "C" {
3259
3260 # 1 "/usr/include/bits/types.h" 1 3 4
3261
3262
3263
3264
3265
3266
3267
3268 # 1 "/usr/include/gentoo-multilib/amd64/bits/types.h" 1 3 4
3269 # 25 "/usr/include/gentoo-multilib/amd64/bits/types.h" 3 4
3270 #define _BITS_TYPES_H 1
3271
3272 # 1 "/usr/include/features.h" 1 3 4
3273 # 28 "/usr/include/gentoo-multilib/amd64/bits/types.h" 2 3 4
3274 # 1 "/usr/include/bits/wordsize.h" 1 3 4
3275
3276
3277
3278
3279
3280
3281
3282 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
3283
3284
3285
3286 #define __WORDSIZE 64
3287 #define __WORDSIZE_COMPAT32 1
3288 # 9 "/usr/include/bits/wordsize.h" 2 3 4
3289 # 29 "/usr/include/gentoo-multilib/amd64/bits/types.h" 2 3 4
3290
3291
3292 typedef unsigned char __u_char;
3293 typedef unsigned short int __u_short;
3294 typedef unsigned int __u_int;
3295 typedef unsigned long int __u_long;
3296
3297
3298 typedef signed char __int8_t;
3299 typedef unsigned char __uint8_t;
3300 typedef signed short int __int16_t;
3301 typedef unsigned short int __uint16_t;
3302 typedef signed int __int32_t;
3303 typedef unsigned int __uint32_t;
3304
3305 typedef signed long int __int64_t;
3306 typedef unsigned long int __uint64_t;
3307
3308
3309
3310
3311
3312
3313
3314 typedef long int __quad_t;
3315 typedef unsigned long int __u_quad_t;
3316 # 99 "/usr/include/gentoo-multilib/amd64/bits/types.h" 3 4
3317 #define __S16_TYPE short int
3318 #define __U16_TYPE unsigned short int
3319 #define __S32_TYPE int
3320 #define __U32_TYPE unsigned int
3321 #define __SLONGWORD_TYPE long int
3322 #define __ULONGWORD_TYPE unsigned long int
3323 # 118 "/usr/include/gentoo-multilib/amd64/bits/types.h" 3 4
3324 #define __SQUAD_TYPE long int
3325 #define __UQUAD_TYPE unsigned long int
3326 #define __SWORD_TYPE long int
3327 #define __UWORD_TYPE unsigned long int
3328 #define __SLONG32_TYPE int
3329 #define __ULONG32_TYPE unsigned int
3330 #define __S64_TYPE long int
3331 #define __U64_TYPE unsigned long int
3332
3333 #define __STD_TYPE typedef
3334
3335
3336
3337 # 1 "/usr/include/bits/typesizes.h" 1 3 4
3338
3339
3340
3341
3342
3343
3344
3345 # 1 "/usr/include/gentoo-multilib/amd64/bits/typesizes.h" 1 3 4
3346 # 25 "/usr/include/gentoo-multilib/amd64/bits/typesizes.h" 3 4
3347 #define _BITS_TYPESIZES_H 1
3348
3349
3350
3351
3352 #define __DEV_T_TYPE __UQUAD_TYPE
3353 #define __UID_T_TYPE __U32_TYPE
3354 #define __GID_T_TYPE __U32_TYPE
3355 #define __INO_T_TYPE __ULONGWORD_TYPE
3356 #define __INO64_T_TYPE __UQUAD_TYPE
3357 #define __MODE_T_TYPE __U32_TYPE
3358 #define __NLINK_T_TYPE __UWORD_TYPE
3359 #define __OFF_T_TYPE __SLONGWORD_TYPE
3360 #define __OFF64_T_TYPE __SQUAD_TYPE
3361 #define __PID_T_TYPE __S32_TYPE
3362 #define __RLIM_T_TYPE __ULONGWORD_TYPE
3363 #define __RLIM64_T_TYPE __UQUAD_TYPE
3364 #define __BLKCNT_T_TYPE __SLONGWORD_TYPE
3365 #define __BLKCNT64_T_TYPE __SQUAD_TYPE
3366 #define __FSBLKCNT_T_TYPE __ULONGWORD_TYPE
3367 #define __FSBLKCNT64_T_TYPE __UQUAD_TYPE
3368 #define __FSFILCNT_T_TYPE __ULONGWORD_TYPE
3369 #define __FSFILCNT64_T_TYPE __UQUAD_TYPE
3370 #define __ID_T_TYPE __U32_TYPE
3371 #define __CLOCK_T_TYPE __SLONGWORD_TYPE
3372 #define __TIME_T_TYPE __SLONGWORD_TYPE
3373 #define __USECONDS_T_TYPE __U32_TYPE
3374 #define __SUSECONDS_T_TYPE __SLONGWORD_TYPE
3375 #define __DADDR_T_TYPE __S32_TYPE
3376 #define __SWBLK_T_TYPE __SLONGWORD_TYPE
3377 #define __KEY_T_TYPE __S32_TYPE
3378 #define __CLOCKID_T_TYPE __S32_TYPE
3379 #define __TIMER_T_TYPE void *
3380 #define __BLKSIZE_T_TYPE __SLONGWORD_TYPE
3381 #define __FSID_T_TYPE struct { int __val[2]; }
3382 #define __SSIZE_T_TYPE __SWORD_TYPE
3383
3384
3385 #define __FD_SETSIZE 1024
3386 # 9 "/usr/include/bits/typesizes.h" 2 3 4
3387 # 132 "/usr/include/gentoo-multilib/amd64/bits/types.h" 2 3 4
3388
3389
3390 typedef unsigned long int __dev_t;
3391 typedef unsigned int __uid_t;
3392 typedef unsigned int __gid_t;
3393 typedef unsigned long int __ino_t;
3394 typedef unsigned long int __ino64_t;
3395 typedef unsigned int __mode_t;
3396 typedef unsigned long int __nlink_t;
3397 typedef long int __off_t;
3398 typedef long int __off64_t;
3399 typedef int __pid_t;
3400 typedef struct { int __val[2]; } __fsid_t;
3401 typedef long int __clock_t;
3402 typedef unsigned long int __rlim_t;
3403 typedef unsigned long int __rlim64_t;
3404 typedef unsigned int __id_t;
3405 typedef long int __time_t;
3406 typedef unsigned int __useconds_t;
3407 typedef long int __suseconds_t;
3408
3409 typedef int __daddr_t;
3410 typedef long int __swblk_t;
3411 typedef int __key_t;
3412
3413
3414 typedef int __clockid_t;
3415
3416
3417 typedef void * __timer_t;
3418
3419
3420 typedef long int __blksize_t;
3421
3422
3423
3424
3425 typedef long int __blkcnt_t;
3426 typedef long int __blkcnt64_t;
3427
3428
3429 typedef unsigned long int __fsblkcnt_t;
3430 typedef unsigned long int __fsblkcnt64_t;
3431
3432
3433 typedef unsigned long int __fsfilcnt_t;
3434 typedef unsigned long int __fsfilcnt64_t;
3435
3436 typedef long int __ssize_t;
3437
3438
3439
3440 typedef __off64_t __loff_t;
3441 typedef __quad_t *__qaddr_t;
3442 typedef char *__caddr_t;
3443
3444
3445 typedef long int __intptr_t;
3446
3447
3448 typedef unsigned int __socklen_t;
3449
3450
3451 #undef __STD_TYPE
3452 # 9 "/usr/include/bits/types.h" 2 3 4
3453 # 32 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4
3454
3455
3456
3457 typedef __u_char u_char;
3458 typedef __u_short u_short;
3459 typedef __u_int u_int;
3460 typedef __u_long u_long;
3461 typedef __quad_t quad_t;
3462 typedef __u_quad_t u_quad_t;
3463 typedef __fsid_t fsid_t;
3464 #define __u_char_defined 
3465
3466
3467
3468 typedef __loff_t loff_t;
3469
3470
3471
3472 typedef __ino_t ino_t;
3473
3474
3475
3476 #define __ino_t_defined 
3477
3478
3479 typedef __ino64_t ino64_t;
3480 #define __ino64_t_defined 
3481
3482
3483
3484 typedef __dev_t dev_t;
3485 #define __dev_t_defined 
3486
3487
3488
3489 typedef __gid_t gid_t;
3490 #define __gid_t_defined 
3491
3492
3493
3494 typedef __mode_t mode_t;
3495 #define __mode_t_defined 
3496
3497
3498
3499 typedef __nlink_t nlink_t;
3500 #define __nlink_t_defined 
3501
3502
3503
3504 typedef __uid_t uid_t;
3505 #define __uid_t_defined 
3506
3507
3508
3509
3510 typedef __off_t off_t;
3511
3512
3513
3514 #define __off_t_defined 
3515
3516
3517 typedef __off64_t off64_t;
3518 #define __off64_t_defined 
3519
3520
3521
3522 typedef __pid_t pid_t;
3523 #define __pid_t_defined 
3524
3525
3526
3527 typedef __id_t id_t;
3528 #define __id_t_defined 
3529
3530
3531
3532 typedef __ssize_t ssize_t;
3533 #define __ssize_t_defined 
3534
3535
3536
3537
3538 typedef __daddr_t daddr_t;
3539 typedef __caddr_t caddr_t;
3540 #define __daddr_t_defined 
3541
3542
3543
3544
3545 typedef __key_t key_t;
3546 #define __key_t_defined 
3547
3548
3549
3550 #define __need_clock_t 
3551
3552 #define __need_time_t 
3553 #define __need_timer_t 
3554 #define __need_clockid_t 
3555 # 1 "/usr/include/time.h" 1 3 4
3556
3557
3558
3559
3560
3561
3562
3563 # 1 "/usr/include/gentoo-multilib/amd64/time.h" 1 3 4
3564 # 55 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
3565 #define __clock_t_defined 1
3566
3567 # 1 "/usr/include/bits/types.h" 1 3 4
3568 # 58 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
3569
3570
3571
3572 typedef __clock_t clock_t;
3573
3574
3575
3576
3577
3578
3579 #undef __need_clock_t
3580
3581
3582 #define __time_t_defined 1
3583
3584 # 1 "/usr/include/bits/types.h" 1 3 4
3585 # 74 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
3586
3587
3588
3589 typedef __time_t time_t;
3590
3591
3592
3593
3594
3595
3596 #undef __need_time_t
3597
3598
3599
3600 #define __clockid_t_defined 1
3601
3602 # 1 "/usr/include/bits/types.h" 1 3 4
3603 # 91 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
3604
3605
3606 typedef __clockid_t clockid_t;
3607
3608
3609 #undef __clockid_time_t
3610
3611
3612
3613 #define __timer_t_defined 1
3614
3615 # 1 "/usr/include/bits/types.h" 1 3 4
3616 # 103 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
3617
3618
3619 typedef __timer_t timer_t;
3620
3621
3622 #undef __need_timer_t
3623 # 128 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
3624 #undef __need_timespec
3625 # 9 "/usr/include/time.h" 2 3 4
3626 # 134 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4
3627
3628
3629
3630 typedef __useconds_t useconds_t;
3631 #define __useconds_t_defined 
3632
3633
3634 typedef __suseconds_t suseconds_t;
3635 #define __suseconds_t_defined 
3636
3637
3638
3639 #define __need_size_t 
3640 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
3641 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
3642 #undef __need_ptrdiff_t
3643 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
3644 #undef __need_size_t
3645 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
3646 #undef __need_wchar_t
3647 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
3648 #undef NULL
3649
3650 #define NULL __null
3651 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
3652 #undef __need_NULL
3653
3654
3655
3656
3657 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
3658 # 148 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4
3659
3660
3661
3662 typedef unsigned long int ulong;
3663 typedef unsigned short int ushort;
3664 typedef unsigned int uint;
3665 # 188 "/usr/include/gentoo-multilib/amd64/sys/types.h" 3 4
3666 #define __intN_t(N,MODE) typedef int int ##N ##_t __attribute__ ((__mode__ (MODE)))
3667
3668 #define __u_intN_t(N,MODE) typedef unsigned int u_int ##N ##_t __attribute__ ((__mode__ (MODE)))
3669
3670
3671
3672 #define __int8_t_defined 
3673 typedef int int8_t __attribute__ ((__mode__ (__QI__)));
3674 typedef int int16_t __attribute__ ((__mode__ (__HI__)));
3675 typedef int int32_t __attribute__ ((__mode__ (__SI__)));
3676 typedef int int64_t __attribute__ ((__mode__ (__DI__)));
3677
3678
3679 typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
3680 typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
3681 typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
3682 typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
3683
3684 typedef int register_t __attribute__ ((__mode__ (__word__)));
3685
3686
3687
3688
3689
3690 #define __BIT_TYPES_DEFINED__ 1
3691
3692
3693
3694
3695 # 1 "/usr/include/endian.h" 1 3 4
3696 # 218 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4
3697
3698
3699 # 1 "/usr/include/sys/select.h" 1 3 4
3700
3701
3702
3703
3704
3705
3706
3707 # 1 "/usr/include/gentoo-multilib/amd64/sys/select.h" 1 3 4
3708 # 23 "/usr/include/gentoo-multilib/amd64/sys/select.h" 3 4
3709 #define _SYS_SELECT_H 1
3710
3711 # 1 "/usr/include/features.h" 1 3 4
3712 # 26 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4
3713
3714
3715 # 1 "/usr/include/bits/types.h" 1 3 4
3716 # 29 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4
3717
3718
3719 # 1 "/usr/include/bits/select.h" 1 3 4
3720
3721
3722
3723
3724
3725
3726
3727 # 1 "/usr/include/gentoo-multilib/amd64/bits/select.h" 1 3 4
3728 # 26 "/usr/include/gentoo-multilib/amd64/bits/select.h" 3 4
3729 #define __FD_ZERO(s) do { unsigned int __i; fd_set *__arr = (s); for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i) __FDS_BITS (__arr)[__i] = 0; } while (0)
3730
3731
3732
3733
3734
3735
3736 #define __FD_SET(d,s) (__FDS_BITS (s)[__FDELT(d)] |= __FDMASK(d))
3737 #define __FD_CLR(d,s) (__FDS_BITS (s)[__FDELT(d)] &= ~__FDMASK(d))
3738 #define __FD_ISSET(d,s) ((__FDS_BITS (s)[__FDELT(d)] & __FDMASK(d)) != 0)
3739 # 9 "/usr/include/bits/select.h" 2 3 4
3740 # 32 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4
3741
3742
3743 # 1 "/usr/include/bits/sigset.h" 1 3 4
3744
3745
3746
3747
3748
3749
3750
3751 # 1 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 1 3 4
3752 # 22 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 3 4
3753 #define _SIGSET_H_types 1
3754
3755 typedef int __sig_atomic_t;
3756
3757
3758
3759 #define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int)))
3760 typedef struct
3761   {
3762     unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
3763   } __sigset_t;
3764 # 9 "/usr/include/bits/sigset.h" 2 3 4
3765 # 35 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4
3766
3767
3768 #define __sigset_t_defined 
3769 typedef __sigset_t sigset_t;
3770
3771
3772
3773 #define __need_time_t 
3774 #define __need_timespec 
3775 # 1 "/usr/include/time.h" 1 3 4
3776
3777
3778
3779
3780
3781
3782
3783 # 1 "/usr/include/gentoo-multilib/amd64/time.h" 1 3 4
3784 # 68 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
3785 #undef __need_clock_t
3786 # 84 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
3787 #undef __need_time_t
3788 # 96 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
3789 #undef __clockid_time_t
3790 # 108 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
3791 #undef __need_timer_t
3792
3793
3794
3795
3796
3797
3798 #define __timespec_defined 1
3799
3800 # 1 "/usr/include/bits/types.h" 1 3 4
3801 # 118 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
3802
3803
3804
3805 struct timespec
3806   {
3807     __time_t tv_sec;
3808     long int tv_nsec;
3809   };
3810
3811
3812 #undef __need_timespec
3813 # 9 "/usr/include/time.h" 2 3 4
3814 # 45 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4
3815 #define __need_timeval 
3816 # 1 "/usr/include/bits/time.h" 1 3 4
3817
3818
3819
3820
3821
3822
3823
3824 # 1 "/usr/include/gentoo-multilib/amd64/bits/time.h" 1 3 4
3825 # 62 "/usr/include/gentoo-multilib/amd64/bits/time.h" 3 4
3826 #undef __need_timeval
3827
3828 #define _STRUCT_TIMEVAL 1
3829 # 1 "/usr/include/bits/types.h" 1 3 4
3830 # 66 "/usr/include/gentoo-multilib/amd64/bits/time.h" 2 3 4
3831
3832
3833
3834 struct timeval
3835   {
3836     __time_t tv_sec;
3837     __suseconds_t tv_usec;
3838   };
3839 # 9 "/usr/include/bits/time.h" 2 3 4
3840 # 47 "/usr/include/gentoo-multilib/amd64/sys/select.h" 2 3 4
3841 # 55 "/usr/include/gentoo-multilib/amd64/sys/select.h" 3 4
3842 typedef long int __fd_mask;
3843
3844
3845 #undef __NFDBITS
3846 #undef __FDELT
3847 #undef __FDMASK
3848
3849 #define __NFDBITS (8 * sizeof (__fd_mask))
3850 #define __FDELT(d) ((d) / __NFDBITS)
3851 #define __FDMASK(d) ((__fd_mask) 1 << ((d) % __NFDBITS))
3852
3853
3854 typedef struct
3855   {
3856
3857
3858
3859     __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))];
3860 #define __FDS_BITS(set) ((set)->fds_bits)
3861
3862
3863
3864
3865   } fd_set;
3866
3867
3868 #define FD_SETSIZE __FD_SETSIZE
3869
3870
3871
3872 typedef __fd_mask fd_mask;
3873
3874
3875 #define NFDBITS __NFDBITS
3876
3877
3878
3879
3880 #define FD_SET(fd,fdsetp) __FD_SET (fd, fdsetp)
3881 #define FD_CLR(fd,fdsetp) __FD_CLR (fd, fdsetp)
3882 #define FD_ISSET(fd,fdsetp) __FD_ISSET (fd, fdsetp)
3883 #define FD_ZERO(fdsetp) __FD_ZERO (fdsetp)
3884
3885
3886 extern "C" {
3887 # 109 "/usr/include/gentoo-multilib/amd64/sys/select.h" 3 4
3888 extern int select (int __nfds, fd_set *__restrict __readfds,
3889      fd_set *__restrict __writefds,
3890      fd_set *__restrict __exceptfds,
3891      struct timeval *__restrict __timeout);
3892 # 121 "/usr/include/gentoo-multilib/amd64/sys/select.h" 3 4
3893 extern int pselect (int __nfds, fd_set *__restrict __readfds,
3894       fd_set *__restrict __writefds,
3895       fd_set *__restrict __exceptfds,
3896       const struct timespec *__restrict __timeout,
3897       const __sigset_t *__restrict __sigmask);
3898
3899
3900 }
3901 # 9 "/usr/include/sys/select.h" 2 3 4
3902 # 221 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4
3903
3904
3905 # 1 "/usr/include/sys/sysmacros.h" 1 3 4
3906
3907
3908
3909
3910
3911
3912
3913 # 1 "/usr/include/gentoo-multilib/amd64/sys/sysmacros.h" 1 3 4
3914 # 22 "/usr/include/gentoo-multilib/amd64/sys/sysmacros.h" 3 4
3915 #define _SYS_SYSMACROS_H 1
3916
3917 # 1 "/usr/include/features.h" 1 3 4
3918 # 25 "/usr/include/gentoo-multilib/amd64/sys/sysmacros.h" 2 3 4
3919
3920
3921
3922
3923
3924 __extension__
3925 extern unsigned int gnu_dev_major (unsigned long long int __dev)
3926      throw ();
3927 __extension__
3928 extern unsigned int gnu_dev_minor (unsigned long long int __dev)
3929      throw ();
3930 __extension__
3931 extern unsigned long long int gnu_dev_makedev (unsigned int __major,
3932             unsigned int __minor)
3933      throw ();
3934 # 65 "/usr/include/gentoo-multilib/amd64/sys/sysmacros.h" 3 4
3935 #define major(dev) gnu_dev_major (dev)
3936 #define minor(dev) gnu_dev_minor (dev)
3937 #define makedev(maj,min) gnu_dev_makedev (maj, min)
3938 # 9 "/usr/include/sys/sysmacros.h" 2 3 4
3939 # 224 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4
3940
3941
3942
3943
3944 typedef __blksize_t blksize_t;
3945 #define __blksize_t_defined 
3946
3947
3948
3949
3950
3951 typedef __blkcnt_t blkcnt_t;
3952 #define __blkcnt_t_defined 
3953
3954
3955 typedef __fsblkcnt_t fsblkcnt_t;
3956 #define __fsblkcnt_t_defined 
3957
3958
3959 typedef __fsfilcnt_t fsfilcnt_t;
3960 #define __fsfilcnt_t_defined 
3961 # 262 "/usr/include/gentoo-multilib/amd64/sys/types.h" 3 4
3962 typedef __blkcnt64_t blkcnt64_t;
3963 typedef __fsblkcnt64_t fsblkcnt64_t;
3964 typedef __fsfilcnt64_t fsfilcnt64_t;
3965
3966
3967
3968
3969
3970 # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
3971
3972
3973
3974
3975
3976
3977
3978 # 1 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 1 3 4
3979 # 21 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 3 4
3980 #define _BITS_PTHREADTYPES_H 1
3981
3982 # 1 "/usr/include/bits/wordsize.h" 1 3 4
3983
3984
3985
3986
3987
3988
3989
3990 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
3991
3992
3993
3994 #define __WORDSIZE 64
3995 #define __WORDSIZE_COMPAT32 1
3996 # 9 "/usr/include/bits/wordsize.h" 2 3 4
3997 # 24 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 2 3 4
3998
3999
4000 #define __SIZEOF_PTHREAD_ATTR_T 56
4001 #define __SIZEOF_PTHREAD_MUTEX_T 40
4002 #define __SIZEOF_PTHREAD_MUTEXATTR_T 4
4003 #define __SIZEOF_PTHREAD_COND_T 48
4004 #define __SIZEOF_PTHREAD_CONDATTR_T 4
4005 #define __SIZEOF_PTHREAD_RWLOCK_T 56
4006 #define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
4007 #define __SIZEOF_PTHREAD_BARRIER_T 32
4008 #define __SIZEOF_PTHREAD_BARRIERATTR_T 4
4009 # 50 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 3 4
4010 typedef unsigned long int pthread_t;
4011
4012
4013 typedef union
4014 {
4015   char __size[56];
4016   long int __align;
4017 } pthread_attr_t;
4018
4019
4020
4021 typedef struct __pthread_internal_list
4022 {
4023   struct __pthread_internal_list *__prev;
4024   struct __pthread_internal_list *__next;
4025 } __pthread_list_t;
4026 # 76 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 3 4
4027 typedef union
4028 {
4029   struct __pthread_mutex_s
4030   {
4031     int __lock;
4032     unsigned int __count;
4033     int __owner;
4034
4035     unsigned int __nusers;
4036
4037
4038
4039     int __kind;
4040
4041     int __spins;
4042     __pthread_list_t __list;
4043 #define __PTHREAD_MUTEX_HAVE_PREV 1
4044 # 101 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 3 4
4045   } __data;
4046   char __size[40];
4047   long int __align;
4048 } pthread_mutex_t;
4049
4050 typedef union
4051 {
4052   char __size[4];
4053   int __align;
4054 } pthread_mutexattr_t;
4055
4056
4057
4058
4059 typedef union
4060 {
4061   struct
4062   {
4063     int __lock;
4064     unsigned int __futex;
4065     __extension__ unsigned long long int __total_seq;
4066     __extension__ unsigned long long int __wakeup_seq;
4067     __extension__ unsigned long long int __woken_seq;
4068     void *__mutex;
4069     unsigned int __nwaiters;
4070     unsigned int __broadcast_seq;
4071   } __data;
4072   char __size[48];
4073   __extension__ long long int __align;
4074 } pthread_cond_t;
4075
4076 typedef union
4077 {
4078   char __size[4];
4079   int __align;
4080 } pthread_condattr_t;
4081
4082
4083
4084 typedef unsigned int pthread_key_t;
4085
4086
4087
4088 typedef int pthread_once_t;
4089
4090
4091
4092
4093
4094 typedef union
4095 {
4096
4097   struct
4098   {
4099     int __lock;
4100     unsigned int __nr_readers;
4101     unsigned int __readers_wakeup;
4102     unsigned int __writer_wakeup;
4103     unsigned int __nr_readers_queued;
4104     unsigned int __nr_writers_queued;
4105     int __writer;
4106     int __shared;
4107     unsigned long int __pad1;
4108     unsigned long int __pad2;
4109
4110
4111     unsigned int __flags;
4112   } __data;
4113 # 187 "/usr/include/gentoo-multilib/amd64/bits/pthreadtypes.h" 3 4
4114   char __size[56];
4115   long int __align;
4116 } pthread_rwlock_t;
4117
4118 typedef union
4119 {
4120   char __size[8];
4121   long int __align;
4122 } pthread_rwlockattr_t;
4123
4124
4125
4126
4127
4128 typedef volatile int pthread_spinlock_t;
4129
4130
4131
4132
4133 typedef union
4134 {
4135   char __size[32];
4136   long int __align;
4137 } pthread_barrier_t;
4138
4139 typedef union
4140 {
4141   char __size[4];
4142   int __align;
4143 } pthread_barrierattr_t;
4144 # 9 "/usr/include/bits/pthreadtypes.h" 2 3 4
4145 # 271 "/usr/include/gentoo-multilib/amd64/sys/types.h" 2 3 4
4146
4147
4148 }
4149 # 9 "/usr/include/sys/types.h" 2 3 4
4150 # 321 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4
4151
4152
4153
4154
4155
4156
4157 extern long int random (void) throw ();
4158
4159
4160 extern void srandom (unsigned int __seed) throw ();
4161
4162
4163
4164
4165
4166 extern char *initstate (unsigned int __seed, char *__statebuf,
4167    size_t __statelen) throw () __attribute__ ((__nonnull__ (2)));
4168
4169
4170
4171 extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1)));
4172
4173
4174
4175
4176
4177
4178
4179 struct random_data
4180   {
4181     int32_t *fptr;
4182     int32_t *rptr;
4183     int32_t *state;
4184     int rand_type;
4185     int rand_deg;
4186     int rand_sep;
4187     int32_t *end_ptr;
4188   };
4189
4190 extern int random_r (struct random_data *__restrict __buf,
4191        int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
4192
4193 extern int srandom_r (unsigned int __seed, struct random_data *__buf)
4194      throw () __attribute__ ((__nonnull__ (2)));
4195
4196 extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
4197    size_t __statelen,
4198    struct random_data *__restrict __buf)
4199      throw () __attribute__ ((__nonnull__ (2, 4)));
4200
4201 extern int setstate_r (char *__restrict __statebuf,
4202          struct random_data *__restrict __buf)
4203      throw () __attribute__ ((__nonnull__ (1, 2)));
4204
4205
4206
4207
4208
4209
4210 extern int rand (void) throw ();
4211
4212 extern void srand (unsigned int __seed) throw ();
4213
4214
4215
4216
4217 extern int rand_r (unsigned int *__seed) throw ();
4218
4219
4220
4221
4222
4223
4224
4225 extern double drand48 (void) throw ();
4226 extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1)));
4227
4228
4229 extern long int lrand48 (void) throw ();
4230 extern long int nrand48 (unsigned short int __xsubi[3])
4231      throw () __attribute__ ((__nonnull__ (1)));
4232
4233
4234 extern long int mrand48 (void) throw ();
4235 extern long int jrand48 (unsigned short int __xsubi[3])
4236      throw () __attribute__ ((__nonnull__ (1)));
4237
4238
4239 extern void srand48 (long int __seedval) throw ();
4240 extern unsigned short int *seed48 (unsigned short int __seed16v[3])
4241      throw () __attribute__ ((__nonnull__ (1)));
4242 extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1)));
4243
4244
4245
4246
4247
4248 struct drand48_data
4249   {
4250     unsigned short int __x[3];
4251     unsigned short int __old_x[3];
4252     unsigned short int __c;
4253     unsigned short int __init;
4254     unsigned long long int __a;
4255   };
4256
4257
4258 extern int drand48_r (struct drand48_data *__restrict __buffer,
4259         double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
4260 extern int erand48_r (unsigned short int __xsubi[3],
4261         struct drand48_data *__restrict __buffer,
4262         double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
4263
4264
4265 extern int lrand48_r (struct drand48_data *__restrict __buffer,
4266         long int *__restrict __result)
4267      throw () __attribute__ ((__nonnull__ (1, 2)));
4268 extern int nrand48_r (unsigned short int __xsubi[3],
4269         struct drand48_data *__restrict __buffer,
4270         long int *__restrict __result)
4271      throw () __attribute__ ((__nonnull__ (1, 2)));
4272
4273
4274 extern int mrand48_r (struct drand48_data *__restrict __buffer,
4275         long int *__restrict __result)
4276      throw () __attribute__ ((__nonnull__ (1, 2)));
4277 extern int jrand48_r (unsigned short int __xsubi[3],
4278         struct drand48_data *__restrict __buffer,
4279         long int *__restrict __result)
4280      throw () __attribute__ ((__nonnull__ (1, 2)));
4281
4282
4283 extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
4284      throw () __attribute__ ((__nonnull__ (2)));
4285
4286 extern int seed48_r (unsigned short int __seed16v[3],
4287        struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2)));
4288
4289 extern int lcong48_r (unsigned short int __param[7],
4290         struct drand48_data *__buffer)
4291      throw () __attribute__ ((__nonnull__ (1, 2)));
4292
4293
4294
4295
4296
4297
4298 #define __malloc_and_calloc_defined 
4299
4300
4301 extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) ;
4302
4303 extern void *calloc (size_t __nmemb, size_t __size)
4304      throw () __attribute__ ((__malloc__)) ;
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315 extern void *realloc (void *__ptr, size_t __size)
4316      throw () __attribute__ ((__warn_unused_result__));
4317
4318 extern void free (void *__ptr) throw ();
4319
4320
4321
4322
4323 extern void cfree (void *__ptr) throw ();
4324
4325
4326
4327 # 1 "/usr/include/alloca.h" 1 3 4
4328
4329
4330
4331
4332
4333
4334
4335 # 1 "/usr/include/gentoo-multilib/amd64/alloca.h" 1 3 4
4336 # 20 "/usr/include/gentoo-multilib/amd64/alloca.h" 3 4
4337 #define _ALLOCA_H 1
4338
4339 # 1 "/usr/include/features.h" 1 3 4
4340 # 23 "/usr/include/gentoo-multilib/amd64/alloca.h" 2 3 4
4341
4342 #define __need_size_t 
4343 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
4344 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4345 #undef __need_ptrdiff_t
4346 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4347 #undef __need_size_t
4348 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4349 #undef __need_wchar_t
4350 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4351 #undef NULL
4352
4353 #define NULL __null
4354 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4355 #undef __need_NULL
4356
4357
4358
4359
4360 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
4361 # 26 "/usr/include/gentoo-multilib/amd64/alloca.h" 2 3 4
4362
4363 extern "C" {
4364
4365
4366 #undef alloca
4367
4368
4369 extern void *alloca (size_t __size) throw ();
4370
4371
4372 #define alloca(size) __builtin_alloca (size)
4373
4374
4375 }
4376 # 9 "/usr/include/alloca.h" 2 3 4
4377 # 498 "/usr/include/gentoo-multilib/amd64/stdlib.h" 2 3 4
4378
4379
4380
4381
4382 extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) ;
4383
4384
4385
4386
4387 extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
4388      throw () __attribute__ ((__nonnull__ (1))) ;
4389
4390
4391
4392
4393 extern void abort (void) throw () __attribute__ ((__noreturn__));
4394
4395
4396
4397 extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1)));
4398
4399
4400
4401
4402
4403 extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
4404      throw () __attribute__ ((__nonnull__ (1)));
4405
4406
4407
4408
4409
4410
4411 extern void exit (int __status) throw () __attribute__ ((__noreturn__));
4412
4413
4414
4415
4416
4417
4418 extern void _Exit (int __status) throw () __attribute__ ((__noreturn__));
4419
4420
4421
4422
4423
4424
4425 extern char *getenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1))) ;
4426
4427
4428
4429
4430 extern char *__secure_getenv (__const char *__name)
4431      throw () __attribute__ ((__nonnull__ (1))) ;
4432
4433
4434
4435
4436
4437 extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1)));
4438
4439
4440
4441
4442
4443 extern int setenv (__const char *__name, __const char *__value, int __replace)
4444      throw () __attribute__ ((__nonnull__ (2)));
4445
4446
4447 extern int unsetenv (__const char *__name) throw ();
4448
4449
4450
4451
4452
4453
4454 extern int clearenv (void) throw ();
4455 # 583 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
4456 extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ;
4457 # 594 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
4458 extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
4459 # 604 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
4460 extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ;
4461 # 614 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
4462 extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ;
4463 # 625 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
4464 extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ;
4465 # 635 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
4466 extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ;
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476 extern int system (__const char *__command) ;
4477
4478
4479
4480
4481
4482
4483 extern char *canonicalize_file_name (__const char *__name)
4484      throw () __attribute__ ((__nonnull__ (1))) ;
4485 # 662 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
4486 extern char *realpath (__const char *__restrict __name,
4487          char *__restrict __resolved) throw () ;
4488
4489
4490
4491
4492
4493 #define __COMPAR_FN_T 
4494 typedef int (*__compar_fn_t) (__const void *, __const void *);
4495
4496
4497 typedef __compar_fn_t comparison_fn_t;
4498
4499
4500
4501
4502
4503
4504 extern void *bsearch (__const void *__key, __const void *__base,
4505         size_t __nmemb, size_t __size, __compar_fn_t __compar)
4506      __attribute__ ((__nonnull__ (1, 2, 5))) ;
4507
4508
4509
4510 extern void qsort (void *__base, size_t __nmemb, size_t __size,
4511      __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
4512
4513
4514
4515 extern int abs (int __x) throw () __attribute__ ((__const__)) ;
4516 extern long int labs (long int __x) throw () __attribute__ ((__const__)) ;
4517
4518
4519
4520 __extension__ extern long long int llabs (long long int __x)
4521      throw () __attribute__ ((__const__)) ;
4522
4523
4524
4525
4526
4527
4528
4529 extern div_t div (int __numer, int __denom)
4530      throw () __attribute__ ((__const__)) ;
4531 extern ldiv_t ldiv (long int __numer, long int __denom)
4532      throw () __attribute__ ((__const__)) ;
4533
4534
4535
4536
4537 __extension__ extern lldiv_t lldiv (long long int __numer,
4538         long long int __denom)
4539      throw () __attribute__ ((__const__)) ;
4540
4541 # 727 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
4542 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
4543      int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ;
4544
4545
4546
4547
4548 extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
4549      int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ;
4550
4551
4552
4553
4554 extern char *gcvt (double __value, int __ndigit, char *__buf)
4555      throw () __attribute__ ((__nonnull__ (3))) ;
4556
4557
4558
4559
4560 extern char *qecvt (long double __value, int __ndigit,
4561       int *__restrict __decpt, int *__restrict __sign)
4562      throw () __attribute__ ((__nonnull__ (3, 4))) ;
4563 extern char *qfcvt (long double __value, int __ndigit,
4564       int *__restrict __decpt, int *__restrict __sign)
4565      throw () __attribute__ ((__nonnull__ (3, 4))) ;
4566 extern char *qgcvt (long double __value, int __ndigit, char *__buf)
4567      throw () __attribute__ ((__nonnull__ (3))) ;
4568
4569
4570
4571
4572 extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
4573      int *__restrict __sign, char *__restrict __buf,
4574      size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5)));
4575 extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
4576      int *__restrict __sign, char *__restrict __buf,
4577      size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5)));
4578
4579 extern int qecvt_r (long double __value, int __ndigit,
4580       int *__restrict __decpt, int *__restrict __sign,
4581       char *__restrict __buf, size_t __len)
4582      throw () __attribute__ ((__nonnull__ (3, 4, 5)));
4583 extern int qfcvt_r (long double __value, int __ndigit,
4584       int *__restrict __decpt, int *__restrict __sign,
4585       char *__restrict __buf, size_t __len)
4586      throw () __attribute__ ((__nonnull__ (3, 4, 5)));
4587
4588
4589
4590
4591
4592
4593
4594 extern int mblen (__const char *__s, size_t __n) throw () ;
4595
4596
4597 extern int mbtowc (wchar_t *__restrict __pwc,
4598      __const char *__restrict __s, size_t __n) throw () ;
4599
4600
4601 extern int wctomb (char *__s, wchar_t __wchar) throw () ;
4602
4603
4604
4605 extern size_t mbstowcs (wchar_t *__restrict __pwcs,
4606    __const char *__restrict __s, size_t __n) throw ();
4607
4608 extern size_t wcstombs (char *__restrict __s,
4609    __const wchar_t *__restrict __pwcs, size_t __n)
4610      throw ();
4611
4612
4613
4614
4615
4616
4617
4618
4619 extern int rpmatch (__const char *__response) throw () __attribute__ ((__nonnull__ (1))) ;
4620 # 815 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
4621 extern int getsubopt (char **__restrict __optionp,
4622         char *__const *__restrict __tokens,
4623         char **__restrict __valuep)
4624      throw () __attribute__ ((__nonnull__ (1, 2, 3))) ;
4625
4626
4627
4628
4629
4630 extern void setkey (__const char *__key) throw () __attribute__ ((__nonnull__ (1)));
4631
4632
4633
4634
4635
4636
4637
4638 extern int posix_openpt (int __oflag) ;
4639
4640
4641
4642
4643
4644
4645
4646 extern int grantpt (int __fd) throw ();
4647
4648
4649
4650 extern int unlockpt (int __fd) throw ();
4651
4652
4653
4654
4655 extern char *ptsname (int __fd) throw () ;
4656
4657
4658
4659
4660
4661
4662 extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
4663      throw () __attribute__ ((__nonnull__ (2)));
4664
4665
4666 extern int getpt (void);
4667
4668
4669
4670
4671
4672
4673 extern int getloadavg (double __loadavg[], int __nelem)
4674      throw () __attribute__ ((__nonnull__ (1)));
4675 # 881 "/usr/include/gentoo-multilib/amd64/stdlib.h" 3 4
4676 #undef __need_malloc_and_calloc
4677
4678 }
4679 # 9 "/usr/include/stdlib.h" 2 3 4
4680 # 73 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdlib" 2 3
4681
4682
4683 #undef abort
4684 #undef abs
4685 #undef atexit
4686 #undef atof
4687 #undef atoi
4688 #undef atol
4689 #undef bsearch
4690 #undef calloc
4691 #undef div
4692 #undef exit
4693 #undef free
4694 #undef getenv
4695 #undef labs
4696 #undef ldiv
4697 #undef malloc
4698 #undef mblen
4699 #undef mbstowcs
4700 #undef mbtowc
4701 #undef qsort
4702 #undef rand
4703 #undef realloc
4704 #undef srand
4705 #undef strtod
4706 #undef strtol
4707 #undef strtoul
4708 #undef system
4709 #undef wcstombs
4710 #undef wctomb
4711
4712 namespace std __attribute__ ((__visibility__ ("default"))) {
4713
4714   using ::div_t;
4715   using ::ldiv_t;
4716
4717   using ::abort;
4718   using ::abs;
4719   using ::atexit;
4720   using ::atof;
4721   using ::atoi;
4722   using ::atol;
4723   using ::bsearch;
4724   using ::calloc;
4725   using ::div;
4726   using ::exit;
4727   using ::free;
4728   using ::getenv;
4729   using ::labs;
4730   using ::ldiv;
4731   using ::malloc;
4732
4733   using ::mblen;
4734   using ::mbstowcs;
4735   using ::mbtowc;
4736
4737   using ::qsort;
4738   using ::rand;
4739   using ::realloc;
4740   using ::srand;
4741   using ::strtod;
4742   using ::strtol;
4743   using ::strtoul;
4744   using ::system;
4745
4746   using ::wcstombs;
4747   using ::wctomb;
4748
4749
4750   inline long
4751   abs(long __i) { return labs(__i); }
4752
4753   inline ldiv_t
4754   div(long __i, long __j) { return ldiv(__i, __j); }
4755
4756 }
4757
4758
4759
4760 #undef _Exit
4761 #undef llabs
4762 #undef lldiv
4763 #undef atoll
4764 #undef strtoll
4765 #undef strtoull
4766 #undef strtof
4767 #undef strtold
4768
4769 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
4770
4771
4772   using ::lldiv_t;
4773
4774
4775
4776
4777
4778   using ::_Exit;
4779
4780
4781   inline long long
4782   abs(long long __x) { return __x >= 0 ? __x : -__x; }
4783
4784
4785   using ::llabs;
4786
4787   inline lldiv_t
4788   div(long long __n, long long __d)
4789   { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }
4790
4791   using ::lldiv;
4792 # 194 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdlib" 3
4793   using ::atoll;
4794   using ::strtoll;
4795   using ::strtoull;
4796
4797   using ::strtof;
4798   using ::strtold;
4799
4800 }
4801
4802 namespace std __attribute__ ((__visibility__ ("default"))) {
4803
4804
4805   using ::__gnu_cxx::lldiv_t;
4806
4807   using ::__gnu_cxx::_Exit;
4808   using ::__gnu_cxx::abs;
4809
4810   using ::__gnu_cxx::llabs;
4811   using ::__gnu_cxx::div;
4812   using ::__gnu_cxx::lldiv;
4813
4814   using ::__gnu_cxx::atoll;
4815   using ::__gnu_cxx::strtof;
4816   using ::__gnu_cxx::strtoll;
4817   using ::__gnu_cxx::strtoull;
4818   using ::__gnu_cxx::strtold;
4819
4820 }
4821 # 69 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 2 3
4822
4823 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/iosfwd" 1 3
4824 # 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/iosfwd" 3
4825 #define _GLIBCXX_IOSFWD 1
4826
4827        
4828 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/iosfwd" 3
4829
4830
4831 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 1 3
4832 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 3
4833 #define _C_LOCALE_H 1
4834
4835        
4836 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 3
4837
4838
4839 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdio" 1 3
4840 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdio" 3
4841 #define _GLIBCXX_CSTDIO 1
4842
4843        
4844 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdio" 3
4845
4846
4847
4848
4849 # 1 "/usr/include/stdio.h" 1 3 4
4850
4851
4852
4853
4854
4855
4856
4857 # 1 "/usr/include/gentoo-multilib/amd64/stdio.h" 1 3 4
4858 # 27 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
4859 #define _STDIO_H 1
4860 # 1 "/usr/include/features.h" 1 3 4
4861 # 29 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4
4862
4863 extern "C" {
4864
4865 #define __need_size_t 
4866 #define __need_NULL 
4867 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
4868 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4869 #undef __need_ptrdiff_t
4870 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4871 #undef __need_size_t
4872 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4873 #undef __need_wchar_t
4874 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4875 #undef NULL
4876
4877 #define NULL __null
4878 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4879 #undef __need_NULL
4880
4881
4882
4883
4884 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
4885 # 35 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4
4886
4887 # 1 "/usr/include/bits/types.h" 1 3 4
4888 # 37 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4
4889 #define __need_FILE 
4890 #define __need___FILE 
4891
4892
4893
4894
4895
4896
4897 struct _IO_FILE;
4898
4899
4900
4901 typedef struct _IO_FILE FILE;
4902
4903
4904
4905
4906
4907
4908
4909 #define __FILE_defined 1
4910
4911 #undef __need_FILE
4912
4913
4914
4915
4916
4917 typedef struct _IO_FILE __FILE;
4918
4919 #define ____FILE_defined 1
4920
4921 #undef __need___FILE
4922
4923
4924
4925 #define _STDIO_USES_IOSTREAM 
4926
4927 # 1 "/usr/include/libio.h" 1 3 4
4928
4929
4930
4931
4932
4933
4934
4935 # 1 "/usr/include/gentoo-multilib/amd64/libio.h" 1 3 4
4936 # 30 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
4937 #define _IO_STDIO_H 
4938
4939 # 1 "/usr/include/_G_config.h" 1 3 4
4940
4941
4942
4943
4944
4945
4946
4947 # 1 "/usr/include/gentoo-multilib/amd64/_G_config.h" 1 3 4
4948
4949
4950
4951
4952 #define _G_config_h 1
4953
4954
4955
4956 # 1 "/usr/include/bits/types.h" 1 3 4
4957 # 10 "/usr/include/gentoo-multilib/amd64/_G_config.h" 2 3 4
4958 #define __need_size_t 
4959
4960
4961
4962 #define __need_NULL 
4963 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
4964 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4965 #undef __need_ptrdiff_t
4966 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4967 #undef __need_size_t
4968 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4969 #undef __need_wchar_t
4970 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4971 #undef NULL
4972
4973 #define NULL __null
4974 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
4975 #undef __need_NULL
4976
4977
4978
4979
4980 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
4981 # 16 "/usr/include/gentoo-multilib/amd64/_G_config.h" 2 3 4
4982 #define __need_mbstate_t 
4983
4984
4985
4986 # 1 "/usr/include/wchar.h" 1 3 4
4987
4988
4989
4990
4991
4992
4993
4994 # 1 "/usr/include/gentoo-multilib/amd64/wchar.h" 1 3 4
4995 # 76 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
4996 #define __mbstate_t_defined 1
4997
4998 typedef struct
4999 {
5000   int __count;
5001   union
5002   {
5003
5004     unsigned int __wch;
5005
5006
5007
5008     char __wchb[4];
5009   } __value;
5010 } __mbstate_t;
5011
5012 #undef __need_mbstate_t
5013 # 9 "/usr/include/wchar.h" 2 3 4
5014 # 21 "/usr/include/gentoo-multilib/amd64/_G_config.h" 2 3 4
5015 #define _G_size_t size_t
5016 typedef struct
5017 {
5018   __off_t __pos;
5019   __mbstate_t __state;
5020 } _G_fpos_t;
5021 typedef struct
5022 {
5023   __off64_t __pos;
5024   __mbstate_t __state;
5025 } _G_fpos64_t;
5026 #define _G_ssize_t __ssize_t
5027 #define _G_off_t __off_t
5028 #define _G_off64_t __off64_t
5029 #define _G_pid_t __pid_t
5030 #define _G_uid_t __uid_t
5031 #define _G_wchar_t wchar_t
5032 #define _G_wint_t wint_t
5033 #define _G_stat64 stat64
5034 # 53 "/usr/include/gentoo-multilib/amd64/_G_config.h" 3 4
5035 typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
5036 typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
5037 typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
5038 typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
5039
5040 #define _G_HAVE_BOOL 1
5041
5042
5043
5044 #define _G_HAVE_ATEXIT 1
5045 #define _G_HAVE_SYS_CDEFS 1
5046 #define _G_HAVE_SYS_WAIT 1
5047 #define _G_NEED_STDARG_H 1
5048 #define _G_va_list __gnuc_va_list
5049
5050 #define _G_HAVE_PRINTF_FP 1
5051 #define _G_HAVE_MMAP 1
5052 #define _G_HAVE_MREMAP 1
5053 #define _G_HAVE_LONG_DOUBLE_IO 1
5054 #define _G_HAVE_IO_FILE_OPEN 1
5055 #define _G_HAVE_IO_GETLINE_INFO 1
5056
5057 #define _G_IO_IO_FILE_VERSION 0x20001
5058
5059 #define _G_OPEN64 __open64
5060 #define _G_LSEEK64 __lseek64
5061 #define _G_MMAP64 __mmap64
5062 #define _G_FSTAT64(fd,buf) __fxstat64 (_STAT_VER, fd, buf)
5063
5064
5065 #define _G_HAVE_ST_BLKSIZE defined (_STATBUF_ST_BLKSIZE)
5066
5067 #define _G_BUFSIZ 8192
5068
5069
5070 #define _G_NAMES_HAVE_UNDERSCORE 0
5071 #define _G_VTABLE_LABEL_HAS_LENGTH 1
5072 #define _G_USING_THUNKS 1
5073 #define _G_VTABLE_LABEL_PREFIX "__vt_"
5074 #define _G_VTABLE_LABEL_PREFIX_ID __vt_
5075
5076
5077
5078 #define _G_ARGS(ARGLIST) ARGLIST
5079 # 9 "/usr/include/_G_config.h" 2 3 4
5080 # 33 "/usr/include/gentoo-multilib/amd64/libio.h" 2 3 4
5081
5082 #define _IO_pos_t _G_fpos_t
5083 #define _IO_fpos_t _G_fpos_t
5084 #define _IO_fpos64_t _G_fpos64_t
5085 #define _IO_size_t _G_size_t
5086 #define _IO_ssize_t _G_ssize_t
5087 #define _IO_off_t _G_off_t
5088 #define _IO_off64_t _G_off64_t
5089 #define _IO_pid_t _G_pid_t
5090 #define _IO_uid_t _G_uid_t
5091 #define _IO_iconv_t _G_iconv_t
5092 #define _IO_HAVE_SYS_WAIT _G_HAVE_SYS_WAIT
5093 #define _IO_HAVE_ST_BLKSIZE _G_HAVE_ST_BLKSIZE
5094 #define _IO_BUFSIZ _G_BUFSIZ
5095 #define _IO_va_list _G_va_list
5096 #define _IO_wint_t _G_wint_t
5097
5098
5099
5100 #define __need___va_list 
5101 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stdarg.h" 1 3 4
5102 # 37 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stdarg.h" 3 4
5103 #undef __need___va_list
5104
5105
5106
5107
5108 #define __GNUC_VA_LIST 
5109 typedef __builtin_va_list __gnuc_va_list;
5110 # 54 "/usr/include/gentoo-multilib/amd64/libio.h" 2 3 4
5111
5112 #undef _IO_va_list
5113 #define _IO_va_list __gnuc_va_list
5114 # 76 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
5115 #define _PARAMS(protos) __P(protos)
5116
5117
5118
5119
5120
5121
5122
5123 #define _IO_UNIFIED_JUMPTABLES 1
5124
5125
5126
5127
5128
5129 #define EOF (-1)
5130 # 105 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
5131 #define _IOS_INPUT 1
5132 #define _IOS_OUTPUT 2
5133 #define _IOS_ATEND 4
5134 #define _IOS_APPEND 8
5135 #define _IOS_TRUNC 16
5136 #define _IOS_NOCREATE 32
5137 #define _IOS_NOREPLACE 64
5138 #define _IOS_BIN 128
5139
5140
5141
5142
5143
5144
5145
5146 #define _IO_MAGIC 0xFBAD0000
5147 #define _OLD_STDIO_MAGIC 0xFABC0000
5148 #define _IO_MAGIC_MASK 0xFFFF0000
5149 #define _IO_USER_BUF 1
5150 #define _IO_UNBUFFERED 2
5151 #define _IO_NO_READS 4
5152 #define _IO_NO_WRITES 8
5153 #define _IO_EOF_SEEN 0x10
5154 #define _IO_ERR_SEEN 0x20
5155 #define _IO_DELETE_DONT_CLOSE 0x40
5156 #define _IO_LINKED 0x80
5157 #define _IO_IN_BACKUP 0x100
5158 #define _IO_LINE_BUF 0x200
5159 #define _IO_TIED_PUT_GET 0x400
5160 #define _IO_CURRENTLY_PUTTING 0x800
5161 #define _IO_IS_APPENDING 0x1000
5162 #define _IO_IS_FILEBUF 0x2000
5163 #define _IO_BAD_SEEN 0x4000
5164 #define _IO_USER_LOCK 0x8000
5165
5166 #define _IO_FLAGS2_MMAP 1
5167 #define _IO_FLAGS2_NOTCANCEL 2
5168
5169
5170
5171 #define _IO_FLAGS2_USER_WBUF 8
5172
5173
5174
5175
5176
5177 #define _IO_SKIPWS 01
5178 #define _IO_LEFT 02
5179 #define _IO_RIGHT 04
5180 #define _IO_INTERNAL 010
5181 #define _IO_DEC 020
5182 #define _IO_OCT 040
5183 #define _IO_HEX 0100
5184 #define _IO_SHOWBASE 0200
5185 #define _IO_SHOWPOINT 0400
5186 #define _IO_UPPERCASE 01000
5187 #define _IO_SHOWPOS 02000
5188 #define _IO_SCIENTIFIC 04000
5189 #define _IO_FIXED 010000
5190 #define _IO_UNITBUF 020000
5191 #define _IO_STDIO 040000
5192 #define _IO_DONT_CLOSE 0100000
5193 #define _IO_BOOLALPHA 0200000
5194
5195
5196 struct _IO_jump_t; struct _IO_FILE;
5197 # 180 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
5198 typedef void _IO_lock_t;
5199
5200
5201
5202
5203
5204 struct _IO_marker {
5205   struct _IO_marker *_next;
5206   struct _IO_FILE *_sbuf;
5207
5208
5209
5210   int _pos;
5211 # 203 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
5212 };
5213
5214
5215 enum __codecvt_result
5216 {
5217   __codecvt_ok,
5218   __codecvt_partial,
5219   __codecvt_error,
5220   __codecvt_noconv
5221 };
5222 # 271 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
5223 struct _IO_FILE {
5224   int _flags;
5225 #define _IO_file_flags _flags
5226
5227
5228
5229   char* _IO_read_ptr;
5230   char* _IO_read_end;
5231   char* _IO_read_base;
5232   char* _IO_write_base;
5233   char* _IO_write_ptr;
5234   char* _IO_write_end;
5235   char* _IO_buf_base;
5236   char* _IO_buf_end;
5237
5238   char *_IO_save_base;
5239   char *_IO_backup_base;
5240   char *_IO_save_end;
5241
5242   struct _IO_marker *_markers;
5243
5244   struct _IO_FILE *_chain;
5245
5246   int _fileno;
5247
5248
5249
5250   int _flags2;
5251
5252   __off_t _old_offset;
5253
5254 #define __HAVE_COLUMN 
5255
5256   unsigned short _cur_column;
5257   signed char _vtable_offset;
5258   char _shortbuf[1];
5259
5260
5261
5262   _IO_lock_t *_lock;
5263 # 319 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
5264   __off64_t _offset;
5265 # 328 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
5266   void *__pad1;
5267   void *__pad2;
5268   void *__pad3;
5269   void *__pad4;
5270   size_t __pad5;
5271
5272   int _mode;
5273
5274   char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
5275
5276 };
5277
5278
5279
5280
5281
5282 struct _IO_FILE_plus;
5283
5284 extern struct _IO_FILE_plus _IO_2_1_stdin_;
5285 extern struct _IO_FILE_plus _IO_2_1_stdout_;
5286 extern struct _IO_FILE_plus _IO_2_1_stderr_;
5287
5288 #define _IO_stdin ((_IO_FILE*)(&_IO_2_1_stdin_))
5289 #define _IO_stdout ((_IO_FILE*)(&_IO_2_1_stdout_))
5290 #define _IO_stderr ((_IO_FILE*)(&_IO_2_1_stderr_))
5291 # 364 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
5292 typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
5293
5294
5295
5296
5297
5298
5299
5300 typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
5301      size_t __n);
5302
5303
5304
5305
5306
5307
5308
5309 typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
5310
5311
5312 typedef int __io_close_fn (void *__cookie);
5313
5314
5315
5316
5317 typedef __io_read_fn cookie_read_function_t;
5318 typedef __io_write_fn cookie_write_function_t;
5319 typedef __io_seek_fn cookie_seek_function_t;
5320 typedef __io_close_fn cookie_close_function_t;
5321
5322
5323 typedef struct
5324 {
5325   __io_read_fn *read;
5326   __io_write_fn *write;
5327   __io_seek_fn *seek;
5328   __io_close_fn *close;
5329 } _IO_cookie_io_functions_t;
5330 typedef _IO_cookie_io_functions_t cookie_io_functions_t;
5331
5332 struct _IO_cookie_file;
5333
5334
5335 extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write,
5336         void *__cookie, _IO_cookie_io_functions_t __fns);
5337
5338
5339
5340
5341 extern "C" {
5342
5343
5344 extern int __underflow (_IO_FILE *);
5345 extern int __uflow (_IO_FILE *);
5346 extern int __overflow (_IO_FILE *, int);
5347
5348
5349
5350
5351
5352
5353
5354 #define _IO_BE(expr,res) __builtin_expect ((expr), res)
5355
5356
5357
5358
5359 #define _IO_getc_unlocked(_fp) (_IO_BE ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end, 0) ? __uflow (_fp) : *(unsigned char *) (_fp)->_IO_read_ptr++)
5360
5361
5362 #define _IO_peekc_unlocked(_fp) (_IO_BE ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end, 0) && __underflow (_fp) == EOF ? EOF : *(unsigned char *) (_fp)->_IO_read_ptr)
5363
5364
5365
5366 #define _IO_putc_unlocked(_ch,_fp) (_IO_BE ((_fp)->_IO_write_ptr >= (_fp)->_IO_write_end, 0) ? __overflow (_fp, (unsigned char) (_ch)) : (unsigned char) (*(_fp)->_IO_write_ptr++ = (_ch)))
5367 # 455 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
5368 #define _IO_feof_unlocked(__fp) (((__fp)->_flags & _IO_EOF_SEEN) != 0)
5369 #define _IO_ferror_unlocked(__fp) (((__fp)->_flags & _IO_ERR_SEEN) != 0)
5370
5371 extern int _IO_getc (_IO_FILE *__fp);
5372 extern int _IO_putc (int __c, _IO_FILE *__fp);
5373 extern int _IO_feof (_IO_FILE *__fp) throw ();
5374 extern int _IO_ferror (_IO_FILE *__fp) throw ();
5375
5376 extern int _IO_peekc_locked (_IO_FILE *__fp);
5377
5378
5379 #define _IO_PENDING_OUTPUT_COUNT(_fp) ((_fp)->_IO_write_ptr - (_fp)->_IO_write_base)
5380
5381
5382 extern void _IO_flockfile (_IO_FILE *) throw ();
5383 extern void _IO_funlockfile (_IO_FILE *) throw ();
5384 extern int _IO_ftrylockfile (_IO_FILE *) throw ();
5385 # 480 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
5386 #define _IO_peekc(_fp) _IO_peekc_unlocked (_fp)
5387 #define _IO_flockfile(_fp) 
5388 #define _IO_funlockfile(_fp) 
5389 #define _IO_ftrylockfile(_fp) 
5390 #define _IO_cleanup_region_start(_fct,_fp) 
5391 #define _IO_cleanup_region_end(_Doit) 
5392
5393
5394 extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
5395    __gnuc_va_list, int *__restrict);
5396 extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
5397     __gnuc_va_list);
5398 extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
5399 extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);
5400
5401 extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
5402 extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);
5403
5404 extern void _IO_free_backup_area (_IO_FILE *) throw ();
5405 # 550 "/usr/include/gentoo-multilib/amd64/libio.h" 3 4
5406 }
5407 # 9 "/usr/include/libio.h" 2 3 4
5408 # 76 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4
5409
5410
5411
5412
5413 typedef __gnuc_va_list va_list;
5414 #define _VA_LIST_DEFINED 
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424 typedef _G_fpos_t fpos_t;
5425
5426
5427
5428
5429
5430 typedef _G_fpos64_t fpos64_t;
5431
5432
5433
5434 #define _IOFBF 0
5435 #define _IOLBF 1
5436 #define _IONBF 2
5437
5438
5439
5440
5441 #define BUFSIZ _IO_BUFSIZ
5442 # 121 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5443 #define SEEK_SET 0
5444 #define SEEK_CUR 1
5445 #define SEEK_END 2
5446
5447
5448
5449
5450 #define P_tmpdir "/tmp"
5451 # 141 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5452 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
5453
5454
5455
5456
5457
5458
5459
5460 # 1 "/usr/include/gentoo-multilib/amd64/bits/stdio_lim.h" 1 3 4
5461 # 24 "/usr/include/gentoo-multilib/amd64/bits/stdio_lim.h" 3 4
5462 #define L_tmpnam 20
5463 #define TMP_MAX 238328
5464 #define FILENAME_MAX 4096
5465
5466
5467 #define L_ctermid 9
5468 #define L_cuserid 9
5469
5470
5471
5472
5473 #undef FOPEN_MAX
5474 #define FOPEN_MAX 16
5475 # 9 "/usr/include/bits/stdio_lim.h" 2 3 4
5476 # 142 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4
5477
5478
5479
5480 extern struct _IO_FILE *stdin;
5481 extern struct _IO_FILE *stdout;
5482 extern struct _IO_FILE *stderr;
5483
5484 #define stdin stdin
5485 #define stdout stdout
5486 #define stderr stderr
5487
5488
5489
5490 extern int remove (__const char *__filename) throw ();
5491
5492 extern int rename (__const char *__old, __const char *__new) throw ();
5493
5494
5495
5496
5497 extern int renameat (int __oldfd, __const char *__old, int __newfd,
5498        __const char *__new) throw ();
5499
5500
5501
5502
5503
5504
5505
5506
5507 extern FILE *tmpfile (void) ;
5508 # 182 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5509 extern FILE *tmpfile64 (void) ;
5510
5511
5512
5513 extern char *tmpnam (char *__s) throw () ;
5514
5515
5516
5517
5518
5519 extern char *tmpnam_r (char *__s) throw () ;
5520 # 204 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5521 extern char *tempnam (__const char *__dir, __const char *__pfx)
5522      throw () __attribute__ ((__malloc__)) ;
5523
5524
5525
5526
5527
5528
5529
5530
5531 extern int fclose (FILE *__stream);
5532
5533
5534
5535
5536 extern int fflush (FILE *__stream);
5537
5538 # 229 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5539 extern int fflush_unlocked (FILE *__stream);
5540 # 239 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5541 extern int fcloseall (void);
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551 extern FILE *fopen (__const char *__restrict __filename,
5552       __const char *__restrict __modes) ;
5553
5554
5555
5556
5557 extern FILE *freopen (__const char *__restrict __filename,
5558         __const char *__restrict __modes,
5559         FILE *__restrict __stream) ;
5560 # 272 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5561
5562
5563 extern FILE *fopen64 (__const char *__restrict __filename,
5564         __const char *__restrict __modes) ;
5565 extern FILE *freopen64 (__const char *__restrict __filename,
5566    __const char *__restrict __modes,
5567    FILE *__restrict __stream) ;
5568
5569
5570
5571
5572 extern FILE *fdopen (int __fd, __const char *__modes) throw () ;
5573
5574
5575
5576
5577
5578 extern FILE *fopencookie (void *__restrict __magic_cookie,
5579      __const char *__restrict __modes,
5580      _IO_cookie_io_functions_t __io_funcs) throw () ;
5581
5582
5583 extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes)
5584   throw () ;
5585
5586
5587
5588
5589 extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) throw () ;
5590
5591
5592
5593
5594
5595
5596 extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw ();
5597
5598
5599
5600 extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
5601       int __modes, size_t __n) throw ();
5602
5603
5604
5605
5606
5607 extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
5608          size_t __size) throw ();
5609
5610
5611 extern void setlinebuf (FILE *__stream) throw ();
5612
5613
5614
5615
5616
5617
5618
5619
5620 extern int fprintf (FILE *__restrict __stream,
5621       __const char *__restrict __format, ...);
5622
5623
5624
5625
5626 extern int printf (__const char *__restrict __format, ...);
5627
5628 extern int sprintf (char *__restrict __s,
5629       __const char *__restrict __format, ...) throw ();
5630
5631
5632
5633
5634
5635 extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
5636        __gnuc_va_list __arg);
5637
5638
5639
5640
5641 extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
5642
5643 extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
5644        __gnuc_va_list __arg) throw ();
5645
5646
5647
5648
5649
5650 extern int snprintf (char *__restrict __s, size_t __maxlen,
5651        __const char *__restrict __format, ...)
5652      throw () __attribute__ ((__format__ (__printf__, 3, 4)));
5653
5654 extern int vsnprintf (char *__restrict __s, size_t __maxlen,
5655         __const char *__restrict __format, __gnuc_va_list __arg)
5656      throw () __attribute__ ((__format__ (__printf__, 3, 0)));
5657
5658
5659
5660
5661
5662
5663 extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f,
5664         __gnuc_va_list __arg)
5665      throw () __attribute__ ((__format__ (__printf__, 2, 0))) ;
5666 extern int __asprintf (char **__restrict __ptr,
5667          __const char *__restrict __fmt, ...)
5668      throw () __attribute__ ((__format__ (__printf__, 2, 3))) ;
5669 extern int asprintf (char **__restrict __ptr,
5670        __const char *__restrict __fmt, ...)
5671      throw () __attribute__ ((__format__ (__printf__, 2, 3))) ;
5672
5673
5674
5675
5676
5677
5678
5679 extern int vdprintf (int __fd, __const char *__restrict __fmt,
5680        __gnuc_va_list __arg)
5681      __attribute__ ((__format__ (__printf__, 2, 0)));
5682 extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
5683      __attribute__ ((__format__ (__printf__, 2, 3)));
5684
5685
5686
5687
5688
5689
5690
5691
5692 extern int fscanf (FILE *__restrict __stream,
5693      __const char *__restrict __format, ...) ;
5694
5695
5696
5697
5698 extern int scanf (__const char *__restrict __format, ...) ;
5699
5700 extern int sscanf (__const char *__restrict __s,
5701      __const char *__restrict __format, ...) throw ();
5702 # 441 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5703
5704
5705
5706
5707
5708
5709
5710
5711 extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
5712       __gnuc_va_list __arg)
5713      __attribute__ ((__format__ (__scanf__, 2, 0))) ;
5714
5715
5716
5717
5718
5719 extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
5720      __attribute__ ((__format__ (__scanf__, 1, 0))) ;
5721
5722
5723 extern int vsscanf (__const char *__restrict __s,
5724       __const char *__restrict __format, __gnuc_va_list __arg)
5725      throw () __attribute__ ((__format__ (__scanf__, 2, 0)));
5726 # 500 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736 extern int fgetc (FILE *__stream);
5737 extern int getc (FILE *__stream);
5738
5739
5740
5741
5742
5743 extern int getchar (void);
5744
5745
5746
5747
5748 #define getc(_fp) _IO_getc (_fp)
5749
5750
5751
5752
5753
5754
5755 extern int getc_unlocked (FILE *__stream);
5756 extern int getchar_unlocked (void);
5757 # 539 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5758 extern int fgetc_unlocked (FILE *__stream);
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770 extern int fputc (int __c, FILE *__stream);
5771 extern int putc (int __c, FILE *__stream);
5772
5773
5774
5775
5776
5777 extern int putchar (int __c);
5778
5779
5780
5781
5782 #define putc(_ch,_fp) _IO_putc (_ch, _fp)
5783 # 572 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5784 extern int fputc_unlocked (int __c, FILE *__stream);
5785
5786
5787
5788
5789
5790
5791
5792 extern int putc_unlocked (int __c, FILE *__stream);
5793 extern int putchar_unlocked (int __c);
5794
5795
5796
5797
5798
5799
5800 extern int getw (FILE *__stream);
5801
5802
5803 extern int putw (int __w, FILE *__stream);
5804
5805
5806
5807
5808
5809
5810
5811
5812 extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
5813      ;
5814
5815
5816
5817
5818
5819
5820 extern char *gets (char *__s) ;
5821
5822 # 618 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5823 extern char *fgets_unlocked (char *__restrict __s, int __n,
5824         FILE *__restrict __stream) ;
5825 # 634 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5826 extern __ssize_t __getdelim (char **__restrict __lineptr,
5827           size_t *__restrict __n, int __delimiter,
5828           FILE *__restrict __stream) ;
5829 extern __ssize_t getdelim (char **__restrict __lineptr,
5830         size_t *__restrict __n, int __delimiter,
5831         FILE *__restrict __stream) ;
5832
5833
5834
5835
5836
5837
5838
5839 extern __ssize_t getline (char **__restrict __lineptr,
5840        size_t *__restrict __n,
5841        FILE *__restrict __stream) ;
5842
5843
5844
5845
5846
5847
5848
5849
5850 extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
5851
5852
5853
5854
5855
5856 extern int puts (__const char *__s);
5857
5858
5859
5860
5861
5862
5863 extern int ungetc (int __c, FILE *__stream);
5864
5865
5866
5867
5868
5869
5870 extern size_t fread (void *__restrict __ptr, size_t __size,
5871        size_t __n, FILE *__restrict __stream) ;
5872
5873
5874
5875
5876 extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
5877         size_t __n, FILE *__restrict __s) ;
5878
5879 # 695 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5880 extern int fputs_unlocked (__const char *__restrict __s,
5881       FILE *__restrict __stream);
5882 # 706 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5883 extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
5884          size_t __n, FILE *__restrict __stream) ;
5885 extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
5886           size_t __n, FILE *__restrict __stream) ;
5887
5888
5889
5890
5891
5892
5893
5894
5895 extern int fseek (FILE *__stream, long int __off, int __whence);
5896
5897
5898
5899
5900 extern long int ftell (FILE *__stream) ;
5901
5902
5903
5904
5905 extern void rewind (FILE *__stream);
5906
5907 # 742 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5908 extern int fseeko (FILE *__stream, __off_t __off, int __whence);
5909
5910
5911
5912
5913 extern __off_t ftello (FILE *__stream) ;
5914 # 761 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5915
5916
5917
5918
5919
5920
5921 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
5922
5923
5924
5925
5926 extern int fsetpos (FILE *__stream, __const fpos_t *__pos);
5927 # 784 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5928
5929
5930
5931 extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence);
5932 extern __off64_t ftello64 (FILE *__stream) ;
5933 extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
5934 extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos);
5935
5936
5937
5938
5939 extern void clearerr (FILE *__stream) throw ();
5940
5941 extern int feof (FILE *__stream) throw () ;
5942
5943 extern int ferror (FILE *__stream) throw () ;
5944
5945
5946
5947
5948 extern void clearerr_unlocked (FILE *__stream) throw ();
5949 extern int feof_unlocked (FILE *__stream) throw () ;
5950 extern int ferror_unlocked (FILE *__stream) throw () ;
5951
5952
5953
5954
5955
5956
5957
5958
5959 extern void perror (__const char *__s);
5960
5961
5962
5963
5964
5965
5966 # 1 "/usr/include/bits/sys_errlist.h" 1 3 4
5967
5968
5969
5970
5971
5972
5973
5974 # 1 "/usr/include/gentoo-multilib/amd64/bits/sys_errlist.h" 1 3 4
5975 # 27 "/usr/include/gentoo-multilib/amd64/bits/sys_errlist.h" 3 4
5976 extern int sys_nerr;
5977 extern __const char *__const sys_errlist[];
5978
5979
5980 extern int _sys_nerr;
5981 extern __const char *__const _sys_errlist[];
5982 # 9 "/usr/include/bits/sys_errlist.h" 2 3 4
5983 # 823 "/usr/include/gentoo-multilib/amd64/stdio.h" 2 3 4
5984
5985
5986
5987
5988 extern int fileno (FILE *__stream) throw () ;
5989
5990
5991
5992
5993 extern int fileno_unlocked (FILE *__stream) throw () ;
5994 # 842 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
5995 extern FILE *popen (__const char *__command, __const char *__modes) ;
5996
5997
5998
5999
6000
6001 extern int pclose (FILE *__stream);
6002
6003
6004
6005
6006
6007 extern char *ctermid (char *__s) throw ();
6008
6009
6010
6011
6012
6013 extern char *cuserid (char *__s);
6014
6015
6016
6017
6018 struct obstack;
6019
6020
6021 extern int obstack_printf (struct obstack *__restrict __obstack,
6022       __const char *__restrict __format, ...)
6023      throw () __attribute__ ((__format__ (__printf__, 2, 3)));
6024 extern int obstack_vprintf (struct obstack *__restrict __obstack,
6025        __const char *__restrict __format,
6026        __gnuc_va_list __args)
6027      throw () __attribute__ ((__format__ (__printf__, 2, 0)));
6028
6029
6030
6031
6032
6033
6034
6035 extern void flockfile (FILE *__stream) throw ();
6036
6037
6038
6039 extern int ftrylockfile (FILE *__stream) throw () ;
6040
6041
6042 extern void funlockfile (FILE *__stream) throw ();
6043 # 912 "/usr/include/gentoo-multilib/amd64/stdio.h" 3 4
6044 }
6045 # 9 "/usr/include/stdio.h" 2 3 4
6046 # 54 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdio" 2 3
6047
6048
6049 #undef clearerr
6050 #undef fclose
6051 #undef feof
6052 #undef ferror
6053 #undef fflush
6054 #undef fgetc
6055 #undef fgetpos
6056 #undef fgets
6057 #undef fopen
6058 #undef fprintf
6059 #undef fputc
6060 #undef fputs
6061 #undef fread
6062 #undef freopen
6063 #undef fscanf
6064 #undef fseek
6065 #undef fsetpos
6066 #undef ftell
6067 #undef fwrite
6068 #undef getc
6069 #undef getchar
6070 #undef gets
6071 #undef perror
6072 #undef printf
6073 #undef putc
6074 #undef putchar
6075 #undef puts
6076 #undef remove
6077 #undef rename
6078 #undef rewind
6079 #undef scanf
6080 #undef setbuf
6081 #undef setvbuf
6082 #undef sprintf
6083 #undef sscanf
6084 #undef tmpfile
6085 #undef tmpnam
6086 #undef ungetc
6087 #undef vfprintf
6088 #undef vprintf
6089 #undef vsprintf
6090
6091 namespace std __attribute__ ((__visibility__ ("default"))) {
6092
6093   using ::FILE;
6094   using ::fpos_t;
6095
6096   using ::clearerr;
6097   using ::fclose;
6098   using ::feof;
6099   using ::ferror;
6100   using ::fflush;
6101   using ::fgetc;
6102   using ::fgetpos;
6103   using ::fgets;
6104   using ::fopen;
6105   using ::fprintf;
6106   using ::fputc;
6107   using ::fputs;
6108   using ::fread;
6109   using ::freopen;
6110   using ::fscanf;
6111   using ::fseek;
6112   using ::fsetpos;
6113   using ::ftell;
6114   using ::fwrite;
6115   using ::getc;
6116   using ::getchar;
6117   using ::gets;
6118   using ::perror;
6119   using ::printf;
6120   using ::putc;
6121   using ::putchar;
6122   using ::puts;
6123   using ::remove;
6124   using ::rename;
6125   using ::rewind;
6126   using ::scanf;
6127   using ::setbuf;
6128   using ::setvbuf;
6129   using ::sprintf;
6130   using ::sscanf;
6131   using ::tmpfile;
6132   using ::tmpnam;
6133   using ::ungetc;
6134   using ::vfprintf;
6135   using ::vprintf;
6136   using ::vsprintf;
6137
6138 }
6139
6140
6141
6142 #undef snprintf
6143 #undef vfscanf
6144 #undef vscanf
6145 #undef vsnprintf
6146 #undef vsscanf
6147
6148 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
6149 # 170 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdio" 3
6150   using ::snprintf;
6151   using ::vfscanf;
6152   using ::vscanf;
6153   using ::vsnprintf;
6154   using ::vsscanf;
6155
6156
6157 }
6158
6159 namespace std __attribute__ ((__visibility__ ("default"))) {
6160
6161   using ::__gnu_cxx::snprintf;
6162   using ::__gnu_cxx::vfscanf;
6163   using ::__gnu_cxx::vscanf;
6164   using ::__gnu_cxx::vsnprintf;
6165   using ::__gnu_cxx::vsscanf;
6166
6167 }
6168 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 2 3
6169 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/clocale" 1 3
6170 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/clocale" 3
6171 #define _GLIBCXX_CLOCALE 1
6172
6173        
6174 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/clocale" 3
6175
6176
6177 # 1 "/usr/include/locale.h" 1 3 4
6178
6179
6180
6181
6182
6183
6184
6185 # 1 "/usr/include/gentoo-multilib/amd64/locale.h" 1 3 4
6186 # 24 "/usr/include/gentoo-multilib/amd64/locale.h" 3 4
6187 #define _LOCALE_H 1
6188
6189 # 1 "/usr/include/features.h" 1 3 4
6190 # 27 "/usr/include/gentoo-multilib/amd64/locale.h" 2 3 4
6191
6192 #define __need_NULL 
6193 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
6194 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
6195 #undef __need_ptrdiff_t
6196 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
6197 #undef __need_size_t
6198 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
6199 #undef __need_wchar_t
6200 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
6201 #undef NULL
6202
6203 #define NULL __null
6204 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
6205 #undef __need_NULL
6206
6207
6208
6209
6210 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
6211 # 30 "/usr/include/gentoo-multilib/amd64/locale.h" 2 3 4
6212 # 1 "/usr/include/bits/locale.h" 1 3 4
6213
6214
6215
6216
6217
6218
6219
6220 # 1 "/usr/include/gentoo-multilib/amd64/bits/locale.h" 1 3 4
6221 # 25 "/usr/include/gentoo-multilib/amd64/bits/locale.h" 3 4
6222 #define _BITS_LOCALE_H 1
6223
6224 enum
6225 {
6226   __LC_CTYPE = 0,
6227   __LC_NUMERIC = 1,
6228   __LC_TIME = 2,
6229   __LC_COLLATE = 3,
6230   __LC_MONETARY = 4,
6231   __LC_MESSAGES = 5,
6232   __LC_ALL = 6,
6233   __LC_PAPER = 7,
6234   __LC_NAME = 8,
6235   __LC_ADDRESS = 9,
6236   __LC_TELEPHONE = 10,
6237   __LC_MEASUREMENT = 11,
6238   __LC_IDENTIFICATION = 12
6239 };
6240 # 9 "/usr/include/bits/locale.h" 2 3 4
6241 # 31 "/usr/include/gentoo-multilib/amd64/locale.h" 2 3 4
6242
6243 extern "C" {
6244
6245
6246
6247 #define LC_CTYPE __LC_CTYPE
6248 #define LC_NUMERIC __LC_NUMERIC
6249 #define LC_TIME __LC_TIME
6250 #define LC_COLLATE __LC_COLLATE
6251 #define LC_MONETARY __LC_MONETARY
6252 #define LC_MESSAGES __LC_MESSAGES
6253 #define LC_ALL __LC_ALL
6254 #define LC_PAPER __LC_PAPER
6255 #define LC_NAME __LC_NAME
6256 #define LC_ADDRESS __LC_ADDRESS
6257 #define LC_TELEPHONE __LC_TELEPHONE
6258 #define LC_MEASUREMENT __LC_MEASUREMENT
6259 #define LC_IDENTIFICATION __LC_IDENTIFICATION
6260
6261
6262
6263
6264
6265 struct lconv
6266 {
6267
6268
6269   char *decimal_point;
6270   char *thousands_sep;
6271
6272
6273
6274
6275
6276   char *grouping;
6277
6278
6279
6280
6281
6282   char *int_curr_symbol;
6283   char *currency_symbol;
6284   char *mon_decimal_point;
6285   char *mon_thousands_sep;
6286   char *mon_grouping;
6287   char *positive_sign;
6288   char *negative_sign;
6289   char int_frac_digits;
6290   char frac_digits;
6291
6292   char p_cs_precedes;
6293
6294   char p_sep_by_space;
6295
6296   char n_cs_precedes;
6297
6298   char n_sep_by_space;
6299
6300
6301
6302
6303
6304
6305   char p_sign_posn;
6306   char n_sign_posn;
6307
6308
6309   char int_p_cs_precedes;
6310
6311   char int_p_sep_by_space;
6312
6313   char int_n_cs_precedes;
6314
6315   char int_n_sep_by_space;
6316
6317
6318
6319
6320
6321
6322   char int_p_sign_posn;
6323   char int_n_sign_posn;
6324 # 121 "/usr/include/gentoo-multilib/amd64/locale.h" 3 4
6325 };
6326
6327
6328
6329 extern char *setlocale (int __category, __const char *__locale) throw ();
6330
6331
6332 extern struct lconv *localeconv (void) throw ();
6333
6334
6335 # 146 "/usr/include/gentoo-multilib/amd64/locale.h" 3 4
6336 # 1 "/usr/include/xlocale.h" 1 3 4
6337 # 147 "/usr/include/gentoo-multilib/amd64/locale.h" 2 3 4
6338
6339 typedef __locale_t locale_t;
6340
6341
6342
6343
6344
6345 extern __locale_t newlocale (int __category_mask, __const char *__locale,
6346         __locale_t __base) throw ();
6347
6348
6349
6350
6351
6352 #define LC_CTYPE_MASK (1 << __LC_CTYPE)
6353 #define LC_NUMERIC_MASK (1 << __LC_NUMERIC)
6354 #define LC_TIME_MASK (1 << __LC_TIME)
6355 #define LC_COLLATE_MASK (1 << __LC_COLLATE)
6356 #define LC_MONETARY_MASK (1 << __LC_MONETARY)
6357 #define LC_MESSAGES_MASK (1 << __LC_MESSAGES)
6358 #define LC_PAPER_MASK (1 << __LC_PAPER)
6359 #define LC_NAME_MASK (1 << __LC_NAME)
6360 #define LC_ADDRESS_MASK (1 << __LC_ADDRESS)
6361 #define LC_TELEPHONE_MASK (1 << __LC_TELEPHONE)
6362 #define LC_MEASUREMENT_MASK (1 << __LC_MEASUREMENT)
6363 #define LC_IDENTIFICATION_MASK (1 << __LC_IDENTIFICATION)
6364 #define LC_ALL_MASK (LC_CTYPE_MASK | LC_NUMERIC_MASK | LC_TIME_MASK | LC_COLLATE_MASK | LC_MONETARY_MASK | LC_MESSAGES_MASK | LC_PAPER_MASK | LC_NAME_MASK | LC_ADDRESS_MASK | LC_TELEPHONE_MASK | LC_MEASUREMENT_MASK | LC_IDENTIFICATION_MASK )
6365 # 189 "/usr/include/gentoo-multilib/amd64/locale.h" 3 4
6366 extern __locale_t duplocale (__locale_t __dataset) throw ();
6367
6368
6369
6370 extern void freelocale (__locale_t __dataset) throw ();
6371
6372
6373
6374
6375
6376
6377 extern __locale_t uselocale (__locale_t __dataset) throw ();
6378
6379
6380
6381 #define LC_GLOBAL_LOCALE ((__locale_t) -1L)
6382
6383
6384
6385 }
6386 # 9 "/usr/include/locale.h" 2 3 4
6387 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/clocale" 2 3
6388
6389
6390 #undef setlocale
6391 #undef localeconv
6392
6393 namespace std __attribute__ ((__visibility__ ("default"))) {
6394
6395   using ::lconv;
6396   using ::setlocale;
6397   using ::localeconv;
6398
6399 }
6400 # 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 2 3
6401 # 1 "/usr/include/langinfo.h" 1 3 4
6402
6403
6404
6405
6406
6407
6408
6409 # 1 "/usr/include/gentoo-multilib/amd64/langinfo.h" 1 3 4
6410 # 21 "/usr/include/gentoo-multilib/amd64/langinfo.h" 3 4
6411 #define _LANGINFO_H 1
6412
6413
6414 # 1 "/usr/include/nl_types.h" 1 3 4
6415
6416
6417
6418
6419
6420
6421
6422 # 1 "/usr/include/gentoo-multilib/amd64/nl_types.h" 1 3 4
6423 # 20 "/usr/include/gentoo-multilib/amd64/nl_types.h" 3 4
6424 #define _NL_TYPES_H 1
6425
6426 # 1 "/usr/include/features.h" 1 3 4
6427 # 23 "/usr/include/gentoo-multilib/amd64/nl_types.h" 2 3 4
6428
6429
6430 #define NL_SETD 1
6431
6432
6433 #define NL_CAT_LOCALE 1
6434
6435
6436 extern "C" {
6437
6438
6439 typedef void *nl_catd;
6440
6441
6442 typedef int nl_item;
6443
6444
6445
6446
6447
6448 extern nl_catd catopen (__const char *__cat_name, int __flag) __attribute__ ((__nonnull__ (1)));
6449
6450
6451
6452 extern char *catgets (nl_catd __catalog, int __set, int __number,
6453         __const char *__string) throw () __attribute__ ((__nonnull__ (1)));
6454
6455
6456 extern int catclose (nl_catd __catalog) throw () __attribute__ ((__nonnull__ (1)));
6457
6458 }
6459 # 9 "/usr/include/nl_types.h" 2 3 4
6460 # 25 "/usr/include/gentoo-multilib/amd64/langinfo.h" 2 3 4
6461
6462 # 1 "/usr/include/bits/locale.h" 1 3 4
6463
6464
6465
6466
6467
6468
6469
6470 # 1 "/usr/include/gentoo-multilib/amd64/bits/locale.h" 1 3 4
6471 # 9 "/usr/include/bits/locale.h" 2 3 4
6472 # 27 "/usr/include/gentoo-multilib/amd64/langinfo.h" 2 3 4
6473
6474
6475 extern "C" {
6476
6477
6478
6479
6480
6481 #define _NL_ITEM(category,index) (((category) << 16) | (index))
6482
6483
6484 #define _NL_ITEM_CATEGORY(item) ((int) (item) >> 16)
6485 #define _NL_ITEM_INDEX(item) ((int) (item) & 0xffff)
6486
6487
6488 enum
6489 {
6490
6491
6492
6493   ABDAY_1 = (((__LC_TIME) << 16) | (0)),
6494 #define ABDAY_1 ABDAY_1
6495   ABDAY_2,
6496 #define ABDAY_2 ABDAY_2
6497   ABDAY_3,
6498 #define ABDAY_3 ABDAY_3
6499   ABDAY_4,
6500 #define ABDAY_4 ABDAY_4
6501   ABDAY_5,
6502 #define ABDAY_5 ABDAY_5
6503   ABDAY_6,
6504 #define ABDAY_6 ABDAY_6
6505   ABDAY_7,
6506 #define ABDAY_7 ABDAY_7
6507
6508
6509   DAY_1,
6510 #define DAY_1 DAY_1
6511   DAY_2,
6512 #define DAY_2 DAY_2
6513   DAY_3,
6514 #define DAY_3 DAY_3
6515   DAY_4,
6516 #define DAY_4 DAY_4
6517   DAY_5,
6518 #define DAY_5 DAY_5
6519   DAY_6,
6520 #define DAY_6 DAY_6
6521   DAY_7,
6522 #define DAY_7 DAY_7
6523
6524
6525   ABMON_1,
6526 #define ABMON_1 ABMON_1
6527   ABMON_2,
6528 #define ABMON_2 ABMON_2
6529   ABMON_3,
6530 #define ABMON_3 ABMON_3
6531   ABMON_4,
6532 #define ABMON_4 ABMON_4
6533   ABMON_5,
6534 #define ABMON_5 ABMON_5
6535   ABMON_6,
6536 #define ABMON_6 ABMON_6
6537   ABMON_7,
6538 #define ABMON_7 ABMON_7
6539   ABMON_8,
6540 #define ABMON_8 ABMON_8
6541   ABMON_9,
6542 #define ABMON_9 ABMON_9
6543   ABMON_10,
6544 #define ABMON_10 ABMON_10
6545   ABMON_11,
6546 #define ABMON_11 ABMON_11
6547   ABMON_12,
6548 #define ABMON_12 ABMON_12
6549
6550
6551   MON_1,
6552 #define MON_1 MON_1
6553   MON_2,
6554 #define MON_2 MON_2
6555   MON_3,
6556 #define MON_3 MON_3
6557   MON_4,
6558 #define MON_4 MON_4
6559   MON_5,
6560 #define MON_5 MON_5
6561   MON_6,
6562 #define MON_6 MON_6
6563   MON_7,
6564 #define MON_7 MON_7
6565   MON_8,
6566 #define MON_8 MON_8
6567   MON_9,
6568 #define MON_9 MON_9
6569   MON_10,
6570 #define MON_10 MON_10
6571   MON_11,
6572 #define MON_11 MON_11
6573   MON_12,
6574 #define MON_12 MON_12
6575
6576   AM_STR,
6577 #define AM_STR AM_STR
6578   PM_STR,
6579 #define PM_STR PM_STR
6580
6581   D_T_FMT,
6582 #define D_T_FMT D_T_FMT
6583   D_FMT,
6584 #define D_FMT D_FMT
6585   T_FMT,
6586 #define T_FMT T_FMT
6587   T_FMT_AMPM,
6588 #define T_FMT_AMPM T_FMT_AMPM
6589
6590   ERA,
6591 #define ERA ERA
6592   __ERA_YEAR,
6593
6594 #define ERA_YEAR __ERA_YEAR
6595
6596   ERA_D_FMT,
6597 #define ERA_D_FMT ERA_D_FMT
6598   ALT_DIGITS,
6599 #define ALT_DIGITS ALT_DIGITS
6600   ERA_D_T_FMT,
6601 #define ERA_D_T_FMT ERA_D_T_FMT
6602   ERA_T_FMT,
6603 #define ERA_T_FMT ERA_T_FMT
6604
6605   _NL_TIME_ERA_NUM_ENTRIES,
6606   _NL_TIME_ERA_ENTRIES,
6607
6608   _NL_WABDAY_1,
6609   _NL_WABDAY_2,
6610   _NL_WABDAY_3,
6611   _NL_WABDAY_4,
6612   _NL_WABDAY_5,
6613   _NL_WABDAY_6,
6614   _NL_WABDAY_7,
6615
6616
6617   _NL_WDAY_1,
6618   _NL_WDAY_2,
6619   _NL_WDAY_3,
6620   _NL_WDAY_4,
6621   _NL_WDAY_5,
6622   _NL_WDAY_6,
6623   _NL_WDAY_7,
6624
6625
6626   _NL_WABMON_1,
6627   _NL_WABMON_2,
6628   _NL_WABMON_3,
6629   _NL_WABMON_4,
6630   _NL_WABMON_5,
6631   _NL_WABMON_6,
6632   _NL_WABMON_7,
6633   _NL_WABMON_8,
6634   _NL_WABMON_9,
6635   _NL_WABMON_10,
6636   _NL_WABMON_11,
6637   _NL_WABMON_12,
6638
6639
6640   _NL_WMON_1,
6641   _NL_WMON_2,
6642   _NL_WMON_3,
6643   _NL_WMON_4,
6644   _NL_WMON_5,
6645   _NL_WMON_6,
6646   _NL_WMON_7,
6647   _NL_WMON_8,
6648   _NL_WMON_9,
6649   _NL_WMON_10,
6650   _NL_WMON_11,
6651   _NL_WMON_12,
6652
6653   _NL_WAM_STR,
6654   _NL_WPM_STR,
6655
6656   _NL_WD_T_FMT,
6657   _NL_WD_FMT,
6658   _NL_WT_FMT,
6659   _NL_WT_FMT_AMPM,
6660
6661   _NL_WERA_YEAR,
6662   _NL_WERA_D_FMT,
6663   _NL_WALT_DIGITS,
6664   _NL_WERA_D_T_FMT,
6665   _NL_WERA_T_FMT,
6666
6667   _NL_TIME_WEEK_NDAYS,
6668   _NL_TIME_WEEK_1STDAY,
6669   _NL_TIME_WEEK_1STWEEK,
6670   _NL_TIME_FIRST_WEEKDAY,
6671   _NL_TIME_FIRST_WORKDAY,
6672   _NL_TIME_CAL_DIRECTION,
6673   _NL_TIME_TIMEZONE,
6674
6675   _DATE_FMT,
6676 #define _DATE_FMT _DATE_FMT
6677   _NL_W_DATE_FMT,
6678
6679   _NL_TIME_CODESET,
6680
6681   _NL_NUM_LC_TIME,
6682
6683
6684
6685
6686   _NL_COLLATE_NRULES = (((__LC_COLLATE) << 16) | (0)),
6687   _NL_COLLATE_RULESETS,
6688   _NL_COLLATE_TABLEMB,
6689   _NL_COLLATE_WEIGHTMB,
6690   _NL_COLLATE_EXTRAMB,
6691   _NL_COLLATE_INDIRECTMB,
6692   _NL_COLLATE_GAP1,
6693   _NL_COLLATE_GAP2,
6694   _NL_COLLATE_GAP3,
6695   _NL_COLLATE_TABLEWC,
6696   _NL_COLLATE_WEIGHTWC,
6697   _NL_COLLATE_EXTRAWC,
6698   _NL_COLLATE_INDIRECTWC,
6699   _NL_COLLATE_SYMB_HASH_SIZEMB,
6700   _NL_COLLATE_SYMB_TABLEMB,
6701   _NL_COLLATE_SYMB_EXTRAMB,
6702   _NL_COLLATE_COLLSEQMB,
6703   _NL_COLLATE_COLLSEQWC,
6704   _NL_COLLATE_CODESET,
6705   _NL_NUM_LC_COLLATE,
6706
6707
6708
6709
6710   _NL_CTYPE_CLASS = (((__LC_CTYPE) << 16) | (0)),
6711   _NL_CTYPE_TOUPPER,
6712   _NL_CTYPE_GAP1,
6713   _NL_CTYPE_TOLOWER,
6714   _NL_CTYPE_GAP2,
6715   _NL_CTYPE_CLASS32,
6716   _NL_CTYPE_GAP3,
6717   _NL_CTYPE_GAP4,
6718   _NL_CTYPE_GAP5,
6719   _NL_CTYPE_GAP6,
6720   _NL_CTYPE_CLASS_NAMES,
6721   _NL_CTYPE_MAP_NAMES,
6722   _NL_CTYPE_WIDTH,
6723   _NL_CTYPE_MB_CUR_MAX,
6724   _NL_CTYPE_CODESET_NAME,
6725   CODESET = _NL_CTYPE_CODESET_NAME,
6726 #define CODESET CODESET
6727   _NL_CTYPE_TOUPPER32,
6728   _NL_CTYPE_TOLOWER32,
6729   _NL_CTYPE_CLASS_OFFSET,
6730   _NL_CTYPE_MAP_OFFSET,
6731   _NL_CTYPE_INDIGITS_MB_LEN,
6732   _NL_CTYPE_INDIGITS0_MB,
6733   _NL_CTYPE_INDIGITS1_MB,
6734   _NL_CTYPE_INDIGITS2_MB,
6735   _NL_CTYPE_INDIGITS3_MB,
6736   _NL_CTYPE_INDIGITS4_MB,
6737   _NL_CTYPE_INDIGITS5_MB,
6738   _NL_CTYPE_INDIGITS6_MB,
6739   _NL_CTYPE_INDIGITS7_MB,
6740   _NL_CTYPE_INDIGITS8_MB,
6741   _NL_CTYPE_INDIGITS9_MB,
6742   _NL_CTYPE_INDIGITS_WC_LEN,
6743   _NL_CTYPE_INDIGITS0_WC,
6744   _NL_CTYPE_INDIGITS1_WC,
6745   _NL_CTYPE_INDIGITS2_WC,
6746   _NL_CTYPE_INDIGITS3_WC,
6747   _NL_CTYPE_INDIGITS4_WC,
6748   _NL_CTYPE_INDIGITS5_WC,
6749   _NL_CTYPE_INDIGITS6_WC,
6750   _NL_CTYPE_INDIGITS7_WC,
6751   _NL_CTYPE_INDIGITS8_WC,
6752   _NL_CTYPE_INDIGITS9_WC,
6753   _NL_CTYPE_OUTDIGIT0_MB,
6754   _NL_CTYPE_OUTDIGIT1_MB,
6755   _NL_CTYPE_OUTDIGIT2_MB,
6756   _NL_CTYPE_OUTDIGIT3_MB,
6757   _NL_CTYPE_OUTDIGIT4_MB,
6758   _NL_CTYPE_OUTDIGIT5_MB,
6759   _NL_CTYPE_OUTDIGIT6_MB,
6760   _NL_CTYPE_OUTDIGIT7_MB,
6761   _NL_CTYPE_OUTDIGIT8_MB,
6762   _NL_CTYPE_OUTDIGIT9_MB,
6763   _NL_CTYPE_OUTDIGIT0_WC,
6764   _NL_CTYPE_OUTDIGIT1_WC,
6765   _NL_CTYPE_OUTDIGIT2_WC,
6766   _NL_CTYPE_OUTDIGIT3_WC,
6767   _NL_CTYPE_OUTDIGIT4_WC,
6768   _NL_CTYPE_OUTDIGIT5_WC,
6769   _NL_CTYPE_OUTDIGIT6_WC,
6770   _NL_CTYPE_OUTDIGIT7_WC,
6771   _NL_CTYPE_OUTDIGIT8_WC,
6772   _NL_CTYPE_OUTDIGIT9_WC,
6773   _NL_CTYPE_TRANSLIT_TAB_SIZE,
6774   _NL_CTYPE_TRANSLIT_FROM_IDX,
6775   _NL_CTYPE_TRANSLIT_FROM_TBL,
6776   _NL_CTYPE_TRANSLIT_TO_IDX,
6777   _NL_CTYPE_TRANSLIT_TO_TBL,
6778   _NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN,
6779   _NL_CTYPE_TRANSLIT_DEFAULT_MISSING,
6780   _NL_CTYPE_TRANSLIT_IGNORE_LEN,
6781   _NL_CTYPE_TRANSLIT_IGNORE,
6782   _NL_CTYPE_MAP_TO_NONASCII,
6783   _NL_CTYPE_EXTRA_MAP_1,
6784   _NL_CTYPE_EXTRA_MAP_2,
6785   _NL_CTYPE_EXTRA_MAP_3,
6786   _NL_CTYPE_EXTRA_MAP_4,
6787   _NL_CTYPE_EXTRA_MAP_5,
6788   _NL_CTYPE_EXTRA_MAP_6,
6789   _NL_CTYPE_EXTRA_MAP_7,
6790   _NL_CTYPE_EXTRA_MAP_8,
6791   _NL_CTYPE_EXTRA_MAP_9,
6792   _NL_CTYPE_EXTRA_MAP_10,
6793   _NL_CTYPE_EXTRA_MAP_11,
6794   _NL_CTYPE_EXTRA_MAP_12,
6795   _NL_CTYPE_EXTRA_MAP_13,
6796   _NL_CTYPE_EXTRA_MAP_14,
6797   _NL_NUM_LC_CTYPE,
6798
6799
6800
6801
6802   __INT_CURR_SYMBOL = (((__LC_MONETARY) << 16) | (0)),
6803
6804 #define INT_CURR_SYMBOL __INT_CURR_SYMBOL
6805
6806   __CURRENCY_SYMBOL,
6807
6808 #define CURRENCY_SYMBOL __CURRENCY_SYMBOL
6809
6810   __MON_DECIMAL_POINT,
6811
6812 #define MON_DECIMAL_POINT __MON_DECIMAL_POINT
6813
6814   __MON_THOUSANDS_SEP,
6815
6816 #define MON_THOUSANDS_SEP __MON_THOUSANDS_SEP
6817
6818   __MON_GROUPING,
6819
6820 #define MON_GROUPING __MON_GROUPING
6821
6822   __POSITIVE_SIGN,
6823
6824 #define POSITIVE_SIGN __POSITIVE_SIGN
6825
6826   __NEGATIVE_SIGN,
6827
6828 #define NEGATIVE_SIGN __NEGATIVE_SIGN
6829
6830   __INT_FRAC_DIGITS,
6831
6832 #define INT_FRAC_DIGITS __INT_FRAC_DIGITS
6833
6834   __FRAC_DIGITS,
6835
6836 #define FRAC_DIGITS __FRAC_DIGITS
6837
6838   __P_CS_PRECEDES,
6839
6840 #define P_CS_PRECEDES __P_CS_PRECEDES
6841
6842   __P_SEP_BY_SPACE,
6843
6844 #define P_SEP_BY_SPACE __P_SEP_BY_SPACE
6845
6846   __N_CS_PRECEDES,
6847
6848 #define N_CS_PRECEDES __N_CS_PRECEDES
6849
6850   __N_SEP_BY_SPACE,
6851
6852 #define N_SEP_BY_SPACE __N_SEP_BY_SPACE
6853
6854   __P_SIGN_POSN,
6855
6856 #define P_SIGN_POSN __P_SIGN_POSN
6857
6858   __N_SIGN_POSN,
6859
6860 #define N_SIGN_POSN __N_SIGN_POSN
6861
6862   _NL_MONETARY_CRNCYSTR,
6863 #define CRNCYSTR _NL_MONETARY_CRNCYSTR
6864   __INT_P_CS_PRECEDES,
6865
6866 #define INT_P_CS_PRECEDES __INT_P_CS_PRECEDES
6867
6868   __INT_P_SEP_BY_SPACE,
6869
6870 #define INT_P_SEP_BY_SPACE __INT_P_SEP_BY_SPACE
6871
6872   __INT_N_CS_PRECEDES,
6873
6874 #define INT_N_CS_PRECEDES __INT_N_CS_PRECEDES
6875
6876   __INT_N_SEP_BY_SPACE,
6877
6878 #define INT_N_SEP_BY_SPACE __INT_N_SEP_BY_SPACE
6879
6880   __INT_P_SIGN_POSN,
6881
6882 #define INT_P_SIGN_POSN __INT_P_SIGN_POSN
6883
6884   __INT_N_SIGN_POSN,
6885
6886 #define INT_N_SIGN_POSN __INT_N_SIGN_POSN
6887
6888   _NL_MONETARY_DUO_INT_CURR_SYMBOL,
6889   _NL_MONETARY_DUO_CURRENCY_SYMBOL,
6890   _NL_MONETARY_DUO_INT_FRAC_DIGITS,
6891   _NL_MONETARY_DUO_FRAC_DIGITS,
6892   _NL_MONETARY_DUO_P_CS_PRECEDES,
6893   _NL_MONETARY_DUO_P_SEP_BY_SPACE,
6894   _NL_MONETARY_DUO_N_CS_PRECEDES,
6895   _NL_MONETARY_DUO_N_SEP_BY_SPACE,
6896   _NL_MONETARY_DUO_INT_P_CS_PRECEDES,
6897   _NL_MONETARY_DUO_INT_P_SEP_BY_SPACE,
6898   _NL_MONETARY_DUO_INT_N_CS_PRECEDES,
6899   _NL_MONETARY_DUO_INT_N_SEP_BY_SPACE,
6900   _NL_MONETARY_DUO_P_SIGN_POSN,
6901   _NL_MONETARY_DUO_N_SIGN_POSN,
6902   _NL_MONETARY_DUO_INT_P_SIGN_POSN,
6903   _NL_MONETARY_DUO_INT_N_SIGN_POSN,
6904   _NL_MONETARY_UNO_VALID_FROM,
6905   _NL_MONETARY_UNO_VALID_TO,
6906   _NL_MONETARY_DUO_VALID_FROM,
6907   _NL_MONETARY_DUO_VALID_TO,
6908   _NL_MONETARY_CONVERSION_RATE,
6909   _NL_MONETARY_DECIMAL_POINT_WC,
6910   _NL_MONETARY_THOUSANDS_SEP_WC,
6911   _NL_MONETARY_CODESET,
6912   _NL_NUM_LC_MONETARY,
6913
6914
6915
6916   __DECIMAL_POINT = (((__LC_NUMERIC) << 16) | (0)),
6917
6918 #define DECIMAL_POINT __DECIMAL_POINT
6919
6920   RADIXCHAR = __DECIMAL_POINT,
6921 #define RADIXCHAR RADIXCHAR
6922   __THOUSANDS_SEP,
6923
6924 #define THOUSANDS_SEP __THOUSANDS_SEP
6925
6926   THOUSEP = __THOUSANDS_SEP,
6927 #define THOUSEP THOUSEP
6928   __GROUPING,
6929
6930 #define GROUPING __GROUPING
6931
6932   _NL_NUMERIC_DECIMAL_POINT_WC,
6933   _NL_NUMERIC_THOUSANDS_SEP_WC,
6934   _NL_NUMERIC_CODESET,
6935   _NL_NUM_LC_NUMERIC,
6936
6937   __YESEXPR = (((__LC_MESSAGES) << 16) | (0)),
6938 #define YESEXPR __YESEXPR
6939   __NOEXPR,
6940 #define NOEXPR __NOEXPR
6941   __YESSTR,
6942
6943 #define YESSTR __YESSTR
6944
6945   __NOSTR,
6946
6947 #define NOSTR __NOSTR
6948
6949   _NL_MESSAGES_CODESET,
6950   _NL_NUM_LC_MESSAGES,
6951
6952   _NL_PAPER_HEIGHT = (((__LC_PAPER) << 16) | (0)),
6953   _NL_PAPER_WIDTH,
6954   _NL_PAPER_CODESET,
6955   _NL_NUM_LC_PAPER,
6956
6957   _NL_NAME_NAME_FMT = (((__LC_NAME) << 16) | (0)),
6958   _NL_NAME_NAME_GEN,
6959   _NL_NAME_NAME_MR,
6960   _NL_NAME_NAME_MRS,
6961   _NL_NAME_NAME_MISS,
6962   _NL_NAME_NAME_MS,
6963   _NL_NAME_CODESET,
6964   _NL_NUM_LC_NAME,
6965
6966   _NL_ADDRESS_POSTAL_FMT = (((__LC_ADDRESS) << 16) | (0)),
6967   _NL_ADDRESS_COUNTRY_NAME,
6968   _NL_ADDRESS_COUNTRY_POST,
6969   _NL_ADDRESS_COUNTRY_AB2,
6970   _NL_ADDRESS_COUNTRY_AB3,
6971   _NL_ADDRESS_COUNTRY_CAR,
6972   _NL_ADDRESS_COUNTRY_NUM,
6973   _NL_ADDRESS_COUNTRY_ISBN,
6974   _NL_ADDRESS_LANG_NAME,
6975   _NL_ADDRESS_LANG_AB,
6976   _NL_ADDRESS_LANG_TERM,
6977   _NL_ADDRESS_LANG_LIB,
6978   _NL_ADDRESS_CODESET,
6979   _NL_NUM_LC_ADDRESS,
6980
6981   _NL_TELEPHONE_TEL_INT_FMT = (((__LC_TELEPHONE) << 16) | (0)),
6982   _NL_TELEPHONE_TEL_DOM_FMT,
6983   _NL_TELEPHONE_INT_SELECT,
6984   _NL_TELEPHONE_INT_PREFIX,
6985   _NL_TELEPHONE_CODESET,
6986   _NL_NUM_LC_TELEPHONE,
6987
6988   _NL_MEASUREMENT_MEASUREMENT = (((__LC_MEASUREMENT) << 16) | (0)),
6989   _NL_MEASUREMENT_CODESET,
6990   _NL_NUM_LC_MEASUREMENT,
6991
6992   _NL_IDENTIFICATION_TITLE = (((__LC_IDENTIFICATION) << 16) | (0)),
6993   _NL_IDENTIFICATION_SOURCE,
6994   _NL_IDENTIFICATION_ADDRESS,
6995   _NL_IDENTIFICATION_CONTACT,
6996   _NL_IDENTIFICATION_EMAIL,
6997   _NL_IDENTIFICATION_TEL,
6998   _NL_IDENTIFICATION_FAX,
6999   _NL_IDENTIFICATION_LANGUAGE,
7000   _NL_IDENTIFICATION_TERRITORY,
7001   _NL_IDENTIFICATION_AUDIENCE,
7002   _NL_IDENTIFICATION_APPLICATION,
7003   _NL_IDENTIFICATION_ABBREVIATION,
7004   _NL_IDENTIFICATION_REVISION,
7005   _NL_IDENTIFICATION_DATE,
7006   _NL_IDENTIFICATION_CATEGORY,
7007   _NL_IDENTIFICATION_CODESET,
7008   _NL_NUM_LC_IDENTIFICATION,
7009
7010
7011   _NL_NUM
7012 };
7013
7014
7015
7016 #define _NL_LOCALE_NAME(category) _NL_ITEM ((category), -1)
7017
7018 #define NL_LOCALE_NAME(category) _NL_LOCALE_NAME (category)
7019 # 582 "/usr/include/gentoo-multilib/amd64/langinfo.h" 3 4
7020 extern char *nl_langinfo (nl_item __item) throw ();
7021
7022
7023
7024
7025
7026
7027
7028 # 1 "/usr/include/xlocale.h" 1 3 4
7029 # 591 "/usr/include/gentoo-multilib/amd64/langinfo.h" 2 3 4
7030
7031
7032 extern char *nl_langinfo_l (nl_item __item, __locale_t l);
7033
7034
7035 }
7036 # 9 "/usr/include/langinfo.h" 2 3 4
7037 # 51 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 2 3
7038 # 1 "/usr/include/iconv.h" 1 3 4
7039
7040
7041
7042
7043
7044
7045
7046 # 1 "/usr/include/gentoo-multilib/amd64/iconv.h" 1 3 4
7047 # 20 "/usr/include/gentoo-multilib/amd64/iconv.h" 3 4
7048 #define _ICONV_H 1
7049
7050 # 1 "/usr/include/features.h" 1 3 4
7051 # 23 "/usr/include/gentoo-multilib/amd64/iconv.h" 2 3 4
7052 #define __need_size_t 
7053 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
7054 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7055 #undef __need_ptrdiff_t
7056 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7057 #undef __need_size_t
7058 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7059 #undef __need_wchar_t
7060 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7061 #undef NULL
7062
7063 #define NULL __null
7064 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7065 #undef __need_NULL
7066
7067
7068
7069
7070 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
7071 # 25 "/usr/include/gentoo-multilib/amd64/iconv.h" 2 3 4
7072
7073
7074 extern "C" {
7075
7076
7077 typedef void *iconv_t;
7078
7079
7080
7081
7082
7083
7084
7085 extern iconv_t iconv_open (__const char *__tocode, __const char *__fromcode);
7086
7087
7088
7089
7090 extern size_t iconv (iconv_t __cd, char **__restrict __inbuf,
7091        size_t *__restrict __inbytesleft,
7092        char **__restrict __outbuf,
7093        size_t *__restrict __outbytesleft);
7094
7095
7096
7097
7098
7099 extern int iconv_close (iconv_t __cd);
7100
7101 }
7102 # 9 "/usr/include/iconv.h" 2 3 4
7103 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 2 3
7104 # 1 "/usr/include/libintl.h" 1 3 4
7105
7106
7107
7108
7109
7110
7111
7112 # 1 "/usr/include/gentoo-multilib/amd64/libintl.h" 1 3 4
7113 # 22 "/usr/include/gentoo-multilib/amd64/libintl.h" 3 4
7114 #define _LIBINTL_H 1
7115
7116 # 1 "/usr/include/features.h" 1 3 4
7117 # 25 "/usr/include/gentoo-multilib/amd64/libintl.h" 2 3 4
7118
7119
7120
7121 #define __USE_GNU_GETTEXT 1
7122
7123
7124
7125 #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 1 : -1)
7126
7127
7128 extern "C" {
7129
7130
7131
7132
7133 extern char *((const char *) (__const char *__msgid))
7134      throw () __attribute__ ((__format_arg__ (1)));
7135
7136
7137
7138 extern char *((const char *) (__const char *__msgid))
7139      throw () __attribute__ ((__format_arg__ (2)));
7140 extern char *__dgettext (__const char *__domainname, __const char *__msgid)
7141      throw () __attribute__ ((__format_arg__ (2)));
7142
7143
7144
7145 extern char *((const char *) (__const char *__msgid))
7146
7147      throw () __attribute__ ((__format_arg__ (2)));
7148 extern char *__dcgettext (__const char *__domainname,
7149      __const char *__msgid, int __category)
7150      throw () __attribute__ ((__format_arg__ (2)));
7151
7152
7153
7154
7155 extern char *((unsigned long int __n) == 1 ? (const char *) (__const char *__msgid1) : (const char *) (__const char *__msgid2))
7156
7157      throw () __attribute__ ((__format_arg__ (1))) __attribute__ ((__format_arg__ (2)));
7158
7159
7160
7161 extern char *((unsigned long int __n) == 1 ? (const char *) (__const char *__msgid1) : (const char *) (__const char *__msgid2))
7162
7163      throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3)));
7164
7165
7166
7167 extern char *((unsigned long int __n) == 1 ? (const char *) (__const char *__msgid1) : (const char *) (__const char *__msgid2))
7168
7169
7170      throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3)));
7171
7172
7173
7174
7175
7176 extern char *((const char *) (__const char *__domainname)) throw ();
7177
7178
7179
7180 extern char *((const char *) (__const char *__dirname)) throw ();
7181
7182
7183
7184
7185 extern char *((const char *) (__const char *__codeset)) throw ();
7186 # 122 "/usr/include/gentoo-multilib/amd64/libintl.h" 3 4
7187 }
7188 # 9 "/usr/include/libintl.h" 2 3 4
7189 # 53 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 2 3
7190 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdarg" 1 3
7191 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdarg" 3
7192 #define _GLIBCXX_CSTDARG 1
7193
7194        
7195 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdarg" 3
7196
7197
7198 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stdarg.h" 1 3 4
7199 # 34 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stdarg.h" 3 4
7200 #define _STDARG_H 
7201 #define _ANSI_STDARG_H_ 
7202
7203 #undef __need___va_list
7204 # 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stdarg.h" 3 4
7205 #define va_start(v,l) __builtin_va_start(v,l)
7206 #define va_end(v) __builtin_va_end(v)
7207 #define va_arg(v,l) __builtin_va_arg(v,l)
7208
7209 #define va_copy(d,s) __builtin_va_copy(d,s)
7210
7211 #define __va_copy(d,s) __builtin_va_copy(d,s)
7212 # 111 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stdarg.h" 3 4
7213 #define _VA_LIST_ 
7214
7215
7216 #define _VA_LIST 
7217
7218
7219
7220
7221
7222 #define _VA_LIST_T_H 
7223
7224
7225 #define __va_list__ 
7226 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cstdarg" 2 3
7227
7228
7229
7230
7231
7232
7233 namespace std __attribute__ ((__visibility__ ("default"))) {
7234
7235   using ::va_list;
7236
7237 }
7238 # 54 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++locale.h" 2 3
7239
7240 #define _GLIBCXX_C_LOCALE_GNU 1
7241
7242 #define _GLIBCXX_NUM_CATEGORIES 6
7243
7244
7245 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
7246
7247   extern "C" __typeof(uselocale) __uselocale;
7248
7249 }
7250
7251
7252 namespace std __attribute__ ((__visibility__ ("default"))) {
7253
7254   typedef __locale_t __c_locale;
7255
7256
7257
7258
7259
7260   inline int
7261   __convert_from_v(const __c_locale& __cloc __attribute__ ((__unused__)),
7262      char* __out,
7263      const int __size __attribute__ ((__unused__)),
7264      const char* __fmt, ...)
7265   {
7266
7267     __c_locale __old = __gnu_cxx::__uselocale(__cloc);
7268
7269
7270
7271
7272
7273
7274
7275     va_list __args;
7276     __builtin_va_start(__args,__fmt);
7277
7278
7279     const int __ret = std::vsnprintf(__out, __size, __fmt, __args);
7280
7281
7282
7283
7284     __builtin_va_end(__args);
7285
7286
7287     __gnu_cxx::__uselocale(__old);
7288
7289
7290
7291
7292     return __ret;
7293   }
7294
7295 }
7296 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/iosfwd" 2 3
7297 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++io.h" 1 3
7298 # 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++io.h" 3
7299 #define _C_IO_STDIO_H 1
7300
7301
7302
7303 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr.h" 1 3
7304 # 30 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr.h" 3
7305 #define _GLIBCXX_GCC_GTHR_H 
7306
7307
7308 #pragma GCC visibility push(default)
7309 # 111 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr.h" 3
7310 #define _GLIBCXX_GTHREAD_USE_WEAK 1
7311
7312
7313 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h" 1 3
7314 # 31 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h" 3
7315 #define _GLIBCXX_GCC_GTHR_POSIX_H 
7316
7317
7318
7319
7320 #define __GTHREADS 1
7321
7322
7323
7324
7325
7326
7327 # 1 "/usr/include/pthread.h" 1 3 4
7328
7329
7330
7331
7332
7333
7334
7335 # 1 "/usr/include/gentoo-multilib/amd64/pthread.h" 1 3 4
7336 # 21 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
7337 #define _PTHREAD_H 1
7338
7339 # 1 "/usr/include/features.h" 1 3 4
7340 # 24 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4
7341 # 1 "/usr/include/endian.h" 1 3 4
7342 # 25 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4
7343 # 1 "/usr/include/sched.h" 1 3 4
7344
7345
7346
7347
7348
7349
7350
7351 # 1 "/usr/include/gentoo-multilib/amd64/sched.h" 1 3 4
7352 # 21 "/usr/include/gentoo-multilib/amd64/sched.h" 3 4
7353 #define _SCHED_H 1
7354
7355 # 1 "/usr/include/features.h" 1 3 4
7356 # 24 "/usr/include/gentoo-multilib/amd64/sched.h" 2 3 4
7357
7358
7359 # 1 "/usr/include/bits/types.h" 1 3 4
7360 # 27 "/usr/include/gentoo-multilib/amd64/sched.h" 2 3 4
7361
7362 #define __need_size_t 
7363 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
7364 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7365 #undef __need_ptrdiff_t
7366 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7367 #undef __need_size_t
7368 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7369 #undef __need_wchar_t
7370 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7371 #undef NULL
7372
7373 #define NULL __null
7374 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7375 #undef __need_NULL
7376
7377
7378
7379
7380 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
7381 # 30 "/usr/include/gentoo-multilib/amd64/sched.h" 2 3 4
7382
7383 #define __need_timespec 
7384 # 1 "/usr/include/time.h" 1 3 4
7385
7386
7387
7388
7389
7390
7391
7392 # 1 "/usr/include/gentoo-multilib/amd64/time.h" 1 3 4
7393 # 68 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7394 #undef __need_clock_t
7395 # 84 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7396 #undef __need_time_t
7397 # 96 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7398 #undef __clockid_time_t
7399 # 108 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7400 #undef __need_timer_t
7401 # 128 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7402 #undef __need_timespec
7403 # 9 "/usr/include/time.h" 2 3 4
7404 # 33 "/usr/include/gentoo-multilib/amd64/sched.h" 2 3 4
7405
7406
7407 # 1 "/usr/include/bits/sched.h" 1 3 4
7408
7409
7410
7411
7412
7413
7414
7415 # 1 "/usr/include/gentoo-multilib/amd64/bits/sched.h" 1 3 4
7416 # 30 "/usr/include/gentoo-multilib/amd64/bits/sched.h" 3 4
7417 #define SCHED_OTHER 0
7418 #define SCHED_FIFO 1
7419 #define SCHED_RR 2
7420
7421 #define SCHED_BATCH 3
7422
7423
7424
7425
7426 #define CSIGNAL 0x000000ff
7427 #define CLONE_VM 0x00000100
7428 #define CLONE_FS 0x00000200
7429 #define CLONE_FILES 0x00000400
7430 #define CLONE_SIGHAND 0x00000800
7431 #define CLONE_PTRACE 0x00002000
7432 #define CLONE_VFORK 0x00004000
7433
7434 #define CLONE_PARENT 0x00008000
7435
7436 #define CLONE_THREAD 0x00010000
7437 #define CLONE_NEWNS 0x00020000
7438 #define CLONE_SYSVSEM 0x00040000
7439 #define CLONE_SETTLS 0x00080000
7440 #define CLONE_PARENT_SETTID 0x00100000
7441
7442 #define CLONE_CHILD_CLEARTID 0x00200000
7443
7444 #define CLONE_DETACHED 0x00400000
7445 #define CLONE_UNTRACED 0x00800000
7446
7447 #define CLONE_CHILD_SETTID 0x01000000
7448
7449 #define CLONE_STOPPED 0x02000000
7450
7451
7452
7453 struct sched_param
7454   {
7455     int __sched_priority;
7456   };
7457
7458 extern "C" {
7459
7460
7461
7462 extern int clone (int (*__fn) (void *__arg), void *__child_stack,
7463     int __flags, void *__arg, ...) throw ();
7464
7465
7466 extern int unshare (int __flags) throw ();
7467
7468
7469 extern int sched_getcpu (void) throw ();
7470
7471
7472 }
7473
7474
7475
7476
7477
7478 #define __defined_schedparam 1
7479
7480 struct __sched_param
7481   {
7482     int __sched_priority;
7483   };
7484 #undef __need_schedparam
7485
7486
7487
7488
7489 #define __cpu_set_t_defined 
7490
7491 #define __CPU_SETSIZE 1024
7492 #define __NCPUBITS (8 * sizeof (__cpu_mask))
7493
7494
7495 typedef unsigned long int __cpu_mask;
7496
7497
7498 #define __CPUELT(cpu) ((cpu) / __NCPUBITS)
7499 #define __CPUMASK(cpu) ((__cpu_mask) 1 << ((cpu) % __NCPUBITS))
7500
7501
7502 typedef struct
7503 {
7504   __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))];
7505 } cpu_set_t;
7506
7507
7508
7509 #define __CPU_ZERO_S(setsize,cpusetp) do __builtin_memset (cpusetp, '\0', setsize); while (0)
7510 # 134 "/usr/include/gentoo-multilib/amd64/bits/sched.h" 3 4
7511 #define __CPU_SET_S(cpu,setsize,cpusetp) ({ size_t __cpu = (cpu); __cpu < 8 * (setsize) ? ((cpusetp)->__bits[__CPUELT (__cpu)] |= __CPUMASK (__cpu)) : 0; })
7512
7513
7514
7515 #define __CPU_CLR_S(cpu,setsize,cpusetp) ({ size_t __cpu = (cpu); __cpu < 8 * (setsize) ? ((cpusetp)->__bits[__CPUELT (__cpu)] &= ~__CPUMASK (__cpu)) : 0; })
7516
7517
7518
7519 #define __CPU_ISSET_S(cpu,setsize,cpusetp) ({ size_t __cpu = (cpu); __cpu < 8 * (setsize) ? (((cpusetp)->__bits[__CPUELT (__cpu)] & __CPUMASK (__cpu))) != 0 : 0; })
7520
7521
7522
7523
7524 #define __CPU_COUNT_S(setsize,cpusetp) __sched_cpucount (setsize, cpusetp)
7525
7526
7527
7528 #define __CPU_EQUAL_S(setsize,cpusetp1,cpusetp2) (__builtin_memcmp (cpusetp1, cpusetp2, setsize) == 0)
7529 # 165 "/usr/include/gentoo-multilib/amd64/bits/sched.h" 3 4
7530 #define __CPU_OP_S(setsize,destset,srcset1,srcset2,op) ({ cpu_set_t *__dest = (destset); cpu_set_t *__arr1 = (srcset1); cpu_set_t *__arr2 = (srcset2); size_t __imax = (setsize) / sizeof (__cpu_mask); size_t __i; for (__i = 0; __i < __imax; ++__i) __dest->__bits[__i] = __arr1->__bits[__i] op __arr2->__bits[__i]; __dest; })
7531 # 175 "/usr/include/gentoo-multilib/amd64/bits/sched.h" 3 4
7532 #define __CPU_ALLOC_SIZE(count) ((((count) + __NCPUBITS - 1) / __NCPUBITS) * 8)
7533
7534 #define __CPU_ALLOC(count) __sched_cpualloc (count)
7535 #define __CPU_FREE(cpuset) __sched_cpufree (cpuset)
7536
7537 extern "C" {
7538
7539 extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp)
7540   throw ();
7541 extern cpu_set_t *__sched_cpualloc (size_t __count) throw () ;
7542 extern void __sched_cpufree (cpu_set_t *__set) throw ();
7543
7544 }
7545 # 9 "/usr/include/bits/sched.h" 2 3 4
7546 # 36 "/usr/include/gentoo-multilib/amd64/sched.h" 2 3 4
7547
7548 #define sched_priority __sched_priority
7549
7550
7551 extern "C" {
7552
7553
7554 extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param)
7555      throw ();
7556
7557
7558 extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw ();
7559
7560
7561 extern int sched_setscheduler (__pid_t __pid, int __policy,
7562           __const struct sched_param *__param) throw ();
7563
7564
7565 extern int sched_getscheduler (__pid_t __pid) throw ();
7566
7567
7568 extern int sched_yield (void) throw ();
7569
7570
7571 extern int sched_get_priority_max (int __algorithm) throw ();
7572
7573
7574 extern int sched_get_priority_min (int __algorithm) throw ();
7575
7576
7577 extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw ();
7578
7579
7580
7581
7582 #define CPU_SETSIZE __CPU_SETSIZE
7583 #define CPU_SET(cpu,cpusetp) __CPU_SET_S (cpu, sizeof (cpu_set_t), cpusetp)
7584 #define CPU_CLR(cpu,cpusetp) __CPU_CLR_S (cpu, sizeof (cpu_set_t), cpusetp)
7585 #define CPU_ISSET(cpu,cpusetp) __CPU_ISSET_S (cpu, sizeof (cpu_set_t), cpusetp)
7586
7587 #define CPU_ZERO(cpusetp) __CPU_ZERO_S (sizeof (cpu_set_t), cpusetp)
7588 #define CPU_COUNT(cpusetp) __CPU_COUNT_S (sizeof (cpu_set_t), cpusetp)
7589
7590 #define CPU_SET_S(cpu,setsize,cpusetp) __CPU_SET_S (cpu, setsize, cpusetp)
7591 #define CPU_CLR_S(cpu,setsize,cpusetp) __CPU_CLR_S (cpu, setsize, cpusetp)
7592 #define CPU_ISSET_S(cpu,setsize,cpusetp) __CPU_ISSET_S (cpu, setsize, cpusetp)
7593
7594 #define CPU_ZERO_S(setsize,cpusetp) __CPU_ZERO_S (setsize, cpusetp)
7595 #define CPU_COUNT_S(setsize,cpusetp) __CPU_COUNT_S (setsize, cpusetp)
7596
7597 #define CPU_EQUAL(cpusetp1,cpusetp2) __CPU_EQUAL_S (sizeof (cpu_set_t), cpusetp1, cpusetp2)
7598
7599 #define CPU_EQUAL_S(setsize,cpusetp1,cpusetp2) __CPU_EQUAL_S (setsize, cpusetp1, cpusetp2)
7600
7601
7602 #define CPU_AND(destset,srcset1,srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, &)
7603
7604 #define CPU_OR(destset,srcset1,srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, |)
7605
7606 #define CPU_XOR(destset,srcset1,srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, ^)
7607
7608 #define CPU_AND_S(setsize,destset,srcset1,srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, &)
7609
7610 #define CPU_OR_S(setsize,destset,srcset1,srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, |)
7611
7612 #define CPU_XOR_S(setsize,destset,srcset1,srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, ^)
7613
7614
7615 #define CPU_ALLOC_SIZE(count) __CPU_ALLOC_SIZE (count)
7616 #define CPU_ALLOC(count) __CPU_ALLOC (count)
7617 #define CPU_FREE(cpuset) __CPU_FREE (cpuset)
7618
7619
7620
7621 extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize,
7622          __const cpu_set_t *__cpuset) throw ();
7623
7624
7625 extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
7626          cpu_set_t *__cpuset) throw ();
7627
7628
7629 }
7630 # 9 "/usr/include/sched.h" 2 3 4
7631 # 26 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4
7632 # 1 "/usr/include/time.h" 1 3 4
7633
7634
7635
7636
7637
7638
7639
7640 # 1 "/usr/include/gentoo-multilib/amd64/time.h" 1 3 4
7641 # 28 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7642 #define _TIME_H 1
7643 # 1 "/usr/include/features.h" 1 3 4
7644 # 30 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
7645
7646 extern "C" {
7647
7648
7649
7650
7651
7652 #define __need_size_t 
7653 #define __need_NULL 
7654 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
7655 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7656 #undef __need_ptrdiff_t
7657 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7658 #undef __need_size_t
7659 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7660 #undef __need_wchar_t
7661 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7662 #undef NULL
7663
7664 #define NULL __null
7665 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
7666 #undef __need_NULL
7667
7668
7669
7670
7671 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
7672 # 40 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
7673
7674
7675
7676 # 1 "/usr/include/bits/time.h" 1 3 4
7677
7678
7679
7680
7681
7682
7683
7684 # 1 "/usr/include/gentoo-multilib/amd64/bits/time.h" 1 3 4
7685 # 26 "/usr/include/gentoo-multilib/amd64/bits/time.h" 3 4
7686 #define _BITS_TIME_H 1
7687
7688
7689
7690
7691
7692
7693
7694 #define CLOCKS_PER_SEC 1000000l
7695 # 46 "/usr/include/gentoo-multilib/amd64/bits/time.h" 3 4
7696 #define CLOCK_REALTIME 0
7697
7698 #define CLOCK_MONOTONIC 1
7699
7700 #define CLOCK_PROCESS_CPUTIME_ID 2
7701
7702 #define CLOCK_THREAD_CPUTIME_ID 3
7703
7704
7705 #define TIMER_ABSTIME 1
7706 # 9 "/usr/include/bits/time.h" 2 3 4
7707 # 44 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
7708 # 68 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7709 #undef __need_clock_t
7710 # 84 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7711 #undef __need_time_t
7712 # 96 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7713 #undef __clockid_time_t
7714 # 108 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7715 #undef __need_timer_t
7716 # 128 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7717 #undef __need_timespec
7718
7719
7720
7721
7722
7723 struct tm
7724 {
7725   int tm_sec;
7726   int tm_min;
7727   int tm_hour;
7728   int tm_mday;
7729   int tm_mon;
7730   int tm_year;
7731   int tm_wday;
7732   int tm_yday;
7733   int tm_isdst;
7734
7735
7736   long int tm_gmtoff;
7737   __const char *tm_zone;
7738
7739
7740
7741
7742 };
7743
7744
7745
7746
7747
7748
7749
7750
7751 struct itimerspec
7752   {
7753     struct timespec it_interval;
7754     struct timespec it_value;
7755   };
7756
7757
7758 struct sigevent;
7759 # 181 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7760
7761
7762
7763 extern clock_t clock (void) throw ();
7764
7765
7766 extern time_t time (time_t *__timer) throw ();
7767
7768
7769 extern double difftime (time_t __time1, time_t __time0)
7770      throw () __attribute__ ((__const__));
7771
7772
7773 extern time_t mktime (struct tm *__tp) throw ();
7774
7775
7776
7777
7778
7779 extern size_t strftime (char *__restrict __s, size_t __maxsize,
7780    __const char *__restrict __format,
7781    __const struct tm *__restrict __tp) throw ();
7782
7783
7784
7785
7786
7787 extern char *strptime (__const char *__restrict __s,
7788          __const char *__restrict __fmt, struct tm *__tp)
7789      throw ();
7790
7791
7792
7793
7794
7795 # 1 "/usr/include/xlocale.h" 1 3 4
7796 # 217 "/usr/include/gentoo-multilib/amd64/time.h" 2 3 4
7797
7798 extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
7799      __const char *__restrict __format,
7800      __const struct tm *__restrict __tp,
7801      __locale_t __loc) throw ();
7802
7803 extern char *strptime_l (__const char *__restrict __s,
7804     __const char *__restrict __fmt, struct tm *__tp,
7805     __locale_t __loc) throw ();
7806
7807
7808
7809
7810
7811
7812 extern struct tm *gmtime (__const time_t *__timer) throw ();
7813
7814
7815
7816 extern struct tm *localtime (__const time_t *__timer) throw ();
7817
7818
7819
7820
7821
7822 extern struct tm *gmtime_r (__const time_t *__restrict __timer,
7823        struct tm *__restrict __tp) throw ();
7824
7825
7826
7827 extern struct tm *localtime_r (__const time_t *__restrict __timer,
7828           struct tm *__restrict __tp) throw ();
7829
7830
7831
7832
7833
7834 extern char *asctime (__const struct tm *__tp) throw ();
7835
7836
7837 extern char *ctime (__const time_t *__timer) throw ();
7838
7839
7840
7841
7842
7843
7844
7845 extern char *asctime_r (__const struct tm *__restrict __tp,
7846    char *__restrict __buf) throw ();
7847
7848
7849 extern char *ctime_r (__const time_t *__restrict __timer,
7850         char *__restrict __buf) throw ();
7851
7852
7853
7854
7855 extern char *__tzname[2];
7856 extern int __daylight;
7857 extern long int __timezone;
7858
7859
7860
7861
7862 extern char *tzname[2];
7863
7864
7865
7866 extern void tzset (void) throw ();
7867
7868
7869
7870 extern int daylight;
7871 extern long int timezone;
7872
7873
7874
7875
7876
7877 extern int stime (__const time_t *__when) throw ();
7878
7879
7880
7881
7882
7883 #define __isleap(year) ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0))
7884 # 312 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7885 extern time_t timegm (struct tm *__tp) throw ();
7886
7887
7888 extern time_t timelocal (struct tm *__tp) throw ();
7889
7890
7891 extern int dysize (int __year) throw () __attribute__ ((__const__));
7892 # 327 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7893 extern int nanosleep (__const struct timespec *__requested_time,
7894         struct timespec *__remaining);
7895
7896
7897
7898 extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw ();
7899
7900
7901 extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw ();
7902
7903
7904 extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
7905      throw ();
7906
7907
7908
7909
7910
7911
7912 extern int clock_nanosleep (clockid_t __clock_id, int __flags,
7913        __const struct timespec *__req,
7914        struct timespec *__rem);
7915
7916
7917 extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw ();
7918
7919
7920
7921
7922 extern int timer_create (clockid_t __clock_id,
7923     struct sigevent *__restrict __evp,
7924     timer_t *__restrict __timerid) throw ();
7925
7926
7927 extern int timer_delete (timer_t __timerid) throw ();
7928
7929
7930 extern int timer_settime (timer_t __timerid, int __flags,
7931      __const struct itimerspec *__restrict __value,
7932      struct itimerspec *__restrict __ovalue) throw ();
7933
7934
7935 extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
7936      throw ();
7937
7938
7939 extern int timer_getoverrun (timer_t __timerid) throw ();
7940 # 389 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7941 extern int getdate_err;
7942 # 398 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7943 extern struct tm *getdate (__const char *__string);
7944 # 412 "/usr/include/gentoo-multilib/amd64/time.h" 3 4
7945 extern int getdate_r (__const char *__restrict __string,
7946         struct tm *__restrict __resbufp);
7947
7948
7949 }
7950 # 9 "/usr/include/time.h" 2 3 4
7951 # 27 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4
7952
7953 #define __need_sigset_t 
7954 # 1 "/usr/include/signal.h" 1 3 4
7955
7956
7957
7958
7959
7960
7961
7962 # 1 "/usr/include/gentoo-multilib/amd64/signal.h" 1 3 4
7963 # 29 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4
7964 # 1 "/usr/include/features.h" 1 3 4
7965 # 30 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4
7966
7967 extern "C" {
7968
7969 # 1 "/usr/include/bits/sigset.h" 1 3 4
7970
7971
7972
7973
7974
7975
7976
7977 # 1 "/usr/include/gentoo-multilib/amd64/bits/sigset.h" 1 3 4
7978 # 9 "/usr/include/bits/sigset.h" 2 3 4
7979 # 34 "/usr/include/gentoo-multilib/amd64/signal.h" 2 3 4
7980 # 52 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4
7981 #undef __need_sigset_t
7982 # 402 "/usr/include/gentoo-multilib/amd64/signal.h" 3 4
7983 }
7984 # 9 "/usr/include/signal.h" 2 3 4
7985 # 30 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4
7986 # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
7987 # 31 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4
7988 # 1 "/usr/include/bits/setjmp.h" 1 3 4
7989
7990
7991
7992
7993
7994
7995
7996 # 1 "/usr/include/gentoo-multilib/amd64/bits/setjmp.h" 1 3 4
7997 # 21 "/usr/include/gentoo-multilib/amd64/bits/setjmp.h" 3 4
7998 #define _BITS_SETJMP_H 1
7999
8000
8001
8002
8003
8004 # 1 "/usr/include/bits/wordsize.h" 1 3 4
8005
8006
8007
8008
8009
8010
8011
8012 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
8013
8014
8015
8016 #define __WORDSIZE 64
8017 #define __WORDSIZE_COMPAT32 1
8018 # 9 "/usr/include/bits/wordsize.h" 2 3 4
8019 # 28 "/usr/include/gentoo-multilib/amd64/bits/setjmp.h" 2 3 4
8020
8021
8022
8023
8024 typedef long int __jmp_buf[8];
8025 # 9 "/usr/include/bits/setjmp.h" 2 3 4
8026 # 32 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4
8027 # 1 "/usr/include/bits/wordsize.h" 1 3 4
8028
8029
8030
8031
8032
8033
8034
8035 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
8036
8037
8038
8039 #define __WORDSIZE 64
8040 #define __WORDSIZE_COMPAT32 1
8041 # 9 "/usr/include/bits/wordsize.h" 2 3 4
8042 # 33 "/usr/include/gentoo-multilib/amd64/pthread.h" 2 3 4
8043
8044
8045
8046 enum
8047 {
8048   PTHREAD_CREATE_JOINABLE,
8049 #define PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_JOINABLE
8050   PTHREAD_CREATE_DETACHED
8051 #define PTHREAD_CREATE_DETACHED PTHREAD_CREATE_DETACHED
8052 };
8053
8054
8055
8056 enum
8057 {
8058   PTHREAD_MUTEX_TIMED_NP,
8059   PTHREAD_MUTEX_RECURSIVE_NP,
8060   PTHREAD_MUTEX_ERRORCHECK_NP,
8061   PTHREAD_MUTEX_ADAPTIVE_NP
8062
8063   ,
8064   PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP,
8065   PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
8066   PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
8067   PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
8068
8069
8070
8071   , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP
8072
8073 };
8074
8075
8076
8077
8078 enum
8079 {
8080   PTHREAD_MUTEX_STALLED_NP,
8081   PTHREAD_MUTEX_ROBUST_NP
8082 };
8083
8084
8085
8086
8087
8088 enum
8089 {
8090   PTHREAD_PRIO_NONE,
8091   PTHREAD_PRIO_INHERIT,
8092   PTHREAD_PRIO_PROTECT
8093 };
8094
8095
8096
8097
8098
8099 #define PTHREAD_MUTEX_INITIALIZER { { 0, 0, 0, 0, 0, 0, { 0, 0 } } }
8100
8101
8102 #define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP { { 0, 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, { 0, 0 } } }
8103
8104 #define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP { { 0, 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, 0, { 0, 0 } } }
8105
8106 #define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP { { 0, 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, 0, { 0, 0 } } }
8107 # 115 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
8108 enum
8109 {
8110   PTHREAD_RWLOCK_PREFER_READER_NP,
8111   PTHREAD_RWLOCK_PREFER_WRITER_NP,
8112   PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
8113   PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP
8114 };
8115
8116
8117 #define PTHREAD_RWLOCK_INITIALIZER { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
8118
8119
8120
8121 #define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP } }
8122 # 147 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
8123 enum
8124 {
8125   PTHREAD_INHERIT_SCHED,
8126 #define PTHREAD_INHERIT_SCHED PTHREAD_INHERIT_SCHED
8127   PTHREAD_EXPLICIT_SCHED
8128 #define PTHREAD_EXPLICIT_SCHED PTHREAD_EXPLICIT_SCHED
8129 };
8130
8131
8132
8133 enum
8134 {
8135   PTHREAD_SCOPE_SYSTEM,
8136 #define PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_SYSTEM
8137   PTHREAD_SCOPE_PROCESS
8138 #define PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_PROCESS
8139 };
8140
8141
8142
8143 enum
8144 {
8145   PTHREAD_PROCESS_PRIVATE,
8146 #define PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_PRIVATE
8147   PTHREAD_PROCESS_SHARED
8148 #define PTHREAD_PROCESS_SHARED PTHREAD_PROCESS_SHARED
8149 };
8150
8151
8152
8153
8154 #define PTHREAD_COND_INITIALIZER { { 0, 0, 0, 0, 0, (void *) 0, 0, 0 } }
8155
8156
8157
8158 struct _pthread_cleanup_buffer
8159 {
8160   void (*__routine) (void *);
8161   void *__arg;
8162   int __canceltype;
8163   struct _pthread_cleanup_buffer *__prev;
8164 };
8165
8166
8167 enum
8168 {
8169   PTHREAD_CANCEL_ENABLE,
8170 #define PTHREAD_CANCEL_ENABLE PTHREAD_CANCEL_ENABLE
8171   PTHREAD_CANCEL_DISABLE
8172 #define PTHREAD_CANCEL_DISABLE PTHREAD_CANCEL_DISABLE
8173 };
8174 enum
8175 {
8176   PTHREAD_CANCEL_DEFERRED,
8177 #define PTHREAD_CANCEL_DEFERRED PTHREAD_CANCEL_DEFERRED
8178   PTHREAD_CANCEL_ASYNCHRONOUS
8179 #define PTHREAD_CANCEL_ASYNCHRONOUS PTHREAD_CANCEL_ASYNCHRONOUS
8180 };
8181 #define PTHREAD_CANCELED ((void *) -1)
8182
8183
8184
8185 #define PTHREAD_ONCE_INIT 0
8186
8187
8188
8189
8190
8191
8192 #define PTHREAD_BARRIER_SERIAL_THREAD -1
8193
8194
8195
8196 extern "C" {
8197
8198
8199
8200
8201 extern int pthread_create (pthread_t *__restrict __newthread,
8202       __const pthread_attr_t *__restrict __attr,
8203       void *(*__start_routine) (void *),
8204       void *__restrict __arg) throw () __attribute__ ((__nonnull__ (1, 3)));
8205
8206
8207
8208
8209
8210 extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__));
8211
8212
8213
8214
8215
8216
8217
8218 extern int pthread_join (pthread_t __th, void **__thread_return);
8219
8220
8221
8222
8223 extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) throw ();
8224
8225
8226
8227
8228
8229
8230
8231 extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
8232      __const struct timespec *__abstime);
8233
8234
8235
8236
8237
8238
8239 extern int pthread_detach (pthread_t __th) throw ();
8240
8241
8242
8243 extern pthread_t pthread_self (void) throw () __attribute__ ((__const__));
8244
8245
8246 extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) throw ();
8247
8248
8249
8250
8251
8252
8253
8254 extern int pthread_attr_init (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1)));
8255
8256
8257 extern int pthread_attr_destroy (pthread_attr_t *__attr)
8258      throw () __attribute__ ((__nonnull__ (1)));
8259
8260
8261 extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
8262      int *__detachstate)
8263      throw () __attribute__ ((__nonnull__ (1, 2)));
8264
8265
8266 extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
8267      int __detachstate)
8268      throw () __attribute__ ((__nonnull__ (1)));
8269
8270
8271
8272 extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr,
8273           size_t *__guardsize)
8274      throw () __attribute__ ((__nonnull__ (1, 2)));
8275
8276
8277 extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
8278           size_t __guardsize)
8279      throw () __attribute__ ((__nonnull__ (1)));
8280
8281
8282
8283 extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
8284            __attr,
8285            struct sched_param *__restrict __param)
8286      throw () __attribute__ ((__nonnull__ (1, 2)));
8287
8288
8289 extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
8290            __const struct sched_param *__restrict
8291            __param) throw () __attribute__ ((__nonnull__ (1, 2)));
8292
8293
8294 extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
8295      __attr, int *__restrict __policy)
8296      throw () __attribute__ ((__nonnull__ (1, 2)));
8297
8298
8299 extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
8300      throw () __attribute__ ((__nonnull__ (1)));
8301
8302
8303 extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
8304       __attr, int *__restrict __inherit)
8305      throw () __attribute__ ((__nonnull__ (1, 2)));
8306
8307
8308 extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
8309       int __inherit)
8310      throw () __attribute__ ((__nonnull__ (1)));
8311
8312
8313
8314 extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
8315       int *__restrict __scope)
8316      throw () __attribute__ ((__nonnull__ (1, 2)));
8317
8318
8319 extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
8320      throw () __attribute__ ((__nonnull__ (1)));
8321
8322
8323 extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
8324           __attr, void **__restrict __stackaddr)
8325      throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__));
8326
8327
8328
8329
8330
8331 extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
8332           void *__stackaddr)
8333      throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__));
8334
8335
8336 extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
8337           __attr, size_t *__restrict __stacksize)
8338      throw () __attribute__ ((__nonnull__ (1, 2)));
8339
8340
8341
8342
8343 extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
8344           size_t __stacksize)
8345      throw () __attribute__ ((__nonnull__ (1)));
8346
8347
8348
8349 extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
8350       void **__restrict __stackaddr,
8351       size_t *__restrict __stacksize)
8352      throw () __attribute__ ((__nonnull__ (1, 2, 3)));
8353
8354
8355
8356
8357 extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
8358       size_t __stacksize) throw () __attribute__ ((__nonnull__ (1)));
8359
8360
8361
8362
8363
8364 extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr,
8365      size_t __cpusetsize,
8366      __const cpu_set_t *__cpuset)
8367      throw () __attribute__ ((__nonnull__ (1, 3)));
8368
8369
8370
8371 extern int pthread_attr_getaffinity_np (__const pthread_attr_t *__attr,
8372      size_t __cpusetsize,
8373      cpu_set_t *__cpuset)
8374      throw () __attribute__ ((__nonnull__ (1, 3)));
8375
8376
8377
8378
8379
8380 extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr)
8381      throw () __attribute__ ((__nonnull__ (2)));
8382
8383
8384
8385
8386
8387
8388
8389 extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
8390       __const struct sched_param *__param)
8391      throw () __attribute__ ((__nonnull__ (3)));
8392
8393
8394 extern int pthread_getschedparam (pthread_t __target_thread,
8395       int *__restrict __policy,
8396       struct sched_param *__restrict __param)
8397      throw () __attribute__ ((__nonnull__ (2, 3)));
8398
8399
8400 extern int pthread_setschedprio (pthread_t __target_thread, int __prio)
8401      throw ();
8402
8403
8404
8405
8406 extern int pthread_getconcurrency (void) throw ();
8407
8408
8409 extern int pthread_setconcurrency (int __level) throw ();
8410
8411
8412
8413
8414
8415
8416
8417 extern int pthread_yield (void) throw ();
8418
8419
8420
8421
8422 extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize,
8423        __const cpu_set_t *__cpuset)
8424      throw () __attribute__ ((__nonnull__ (3)));
8425
8426
8427 extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize,
8428        cpu_set_t *__cpuset)
8429      throw () __attribute__ ((__nonnull__ (3)));
8430 # 466 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
8431 extern int pthread_once (pthread_once_t *__once_control,
8432     void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2)));
8433 # 478 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
8434 extern int pthread_setcancelstate (int __state, int *__oldstate);
8435
8436
8437
8438 extern int pthread_setcanceltype (int __type, int *__oldtype);
8439
8440
8441 extern int pthread_cancel (pthread_t __th);
8442
8443
8444
8445
8446 extern void pthread_testcancel (void);
8447
8448
8449
8450
8451 typedef struct
8452 {
8453   struct
8454   {
8455     __jmp_buf __cancel_jmp_buf;
8456     int __mask_was_saved;
8457   } __cancel_jmp_buf[1];
8458   void *__pad[4];
8459 } __pthread_unwind_buf_t __attribute__ ((__aligned__));
8460
8461
8462
8463 #define __cleanup_fct_attribute 
8464
8465
8466
8467
8468 struct __pthread_cleanup_frame
8469 {
8470   void (*__cancel_routine) (void *);
8471   void *__cancel_arg;
8472   int __do_it;
8473   int __cancel_type;
8474 };
8475
8476
8477
8478
8479 class __pthread_cleanup_class
8480 {
8481   void (*__cancel_routine) (void *);
8482   void *__cancel_arg;
8483   int __do_it;
8484   int __cancel_type;
8485
8486  public:
8487   __pthread_cleanup_class (void (*__fct) (void *), void *__arg)
8488     : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { }
8489   ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); }
8490   void __setdoit (int __newval) { __do_it = __newval; }
8491   void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED,
8492         &__cancel_type); }
8493   void __restore () const { pthread_setcanceltype (__cancel_type, 0); }
8494 };
8495 # 547 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
8496 #define pthread_cleanup_push(routine,arg) do { __pthread_cleanup_class __clframe (routine, arg)
8497
8498
8499
8500
8501
8502 #define pthread_cleanup_pop(execute) __clframe.__setdoit (execute); } while (0)
8503
8504
8505
8506
8507
8508
8509
8510 #define pthread_cleanup_push_defer_np(routine,arg) do { __pthread_cleanup_class __clframe (routine, arg); __clframe.__defer ()
8511
8512
8513
8514
8515
8516
8517
8518 #define pthread_cleanup_pop_restore_np(execute) __clframe.__restore (); __clframe.__setdoit (execute); } while (0)
8519 # 712 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
8520 struct __jmp_buf_tag;
8521 extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) throw ();
8522
8523
8524
8525
8526
8527 extern int pthread_mutex_init (pthread_mutex_t *__mutex,
8528           __const pthread_mutexattr_t *__mutexattr)
8529      throw () __attribute__ ((__nonnull__ (1)));
8530
8531
8532 extern int pthread_mutex_destroy (pthread_mutex_t *__mutex)
8533      throw () __attribute__ ((__nonnull__ (1)));
8534
8535
8536 extern int pthread_mutex_trylock (pthread_mutex_t *__mutex)
8537      throw () __attribute__ ((__nonnull__ (1)));
8538
8539
8540 extern int pthread_mutex_lock (pthread_mutex_t *__mutex)
8541      throw () __attribute__ ((__nonnull__ (1)));
8542
8543
8544
8545 extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
8546                                     __const struct timespec *__restrict
8547                                     __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
8548
8549
8550
8551 extern int pthread_mutex_unlock (pthread_mutex_t *__mutex)
8552      throw () __attribute__ ((__nonnull__ (1)));
8553
8554
8555
8556
8557 extern int pthread_mutex_getprioceiling (__const pthread_mutex_t *
8558       __restrict __mutex,
8559       int *__restrict __prioceiling)
8560      throw () __attribute__ ((__nonnull__ (1, 2)));
8561
8562
8563
8564 extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex,
8565       int __prioceiling,
8566       int *__restrict __old_ceiling)
8567      throw () __attribute__ ((__nonnull__ (1, 3)));
8568
8569
8570
8571
8572
8573 extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex)
8574      throw () __attribute__ ((__nonnull__ (1)));
8575
8576
8577
8578
8579
8580
8581
8582 extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr)
8583      throw () __attribute__ ((__nonnull__ (1)));
8584
8585
8586 extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr)
8587      throw () __attribute__ ((__nonnull__ (1)));
8588
8589
8590 extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
8591       __restrict __attr,
8592       int *__restrict __pshared)
8593      throw () __attribute__ ((__nonnull__ (1, 2)));
8594
8595
8596 extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
8597       int __pshared)
8598      throw () __attribute__ ((__nonnull__ (1)));
8599
8600
8601
8602 extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
8603           __attr, int *__restrict __kind)
8604      throw () __attribute__ ((__nonnull__ (1, 2)));
8605
8606
8607
8608
8609 extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
8610      throw () __attribute__ ((__nonnull__ (1)));
8611
8612
8613 extern int pthread_mutexattr_getprotocol (__const pthread_mutexattr_t *
8614        __restrict __attr,
8615        int *__restrict __protocol)
8616      throw () __attribute__ ((__nonnull__ (1, 2)));
8617
8618
8619
8620 extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr,
8621        int __protocol)
8622      throw () __attribute__ ((__nonnull__ (1)));
8623
8624
8625 extern int pthread_mutexattr_getprioceiling (__const pthread_mutexattr_t *
8626           __restrict __attr,
8627           int *__restrict __prioceiling)
8628      throw () __attribute__ ((__nonnull__ (1, 2)));
8629
8630
8631 extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr,
8632           int __prioceiling)
8633      throw () __attribute__ ((__nonnull__ (1)));
8634
8635
8636
8637
8638 extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr,
8639         int *__robustness)
8640      throw () __attribute__ ((__nonnull__ (1, 2)));
8641
8642
8643 extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr,
8644         int __robustness)
8645      throw () __attribute__ ((__nonnull__ (1)));
8646 # 846 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
8647 extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
8648     __const pthread_rwlockattr_t *__restrict
8649     __attr) throw () __attribute__ ((__nonnull__ (1)));
8650
8651
8652 extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock)
8653      throw () __attribute__ ((__nonnull__ (1)));
8654
8655
8656 extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock)
8657      throw () __attribute__ ((__nonnull__ (1)));
8658
8659
8660 extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock)
8661   throw () __attribute__ ((__nonnull__ (1)));
8662
8663
8664
8665 extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
8666            __const struct timespec *__restrict
8667            __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
8668
8669
8670
8671 extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock)
8672      throw () __attribute__ ((__nonnull__ (1)));
8673
8674
8675 extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock)
8676      throw () __attribute__ ((__nonnull__ (1)));
8677
8678
8679
8680 extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
8681            __const struct timespec *__restrict
8682            __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
8683
8684
8685
8686 extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock)
8687      throw () __attribute__ ((__nonnull__ (1)));
8688
8689
8690
8691
8692
8693 extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr)
8694      throw () __attribute__ ((__nonnull__ (1)));
8695
8696
8697 extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr)
8698      throw () __attribute__ ((__nonnull__ (1)));
8699
8700
8701 extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
8702        __restrict __attr,
8703        int *__restrict __pshared)
8704      throw () __attribute__ ((__nonnull__ (1, 2)));
8705
8706
8707 extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
8708        int __pshared)
8709      throw () __attribute__ ((__nonnull__ (1)));
8710
8711
8712 extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *
8713        __restrict __attr,
8714        int *__restrict __pref)
8715      throw () __attribute__ ((__nonnull__ (1, 2)));
8716
8717
8718 extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
8719        int __pref) throw () __attribute__ ((__nonnull__ (1)));
8720
8721
8722
8723
8724
8725
8726
8727 extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
8728          __const pthread_condattr_t *__restrict
8729          __cond_attr) throw () __attribute__ ((__nonnull__ (1)));
8730
8731
8732 extern int pthread_cond_destroy (pthread_cond_t *__cond)
8733      throw () __attribute__ ((__nonnull__ (1)));
8734
8735
8736 extern int pthread_cond_signal (pthread_cond_t *__cond)
8737      throw () __attribute__ ((__nonnull__ (1)));
8738
8739
8740 extern int pthread_cond_broadcast (pthread_cond_t *__cond)
8741      throw () __attribute__ ((__nonnull__ (1)));
8742
8743
8744
8745
8746
8747
8748 extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
8749          pthread_mutex_t *__restrict __mutex)
8750      __attribute__ ((__nonnull__ (1, 2)));
8751 # 958 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
8752 extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
8753        pthread_mutex_t *__restrict __mutex,
8754        __const struct timespec *__restrict
8755        __abstime) __attribute__ ((__nonnull__ (1, 2, 3)));
8756
8757
8758
8759
8760 extern int pthread_condattr_init (pthread_condattr_t *__attr)
8761      throw () __attribute__ ((__nonnull__ (1)));
8762
8763
8764 extern int pthread_condattr_destroy (pthread_condattr_t *__attr)
8765      throw () __attribute__ ((__nonnull__ (1)));
8766
8767
8768 extern int pthread_condattr_getpshared (__const pthread_condattr_t *
8769                                         __restrict __attr,
8770                                         int *__restrict __pshared)
8771      throw () __attribute__ ((__nonnull__ (1, 2)));
8772
8773
8774 extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
8775                                         int __pshared) throw () __attribute__ ((__nonnull__ (1)));
8776
8777
8778
8779 extern int pthread_condattr_getclock (__const pthread_condattr_t *
8780           __restrict __attr,
8781           __clockid_t *__restrict __clock_id)
8782      throw () __attribute__ ((__nonnull__ (1, 2)));
8783
8784
8785 extern int pthread_condattr_setclock (pthread_condattr_t *__attr,
8786           __clockid_t __clock_id)
8787      throw () __attribute__ ((__nonnull__ (1)));
8788 # 1002 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
8789 extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared)
8790      throw () __attribute__ ((__nonnull__ (1)));
8791
8792
8793 extern int pthread_spin_destroy (pthread_spinlock_t *__lock)
8794      throw () __attribute__ ((__nonnull__ (1)));
8795
8796
8797 extern int pthread_spin_lock (pthread_spinlock_t *__lock)
8798      throw () __attribute__ ((__nonnull__ (1)));
8799
8800
8801 extern int pthread_spin_trylock (pthread_spinlock_t *__lock)
8802      throw () __attribute__ ((__nonnull__ (1)));
8803
8804
8805 extern int pthread_spin_unlock (pthread_spinlock_t *__lock)
8806      throw () __attribute__ ((__nonnull__ (1)));
8807
8808
8809
8810
8811
8812
8813 extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
8814      __const pthread_barrierattr_t *__restrict
8815      __attr, unsigned int __count)
8816      throw () __attribute__ ((__nonnull__ (1)));
8817
8818
8819 extern int pthread_barrier_destroy (pthread_barrier_t *__barrier)
8820      throw () __attribute__ ((__nonnull__ (1)));
8821
8822
8823 extern int pthread_barrier_wait (pthread_barrier_t *__barrier)
8824      throw () __attribute__ ((__nonnull__ (1)));
8825
8826
8827
8828 extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr)
8829      throw () __attribute__ ((__nonnull__ (1)));
8830
8831
8832 extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr)
8833      throw () __attribute__ ((__nonnull__ (1)));
8834
8835
8836 extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
8837         __restrict __attr,
8838         int *__restrict __pshared)
8839      throw () __attribute__ ((__nonnull__ (1, 2)));
8840
8841
8842 extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,
8843                                            int __pshared)
8844      throw () __attribute__ ((__nonnull__ (1)));
8845 # 1069 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
8846 extern int pthread_key_create (pthread_key_t *__key,
8847           void (*__destr_function) (void *))
8848      throw () __attribute__ ((__nonnull__ (1)));
8849
8850
8851 extern int pthread_key_delete (pthread_key_t __key) throw ();
8852
8853
8854 extern void *pthread_getspecific (pthread_key_t __key) throw ();
8855
8856
8857 extern int pthread_setspecific (pthread_key_t __key,
8858     __const void *__pointer) throw () ;
8859
8860
8861
8862
8863 extern int pthread_getcpuclockid (pthread_t __thread_id,
8864       __clockid_t *__clock_id)
8865      throw () __attribute__ ((__nonnull__ (2)));
8866 # 1103 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
8867 extern int pthread_atfork (void (*__prepare) (void),
8868       void (*__parent) (void),
8869       void (*__child) (void)) throw ();
8870 # 1117 "/usr/include/gentoo-multilib/amd64/pthread.h" 3 4
8871 }
8872 # 9 "/usr/include/pthread.h" 2 3 4
8873 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h" 2 3
8874 # 1 "/usr/include/unistd.h" 1 3 4
8875
8876
8877
8878
8879
8880
8881
8882 # 1 "/usr/include/gentoo-multilib/amd64/unistd.h" 1 3 4
8883 # 24 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
8884 #define _UNISTD_H 1
8885
8886 # 1 "/usr/include/features.h" 1 3 4
8887 # 27 "/usr/include/gentoo-multilib/amd64/unistd.h" 2 3 4
8888
8889 extern "C" {
8890
8891
8892
8893
8894
8895 #define _POSIX_VERSION 200112L
8896
8897
8898
8899
8900
8901 #define _POSIX2_VERSION 200112L
8902
8903
8904
8905 #define _POSIX2_C_BIND 200112L
8906
8907
8908
8909 #define _POSIX2_C_DEV 200112L
8910
8911
8912
8913 #define _POSIX2_SW_DEV 200112L
8914
8915
8916
8917 #define _POSIX2_LOCALEDEF 200112L
8918
8919
8920
8921 #define _XOPEN_VERSION 600
8922
8923
8924
8925
8926
8927
8928
8929 #define _XOPEN_XCU_VERSION 4
8930
8931
8932 #define _XOPEN_XPG2 1
8933 #define _XOPEN_XPG3 1
8934 #define _XOPEN_XPG4 1
8935
8936
8937 #define _XOPEN_UNIX 1
8938
8939
8940 #define _XOPEN_CRYPT 1
8941
8942
8943
8944 #define _XOPEN_ENH_I18N 1
8945
8946
8947 #define _XOPEN_LEGACY 1
8948 # 173 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
8949 # 1 "/usr/include/bits/posix_opt.h" 1 3 4
8950
8951
8952
8953
8954
8955
8956
8957 # 1 "/usr/include/gentoo-multilib/amd64/bits/posix_opt.h" 1 3 4
8958 # 21 "/usr/include/gentoo-multilib/amd64/bits/posix_opt.h" 3 4
8959 #define _POSIX_OPT_H 1
8960
8961
8962 #define _POSIX_JOB_CONTROL 1
8963
8964
8965 #define _POSIX_SAVED_IDS 1
8966
8967
8968 #define _POSIX_PRIORITY_SCHEDULING 200112L
8969
8970
8971 #define _POSIX_SYNCHRONIZED_IO 200112L
8972
8973
8974 #define _POSIX_FSYNC 200112L
8975
8976
8977 #define _POSIX_MAPPED_FILES 200112L
8978
8979
8980 #define _POSIX_MEMLOCK 200112L
8981
8982
8983 #define _POSIX_MEMLOCK_RANGE 200112L
8984
8985
8986 #define _POSIX_MEMORY_PROTECTION 200112L
8987
8988
8989 #define _POSIX_CHOWN_RESTRICTED 1
8990
8991
8992
8993 #define _POSIX_VDISABLE '\0'
8994
8995
8996 #define _POSIX_NO_TRUNC 1
8997
8998
8999 #define _XOPEN_REALTIME 1
9000
9001
9002 #define _XOPEN_REALTIME_THREADS 1
9003
9004
9005 #define _XOPEN_SHM 1
9006
9007
9008 #define _POSIX_THREADS 200112L
9009
9010
9011 #define _POSIX_REENTRANT_FUNCTIONS 1
9012 #define _POSIX_THREAD_SAFE_FUNCTIONS 200112L
9013
9014
9015 #define _POSIX_THREAD_PRIORITY_SCHEDULING 200112L
9016
9017
9018 #define _POSIX_THREAD_ATTR_STACKSIZE 200112L
9019
9020
9021 #define _POSIX_THREAD_ATTR_STACKADDR 200112L
9022
9023
9024 #define _POSIX_THREAD_PRIO_INHERIT 200112L
9025
9026
9027
9028 #define _POSIX_THREAD_PRIO_PROTECT 200112L
9029
9030
9031 #define _POSIX_SEMAPHORES 200112L
9032
9033
9034 #define _POSIX_REALTIME_SIGNALS 200112L
9035
9036
9037 #define _POSIX_ASYNCHRONOUS_IO 200112L
9038 #define _POSIX_ASYNC_IO 1
9039
9040 #define _LFS_ASYNCHRONOUS_IO 1
9041
9042 #define _POSIX_PRIORITIZED_IO 200112L
9043
9044
9045 #define _LFS64_ASYNCHRONOUS_IO 1
9046
9047
9048 #define _LFS_LARGEFILE 1
9049 #define _LFS64_LARGEFILE 1
9050 #define _LFS64_STDIO 1
9051
9052
9053 #define _POSIX_SHARED_MEMORY_OBJECTS 200112L
9054
9055
9056 #define _POSIX_CPUTIME 0
9057
9058
9059 #define _POSIX_THREAD_CPUTIME 0
9060
9061
9062 #define _POSIX_REGEXP 1
9063
9064
9065 #define _POSIX_READER_WRITER_LOCKS 200112L
9066
9067
9068 #define _POSIX_SHELL 1
9069
9070
9071 #define _POSIX_TIMEOUTS 200112L
9072
9073
9074 #define _POSIX_SPIN_LOCKS 200112L
9075
9076
9077 #define _POSIX_SPAWN 200112L
9078
9079
9080 #define _POSIX_TIMERS 200112L
9081
9082
9083 #define _POSIX_BARRIERS 200112L
9084
9085
9086 #define _POSIX_MESSAGE_PASSING 200112L
9087
9088
9089 #define _POSIX_THREAD_PROCESS_SHARED 200112L
9090
9091
9092 #define _POSIX_MONOTONIC_CLOCK 0
9093
9094
9095 #define _POSIX_CLOCK_SELECTION 200112L
9096
9097
9098 #define _POSIX_ADVISORY_INFO 200112L
9099
9100
9101 #define _POSIX_IPV6 200112L
9102
9103
9104 #define _POSIX_RAW_SOCKETS 200112L
9105
9106
9107 #define _POSIX2_CHAR_TERM 200112L
9108
9109
9110 #define _POSIX_SPORADIC_SERVER -1
9111 #define _POSIX_THREAD_SPORADIC_SERVER -1
9112
9113
9114 #define _POSIX_TRACE -1
9115 #define _POSIX_TRACE_EVENT_FILTER -1
9116 #define _POSIX_TRACE_INHERIT -1
9117 #define _POSIX_TRACE_LOG -1
9118
9119
9120 #define _POSIX_TYPED_MEMORY_OBJECTS -1
9121 # 9 "/usr/include/bits/posix_opt.h" 2 3 4
9122 # 174 "/usr/include/gentoo-multilib/amd64/unistd.h" 2 3 4
9123
9124
9125
9126 # 1 "/usr/include/bits/environments.h" 1 3 4
9127
9128
9129
9130
9131
9132
9133
9134 # 1 "/usr/include/gentoo-multilib/amd64/bits/environments.h" 1 3 4
9135 # 23 "/usr/include/gentoo-multilib/amd64/bits/environments.h" 3 4
9136 # 1 "/usr/include/bits/wordsize.h" 1 3 4
9137
9138
9139
9140
9141
9142
9143
9144 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
9145
9146
9147
9148 #define __WORDSIZE 64
9149 #define __WORDSIZE_COMPAT32 1
9150 # 9 "/usr/include/bits/wordsize.h" 2 3 4
9151 # 24 "/usr/include/gentoo-multilib/amd64/bits/environments.h" 2 3 4
9152 # 53 "/usr/include/gentoo-multilib/amd64/bits/environments.h" 3 4
9153 #define _POSIX_V6_LPBIG_OFFBIG -1
9154 #define _XBS5_LPBIG_OFFBIG -1
9155
9156
9157 #define _POSIX_V6_LP64_OFF64 1
9158 #define _XBS5_LP64_OFF64 1
9159 # 82 "/usr/include/gentoo-multilib/amd64/bits/environments.h" 3 4
9160 #define __ILP32_OFF32_CFLAGS "-m32"
9161 #define __ILP32_OFFBIG_CFLAGS "-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
9162 #define __ILP32_OFF32_LDFLAGS "-m32"
9163 #define __ILP32_OFFBIG_LDFLAGS "-m32"
9164 #define __LP64_OFF64_CFLAGS "-m64"
9165 #define __LP64_OFF64_LDFLAGS "-m64"
9166 # 9 "/usr/include/bits/environments.h" 2 3 4
9167 # 178 "/usr/include/gentoo-multilib/amd64/unistd.h" 2 3 4
9168
9169
9170
9171 #define STDIN_FILENO 0
9172 #define STDOUT_FILENO 1
9173 #define STDERR_FILENO 2
9174
9175
9176
9177
9178 # 1 "/usr/include/bits/types.h" 1 3 4
9179 # 189 "/usr/include/gentoo-multilib/amd64/unistd.h" 2 3 4
9180
9181
9182
9183
9184
9185
9186 #define __need_size_t 
9187 #define __need_NULL 
9188 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
9189 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
9190 #undef __need_ptrdiff_t
9191 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
9192 #undef __need_size_t
9193 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
9194 #undef __need_wchar_t
9195 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
9196 #undef NULL
9197
9198 #define NULL __null
9199 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
9200 #undef __need_NULL
9201
9202
9203
9204
9205 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
9206 # 198 "/usr/include/gentoo-multilib/amd64/unistd.h" 2 3 4
9207 # 238 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
9208 typedef __intptr_t intptr_t;
9209 #define __intptr_t_defined 
9210
9211
9212
9213
9214
9215 typedef __socklen_t socklen_t;
9216 #define __socklen_t_defined 
9217
9218
9219
9220
9221
9222 #define R_OK 4
9223 #define W_OK 2
9224 #define X_OK 1
9225 #define F_OK 0
9226
9227
9228 extern int access (__const char *__name, int __type) throw () __attribute__ ((__nonnull__ (1)));
9229
9230
9231
9232
9233 extern int euidaccess (__const char *__name, int __type)
9234      throw () __attribute__ ((__nonnull__ (1)));
9235
9236
9237 extern int eaccess (__const char *__name, int __type)
9238      throw () __attribute__ ((__nonnull__ (1)));
9239
9240
9241
9242
9243
9244
9245 extern int faccessat (int __fd, __const char *__file, int __type, int __flag)
9246      throw () __attribute__ ((__nonnull__ (2))) ;
9247 # 289 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
9248 #define L_SET SEEK_SET
9249 #define L_INCR SEEK_CUR
9250 #define L_XTND SEEK_END
9251 # 301 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
9252 extern __off_t lseek (int __fd, __off_t __offset, int __whence) throw ();
9253 # 312 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
9254 extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence)
9255      throw ();
9256
9257
9258
9259
9260
9261
9262 extern int close (int __fd);
9263
9264
9265
9266
9267
9268
9269 extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ;
9270
9271
9272
9273
9274
9275 extern ssize_t write (int __fd, __const void *__buf, size_t __n) ;
9276 # 343 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
9277 extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
9278         __off_t __offset) ;
9279
9280
9281
9282
9283
9284
9285 extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n,
9286          __off_t __offset) ;
9287 # 371 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
9288 extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes,
9289    __off64_t __offset) ;
9290
9291
9292 extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n,
9293     __off64_t __offset) ;
9294
9295
9296
9297
9298
9299
9300
9301 extern int pipe (int __pipedes[2]) throw () ;
9302 # 393 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
9303 extern unsigned int alarm (unsigned int __seconds) throw ();
9304 # 405 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
9305 extern unsigned int sleep (unsigned int __seconds);
9306
9307
9308
9309
9310
9311
9312 extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
9313      throw ();
9314
9315
9316
9317
9318
9319
9320 extern int usleep (__useconds_t __useconds);
9321 # 429 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
9322 extern int pause (void);
9323
9324
9325
9326 extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
9327      throw () __attribute__ ((__nonnull__ (1))) ;
9328
9329
9330
9331 extern int fchown (int __fd, __uid_t __owner, __gid_t __group) throw () ;
9332
9333
9334
9335
9336 extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
9337      throw () __attribute__ ((__nonnull__ (1))) ;
9338
9339
9340
9341
9342
9343
9344 extern int fchownat (int __fd, __const char *__file, __uid_t __owner,
9345        __gid_t __group, int __flag)
9346      throw () __attribute__ ((__nonnull__ (2))) ;
9347
9348
9349
9350 extern int chdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1))) ;
9351
9352
9353
9354 extern int fchdir (int __fd) throw () ;
9355 # 471 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
9356 extern char *getcwd (char *__buf, size_t __size) throw () ;
9357
9358
9359
9360
9361
9362 extern char *get_current_dir_name (void) throw ();
9363
9364
9365
9366
9367
9368
9369 extern char *getwd (char *__buf)
9370      throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ;
9371
9372
9373
9374
9375 extern int dup (int __fd) throw () ;
9376
9377
9378 extern int dup2 (int __fd, int __fd2) throw ();
9379
9380
9381 extern char **__environ;
9382
9383 extern char **environ;
9384
9385
9386
9387
9388
9389 extern int execve (__const char *__path, char *__const __argv[],
9390      char *__const __envp[]) throw () __attribute__ ((__nonnull__ (1)));
9391
9392
9393
9394
9395 extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[])
9396      throw ();
9397
9398
9399
9400
9401 extern int execv (__const char *__path, char *__const __argv[])
9402      throw () __attribute__ ((__nonnull__ (1)));
9403
9404
9405
9406 extern int execle (__const char *__path, __const char *__arg, ...)
9407      throw () __attribute__ ((__nonnull__ (1)));
9408
9409
9410
9411 extern int execl (__const char *__path, __const char *__arg, ...)
9412      throw () __attribute__ ((__nonnull__ (1)));
9413
9414
9415
9416 extern int execvp (__const char *__file, char *__const __argv[])
9417      throw () __attribute__ ((__nonnull__ (1)));
9418
9419
9420
9421
9422 extern int execlp (__const char *__file, __const char *__arg, ...)
9423      throw () __attribute__ ((__nonnull__ (1)));
9424
9425
9426
9427
9428 extern int nice (int __inc) throw () ;
9429
9430
9431
9432
9433 extern void _exit (int __status) __attribute__ ((__noreturn__));
9434
9435
9436
9437
9438
9439 # 1 "/usr/include/bits/confname.h" 1 3 4
9440
9441
9442
9443
9444
9445
9446
9447 # 1 "/usr/include/gentoo-multilib/amd64/bits/confname.h" 1 3 4
9448 # 26 "/usr/include/gentoo-multilib/amd64/bits/confname.h" 3 4
9449 enum
9450   {
9451     _PC_LINK_MAX,
9452 #define _PC_LINK_MAX _PC_LINK_MAX
9453     _PC_MAX_CANON,
9454 #define _PC_MAX_CANON _PC_MAX_CANON
9455     _PC_MAX_INPUT,
9456 #define _PC_MAX_INPUT _PC_MAX_INPUT
9457     _PC_NAME_MAX,
9458 #define _PC_NAME_MAX _PC_NAME_MAX
9459     _PC_PATH_MAX,
9460 #define _PC_PATH_MAX _PC_PATH_MAX
9461     _PC_PIPE_BUF,
9462 #define _PC_PIPE_BUF _PC_PIPE_BUF
9463     _PC_CHOWN_RESTRICTED,
9464 #define _PC_CHOWN_RESTRICTED _PC_CHOWN_RESTRICTED
9465     _PC_NO_TRUNC,
9466 #define _PC_NO_TRUNC _PC_NO_TRUNC
9467     _PC_VDISABLE,
9468 #define _PC_VDISABLE _PC_VDISABLE
9469     _PC_SYNC_IO,
9470 #define _PC_SYNC_IO _PC_SYNC_IO
9471     _PC_ASYNC_IO,
9472 #define _PC_ASYNC_IO _PC_ASYNC_IO
9473     _PC_PRIO_IO,
9474 #define _PC_PRIO_IO _PC_PRIO_IO
9475     _PC_SOCK_MAXBUF,
9476 #define _PC_SOCK_MAXBUF _PC_SOCK_MAXBUF
9477     _PC_FILESIZEBITS,
9478 #define _PC_FILESIZEBITS _PC_FILESIZEBITS
9479     _PC_REC_INCR_XFER_SIZE,
9480 #define _PC_REC_INCR_XFER_SIZE _PC_REC_INCR_XFER_SIZE
9481     _PC_REC_MAX_XFER_SIZE,
9482 #define _PC_REC_MAX_XFER_SIZE _PC_REC_MAX_XFER_SIZE
9483     _PC_REC_MIN_XFER_SIZE,
9484 #define _PC_REC_MIN_XFER_SIZE _PC_REC_MIN_XFER_SIZE
9485     _PC_REC_XFER_ALIGN,
9486 #define _PC_REC_XFER_ALIGN _PC_REC_XFER_ALIGN
9487     _PC_ALLOC_SIZE_MIN,
9488 #define _PC_ALLOC_SIZE_MIN _PC_ALLOC_SIZE_MIN
9489     _PC_SYMLINK_MAX,
9490 #define _PC_SYMLINK_MAX _PC_SYMLINK_MAX
9491     _PC_2_SYMLINKS
9492 #define _PC_2_SYMLINKS _PC_2_SYMLINKS
9493   };
9494
9495
9496 enum
9497   {
9498     _SC_ARG_MAX,
9499 #define _SC_ARG_MAX _SC_ARG_MAX
9500     _SC_CHILD_MAX,
9501 #define _SC_CHILD_MAX _SC_CHILD_MAX
9502     _SC_CLK_TCK,
9503 #define _SC_CLK_TCK _SC_CLK_TCK
9504     _SC_NGROUPS_MAX,
9505 #define _SC_NGROUPS_MAX _SC_NGROUPS_MAX
9506     _SC_OPEN_MAX,
9507 #define _SC_OPEN_MAX _SC_OPEN_MAX
9508     _SC_STREAM_MAX,
9509 #define _SC_STREAM_MAX _SC_STREAM_MAX
9510     _SC_TZNAME_MAX,
9511 #define _SC_TZNAME_MAX _SC_TZNAME_MAX
9512     _SC_JOB_CONTROL,
9513 #define _SC_JOB_CONTROL _SC_JOB_CONTROL
9514     _SC_SAVED_IDS,
9515 #define _SC_SAVED_IDS _SC_SAVED_IDS
9516     _SC_REALTIME_SIGNALS,
9517 #define _SC_REALTIME_SIGNALS _SC_REALTIME_SIGNALS
9518     _SC_PRIORITY_SCHEDULING,
9519 #define _SC_PRIORITY_SCHEDULING _SC_PRIORITY_SCHEDULING
9520     _SC_TIMERS,
9521 #define _SC_TIMERS _SC_TIMERS
9522     _SC_ASYNCHRONOUS_IO,
9523 #define _SC_ASYNCHRONOUS_IO _SC_ASYNCHRONOUS_IO
9524     _SC_PRIORITIZED_IO,
9525 #define _SC_PRIORITIZED_IO _SC_PRIORITIZED_IO
9526     _SC_SYNCHRONIZED_IO,
9527 #define _SC_SYNCHRONIZED_IO _SC_SYNCHRONIZED_IO
9528     _SC_FSYNC,
9529 #define _SC_FSYNC _SC_FSYNC
9530     _SC_MAPPED_FILES,
9531 #define _SC_MAPPED_FILES _SC_MAPPED_FILES
9532     _SC_MEMLOCK,
9533 #define _SC_MEMLOCK _SC_MEMLOCK
9534     _SC_MEMLOCK_RANGE,
9535 #define _SC_MEMLOCK_RANGE _SC_MEMLOCK_RANGE
9536     _SC_MEMORY_PROTECTION,
9537 #define _SC_MEMORY_PROTECTION _SC_MEMORY_PROTECTION
9538     _SC_MESSAGE_PASSING,
9539 #define _SC_MESSAGE_PASSING _SC_MESSAGE_PASSING
9540     _SC_SEMAPHORES,
9541 #define _SC_SEMAPHORES _SC_SEMAPHORES
9542     _SC_SHARED_MEMORY_OBJECTS,
9543 #define _SC_SHARED_MEMORY_OBJECTS _SC_SHARED_MEMORY_OBJECTS
9544     _SC_AIO_LISTIO_MAX,
9545 #define _SC_AIO_LISTIO_MAX _SC_AIO_LISTIO_MAX
9546     _SC_AIO_MAX,
9547 #define _SC_AIO_MAX _SC_AIO_MAX
9548     _SC_AIO_PRIO_DELTA_MAX,
9549 #define _SC_AIO_PRIO_DELTA_MAX _SC_AIO_PRIO_DELTA_MAX
9550     _SC_DELAYTIMER_MAX,
9551 #define _SC_DELAYTIMER_MAX _SC_DELAYTIMER_MAX
9552     _SC_MQ_OPEN_MAX,
9553 #define _SC_MQ_OPEN_MAX _SC_MQ_OPEN_MAX
9554     _SC_MQ_PRIO_MAX,
9555 #define _SC_MQ_PRIO_MAX _SC_MQ_PRIO_MAX
9556     _SC_VERSION,
9557 #define _SC_VERSION _SC_VERSION
9558     _SC_PAGESIZE,
9559 #define _SC_PAGESIZE _SC_PAGESIZE
9560 #define _SC_PAGE_SIZE _SC_PAGESIZE
9561     _SC_RTSIG_MAX,
9562 #define _SC_RTSIG_MAX _SC_RTSIG_MAX
9563     _SC_SEM_NSEMS_MAX,
9564 #define _SC_SEM_NSEMS_MAX _SC_SEM_NSEMS_MAX
9565     _SC_SEM_VALUE_MAX,
9566 #define _SC_SEM_VALUE_MAX _SC_SEM_VALUE_MAX
9567     _SC_SIGQUEUE_MAX,
9568 #define _SC_SIGQUEUE_MAX _SC_SIGQUEUE_MAX
9569     _SC_TIMER_MAX,
9570 #define _SC_TIMER_MAX _SC_TIMER_MAX
9571
9572
9573
9574     _SC_BC_BASE_MAX,
9575 #define _SC_BC_BASE_MAX _SC_BC_BASE_MAX
9576     _SC_BC_DIM_MAX,
9577 #define _SC_BC_DIM_MAX _SC_BC_DIM_MAX
9578     _SC_BC_SCALE_MAX,
9579 #define _SC_BC_SCALE_MAX _SC_BC_SCALE_MAX
9580     _SC_BC_STRING_MAX,
9581 #define _SC_BC_STRING_MAX _SC_BC_STRING_MAX
9582     _SC_COLL_WEIGHTS_MAX,
9583 #define _SC_COLL_WEIGHTS_MAX _SC_COLL_WEIGHTS_MAX
9584     _SC_EQUIV_CLASS_MAX,
9585 #define _SC_EQUIV_CLASS_MAX _SC_EQUIV_CLASS_MAX
9586     _SC_EXPR_NEST_MAX,
9587 #define _SC_EXPR_NEST_MAX _SC_EXPR_NEST_MAX
9588     _SC_LINE_MAX,
9589 #define _SC_LINE_MAX _SC_LINE_MAX
9590     _SC_RE_DUP_MAX,
9591 #define _SC_RE_DUP_MAX _SC_RE_DUP_MAX
9592     _SC_CHARCLASS_NAME_MAX,
9593 #define _SC_CHARCLASS_NAME_MAX _SC_CHARCLASS_NAME_MAX
9594
9595     _SC_2_VERSION,
9596 #define _SC_2_VERSION _SC_2_VERSION
9597     _SC_2_C_BIND,
9598 #define _SC_2_C_BIND _SC_2_C_BIND
9599     _SC_2_C_DEV,
9600 #define _SC_2_C_DEV _SC_2_C_DEV
9601     _SC_2_FORT_DEV,
9602 #define _SC_2_FORT_DEV _SC_2_FORT_DEV
9603     _SC_2_FORT_RUN,
9604 #define _SC_2_FORT_RUN _SC_2_FORT_RUN
9605     _SC_2_SW_DEV,
9606 #define _SC_2_SW_DEV _SC_2_SW_DEV
9607     _SC_2_LOCALEDEF,
9608 #define _SC_2_LOCALEDEF _SC_2_LOCALEDEF
9609
9610     _SC_PII,
9611 #define _SC_PII _SC_PII
9612     _SC_PII_XTI,
9613 #define _SC_PII_XTI _SC_PII_XTI
9614     _SC_PII_SOCKET,
9615 #define _SC_PII_SOCKET _SC_PII_SOCKET
9616     _SC_PII_INTERNET,
9617 #define _SC_PII_INTERNET _SC_PII_INTERNET
9618     _SC_PII_OSI,
9619 #define _SC_PII_OSI _SC_PII_OSI
9620     _SC_POLL,
9621 #define _SC_POLL _SC_POLL
9622     _SC_SELECT,
9623 #define _SC_SELECT _SC_SELECT
9624     _SC_UIO_MAXIOV,
9625 #define _SC_UIO_MAXIOV _SC_UIO_MAXIOV
9626     _SC_IOV_MAX = _SC_UIO_MAXIOV,
9627 #define _SC_IOV_MAX _SC_IOV_MAX
9628     _SC_PII_INTERNET_STREAM,
9629 #define _SC_PII_INTERNET_STREAM _SC_PII_INTERNET_STREAM
9630     _SC_PII_INTERNET_DGRAM,
9631 #define _SC_PII_INTERNET_DGRAM _SC_PII_INTERNET_DGRAM
9632     _SC_PII_OSI_COTS,
9633 #define _SC_PII_OSI_COTS _SC_PII_OSI_COTS
9634     _SC_PII_OSI_CLTS,
9635 #define _SC_PII_OSI_CLTS _SC_PII_OSI_CLTS
9636     _SC_PII_OSI_M,
9637 #define _SC_PII_OSI_M _SC_PII_OSI_M
9638     _SC_T_IOV_MAX,
9639 #define _SC_T_IOV_MAX _SC_T_IOV_MAX
9640
9641
9642     _SC_THREADS,
9643 #define _SC_THREADS _SC_THREADS
9644     _SC_THREAD_SAFE_FUNCTIONS,
9645 #define _SC_THREAD_SAFE_FUNCTIONS _SC_THREAD_SAFE_FUNCTIONS
9646     _SC_GETGR_R_SIZE_MAX,
9647 #define _SC_GETGR_R_SIZE_MAX _SC_GETGR_R_SIZE_MAX
9648     _SC_GETPW_R_SIZE_MAX,
9649 #define _SC_GETPW_R_SIZE_MAX _SC_GETPW_R_SIZE_MAX
9650     _SC_LOGIN_NAME_MAX,
9651 #define _SC_LOGIN_NAME_MAX _SC_LOGIN_NAME_MAX
9652     _SC_TTY_NAME_MAX,
9653 #define _SC_TTY_NAME_MAX _SC_TTY_NAME_MAX
9654     _SC_THREAD_DESTRUCTOR_ITERATIONS,
9655 #define _SC_THREAD_DESTRUCTOR_ITERATIONS _SC_THREAD_DESTRUCTOR_ITERATIONS
9656     _SC_THREAD_KEYS_MAX,
9657 #define _SC_THREAD_KEYS_MAX _SC_THREAD_KEYS_MAX
9658     _SC_THREAD_STACK_MIN,
9659 #define _SC_THREAD_STACK_MIN _SC_THREAD_STACK_MIN
9660     _SC_THREAD_THREADS_MAX,
9661 #define _SC_THREAD_THREADS_MAX _SC_THREAD_THREADS_MAX
9662     _SC_THREAD_ATTR_STACKADDR,
9663 #define _SC_THREAD_ATTR_STACKADDR _SC_THREAD_ATTR_STACKADDR
9664     _SC_THREAD_ATTR_STACKSIZE,
9665 #define _SC_THREAD_ATTR_STACKSIZE _SC_THREAD_ATTR_STACKSIZE
9666     _SC_THREAD_PRIORITY_SCHEDULING,
9667 #define _SC_THREAD_PRIORITY_SCHEDULING _SC_THREAD_PRIORITY_SCHEDULING
9668     _SC_THREAD_PRIO_INHERIT,
9669 #define _SC_THREAD_PRIO_INHERIT _SC_THREAD_PRIO_INHERIT
9670     _SC_THREAD_PRIO_PROTECT,
9671 #define _SC_THREAD_PRIO_PROTECT _SC_THREAD_PRIO_PROTECT
9672     _SC_THREAD_PROCESS_SHARED,
9673 #define _SC_THREAD_PROCESS_SHARED _SC_THREAD_PROCESS_SHARED
9674
9675     _SC_NPROCESSORS_CONF,
9676 #define _SC_NPROCESSORS_CONF _SC_NPROCESSORS_CONF
9677     _SC_NPROCESSORS_ONLN,
9678 #define _SC_NPROCESSORS_ONLN _SC_NPROCESSORS_ONLN
9679     _SC_PHYS_PAGES,
9680 #define _SC_PHYS_PAGES _SC_PHYS_PAGES
9681     _SC_AVPHYS_PAGES,
9682 #define _SC_AVPHYS_PAGES _SC_AVPHYS_PAGES
9683     _SC_ATEXIT_MAX,
9684 #define _SC_ATEXIT_MAX _SC_ATEXIT_MAX
9685     _SC_PASS_MAX,
9686 #define _SC_PASS_MAX _SC_PASS_MAX
9687
9688     _SC_XOPEN_VERSION,
9689 #define _SC_XOPEN_VERSION _SC_XOPEN_VERSION
9690     _SC_XOPEN_XCU_VERSION,
9691 #define _SC_XOPEN_XCU_VERSION _SC_XOPEN_XCU_VERSION
9692     _SC_XOPEN_UNIX,
9693 #define _SC_XOPEN_UNIX _SC_XOPEN_UNIX
9694     _SC_XOPEN_CRYPT,
9695 #define _SC_XOPEN_CRYPT _SC_XOPEN_CRYPT
9696     _SC_XOPEN_ENH_I18N,
9697 #define _SC_XOPEN_ENH_I18N _SC_XOPEN_ENH_I18N
9698     _SC_XOPEN_SHM,
9699 #define _SC_XOPEN_SHM _SC_XOPEN_SHM
9700
9701     _SC_2_CHAR_TERM,
9702 #define _SC_2_CHAR_TERM _SC_2_CHAR_TERM
9703     _SC_2_C_VERSION,
9704 #define _SC_2_C_VERSION _SC_2_C_VERSION
9705     _SC_2_UPE,
9706 #define _SC_2_UPE _SC_2_UPE
9707
9708     _SC_XOPEN_XPG2,
9709 #define _SC_XOPEN_XPG2 _SC_XOPEN_XPG2
9710     _SC_XOPEN_XPG3,
9711 #define _SC_XOPEN_XPG3 _SC_XOPEN_XPG3
9712     _SC_XOPEN_XPG4,
9713 #define _SC_XOPEN_XPG4 _SC_XOPEN_XPG4
9714
9715     _SC_CHAR_BIT,
9716 #define _SC_CHAR_BIT _SC_CHAR_BIT
9717     _SC_CHAR_MAX,
9718 #define _SC_CHAR_MAX _SC_CHAR_MAX
9719     _SC_CHAR_MIN,
9720 #define _SC_CHAR_MIN _SC_CHAR_MIN
9721     _SC_INT_MAX,
9722 #define _SC_INT_MAX _SC_INT_MAX
9723     _SC_INT_MIN,
9724 #define _SC_INT_MIN _SC_INT_MIN
9725     _SC_LONG_BIT,
9726 #define _SC_LONG_BIT _SC_LONG_BIT
9727     _SC_WORD_BIT,
9728 #define _SC_WORD_BIT _SC_WORD_BIT
9729     _SC_MB_LEN_MAX,
9730 #define _SC_MB_LEN_MAX _SC_MB_LEN_MAX
9731     _SC_NZERO,
9732 #define _SC_NZERO _SC_NZERO
9733     _SC_SSIZE_MAX,
9734 #define _SC_SSIZE_MAX _SC_SSIZE_MAX
9735     _SC_SCHAR_MAX,
9736 #define _SC_SCHAR_MAX _SC_SCHAR_MAX
9737     _SC_SCHAR_MIN,
9738 #define _SC_SCHAR_MIN _SC_SCHAR_MIN
9739     _SC_SHRT_MAX,
9740 #define _SC_SHRT_MAX _SC_SHRT_MAX
9741     _SC_SHRT_MIN,
9742 #define _SC_SHRT_MIN _SC_SHRT_MIN
9743     _SC_UCHAR_MAX,
9744 #define _SC_UCHAR_MAX _SC_UCHAR_MAX
9745     _SC_UINT_MAX,
9746 #define _SC_UINT_MAX _SC_UINT_MAX
9747     _SC_ULONG_MAX,
9748 #define _SC_ULONG_MAX _SC_ULONG_MAX
9749     _SC_USHRT_MAX,
9750 #define _SC_USHRT_MAX _SC_USHRT_MAX
9751
9752     _SC_NL_ARGMAX,
9753 #define _SC_NL_ARGMAX _SC_NL_ARGMAX
9754     _SC_NL_LANGMAX,
9755 #define _SC_NL_LANGMAX _SC_NL_LANGMAX
9756     _SC_NL_MSGMAX,
9757 #define _SC_NL_MSGMAX _SC_NL_MSGMAX
9758     _SC_NL_NMAX,
9759 #define _SC_NL_NMAX _SC_NL_NMAX
9760     _SC_NL_SETMAX,
9761 #define _SC_NL_SETMAX _SC_NL_SETMAX
9762     _SC_NL_TEXTMAX,
9763 #define _SC_NL_TEXTMAX _SC_NL_TEXTMAX
9764
9765     _SC_XBS5_ILP32_OFF32,
9766 #define _SC_XBS5_ILP32_OFF32 _SC_XBS5_ILP32_OFF32
9767     _SC_XBS5_ILP32_OFFBIG,
9768 #define _SC_XBS5_ILP32_OFFBIG _SC_XBS5_ILP32_OFFBIG
9769     _SC_XBS5_LP64_OFF64,
9770 #define _SC_XBS5_LP64_OFF64 _SC_XBS5_LP64_OFF64
9771     _SC_XBS5_LPBIG_OFFBIG,
9772 #define _SC_XBS5_LPBIG_OFFBIG _SC_XBS5_LPBIG_OFFBIG
9773
9774     _SC_XOPEN_LEGACY,
9775 #define _SC_XOPEN_LEGACY _SC_XOPEN_LEGACY
9776     _SC_XOPEN_REALTIME,
9777 #define _SC_XOPEN_REALTIME _SC_XOPEN_REALTIME
9778     _SC_XOPEN_REALTIME_THREADS,
9779 #define _SC_XOPEN_REALTIME_THREADS _SC_XOPEN_REALTIME_THREADS
9780
9781     _SC_ADVISORY_INFO,
9782 #define _SC_ADVISORY_INFO _SC_ADVISORY_INFO
9783     _SC_BARRIERS,
9784 #define _SC_BARRIERS _SC_BARRIERS
9785     _SC_BASE,
9786 #define _SC_BASE _SC_BASE
9787     _SC_C_LANG_SUPPORT,
9788 #define _SC_C_LANG_SUPPORT _SC_C_LANG_SUPPORT
9789     _SC_C_LANG_SUPPORT_R,
9790 #define _SC_C_LANG_SUPPORT_R _SC_C_LANG_SUPPORT_R
9791     _SC_CLOCK_SELECTION,
9792 #define _SC_CLOCK_SELECTION _SC_CLOCK_SELECTION
9793     _SC_CPUTIME,
9794 #define _SC_CPUTIME _SC_CPUTIME
9795     _SC_THREAD_CPUTIME,
9796 #define _SC_THREAD_CPUTIME _SC_THREAD_CPUTIME
9797     _SC_DEVICE_IO,
9798 #define _SC_DEVICE_IO _SC_DEVICE_IO
9799     _SC_DEVICE_SPECIFIC,
9800 #define _SC_DEVICE_SPECIFIC _SC_DEVICE_SPECIFIC
9801     _SC_DEVICE_SPECIFIC_R,
9802 #define _SC_DEVICE_SPECIFIC_R _SC_DEVICE_SPECIFIC_R
9803     _SC_FD_MGMT,
9804 #define _SC_FD_MGMT _SC_FD_MGMT
9805     _SC_FIFO,
9806 #define _SC_FIFO _SC_FIFO
9807     _SC_PIPE,
9808 #define _SC_PIPE _SC_PIPE
9809     _SC_FILE_ATTRIBUTES,
9810 #define _SC_FILE_ATTRIBUTES _SC_FILE_ATTRIBUTES
9811     _SC_FILE_LOCKING,
9812 #define _SC_FILE_LOCKING _SC_FILE_LOCKING
9813     _SC_FILE_SYSTEM,
9814 #define _SC_FILE_SYSTEM _SC_FILE_SYSTEM
9815     _SC_MONOTONIC_CLOCK,
9816 #define _SC_MONOTONIC_CLOCK _SC_MONOTONIC_CLOCK
9817     _SC_MULTI_PROCESS,
9818 #define _SC_MULTI_PROCESS _SC_MULTI_PROCESS
9819     _SC_SINGLE_PROCESS,
9820 #define _SC_SINGLE_PROCESS _SC_SINGLE_PROCESS
9821     _SC_NETWORKING,
9822 #define _SC_NETWORKING _SC_NETWORKING
9823     _SC_READER_WRITER_LOCKS,
9824 #define _SC_READER_WRITER_LOCKS _SC_READER_WRITER_LOCKS
9825     _SC_SPIN_LOCKS,
9826 #define _SC_SPIN_LOCKS _SC_SPIN_LOCKS
9827     _SC_REGEXP,
9828 #define _SC_REGEXP _SC_REGEXP
9829     _SC_REGEX_VERSION,
9830 #define _SC_REGEX_VERSION _SC_REGEX_VERSION
9831     _SC_SHELL,
9832 #define _SC_SHELL _SC_SHELL
9833     _SC_SIGNALS,
9834 #define _SC_SIGNALS _SC_SIGNALS
9835     _SC_SPAWN,
9836 #define _SC_SPAWN _SC_SPAWN
9837     _SC_SPORADIC_SERVER,
9838 #define _SC_SPORADIC_SERVER _SC_SPORADIC_SERVER
9839     _SC_THREAD_SPORADIC_SERVER,
9840 #define _SC_THREAD_SPORADIC_SERVER _SC_THREAD_SPORADIC_SERVER
9841     _SC_SYSTEM_DATABASE,
9842 #define _SC_SYSTEM_DATABASE _SC_SYSTEM_DATABASE
9843     _SC_SYSTEM_DATABASE_R,
9844 #define _SC_SYSTEM_DATABASE_R _SC_SYSTEM_DATABASE_R
9845     _SC_TIMEOUTS,
9846 #define _SC_TIMEOUTS _SC_TIMEOUTS
9847     _SC_TYPED_MEMORY_OBJECTS,
9848 #define _SC_TYPED_MEMORY_OBJECTS _SC_TYPED_MEMORY_OBJECTS
9849     _SC_USER_GROUPS,
9850 #define _SC_USER_GROUPS _SC_USER_GROUPS
9851     _SC_USER_GROUPS_R,
9852 #define _SC_USER_GROUPS_R _SC_USER_GROUPS_R
9853     _SC_2_PBS,
9854 #define _SC_2_PBS _SC_2_PBS
9855     _SC_2_PBS_ACCOUNTING,
9856 #define _SC_2_PBS_ACCOUNTING _SC_2_PBS_ACCOUNTING
9857     _SC_2_PBS_LOCATE,
9858 #define _SC_2_PBS_LOCATE _SC_2_PBS_LOCATE
9859     _SC_2_PBS_MESSAGE,
9860 #define _SC_2_PBS_MESSAGE _SC_2_PBS_MESSAGE
9861     _SC_2_PBS_TRACK,
9862 #define _SC_2_PBS_TRACK _SC_2_PBS_TRACK
9863     _SC_SYMLOOP_MAX,
9864 #define _SC_SYMLOOP_MAX _SC_SYMLOOP_MAX
9865     _SC_STREAMS,
9866 #define _SC_STREAMS _SC_STREAMS
9867     _SC_2_PBS_CHECKPOINT,
9868 #define _SC_2_PBS_CHECKPOINT _SC_2_PBS_CHECKPOINT
9869
9870     _SC_V6_ILP32_OFF32,
9871 #define _SC_V6_ILP32_OFF32 _SC_V6_ILP32_OFF32
9872     _SC_V6_ILP32_OFFBIG,
9873 #define _SC_V6_ILP32_OFFBIG _SC_V6_ILP32_OFFBIG
9874     _SC_V6_LP64_OFF64,
9875 #define _SC_V6_LP64_OFF64 _SC_V6_LP64_OFF64
9876     _SC_V6_LPBIG_OFFBIG,
9877 #define _SC_V6_LPBIG_OFFBIG _SC_V6_LPBIG_OFFBIG
9878
9879     _SC_HOST_NAME_MAX,
9880 #define _SC_HOST_NAME_MAX _SC_HOST_NAME_MAX
9881     _SC_TRACE,
9882 #define _SC_TRACE _SC_TRACE
9883     _SC_TRACE_EVENT_FILTER,
9884 #define _SC_TRACE_EVENT_FILTER _SC_TRACE_EVENT_FILTER
9885     _SC_TRACE_INHERIT,
9886 #define _SC_TRACE_INHERIT _SC_TRACE_INHERIT
9887     _SC_TRACE_LOG,
9888 #define _SC_TRACE_LOG _SC_TRACE_LOG
9889
9890     _SC_LEVEL1_ICACHE_SIZE,
9891 #define _SC_LEVEL1_ICACHE_SIZE _SC_LEVEL1_ICACHE_SIZE
9892     _SC_LEVEL1_ICACHE_ASSOC,
9893 #define _SC_LEVEL1_ICACHE_ASSOC _SC_LEVEL1_ICACHE_ASSOC
9894     _SC_LEVEL1_ICACHE_LINESIZE,
9895 #define _SC_LEVEL1_ICACHE_LINESIZE _SC_LEVEL1_ICACHE_LINESIZE
9896     _SC_LEVEL1_DCACHE_SIZE,
9897 #define _SC_LEVEL1_DCACHE_SIZE _SC_LEVEL1_DCACHE_SIZE
9898     _SC_LEVEL1_DCACHE_ASSOC,
9899 #define _SC_LEVEL1_DCACHE_ASSOC _SC_LEVEL1_DCACHE_ASSOC
9900     _SC_LEVEL1_DCACHE_LINESIZE,
9901 #define _SC_LEVEL1_DCACHE_LINESIZE _SC_LEVEL1_DCACHE_LINESIZE
9902     _SC_LEVEL2_CACHE_SIZE,
9903 #define _SC_LEVEL2_CACHE_SIZE _SC_LEVEL2_CACHE_SIZE
9904     _SC_LEVEL2_CACHE_ASSOC,
9905 #define _SC_LEVEL2_CACHE_ASSOC _SC_LEVEL2_CACHE_ASSOC
9906     _SC_LEVEL2_CACHE_LINESIZE,
9907 #define _SC_LEVEL2_CACHE_LINESIZE _SC_LEVEL2_CACHE_LINESIZE
9908     _SC_LEVEL3_CACHE_SIZE,
9909 #define _SC_LEVEL3_CACHE_SIZE _SC_LEVEL3_CACHE_SIZE
9910     _SC_LEVEL3_CACHE_ASSOC,
9911 #define _SC_LEVEL3_CACHE_ASSOC _SC_LEVEL3_CACHE_ASSOC
9912     _SC_LEVEL3_CACHE_LINESIZE,
9913 #define _SC_LEVEL3_CACHE_LINESIZE _SC_LEVEL3_CACHE_LINESIZE
9914     _SC_LEVEL4_CACHE_SIZE,
9915 #define _SC_LEVEL4_CACHE_SIZE _SC_LEVEL4_CACHE_SIZE
9916     _SC_LEVEL4_CACHE_ASSOC,
9917 #define _SC_LEVEL4_CACHE_ASSOC _SC_LEVEL4_CACHE_ASSOC
9918     _SC_LEVEL4_CACHE_LINESIZE,
9919 #define _SC_LEVEL4_CACHE_LINESIZE _SC_LEVEL4_CACHE_LINESIZE
9920
9921
9922     _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
9923 #define _SC_IPV6 _SC_IPV6
9924     _SC_RAW_SOCKETS
9925 #define _SC_RAW_SOCKETS _SC_RAW_SOCKETS
9926   };
9927
9928
9929 enum
9930   {
9931     _CS_PATH,
9932 #define _CS_PATH _CS_PATH
9933
9934     _CS_V6_WIDTH_RESTRICTED_ENVS,
9935 #define _CS_V6_WIDTH_RESTRICTED_ENVS _CS_V6_WIDTH_RESTRICTED_ENVS
9936 #define _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS _CS_V6_WIDTH_RESTRICTED_ENVS
9937
9938     _CS_GNU_LIBC_VERSION,
9939 #define _CS_GNU_LIBC_VERSION _CS_GNU_LIBC_VERSION
9940     _CS_GNU_LIBPTHREAD_VERSION,
9941 #define _CS_GNU_LIBPTHREAD_VERSION _CS_GNU_LIBPTHREAD_VERSION
9942
9943     _CS_LFS_CFLAGS = 1000,
9944 #define _CS_LFS_CFLAGS _CS_LFS_CFLAGS
9945     _CS_LFS_LDFLAGS,
9946 #define _CS_LFS_LDFLAGS _CS_LFS_LDFLAGS
9947     _CS_LFS_LIBS,
9948 #define _CS_LFS_LIBS _CS_LFS_LIBS
9949     _CS_LFS_LINTFLAGS,
9950 #define _CS_LFS_LINTFLAGS _CS_LFS_LINTFLAGS
9951     _CS_LFS64_CFLAGS,
9952 #define _CS_LFS64_CFLAGS _CS_LFS64_CFLAGS
9953     _CS_LFS64_LDFLAGS,
9954 #define _CS_LFS64_LDFLAGS _CS_LFS64_LDFLAGS
9955     _CS_LFS64_LIBS,
9956 #define _CS_LFS64_LIBS _CS_LFS64_LIBS
9957     _CS_LFS64_LINTFLAGS,
9958 #define _CS_LFS64_LINTFLAGS _CS_LFS64_LINTFLAGS
9959
9960     _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
9961 #define _CS_XBS5_ILP32_OFF32_CFLAGS _CS_XBS5_ILP32_OFF32_CFLAGS
9962     _CS_XBS5_ILP32_OFF32_LDFLAGS,
9963 #define _CS_XBS5_ILP32_OFF32_LDFLAGS _CS_XBS5_ILP32_OFF32_LDFLAGS
9964     _CS_XBS5_ILP32_OFF32_LIBS,
9965 #define _CS_XBS5_ILP32_OFF32_LIBS _CS_XBS5_ILP32_OFF32_LIBS
9966     _CS_XBS5_ILP32_OFF32_LINTFLAGS,
9967 #define _CS_XBS5_ILP32_OFF32_LINTFLAGS _CS_XBS5_ILP32_OFF32_LINTFLAGS
9968     _CS_XBS5_ILP32_OFFBIG_CFLAGS,
9969 #define _CS_XBS5_ILP32_OFFBIG_CFLAGS _CS_XBS5_ILP32_OFFBIG_CFLAGS
9970     _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
9971 #define _CS_XBS5_ILP32_OFFBIG_LDFLAGS _CS_XBS5_ILP32_OFFBIG_LDFLAGS
9972     _CS_XBS5_ILP32_OFFBIG_LIBS,
9973 #define _CS_XBS5_ILP32_OFFBIG_LIBS _CS_XBS5_ILP32_OFFBIG_LIBS
9974     _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
9975 #define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS _CS_XBS5_ILP32_OFFBIG_LINTFLAGS
9976     _CS_XBS5_LP64_OFF64_CFLAGS,
9977 #define _CS_XBS5_LP64_OFF64_CFLAGS _CS_XBS5_LP64_OFF64_CFLAGS
9978     _CS_XBS5_LP64_OFF64_LDFLAGS,
9979 #define _CS_XBS5_LP64_OFF64_LDFLAGS _CS_XBS5_LP64_OFF64_LDFLAGS
9980     _CS_XBS5_LP64_OFF64_LIBS,
9981 #define _CS_XBS5_LP64_OFF64_LIBS _CS_XBS5_LP64_OFF64_LIBS
9982     _CS_XBS5_LP64_OFF64_LINTFLAGS,
9983 #define _CS_XBS5_LP64_OFF64_LINTFLAGS _CS_XBS5_LP64_OFF64_LINTFLAGS
9984     _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
9985 #define _CS_XBS5_LPBIG_OFFBIG_CFLAGS _CS_XBS5_LPBIG_OFFBIG_CFLAGS
9986     _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
9987 #define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS _CS_XBS5_LPBIG_OFFBIG_LDFLAGS
9988     _CS_XBS5_LPBIG_OFFBIG_LIBS,
9989 #define _CS_XBS5_LPBIG_OFFBIG_LIBS _CS_XBS5_LPBIG_OFFBIG_LIBS
9990     _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
9991 #define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
9992
9993     _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
9994 #define _CS_POSIX_V6_ILP32_OFF32_CFLAGS _CS_POSIX_V6_ILP32_OFF32_CFLAGS
9995     _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
9996 #define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS _CS_POSIX_V6_ILP32_OFF32_LDFLAGS
9997     _CS_POSIX_V6_ILP32_OFF32_LIBS,
9998 #define _CS_POSIX_V6_ILP32_OFF32_LIBS _CS_POSIX_V6_ILP32_OFF32_LIBS
9999     _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
10000 #define _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS
10001     _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
10002 #define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
10003     _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
10004 #define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
10005     _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
10006 #define _CS_POSIX_V6_ILP32_OFFBIG_LIBS _CS_POSIX_V6_ILP32_OFFBIG_LIBS
10007     _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
10008 #define _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS
10009     _CS_POSIX_V6_LP64_OFF64_CFLAGS,
10010 #define _CS_POSIX_V6_LP64_OFF64_CFLAGS _CS_POSIX_V6_LP64_OFF64_CFLAGS
10011     _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
10012 #define _CS_POSIX_V6_LP64_OFF64_LDFLAGS _CS_POSIX_V6_LP64_OFF64_LDFLAGS
10013     _CS_POSIX_V6_LP64_OFF64_LIBS,
10014 #define _CS_POSIX_V6_LP64_OFF64_LIBS _CS_POSIX_V6_LP64_OFF64_LIBS
10015     _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
10016 #define _CS_POSIX_V6_LP64_OFF64_LINTFLAGS _CS_POSIX_V6_LP64_OFF64_LINTFLAGS
10017     _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
10018 #define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
10019     _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
10020 #define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
10021     _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
10022 #define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
10023     _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
10024 #define _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
10025   };
10026 # 9 "/usr/include/bits/confname.h" 2 3 4
10027 # 555 "/usr/include/gentoo-multilib/amd64/unistd.h" 2 3 4
10028
10029
10030 extern long int pathconf (__const char *__path, int __name)
10031      throw () __attribute__ ((__nonnull__ (1)));
10032
10033
10034 extern long int fpathconf (int __fd, int __name) throw ();
10035
10036
10037 extern long int sysconf (int __name) throw ();
10038
10039
10040
10041 extern size_t confstr (int __name, char *__buf, size_t __len) throw ();
10042
10043
10044
10045
10046 extern __pid_t getpid (void) throw ();
10047
10048
10049 extern __pid_t getppid (void) throw ();
10050
10051
10052
10053
10054 extern __pid_t getpgrp (void) throw ();
10055 # 591 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10056 extern __pid_t __getpgid (__pid_t __pid) throw ();
10057
10058 extern __pid_t getpgid (__pid_t __pid) throw ();
10059
10060
10061
10062
10063
10064
10065 extern int setpgid (__pid_t __pid, __pid_t __pgid) throw ();
10066 # 617 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10067 extern int setpgrp (void) throw ();
10068 # 634 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10069 extern __pid_t setsid (void) throw ();
10070
10071
10072
10073 extern __pid_t getsid (__pid_t __pid) throw ();
10074
10075
10076
10077 extern __uid_t getuid (void) throw ();
10078
10079
10080 extern __uid_t geteuid (void) throw ();
10081
10082
10083 extern __gid_t getgid (void) throw ();
10084
10085
10086 extern __gid_t getegid (void) throw ();
10087
10088
10089
10090
10091 extern int getgroups (int __size, __gid_t __list[]) throw () ;
10092
10093
10094
10095 extern int group_member (__gid_t __gid) throw ();
10096
10097
10098
10099
10100
10101
10102 extern int setuid (__uid_t __uid) throw ();
10103
10104
10105
10106
10107 extern int setreuid (__uid_t __ruid, __uid_t __euid) throw ();
10108
10109
10110
10111
10112 extern int seteuid (__uid_t __uid) throw ();
10113
10114
10115
10116
10117
10118
10119 extern int setgid (__gid_t __gid) throw ();
10120
10121
10122
10123
10124 extern int setregid (__gid_t __rgid, __gid_t __egid) throw ();
10125
10126
10127
10128
10129 extern int setegid (__gid_t __gid) throw ();
10130
10131
10132
10133
10134
10135 extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid)
10136      throw ();
10137
10138
10139
10140 extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid)
10141      throw ();
10142
10143
10144
10145 extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid)
10146      throw ();
10147
10148
10149
10150 extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid)
10151      throw ();
10152
10153
10154
10155
10156
10157
10158 extern __pid_t fork (void) throw ();
10159
10160
10161
10162
10163
10164
10165 extern __pid_t vfork (void) throw ();
10166
10167
10168
10169
10170
10171 extern char *ttyname (int __fd) throw ();
10172
10173
10174
10175 extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
10176      throw () __attribute__ ((__nonnull__ (2))) ;
10177
10178
10179
10180 extern int isatty (int __fd) throw ();
10181
10182
10183
10184
10185
10186 extern int ttyslot (void) throw ();
10187
10188
10189
10190
10191 extern int link (__const char *__from, __const char *__to)
10192      throw () __attribute__ ((__nonnull__ (1, 2))) ;
10193
10194
10195
10196
10197 extern int linkat (int __fromfd, __const char *__from, int __tofd,
10198      __const char *__to, int __flags)
10199      throw () __attribute__ ((__nonnull__ (2, 4))) ;
10200
10201
10202
10203
10204 extern int symlink (__const char *__from, __const char *__to)
10205      throw () __attribute__ ((__nonnull__ (1, 2))) ;
10206
10207
10208
10209
10210 extern ssize_t readlink (__const char *__restrict __path,
10211     char *__restrict __buf, size_t __len)
10212      throw () __attribute__ ((__nonnull__ (1, 2))) ;
10213
10214
10215
10216
10217 extern int symlinkat (__const char *__from, int __tofd,
10218         __const char *__to) throw () __attribute__ ((__nonnull__ (1, 3))) ;
10219
10220
10221 extern ssize_t readlinkat (int __fd, __const char *__restrict __path,
10222       char *__restrict __buf, size_t __len)
10223      throw () __attribute__ ((__nonnull__ (2, 3))) ;
10224
10225
10226
10227 extern int unlink (__const char *__name) throw () __attribute__ ((__nonnull__ (1)));
10228
10229
10230
10231 extern int unlinkat (int __fd, __const char *__name, int __flag)
10232      throw () __attribute__ ((__nonnull__ (2)));
10233
10234
10235
10236 extern int rmdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1)));
10237
10238
10239
10240 extern __pid_t tcgetpgrp (int __fd) throw ();
10241
10242
10243 extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) throw ();
10244
10245
10246
10247
10248
10249
10250 extern char *getlogin (void);
10251
10252
10253
10254
10255
10256
10257
10258 extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)));
10259
10260
10261
10262
10263 extern int setlogin (__const char *__name) throw () __attribute__ ((__nonnull__ (1)));
10264
10265
10266
10267
10268
10269
10270
10271 #define __need_getopt 
10272 # 1 "/usr/include/getopt.h" 1 3 4
10273
10274
10275
10276
10277
10278
10279
10280 # 1 "/usr/include/gentoo-multilib/amd64/getopt.h" 1 3 4
10281 # 50 "/usr/include/gentoo-multilib/amd64/getopt.h" 3 4
10282 extern "C" {
10283 # 59 "/usr/include/gentoo-multilib/amd64/getopt.h" 3 4
10284 extern char *optarg;
10285 # 73 "/usr/include/gentoo-multilib/amd64/getopt.h" 3 4
10286 extern int optind;
10287
10288
10289
10290
10291 extern int opterr;
10292
10293
10294
10295 extern int optopt;
10296 # 152 "/usr/include/gentoo-multilib/amd64/getopt.h" 3 4
10297 extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
10298        throw ();
10299 # 171 "/usr/include/gentoo-multilib/amd64/getopt.h" 3 4
10300 }
10301
10302
10303
10304 #undef __need_getopt
10305 # 9 "/usr/include/getopt.h" 2 3 4
10306 # 838 "/usr/include/gentoo-multilib/amd64/unistd.h" 2 3 4
10307
10308
10309
10310
10311
10312
10313
10314 extern int gethostname (char *__name, size_t __len) throw () __attribute__ ((__nonnull__ (1)));
10315
10316
10317
10318
10319
10320
10321 extern int sethostname (__const char *__name, size_t __len)
10322      throw () __attribute__ ((__nonnull__ (1))) ;
10323
10324
10325
10326 extern int sethostid (long int __id) throw () ;
10327
10328
10329
10330
10331
10332 extern int getdomainname (char *__name, size_t __len)
10333      throw () __attribute__ ((__nonnull__ (1))) ;
10334 extern int setdomainname (__const char *__name, size_t __len)
10335      throw () __attribute__ ((__nonnull__ (1))) ;
10336
10337
10338
10339
10340
10341 extern int vhangup (void) throw ();
10342
10343
10344 extern int revoke (__const char *__file) throw () __attribute__ ((__nonnull__ (1))) ;
10345
10346
10347
10348
10349
10350
10351
10352 extern int profil (unsigned short int *__sample_buffer, size_t __size,
10353      size_t __offset, unsigned int __scale)
10354      throw () __attribute__ ((__nonnull__ (1)));
10355
10356
10357
10358
10359
10360 extern int acct (__const char *__name) throw ();
10361
10362
10363
10364 extern char *getusershell (void) throw ();
10365 extern void endusershell (void) throw ();
10366 extern void setusershell (void) throw ();
10367
10368
10369
10370
10371
10372 extern int daemon (int __nochdir, int __noclose) throw () ;
10373
10374
10375
10376
10377
10378
10379 extern int chroot (__const char *__path) throw () __attribute__ ((__nonnull__ (1))) ;
10380
10381
10382
10383 extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1)));
10384 # 923 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10385 extern int fsync (int __fd);
10386
10387
10388
10389
10390
10391
10392 extern long int gethostid (void);
10393
10394
10395 extern void sync (void) throw ();
10396
10397
10398
10399
10400 extern int getpagesize (void) throw () __attribute__ ((__const__));
10401
10402
10403
10404
10405 extern int getdtablesize (void) throw ();
10406
10407
10408
10409
10410 extern int truncate (__const char *__file, __off_t __length)
10411      throw () __attribute__ ((__nonnull__ (1))) ;
10412 # 960 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10413 extern int truncate64 (__const char *__file, __off64_t __length)
10414      throw () __attribute__ ((__nonnull__ (1))) ;
10415 # 970 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10416 extern int ftruncate (int __fd, __off_t __length) throw () ;
10417 # 980 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10418 extern int ftruncate64 (int __fd, __off64_t __length) throw () ;
10419 # 990 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10420 extern int brk (void *__addr) throw () ;
10421
10422
10423
10424
10425
10426 extern void *sbrk (intptr_t __delta) throw ();
10427 # 1011 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10428 extern long int syscall (long int __sysno, ...) throw ();
10429 # 1028 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10430 #define F_ULOCK 0
10431 #define F_LOCK 1
10432 #define F_TLOCK 2
10433 #define F_TEST 3
10434
10435
10436 extern int lockf (int __fd, int __cmd, __off_t __len) ;
10437 # 1044 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10438 extern int lockf64 (int __fd, int __cmd, __off64_t __len) ;
10439 # 1054 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10440 #define TEMP_FAILURE_RETRY(expression) (__extension__ ({ long int __result; do __result = (long int) (expression); while (__result == -1L && errno == EINTR); __result; }))
10441 # 1065 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10442 extern int fdatasync (int __fildes);
10443
10444
10445
10446
10447
10448
10449
10450 extern char *crypt (__const char *__key, __const char *__salt)
10451      throw () __attribute__ ((__nonnull__ (1, 2)));
10452
10453
10454
10455 extern void encrypt (char *__block, int __edflag) throw () __attribute__ ((__nonnull__ (1)));
10456
10457
10458
10459
10460
10461
10462 extern void swab (__const void *__restrict __from, void *__restrict __to,
10463     ssize_t __n) throw () __attribute__ ((__nonnull__ (1, 2)));
10464
10465
10466
10467
10468
10469
10470
10471 extern char *ctermid (char *__s) throw ();
10472 # 1103 "/usr/include/gentoo-multilib/amd64/unistd.h" 3 4
10473 }
10474 # 9 "/usr/include/unistd.h" 2 3 4
10475 # 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h" 2 3
10476
10477 typedef pthread_key_t __gthread_key_t;
10478 typedef pthread_once_t __gthread_once_t;
10479 typedef pthread_mutex_t __gthread_mutex_t;
10480 typedef pthread_mutex_t __gthread_recursive_mutex_t;
10481
10482 #define __GTHREAD_MUTEX_INIT PTHREAD_MUTEX_INITIALIZER
10483 #define __GTHREAD_ONCE_INIT PTHREAD_ONCE_INIT
10484
10485
10486
10487 #define __GTHREAD_RECURSIVE_MUTEX_INIT PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
10488
10489
10490
10491
10492
10493
10494 #define __gthrw_pragma(pragma) 
10495
10496 #define __gthrw2(name,name2,type) static __typeof(type) name __attribute__ ((__weakref__(#name2))); __gthrw_pragma(weak type)
10497
10498
10499 #define __gthrw_(name) __gthrw_ ## name
10500
10501
10502
10503
10504
10505
10506 #define __gthrw(name) __gthrw2(__gthrw_ ## name,name,name)
10507 # 92 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h" 3
10508 static __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once")));
10509 static __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific")));
10510 static __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific")));
10511 static __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create")));
10512 static __typeof(pthread_cancel) __gthrw_pthread_cancel __attribute__ ((__weakref__("pthread_cancel")));
10513 static __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock")));
10514 static __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock")));
10515 static __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock")));
10516 static __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init")));
10517
10518
10519 static __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create")));
10520 static __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete")));
10521 static __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init")));
10522 static __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype")));
10523 static __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy")));
10524 # 202 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h" 3
10525 static inline int
10526 __gthread_active_p (void)
10527 {
10528   static void *const __gthread_active_ptr
10529     = __extension__ (void *) &__gthrw_pthread_cancel;
10530   return __gthread_active_ptr != 0;
10531 }
10532 # 571 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h" 3
10533 static inline int
10534 __gthread_once (__gthread_once_t *once, void (*func) (void))
10535 {
10536   if (__gthread_active_p ())
10537     return __gthrw_pthread_once (once, func);
10538   else
10539     return -1;
10540 }
10541
10542 static inline int
10543 __gthread_key_create (__gthread_key_t *key, void (*dtor) (void *))
10544 {
10545   return __gthrw_pthread_key_create (key, dtor);
10546 }
10547
10548 static inline int
10549 __gthread_key_delete (__gthread_key_t key)
10550 {
10551   return __gthrw_pthread_key_delete (key);
10552 }
10553
10554 static inline void *
10555 __gthread_getspecific (__gthread_key_t key)
10556 {
10557   return __gthrw_pthread_getspecific (key);
10558 }
10559
10560 static inline int
10561 __gthread_setspecific (__gthread_key_t key, const void *ptr)
10562 {
10563   return __gthrw_pthread_setspecific (key, ptr);
10564 }
10565
10566 static inline int
10567 __gthread_mutex_lock (__gthread_mutex_t *mutex)
10568 {
10569   if (__gthread_active_p ())
10570     return __gthrw_pthread_mutex_lock (mutex);
10571   else
10572     return 0;
10573 }
10574
10575 static inline int
10576 __gthread_mutex_trylock (__gthread_mutex_t *mutex)
10577 {
10578   if (__gthread_active_p ())
10579     return __gthrw_pthread_mutex_trylock (mutex);
10580   else
10581     return 0;
10582 }
10583
10584 static inline int
10585 __gthread_mutex_unlock (__gthread_mutex_t *mutex)
10586 {
10587   if (__gthread_active_p ())
10588     return __gthrw_pthread_mutex_unlock (mutex);
10589   else
10590     return 0;
10591 }
10592 # 653 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr-default.h" 3
10593 static inline int
10594 __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex)
10595 {
10596   return __gthread_mutex_lock (mutex);
10597 }
10598
10599 static inline int
10600 __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex)
10601 {
10602   return __gthread_mutex_trylock (mutex);
10603 }
10604
10605 static inline int
10606 __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex)
10607 {
10608   return __gthread_mutex_unlock (mutex);
10609 }
10610 # 115 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/gthr.h" 2 3
10611
10612
10613
10614
10615
10616
10617
10618 #pragma GCC visibility pop
10619 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++io.h" 2 3
10620
10621 namespace std __attribute__ ((__visibility__ ("default"))) {
10622
10623   typedef __gthread_mutex_t __c_lock;
10624
10625
10626   typedef FILE __c_file;
10627
10628 }
10629 # 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/iosfwd" 2 3
10630 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cctype" 1 3
10631 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cctype" 3
10632 #define _GLIBCXX_CCTYPE 1
10633
10634        
10635 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cctype" 3
10636
10637
10638 # 1 "/usr/include/ctype.h" 1 3 4
10639
10640
10641
10642
10643
10644
10645
10646 # 1 "/usr/include/gentoo-multilib/amd64/ctype.h" 1 3 4
10647 # 25 "/usr/include/gentoo-multilib/amd64/ctype.h" 3 4
10648 #define _CTYPE_H 1
10649
10650 # 1 "/usr/include/features.h" 1 3 4
10651 # 28 "/usr/include/gentoo-multilib/amd64/ctype.h" 2 3 4
10652 # 1 "/usr/include/bits/types.h" 1 3 4
10653 # 29 "/usr/include/gentoo-multilib/amd64/ctype.h" 2 3 4
10654
10655 extern "C" {
10656 # 41 "/usr/include/gentoo-multilib/amd64/ctype.h" 3 4
10657 # 1 "/usr/include/endian.h" 1 3 4
10658 # 42 "/usr/include/gentoo-multilib/amd64/ctype.h" 2 3 4
10659
10660
10661
10662 #define _ISbit(bit) ((bit) < 8 ? ((1 << (bit)) << 8) : ((1 << (bit)) >> 8))
10663
10664
10665 enum
10666 {
10667   _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
10668   _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
10669   _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
10670   _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
10671   _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
10672   _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
10673   _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
10674   _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
10675   _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
10676   _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
10677   _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
10678   _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
10679 };
10680 # 81 "/usr/include/gentoo-multilib/amd64/ctype.h" 3 4
10681 extern __const unsigned short int **__ctype_b_loc (void)
10682      __attribute__ ((__const));
10683 extern __const __int32_t **__ctype_tolower_loc (void)
10684      __attribute__ ((__const));
10685 extern __const __int32_t **__ctype_toupper_loc (void)
10686      __attribute__ ((__const));
10687
10688 #define __isctype(c,type) ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
10689
10690
10691 #define __isascii(c) (((c) & ~0x7f) == 0)
10692 #define __toascii(c) ((c) & 0x7f)
10693
10694 #define __exctype(name) extern int name (int) __THROW
10695
10696
10697
10698
10699
10700
10701
10702 extern int isalnum (int) throw ();
10703 extern int isalpha (int) throw ();
10704 extern int iscntrl (int) throw ();
10705 extern int isdigit (int) throw ();
10706 extern int islower (int) throw ();
10707 extern int isgraph (int) throw ();
10708 extern int isprint (int) throw ();
10709 extern int ispunct (int) throw ();
10710 extern int isspace (int) throw ();
10711 extern int isupper (int) throw ();
10712 extern int isxdigit (int) throw ();
10713
10714
10715
10716 extern int tolower (int __c) throw ();
10717
10718
10719 extern int toupper (int __c) throw ();
10720
10721
10722
10723
10724
10725
10726
10727
10728 extern int isblank (int) throw ();
10729
10730
10731
10732
10733
10734
10735 extern int isctype (int __c, int __mask) throw ();
10736
10737
10738
10739
10740
10741
10742 extern int isascii (int __c) throw ();
10743
10744
10745
10746 extern int toascii (int __c) throw ();
10747
10748
10749
10750 extern int _toupper (int) throw ();
10751 extern int _tolower (int) throw ();
10752
10753
10754
10755 #define __tobody(c,f,a,args) (__extension__ ({ int __res; if (sizeof (c) > 1) { if (__builtin_constant_p (c)) { int __c = (c); __res = __c < -128 || __c > 255 ? __c : (a)[__c]; } else __res = f args; } else __res = (a)[(int) (c)]; __res; }))
10756 # 233 "/usr/include/gentoo-multilib/amd64/ctype.h" 3 4
10757 # 1 "/usr/include/xlocale.h" 1 3 4
10758 # 234 "/usr/include/gentoo-multilib/amd64/ctype.h" 2 3 4
10759
10760
10761
10762 #define __isctype_l(c,type,locale) ((locale)->__ctype_b[(int) (c)] & (unsigned short int) type)
10763
10764
10765 #define __exctype_l(name) extern int name (int, __locale_t) __THROW
10766
10767
10768
10769
10770
10771
10772 extern int isalnum_l (int, __locale_t) throw ();
10773 extern int isalpha_l (int, __locale_t) throw ();
10774 extern int iscntrl_l (int, __locale_t) throw ();
10775 extern int isdigit_l (int, __locale_t) throw ();
10776 extern int islower_l (int, __locale_t) throw ();
10777 extern int isgraph_l (int, __locale_t) throw ();
10778 extern int isprint_l (int, __locale_t) throw ();
10779 extern int ispunct_l (int, __locale_t) throw ();
10780 extern int isspace_l (int, __locale_t) throw ();
10781 extern int isupper_l (int, __locale_t) throw ();
10782 extern int isxdigit_l (int, __locale_t) throw ();
10783
10784 extern int isblank_l (int, __locale_t) throw ();
10785
10786
10787
10788 extern int __tolower_l (int __c, __locale_t __l) throw ();
10789 extern int tolower_l (int __c, __locale_t __l) throw ();
10790
10791
10792 extern int __toupper_l (int __c, __locale_t __l) throw ();
10793 extern int toupper_l (int __c, __locale_t __l) throw ();
10794 # 323 "/usr/include/gentoo-multilib/amd64/ctype.h" 3 4
10795 }
10796 # 9 "/usr/include/ctype.h" 2 3 4
10797 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cctype" 2 3
10798
10799
10800 #undef isalnum
10801 #undef isalpha
10802 #undef iscntrl
10803 #undef isdigit
10804 #undef isgraph
10805 #undef islower
10806 #undef isprint
10807 #undef ispunct
10808 #undef isspace
10809 #undef isupper
10810 #undef isxdigit
10811 #undef tolower
10812 #undef toupper
10813
10814 namespace std __attribute__ ((__visibility__ ("default"))) {
10815
10816   using ::isalnum;
10817   using ::isalpha;
10818   using ::iscntrl;
10819   using ::isdigit;
10820   using ::isgraph;
10821   using ::islower;
10822   using ::isprint;
10823   using ::ispunct;
10824   using ::isspace;
10825   using ::isupper;
10826   using ::isxdigit;
10827   using ::tolower;
10828   using ::toupper;
10829
10830 }
10831 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/iosfwd" 2 3
10832 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stringfwd.h" 1 3
10833 # 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stringfwd.h" 3
10834 #define _STRINGFWD_H 1
10835
10836        
10837 # 43 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stringfwd.h" 3
10838
10839
10840
10841 namespace std __attribute__ ((__visibility__ ("default"))) {
10842
10843   template<typename _Alloc>
10844     class allocator;
10845
10846   template<class _CharT>
10847     struct char_traits;
10848
10849   template<typename _CharT, typename _Traits = char_traits<_CharT>,
10850            typename _Alloc = allocator<_CharT> >
10851     class basic_string;
10852
10853   template<> struct char_traits<char>;
10854
10855   typedef basic_string<char> string;
10856
10857
10858   template<> struct char_traits<wchar_t>;
10859
10860   typedef basic_string<wchar_t> wstring;
10861
10862
10863 }
10864 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/iosfwd" 2 3
10865 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/postypes.h" 1 3
10866 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/postypes.h" 3
10867 #define _GLIBCXX_POSTYPES_H 1
10868
10869        
10870 # 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/postypes.h" 3
10871
10872 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cwchar" 1 3
10873 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cwchar" 3
10874 #define _GLIBCXX_CWCHAR 1
10875
10876        
10877 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cwchar" 3
10878
10879
10880
10881 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ctime" 1 3
10882 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ctime" 3
10883 #define _GLIBCXX_CTIME 1
10884
10885        
10886 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ctime" 3
10887
10888
10889 # 1 "/usr/include/time.h" 1 3 4
10890 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ctime" 2 3
10891
10892
10893 #undef clock
10894 #undef difftime
10895 #undef mktime
10896 #undef time
10897 #undef asctime
10898 #undef ctime
10899 #undef gmtime
10900 #undef localtime
10901 #undef strftime
10902
10903 namespace std __attribute__ ((__visibility__ ("default"))) {
10904
10905   using ::clock_t;
10906   using ::time_t;
10907   using ::tm;
10908
10909   using ::clock;
10910   using ::difftime;
10911   using ::mktime;
10912   using ::time;
10913   using ::asctime;
10914   using ::ctime;
10915   using ::gmtime;
10916   using ::localtime;
10917   using ::strftime;
10918
10919 }
10920 # 53 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cwchar" 2 3
10921
10922
10923 # 1 "/usr/include/wchar.h" 1 3 4
10924
10925
10926
10927
10928
10929
10930
10931 # 1 "/usr/include/gentoo-multilib/amd64/wchar.h" 1 3 4
10932 # 27 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
10933 #define _WCHAR_H 1
10934 # 1 "/usr/include/features.h" 1 3 4
10935 # 29 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4
10936
10937
10938
10939
10940 #define __need___FILE 
10941
10942 #define __need_FILE 
10943
10944 # 1 "/usr/include/stdio.h" 1 3 4
10945 # 38 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4
10946
10947 #define __need___va_list 
10948
10949
10950 # 1 "/usr/include/bits/wchar.h" 1 3 4
10951
10952
10953
10954
10955
10956
10957
10958 # 1 "/usr/include/gentoo-multilib/amd64/bits/wchar.h" 1 3 4
10959 # 21 "/usr/include/gentoo-multilib/amd64/bits/wchar.h" 3 4
10960 #define _BITS_WCHAR_H 1
10961
10962 #define __WCHAR_MIN (-2147483647 - 1)
10963 #define __WCHAR_MAX (2147483647)
10964 # 9 "/usr/include/bits/wchar.h" 2 3 4
10965 # 43 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4
10966
10967
10968 #define __need_size_t 
10969 #define __need_wchar_t 
10970 #define __need_NULL 
10971
10972
10973 #undef __need_wint_t
10974 #define __need_wint_t 
10975 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 1 3 4
10976 # 163 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
10977 #undef __need_ptrdiff_t
10978 # 236 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
10979 #undef __need_size_t
10980 # 345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
10981 #undef __need_wchar_t
10982
10983
10984
10985
10986 #define _WINT_T 
10987
10988
10989
10990
10991 typedef unsigned int wint_t;
10992
10993 #undef __need_wint_t
10994 # 398 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
10995 #undef NULL
10996
10997 #define NULL __null
10998 # 409 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/stddef.h" 3 4
10999 #undef __need_NULL
11000
11001
11002
11003
11004 #define offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)
11005 # 53 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4
11006 # 92 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
11007 #undef __need_mbstate_t
11008
11009
11010
11011
11012
11013
11014
11015
11016 typedef __mbstate_t mbstate_t;
11017
11018
11019
11020
11021
11022
11023
11024 #define WCHAR_MIN __WCHAR_MIN
11025 #define WCHAR_MAX __WCHAR_MAX
11026
11027
11028
11029 #define WEOF (0xffffffffu)
11030 # 124 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
11031 extern "C" {
11032
11033
11034
11035
11036 struct tm;
11037
11038
11039
11040
11041
11042
11043
11044
11045
11046 extern wchar_t *wcscpy (wchar_t *__restrict __dest,
11047    __const wchar_t *__restrict __src) throw ();
11048
11049 extern wchar_t *wcsncpy (wchar_t *__restrict __dest,
11050     __const wchar_t *__restrict __src, size_t __n)
11051      throw ();
11052
11053
11054 extern wchar_t *wcscat (wchar_t *__restrict __dest,
11055    __const wchar_t *__restrict __src) throw ();
11056
11057 extern wchar_t *wcsncat (wchar_t *__restrict __dest,
11058     __const wchar_t *__restrict __src, size_t __n)
11059      throw ();
11060
11061
11062 extern int wcscmp (__const wchar_t *__s1, __const wchar_t *__s2)
11063      throw () __attribute__ ((__pure__));
11064
11065 extern int wcsncmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n)
11066      throw () __attribute__ ((__pure__));
11067
11068
11069
11070
11071 extern int wcscasecmp (__const wchar_t *__s1, __const wchar_t *__s2) throw ();
11072
11073
11074 extern int wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2,
11075    size_t __n) throw ();
11076
11077
11078
11079 # 1 "/usr/include/xlocale.h" 1 3 4
11080 # 173 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4
11081
11082 extern int wcscasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,
11083     __locale_t __loc) throw ();
11084
11085 extern int wcsncasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,
11086      size_t __n, __locale_t __loc) throw ();
11087
11088
11089
11090
11091
11092 extern int wcscoll (__const wchar_t *__s1, __const wchar_t *__s2) throw ();
11093
11094
11095
11096 extern size_t wcsxfrm (wchar_t *__restrict __s1,
11097          __const wchar_t *__restrict __s2, size_t __n) throw ();
11098
11099
11100
11101
11102
11103
11104
11105
11106 extern int wcscoll_l (__const wchar_t *__s1, __const wchar_t *__s2,
11107         __locale_t __loc) throw ();
11108
11109
11110
11111
11112 extern size_t wcsxfrm_l (wchar_t *__s1, __const wchar_t *__s2,
11113     size_t __n, __locale_t __loc) throw ();
11114
11115
11116 extern wchar_t *wcsdup (__const wchar_t *__s) throw () __attribute__ ((__malloc__));
11117
11118
11119
11120
11121 extern wchar_t *wcschr (__const wchar_t *__wcs, wchar_t __wc)
11122      throw () __attribute__ ((__pure__));
11123
11124 extern wchar_t *wcsrchr (__const wchar_t *__wcs, wchar_t __wc)
11125      throw () __attribute__ ((__pure__));
11126
11127
11128
11129
11130
11131 extern wchar_t *wcschrnul (__const wchar_t *__s, wchar_t __wc)
11132      throw () __attribute__ ((__pure__));
11133
11134
11135
11136
11137
11138 extern size_t wcscspn (__const wchar_t *__wcs, __const wchar_t *__reject)
11139      throw () __attribute__ ((__pure__));
11140
11141
11142 extern size_t wcsspn (__const wchar_t *__wcs, __const wchar_t *__accept)
11143      throw () __attribute__ ((__pure__));
11144
11145 extern wchar_t *wcspbrk (__const wchar_t *__wcs, __const wchar_t *__accept)
11146      throw () __attribute__ ((__pure__));
11147
11148 extern wchar_t *wcsstr (__const wchar_t *__haystack, __const wchar_t *__needle)
11149      throw () __attribute__ ((__pure__));
11150
11151
11152 extern wchar_t *wcstok (wchar_t *__restrict __s,
11153    __const wchar_t *__restrict __delim,
11154    wchar_t **__restrict __ptr) throw ();
11155
11156
11157 extern size_t wcslen (__const wchar_t *__s) throw () __attribute__ ((__pure__));
11158
11159
11160
11161
11162 extern wchar_t *wcswcs (__const wchar_t *__haystack, __const wchar_t *__needle)
11163      throw () __attribute__ ((__pure__));
11164
11165
11166
11167
11168 extern size_t wcsnlen (__const wchar_t *__s, size_t __maxlen)
11169      throw () __attribute__ ((__pure__));
11170
11171
11172
11173
11174
11175 extern wchar_t *wmemchr (__const wchar_t *__s, wchar_t __c, size_t __n)
11176      throw () __attribute__ ((__pure__));
11177
11178
11179 extern int wmemcmp (__const wchar_t *__restrict __s1,
11180       __const wchar_t *__restrict __s2, size_t __n)
11181      throw () __attribute__ ((__pure__));
11182
11183
11184 extern wchar_t *wmemcpy (wchar_t *__restrict __s1,
11185     __const wchar_t *__restrict __s2, size_t __n) throw ();
11186
11187
11188
11189 extern wchar_t *wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t __n)
11190      throw ();
11191
11192
11193 extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw ();
11194
11195
11196
11197
11198
11199 extern wchar_t *wmempcpy (wchar_t *__restrict __s1,
11200      __const wchar_t *__restrict __s2, size_t __n)
11201      throw ();
11202
11203
11204
11205
11206
11207
11208 extern wint_t btowc (int __c) throw ();
11209
11210
11211
11212 extern int wctob (wint_t __c) throw ();
11213
11214
11215
11216 extern int mbsinit (__const mbstate_t *__ps) throw () __attribute__ ((__pure__));
11217
11218
11219
11220 extern size_t mbrtowc (wchar_t *__restrict __pwc,
11221          __const char *__restrict __s, size_t __n,
11222          mbstate_t *__p) throw ();
11223
11224
11225 extern size_t wcrtomb (char *__restrict __s, wchar_t __wc,
11226          mbstate_t *__restrict __ps) throw ();
11227
11228
11229 extern size_t __mbrlen (__const char *__restrict __s, size_t __n,
11230    mbstate_t *__restrict __ps) throw ();
11231 extern size_t mbrlen (__const char *__restrict __s, size_t __n,
11232         mbstate_t *__restrict __ps) throw ();
11233
11234 # 352 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
11235
11236
11237
11238 extern size_t mbsrtowcs (wchar_t *__restrict __dst,
11239     __const char **__restrict __src, size_t __len,
11240     mbstate_t *__restrict __ps) throw ();
11241
11242
11243
11244 extern size_t wcsrtombs (char *__restrict __dst,
11245     __const wchar_t **__restrict __src, size_t __len,
11246     mbstate_t *__restrict __ps) throw ();
11247
11248
11249
11250
11251
11252
11253 extern size_t mbsnrtowcs (wchar_t *__restrict __dst,
11254      __const char **__restrict __src, size_t __nmc,
11255      size_t __len, mbstate_t *__restrict __ps) throw ();
11256
11257
11258
11259 extern size_t wcsnrtombs (char *__restrict __dst,
11260      __const wchar_t **__restrict __src,
11261      size_t __nwc, size_t __len,
11262      mbstate_t *__restrict __ps) throw ();
11263
11264
11265
11266
11267
11268
11269 extern int wcwidth (wchar_t __c) throw ();
11270
11271
11272
11273 extern int wcswidth (__const wchar_t *__s, size_t __n) throw ();
11274
11275
11276
11277
11278
11279
11280 extern double wcstod (__const wchar_t *__restrict __nptr,
11281         wchar_t **__restrict __endptr) throw ();
11282
11283
11284
11285
11286
11287 extern float wcstof (__const wchar_t *__restrict __nptr,
11288        wchar_t **__restrict __endptr) throw ();
11289 extern long double wcstold (__const wchar_t *__restrict __nptr,
11290        wchar_t **__restrict __endptr) throw ();
11291
11292
11293
11294
11295
11296
11297
11298 extern long int wcstol (__const wchar_t *__restrict __nptr,
11299    wchar_t **__restrict __endptr, int __base) throw ();
11300
11301
11302
11303 extern unsigned long int wcstoul (__const wchar_t *__restrict __nptr,
11304       wchar_t **__restrict __endptr, int __base)
11305      throw ();
11306
11307
11308
11309
11310
11311
11312 __extension__
11313 extern long long int wcstoll (__const wchar_t *__restrict __nptr,
11314          wchar_t **__restrict __endptr, int __base)
11315      throw ();
11316
11317
11318
11319 __extension__
11320 extern unsigned long long int wcstoull (__const wchar_t *__restrict __nptr,
11321      wchar_t **__restrict __endptr,
11322      int __base) throw ();
11323
11324
11325
11326
11327
11328
11329 __extension__
11330 extern long long int wcstoq (__const wchar_t *__restrict __nptr,
11331         wchar_t **__restrict __endptr, int __base)
11332      throw ();
11333
11334
11335
11336 __extension__
11337 extern unsigned long long int wcstouq (__const wchar_t *__restrict __nptr,
11338            wchar_t **__restrict __endptr,
11339            int __base) throw ();
11340 # 473 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
11341 # 1 "/usr/include/xlocale.h" 1 3 4
11342 # 474 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4
11343
11344
11345
11346 extern long int wcstol_l (__const wchar_t *__restrict __nptr,
11347      wchar_t **__restrict __endptr, int __base,
11348      __locale_t __loc) throw ();
11349
11350 extern unsigned long int wcstoul_l (__const wchar_t *__restrict __nptr,
11351         wchar_t **__restrict __endptr,
11352         int __base, __locale_t __loc) throw ();
11353
11354 __extension__
11355 extern long long int wcstoll_l (__const wchar_t *__restrict __nptr,
11356     wchar_t **__restrict __endptr,
11357     int __base, __locale_t __loc) throw ();
11358
11359 __extension__
11360 extern unsigned long long int wcstoull_l (__const wchar_t *__restrict __nptr,
11361        wchar_t **__restrict __endptr,
11362        int __base, __locale_t __loc)
11363      throw ();
11364
11365 extern double wcstod_l (__const wchar_t *__restrict __nptr,
11366    wchar_t **__restrict __endptr, __locale_t __loc)
11367      throw ();
11368
11369 extern float wcstof_l (__const wchar_t *__restrict __nptr,
11370          wchar_t **__restrict __endptr, __locale_t __loc)
11371      throw ();
11372
11373 extern long double wcstold_l (__const wchar_t *__restrict __nptr,
11374          wchar_t **__restrict __endptr,
11375          __locale_t __loc) throw ();
11376
11377
11378
11379
11380
11381
11382 extern wchar_t *wcpcpy (wchar_t *__dest, __const wchar_t *__src) throw ();
11383
11384
11385
11386 extern wchar_t *wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n)
11387      throw ();
11388 # 527 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
11389 extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) throw ();
11390
11391
11392
11393
11394
11395
11396 extern int fwide (__FILE *__fp, int __mode) throw ();
11397
11398
11399
11400
11401
11402
11403 extern int fwprintf (__FILE *__restrict __stream,
11404        __const wchar_t *__restrict __format, ...)
11405                                                            ;
11406
11407
11408
11409
11410 extern int wprintf (__const wchar_t *__restrict __format, ...)
11411                                                            ;
11412
11413 extern int swprintf (wchar_t *__restrict __s, size_t __n,
11414        __const wchar_t *__restrict __format, ...)
11415      throw () ;
11416
11417
11418
11419
11420
11421 extern int vfwprintf (__FILE *__restrict __s,
11422         __const wchar_t *__restrict __format,
11423         __gnuc_va_list __arg)
11424                                                            ;
11425
11426
11427
11428
11429 extern int vwprintf (__const wchar_t *__restrict __format,
11430        __gnuc_va_list __arg)
11431                                                            ;
11432
11433
11434 extern int vswprintf (wchar_t *__restrict __s, size_t __n,
11435         __const wchar_t *__restrict __format,
11436         __gnuc_va_list __arg)
11437      throw () ;
11438
11439
11440
11441
11442
11443
11444 extern int fwscanf (__FILE *__restrict __stream,
11445       __const wchar_t *__restrict __format, ...)
11446                                                           ;
11447
11448
11449
11450
11451 extern int wscanf (__const wchar_t *__restrict __format, ...)
11452                                                           ;
11453
11454 extern int swscanf (__const wchar_t *__restrict __s,
11455       __const wchar_t *__restrict __format, ...)
11456      throw () ;
11457 # 627 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
11458
11459
11460
11461
11462
11463
11464
11465
11466
11467 extern int vfwscanf (__FILE *__restrict __s,
11468        __const wchar_t *__restrict __format,
11469        __gnuc_va_list __arg)
11470                                                           ;
11471
11472
11473
11474
11475 extern int vwscanf (__const wchar_t *__restrict __format,
11476       __gnuc_va_list __arg)
11477                                                           ;
11478
11479 extern int vswscanf (__const wchar_t *__restrict __s,
11480        __const wchar_t *__restrict __format,
11481        __gnuc_va_list __arg)
11482      throw () ;
11483 # 683 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
11484
11485
11486
11487
11488
11489
11490
11491
11492
11493 extern wint_t fgetwc (__FILE *__stream);
11494 extern wint_t getwc (__FILE *__stream);
11495
11496
11497
11498
11499
11500 extern wint_t getwchar (void);
11501
11502
11503
11504
11505
11506
11507 extern wint_t fputwc (wchar_t __wc, __FILE *__stream);
11508 extern wint_t putwc (wchar_t __wc, __FILE *__stream);
11509
11510
11511
11512
11513
11514 extern wint_t putwchar (wchar_t __wc);
11515
11516
11517
11518
11519
11520
11521
11522 extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n,
11523    __FILE *__restrict __stream);
11524
11525
11526
11527
11528
11529 extern int fputws (__const wchar_t *__restrict __ws,
11530      __FILE *__restrict __stream);
11531
11532
11533
11534
11535
11536
11537 extern wint_t ungetwc (wint_t __wc, __FILE *__stream);
11538
11539 # 748 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
11540 extern wint_t getwc_unlocked (__FILE *__stream);
11541 extern wint_t getwchar_unlocked (void);
11542
11543
11544
11545
11546
11547
11548
11549 extern wint_t fgetwc_unlocked (__FILE *__stream);
11550
11551
11552
11553
11554
11555
11556
11557 extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream);
11558 # 774 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
11559 extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream);
11560 extern wint_t putwchar_unlocked (wchar_t __wc);
11561 # 784 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
11562 extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n,
11563      __FILE *__restrict __stream);
11564
11565
11566
11567
11568
11569
11570
11571 extern int fputws_unlocked (__const wchar_t *__restrict __ws,
11572        __FILE *__restrict __stream);
11573
11574
11575
11576
11577
11578
11579
11580 extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize,
11581    __const wchar_t *__restrict __format,
11582    __const struct tm *__restrict __tp) throw ();
11583
11584
11585
11586 # 1 "/usr/include/xlocale.h" 1 3 4
11587 # 809 "/usr/include/gentoo-multilib/amd64/wchar.h" 2 3 4
11588
11589
11590
11591 extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize,
11592      __const wchar_t *__restrict __format,
11593      __const struct tm *__restrict __tp,
11594      __locale_t __loc) throw ();
11595 # 838 "/usr/include/gentoo-multilib/amd64/wchar.h" 3 4
11596 }
11597 # 9 "/usr/include/wchar.h" 2 3 4
11598 # 56 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cwchar" 2 3
11599 # 70 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cwchar" 3
11600 namespace std __attribute__ ((__visibility__ ("default"))) {
11601
11602   using ::mbstate_t;
11603
11604 }
11605
11606
11607 #undef btowc
11608 #undef fgetwc
11609 #undef fgetws
11610 #undef fputwc
11611 #undef fputws
11612 #undef fwide
11613 #undef fwprintf
11614 #undef fwscanf
11615 #undef getwc
11616 #undef getwchar
11617 #undef mbrlen
11618 #undef mbrtowc
11619 #undef mbsinit
11620 #undef mbsrtowcs
11621 #undef putwc
11622 #undef putwchar
11623 #undef swprintf
11624 #undef swscanf
11625 #undef ungetwc
11626 #undef vfwprintf
11627
11628 #undef vfwscanf
11629
11630 #undef vswprintf
11631
11632 #undef vswscanf
11633
11634 #undef vwprintf
11635
11636 #undef vwscanf
11637
11638 #undef wcrtomb
11639 #undef wcscat
11640 #undef wcschr
11641 #undef wcscmp
11642 #undef wcscoll
11643 #undef wcscpy
11644 #undef wcscspn
11645 #undef wcsftime
11646 #undef wcslen
11647 #undef wcsncat
11648 #undef wcsncmp
11649 #undef wcsncpy
11650 #undef wcspbrk
11651 #undef wcsrchr
11652 #undef wcsrtombs
11653 #undef wcsspn
11654 #undef wcsstr
11655 #undef wcstod
11656
11657 #undef wcstof
11658
11659 #undef wcstok
11660 #undef wcstol
11661 #undef wcstoul
11662 #undef wcsxfrm
11663 #undef wctob
11664 #undef wmemchr
11665 #undef wmemcmp
11666 #undef wmemcpy
11667 #undef wmemmove
11668 #undef wmemset
11669 #undef wprintf
11670 #undef wscanf
11671
11672
11673
11674 namespace std __attribute__ ((__visibility__ ("default"))) {
11675
11676   using ::wint_t;
11677
11678   using ::btowc;
11679   using ::fgetwc;
11680   using ::fgetws;
11681   using ::fputwc;
11682   using ::fputws;
11683   using ::fwide;
11684   using ::fwprintf;
11685   using ::fwscanf;
11686   using ::getwc;
11687   using ::getwchar;
11688   using ::mbrlen;
11689   using ::mbrtowc;
11690   using ::mbsinit;
11691   using ::mbsrtowcs;
11692   using ::putwc;
11693   using ::putwchar;
11694   using ::swprintf;
11695   using ::swscanf;
11696   using ::ungetwc;
11697   using ::vfwprintf;
11698
11699   using ::vfwscanf;
11700
11701   using ::vswprintf;
11702
11703   using ::vswscanf;
11704
11705   using ::vwprintf;
11706
11707   using ::vwscanf;
11708
11709   using ::wcrtomb;
11710   using ::wcscat;
11711   using ::wcscmp;
11712   using ::wcscoll;
11713   using ::wcscpy;
11714   using ::wcscspn;
11715
11716
11717
11718   using ::wcslen;
11719   using ::wcsncat;
11720   using ::wcsncmp;
11721   using ::wcsncpy;
11722   using ::wcsrtombs;
11723   using ::wcsspn;
11724   using ::wcstod;
11725
11726   using ::wcstof;
11727
11728   using ::wcstok;
11729   using ::wcstol;
11730   using ::wcstoul;
11731   using ::wcsxfrm;
11732   using ::wctob;
11733   using ::wmemcmp;
11734   using ::wmemcpy;
11735   using ::wmemmove;
11736   using ::wmemset;
11737   using ::wprintf;
11738   using ::wscanf;
11739
11740   using ::wcschr;
11741
11742   inline wchar_t*
11743   wcschr(wchar_t* __p, wchar_t __c)
11744   { return wcschr(const_cast<const wchar_t*>(__p), __c); }
11745
11746   using ::wcspbrk;
11747
11748   inline wchar_t*
11749   wcspbrk(wchar_t* __s1, const wchar_t* __s2)
11750   { return wcspbrk(const_cast<const wchar_t*>(__s1), __s2); }
11751
11752   using ::wcsrchr;
11753
11754   inline wchar_t*
11755   wcsrchr(wchar_t* __p, wchar_t __c)
11756   { return wcsrchr(const_cast<const wchar_t*>(__p), __c); }
11757
11758   using ::wcsstr;
11759
11760   inline wchar_t*
11761   wcsstr(wchar_t* __s1, const wchar_t* __s2)
11762   { return wcsstr(const_cast<const wchar_t*>(__s1), __s2); }
11763
11764   using ::wmemchr;
11765
11766   inline wchar_t*
11767   wmemchr(wchar_t* __p, wchar_t __c, size_t __n)
11768   { return wmemchr(const_cast<const wchar_t*>(__p), __c, __n); }
11769
11770 }
11771
11772
11773
11774 #undef wcstold
11775 #undef wcstoll
11776 #undef wcstoull
11777
11778 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
11779
11780
11781
11782
11783
11784
11785   using ::wcstold;
11786 # 264 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/cwchar" 3
11787   using ::wcstoll;
11788   using ::wcstoull;
11789
11790
11791 }
11792
11793 namespace std __attribute__ ((__visibility__ ("default"))) {
11794
11795   using ::__gnu_cxx::wcstold;
11796   using ::__gnu_cxx::wcstoll;
11797   using ::__gnu_cxx::wcstoull;
11798
11799 }
11800 # 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/postypes.h" 2 3
11801
11802
11803 # 1 "/usr/include/stdint.h" 1 3 4
11804
11805
11806
11807
11808
11809
11810
11811 # 1 "/usr/include/gentoo-multilib/amd64/stdint.h" 1 3 4
11812 # 24 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
11813 #define _STDINT_H 1
11814
11815 # 1 "/usr/include/features.h" 1 3 4
11816 # 27 "/usr/include/gentoo-multilib/amd64/stdint.h" 2 3 4
11817 # 1 "/usr/include/bits/wchar.h" 1 3 4
11818 # 28 "/usr/include/gentoo-multilib/amd64/stdint.h" 2 3 4
11819 # 1 "/usr/include/bits/wordsize.h" 1 3 4
11820
11821
11822
11823
11824
11825
11826
11827 # 1 "/usr/include/gentoo-multilib/amd64/bits/wordsize.h" 1 3 4
11828
11829
11830
11831 #define __WORDSIZE 64
11832 #define __WORDSIZE_COMPAT32 1
11833 # 9 "/usr/include/bits/wordsize.h" 2 3 4
11834 # 29 "/usr/include/gentoo-multilib/amd64/stdint.h" 2 3 4
11835 # 49 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
11836 typedef unsigned char uint8_t;
11837 typedef unsigned short int uint16_t;
11838
11839 typedef unsigned int uint32_t;
11840 #define __uint32_t_defined 
11841
11842
11843 typedef unsigned long int uint64_t;
11844 # 66 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
11845 typedef signed char int_least8_t;
11846 typedef short int int_least16_t;
11847 typedef int int_least32_t;
11848
11849 typedef long int int_least64_t;
11850
11851
11852
11853
11854
11855
11856 typedef unsigned char uint_least8_t;
11857 typedef unsigned short int uint_least16_t;
11858 typedef unsigned int uint_least32_t;
11859
11860 typedef unsigned long int uint_least64_t;
11861 # 91 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
11862 typedef signed char int_fast8_t;
11863
11864 typedef long int int_fast16_t;
11865 typedef long int int_fast32_t;
11866 typedef long int int_fast64_t;
11867 # 104 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
11868 typedef unsigned char uint_fast8_t;
11869
11870 typedef unsigned long int uint_fast16_t;
11871 typedef unsigned long int uint_fast32_t;
11872 typedef unsigned long int uint_fast64_t;
11873 # 123 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
11874 typedef unsigned long int uintptr_t;
11875 # 135 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
11876 typedef long int intmax_t;
11877 typedef unsigned long int uintmax_t;
11878 # 150 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
11879 #define __INT64_C(c) c ## L
11880 #define __UINT64_C(c) c ## UL
11881 # 160 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
11882 #define INT8_MIN (-128)
11883 #define INT16_MIN (-32767-1)
11884 #define INT32_MIN (-2147483647-1)
11885 #define INT64_MIN (-__INT64_C(9223372036854775807)-1)
11886
11887 #define INT8_MAX (127)
11888 #define INT16_MAX (32767)
11889 #define INT32_MAX (2147483647)
11890 #define INT64_MAX (__INT64_C(9223372036854775807))
11891
11892
11893 #define UINT8_MAX (255)
11894 #define UINT16_MAX (65535)
11895 #define UINT32_MAX (4294967295U)
11896 #define UINT64_MAX (__UINT64_C(18446744073709551615))
11897
11898
11899
11900 #define INT_LEAST8_MIN (-128)
11901 #define INT_LEAST16_MIN (-32767-1)
11902 #define INT_LEAST32_MIN (-2147483647-1)
11903 #define INT_LEAST64_MIN (-__INT64_C(9223372036854775807)-1)
11904
11905 #define INT_LEAST8_MAX (127)
11906 #define INT_LEAST16_MAX (32767)
11907 #define INT_LEAST32_MAX (2147483647)
11908 #define INT_LEAST64_MAX (__INT64_C(9223372036854775807))
11909
11910
11911 #define UINT_LEAST8_MAX (255)
11912 #define UINT_LEAST16_MAX (65535)
11913 #define UINT_LEAST32_MAX (4294967295U)
11914 #define UINT_LEAST64_MAX (__UINT64_C(18446744073709551615))
11915
11916
11917
11918 #define INT_FAST8_MIN (-128)
11919
11920 #define INT_FAST16_MIN (-9223372036854775807L-1)
11921 #define INT_FAST32_MIN (-9223372036854775807L-1)
11922
11923
11924
11925
11926 #define INT_FAST64_MIN (-__INT64_C(9223372036854775807)-1)
11927
11928 #define INT_FAST8_MAX (127)
11929
11930 #define INT_FAST16_MAX (9223372036854775807L)
11931 #define INT_FAST32_MAX (9223372036854775807L)
11932
11933
11934
11935
11936 #define INT_FAST64_MAX (__INT64_C(9223372036854775807))
11937
11938
11939 #define UINT_FAST8_MAX (255)
11940
11941 #define UINT_FAST16_MAX (18446744073709551615UL)
11942 #define UINT_FAST32_MAX (18446744073709551615UL)
11943
11944
11945
11946
11947 #define UINT_FAST64_MAX (__UINT64_C(18446744073709551615))
11948
11949
11950
11951
11952 #define INTPTR_MIN (-9223372036854775807L-1)
11953 #define INTPTR_MAX (9223372036854775807L)
11954 #define UINTPTR_MAX (18446744073709551615UL)
11955 # 241 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
11956 #define INTMAX_MIN (-__INT64_C(9223372036854775807)-1)
11957
11958 #define INTMAX_MAX (__INT64_C(9223372036854775807))
11959
11960
11961 #define UINTMAX_MAX (__UINT64_C(18446744073709551615))
11962
11963
11964
11965
11966
11967
11968 #define PTRDIFF_MIN (-9223372036854775807L-1)
11969 #define PTRDIFF_MAX (9223372036854775807L)
11970
11971
11972
11973
11974
11975
11976 #define SIG_ATOMIC_MIN (-2147483647-1)
11977 #define SIG_ATOMIC_MAX (2147483647)
11978
11979
11980
11981 #define SIZE_MAX (18446744073709551615UL)
11982 # 279 "/usr/include/gentoo-multilib/amd64/stdint.h" 3 4
11983 #define WINT_MIN (0u)
11984 #define WINT_MAX (4294967295u)
11985 # 9 "/usr/include/stdint.h" 2 3 4
11986 # 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/postypes.h" 2 3
11987
11988
11989 namespace std __attribute__ ((__visibility__ ("default"))) {
11990 # 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/postypes.h" 3
11991   typedef int64_t streamoff;
11992
11993
11994
11995
11996
11997   typedef ptrdiff_t streamsize;
11998
11999   template<typename _StateT>
12000     class fpos;
12001 # 94 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/postypes.h" 3
12002   template<typename _StateT>
12003     class fpos
12004     {
12005     private:
12006       streamoff _M_off;
12007       _StateT _M_state;
12008
12009     public:
12010
12011
12012
12013
12014       fpos()
12015       : _M_off(0), _M_state() { }
12016 # 116 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/postypes.h" 3
12017       fpos(streamoff __off)
12018       : _M_off(__off), _M_state() { }
12019
12020
12021       operator streamoff() const { return _M_off; }
12022
12023
12024       void
12025       state(_StateT __st)
12026       { _M_state = __st; }
12027
12028
12029       _StateT
12030       state() const
12031       { return _M_state; }
12032
12033
12034
12035
12036
12037       fpos&
12038       operator+=(streamoff __off)
12039       {
12040  _M_off += __off;
12041  return *this;
12042       }
12043
12044
12045
12046
12047
12048       fpos&
12049       operator-=(streamoff __off)
12050       {
12051  _M_off -= __off;
12052  return *this;
12053       }
12054
12055
12056
12057
12058
12059
12060
12061       fpos
12062       operator+(streamoff __off) const
12063       {
12064  fpos __pos(*this);
12065  __pos += __off;
12066  return __pos;
12067       }
12068
12069
12070
12071
12072
12073
12074
12075       fpos
12076       operator-(streamoff __off) const
12077       {
12078  fpos __pos(*this);
12079  __pos -= __off;
12080  return __pos;
12081       }
12082
12083
12084
12085
12086
12087
12088       streamoff
12089       operator-(const fpos& __other) const
12090       { return _M_off - __other._M_off; }
12091     };
12092
12093
12094
12095
12096
12097
12098   template<typename _StateT>
12099     inline bool
12100     operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
12101     { return streamoff(__lhs) == streamoff(__rhs); }
12102
12103   template<typename _StateT>
12104     inline bool
12105     operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
12106     { return streamoff(__lhs) != streamoff(__rhs); }
12107
12108
12109
12110
12111
12112   typedef fpos<mbstate_t> streampos;
12113
12114   typedef fpos<mbstate_t> wstreampos;
12115
12116 }
12117 # 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/iosfwd" 2 3
12118
12119
12120 namespace std __attribute__ ((__visibility__ ("default"))) {
12121
12122   template<typename _CharT, typename _Traits = char_traits<_CharT> >
12123     class basic_ios;
12124
12125   template<typename _CharT, typename _Traits = char_traits<_CharT> >
12126     class basic_streambuf;
12127
12128   template<typename _CharT, typename _Traits = char_traits<_CharT> >
12129     class basic_istream;
12130
12131   template<typename _CharT, typename _Traits = char_traits<_CharT> >
12132     class basic_ostream;
12133
12134   template<typename _CharT, typename _Traits = char_traits<_CharT> >
12135     class basic_iostream;
12136
12137   template<typename _CharT, typename _Traits = char_traits<_CharT>,
12138      typename _Alloc = allocator<_CharT> >
12139     class basic_stringbuf;
12140
12141   template<typename _CharT, typename _Traits = char_traits<_CharT>,
12142     typename _Alloc = allocator<_CharT> >
12143     class basic_istringstream;
12144
12145   template<typename _CharT, typename _Traits = char_traits<_CharT>,
12146     typename _Alloc = allocator<_CharT> >
12147     class basic_ostringstream;
12148
12149   template<typename _CharT, typename _Traits = char_traits<_CharT>,
12150     typename _Alloc = allocator<_CharT> >
12151     class basic_stringstream;
12152
12153   template<typename _CharT, typename _Traits = char_traits<_CharT> >
12154     class basic_filebuf;
12155
12156   template<typename _CharT, typename _Traits = char_traits<_CharT> >
12157     class basic_ifstream;
12158
12159   template<typename _CharT, typename _Traits = char_traits<_CharT> >
12160     class basic_ofstream;
12161
12162   template<typename _CharT, typename _Traits = char_traits<_CharT> >
12163     class basic_fstream;
12164
12165   template<typename _CharT, typename _Traits = char_traits<_CharT> >
12166     class istreambuf_iterator;
12167
12168   template<typename _CharT, typename _Traits = char_traits<_CharT> >
12169     class ostreambuf_iterator;
12170
12171
12172
12173   class ios_base;
12174 # 135 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/iosfwd" 3
12175   typedef basic_ios<char> ios;
12176   typedef basic_streambuf<char> streambuf;
12177   typedef basic_istream<char> istream;
12178   typedef basic_ostream<char> ostream;
12179   typedef basic_iostream<char> iostream;
12180   typedef basic_stringbuf<char> stringbuf;
12181   typedef basic_istringstream<char> istringstream;
12182   typedef basic_ostringstream<char> ostringstream;
12183   typedef basic_stringstream<char> stringstream;
12184   typedef basic_filebuf<char> filebuf;
12185   typedef basic_ifstream<char> ifstream;
12186   typedef basic_ofstream<char> ofstream;
12187   typedef basic_fstream<char> fstream;
12188
12189
12190   typedef basic_ios<wchar_t> wios;
12191   typedef basic_streambuf<wchar_t> wstreambuf;
12192   typedef basic_istream<wchar_t> wistream;
12193   typedef basic_ostream<wchar_t> wostream;
12194   typedef basic_iostream<wchar_t> wiostream;
12195   typedef basic_stringbuf<wchar_t> wstringbuf;
12196   typedef basic_istringstream<wchar_t> wistringstream;
12197   typedef basic_ostringstream<wchar_t> wostringstream;
12198   typedef basic_stringstream<wchar_t> wstringstream;
12199   typedef basic_filebuf<wchar_t> wfilebuf;
12200   typedef basic_ifstream<wchar_t> wifstream;
12201   typedef basic_ofstream<wchar_t> wofstream;
12202   typedef basic_fstream<wchar_t> wfstream;
12203
12204
12205
12206 }
12207 # 71 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 2 3
12208 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_pair.h" 1 3
12209 # 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_pair.h" 3
12210 #define _PAIR_H 1
12211
12212 namespace std __attribute__ ((__visibility__ ("default"))) {
12213
12214
12215   template<class _T1, class _T2>
12216     struct pair
12217     {
12218       typedef _T1 first_type;
12219       typedef _T2 second_type;
12220
12221       _T1 first;
12222       _T2 second;
12223
12224
12225
12226
12227
12228       pair()
12229       : first(), second() { }
12230
12231
12232       pair(const _T1& __a, const _T2& __b)
12233       : first(__a), second(__b) { }
12234
12235
12236       template<class _U1, class _U2>
12237         pair(const pair<_U1, _U2>& __p)
12238  : first(__p.first), second(__p.second) { }
12239     };
12240
12241
12242   template<class _T1, class _T2>
12243     inline bool
12244     operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
12245     { return __x.first == __y.first && __x.second == __y.second; }
12246
12247
12248   template<class _T1, class _T2>
12249     inline bool
12250     operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
12251     { return __x.first < __y.first
12252       || (!(__y.first < __x.first) && __x.second < __y.second); }
12253
12254
12255   template<class _T1, class _T2>
12256     inline bool
12257     operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
12258     { return !(__x == __y); }
12259
12260
12261   template<class _T1, class _T2>
12262     inline bool
12263     operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
12264     { return __y < __x; }
12265
12266
12267   template<class _T1, class _T2>
12268     inline bool
12269     operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
12270     { return !(__y < __x); }
12271
12272
12273   template<class _T1, class _T2>
12274     inline bool
12275     operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
12276     { return !(__x < __y); }
12277 # 142 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_pair.h" 3
12278   template<class _T1, class _T2>
12279     inline pair<_T1, _T2>
12280     make_pair(_T1 __x, _T2 __y)
12281     { return pair<_T1, _T2>(__x, __y); }
12282
12283 }
12284 # 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 2 3
12285 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/cpp_type_traits.h" 1 3
12286 # 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/cpp_type_traits.h" 3
12287 #define _CPP_TYPE_TRAITS_H 1
12288
12289        
12290 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/cpp_type_traits.h" 3
12291 # 74 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/cpp_type_traits.h" 3
12292 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
12293
12294   template<typename _Iterator, typename _Container>
12295     class __normal_iterator;
12296
12297 }
12298
12299 namespace std __attribute__ ((__visibility__ ("default"))) {
12300
12301 namespace __detail
12302 {
12303
12304
12305   typedef char __one;
12306   typedef char __two[2];
12307
12308   template<typename _Tp>
12309   __one __test_type(int _Tp::*);
12310   template<typename _Tp>
12311   __two& __test_type(...);
12312 }
12313
12314
12315   struct __true_type { };
12316   struct __false_type { };
12317
12318   template<bool>
12319     struct __truth_type
12320     { typedef __false_type __type; };
12321
12322   template<>
12323     struct __truth_type<true>
12324     { typedef __true_type __type; };
12325
12326
12327
12328   template<class _Sp, class _Tp>
12329     struct __traitor
12330     {
12331       enum { __value = bool(_Sp::__value) || bool(_Tp::__value) };
12332       typedef typename __truth_type<__value>::__type __type;
12333     };
12334
12335
12336   template<typename, typename>
12337     struct __are_same
12338     {
12339       enum { __value = 0 };
12340       typedef __false_type __type;
12341     };
12342
12343   template<typename _Tp>
12344     struct __are_same<_Tp, _Tp>
12345     {
12346       enum { __value = 1 };
12347       typedef __true_type __type;
12348     };
12349
12350
12351   template<typename _Tp>
12352     struct __is_void
12353     {
12354       enum { __value = 0 };
12355       typedef __false_type __type;
12356     };
12357
12358   template<>
12359     struct __is_void<void>
12360     {
12361       enum { __value = 1 };
12362       typedef __true_type __type;
12363     };
12364
12365
12366
12367
12368   template<typename _Tp>
12369     struct __is_integer
12370     {
12371       enum { __value = 0 };
12372       typedef __false_type __type;
12373     };
12374
12375
12376
12377
12378   template<>
12379     struct __is_integer<bool>
12380     {
12381       enum { __value = 1 };
12382       typedef __true_type __type;
12383     };
12384
12385   template<>
12386     struct __is_integer<char>
12387     {
12388       enum { __value = 1 };
12389       typedef __true_type __type;
12390     };
12391
12392   template<>
12393     struct __is_integer<signed char>
12394     {
12395       enum { __value = 1 };
12396       typedef __true_type __type;
12397     };
12398
12399   template<>
12400     struct __is_integer<unsigned char>
12401     {
12402       enum { __value = 1 };
12403       typedef __true_type __type;
12404     };
12405
12406
12407   template<>
12408     struct __is_integer<wchar_t>
12409     {
12410       enum { __value = 1 };
12411       typedef __true_type __type;
12412     };
12413
12414
12415   template<>
12416     struct __is_integer<short>
12417     {
12418       enum { __value = 1 };
12419       typedef __true_type __type;
12420     };
12421
12422   template<>
12423     struct __is_integer<unsigned short>
12424     {
12425       enum { __value = 1 };
12426       typedef __true_type __type;
12427     };
12428
12429   template<>
12430     struct __is_integer<int>
12431     {
12432       enum { __value = 1 };
12433       typedef __true_type __type;
12434     };
12435
12436   template<>
12437     struct __is_integer<unsigned int>
12438     {
12439       enum { __value = 1 };
12440       typedef __true_type __type;
12441     };
12442
12443   template<>
12444     struct __is_integer<long>
12445     {
12446       enum { __value = 1 };
12447       typedef __true_type __type;
12448     };
12449
12450   template<>
12451     struct __is_integer<unsigned long>
12452     {
12453       enum { __value = 1 };
12454       typedef __true_type __type;
12455     };
12456
12457   template<>
12458     struct __is_integer<long long>
12459     {
12460       enum { __value = 1 };
12461       typedef __true_type __type;
12462     };
12463
12464   template<>
12465     struct __is_integer<unsigned long long>
12466     {
12467       enum { __value = 1 };
12468       typedef __true_type __type;
12469     };
12470
12471
12472
12473
12474   template<typename _Tp>
12475     struct __is_floating
12476     {
12477       enum { __value = 0 };
12478       typedef __false_type __type;
12479     };
12480
12481
12482   template<>
12483     struct __is_floating<float>
12484     {
12485       enum { __value = 1 };
12486       typedef __true_type __type;
12487     };
12488
12489   template<>
12490     struct __is_floating<double>
12491     {
12492       enum { __value = 1 };
12493       typedef __true_type __type;
12494     };
12495
12496   template<>
12497     struct __is_floating<long double>
12498     {
12499       enum { __value = 1 };
12500       typedef __true_type __type;
12501     };
12502
12503
12504
12505
12506   template<typename _Tp>
12507     struct __is_pointer
12508     {
12509       enum { __value = 0 };
12510       typedef __false_type __type;
12511     };
12512
12513   template<typename _Tp>
12514     struct __is_pointer<_Tp*>
12515     {
12516       enum { __value = 1 };
12517       typedef __true_type __type;
12518     };
12519
12520
12521
12522
12523   template<typename _Tp>
12524     struct __is_normal_iterator
12525     {
12526       enum { __value = 0 };
12527       typedef __false_type __type;
12528     };
12529
12530   template<typename _Iterator, typename _Container>
12531     struct __is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator,
12532              _Container> >
12533     {
12534       enum { __value = 1 };
12535       typedef __true_type __type;
12536     };
12537
12538
12539
12540
12541   template<typename _Tp>
12542     struct __is_arithmetic
12543     : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> >
12544     { };
12545
12546
12547
12548
12549   template<typename _Tp>
12550     struct __is_fundamental
12551     : public __traitor<__is_void<_Tp>, __is_arithmetic<_Tp> >
12552     { };
12553
12554
12555
12556
12557   template<typename _Tp>
12558     struct __is_scalar
12559     : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> >
12560     { };
12561
12562
12563   template<typename _Tp>
12564     struct __is_pod
12565     {
12566       enum
12567  {
12568    __value = (sizeof(__detail::__test_type<_Tp>(0))
12569        != sizeof(__detail::__one))
12570  };
12571     };
12572
12573
12574
12575
12576   template<typename _Tp>
12577     struct __is_empty
12578     {
12579     private:
12580       template<typename>
12581         struct __first { };
12582       template<typename _Up>
12583         struct __second
12584         : public _Up { };
12585
12586     public:
12587       enum
12588  {
12589    __value = sizeof(__first<_Tp>) == sizeof(__second<_Tp>)
12590  };
12591     };
12592
12593
12594
12595
12596   template<typename _Tp>
12597     struct __is_char
12598     {
12599       enum { __value = 0 };
12600       typedef __false_type __type;
12601     };
12602
12603   template<>
12604     struct __is_char<char>
12605     {
12606       enum { __value = 1 };
12607       typedef __true_type __type;
12608     };
12609
12610
12611   template<>
12612     struct __is_char<wchar_t>
12613     {
12614       enum { __value = 1 };
12615       typedef __true_type __type;
12616     };
12617
12618
12619 }
12620 # 73 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 2 3
12621 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ext/type_traits.h" 1 3
12622 # 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ext/type_traits.h" 3
12623 #define _EXT_TYPE_TRAITS 1
12624
12625        
12626 # 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ext/type_traits.h" 3
12627
12628
12629 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/utility" 1 3
12630 # 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/utility" 3
12631 #define _GLIBCXX_UTILITY 1
12632
12633        
12634 # 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/utility" 3
12635
12636
12637 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_relops.h" 1 3
12638 # 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_relops.h" 3
12639 #define _STL_RELOPS_H 1
12640
12641 namespace std __attribute__ ((__visibility__ ("default"))) {
12642
12643   namespace rel_ops
12644   {
12645 # 90 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_relops.h" 3
12646     template <class _Tp>
12647       inline bool
12648       operator!=(const _Tp& __x, const _Tp& __y)
12649       { return !(__x == __y); }
12650 # 103 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_relops.h" 3
12651     template <class _Tp>
12652       inline bool
12653       operator>(const _Tp& __x, const _Tp& __y)
12654       { return __y < __x; }
12655 # 116 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_relops.h" 3
12656     template <class _Tp>
12657       inline bool
12658       operator<=(const _Tp& __x, const _Tp& __y)
12659       { return !(__y < __x); }
12660 # 129 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_relops.h" 3
12661     template <class _Tp>
12662       inline bool
12663       operator>=(const _Tp& __x, const _Tp& __y)
12664       { return !(__x < __y); }
12665
12666   }
12667
12668 }
12669 # 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/utility" 2 3
12670 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ext/type_traits.h" 2 3
12671
12672
12673 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
12674
12675
12676   template<bool, typename>
12677     struct __enable_if
12678     { };
12679
12680   template<typename _Tp>
12681     struct __enable_if<true, _Tp>
12682     { typedef _Tp __type; };
12683
12684
12685
12686   template<bool _Cond, typename _Iftrue, typename _Iffalse>
12687     struct __conditional_type
12688     { typedef _Iftrue __type; };
12689
12690   template<typename _Iftrue, typename _Iffalse>
12691     struct __conditional_type<false, _Iftrue, _Iffalse>
12692     { typedef _Iffalse __type; };
12693
12694
12695
12696   template<typename _Tp>
12697     struct __add_unsigned
12698     {
12699     private:
12700       typedef __enable_if<std::__is_integer<_Tp>::__value, _Tp> __if_type;
12701
12702     public:
12703       typedef typename __if_type::__type __type;
12704     };
12705
12706   template<>
12707     struct __add_unsigned<char>
12708     { typedef unsigned char __type; };
12709
12710   template<>
12711     struct __add_unsigned<signed char>
12712     { typedef unsigned char __type; };
12713
12714   template<>
12715     struct __add_unsigned<short>
12716     { typedef unsigned short __type; };
12717
12718   template<>
12719     struct __add_unsigned<int>
12720     { typedef unsigned int __type; };
12721
12722   template<>
12723     struct __add_unsigned<long>
12724     { typedef unsigned long __type; };
12725
12726   template<>
12727     struct __add_unsigned<long long>
12728     { typedef unsigned long long __type; };
12729
12730
12731   template<>
12732     struct __add_unsigned<bool>;
12733
12734   template<>
12735     struct __add_unsigned<wchar_t>;
12736
12737
12738
12739   template<typename _Tp>
12740     struct __remove_unsigned
12741     {
12742     private:
12743       typedef __enable_if<std::__is_integer<_Tp>::__value, _Tp> __if_type;
12744
12745     public:
12746       typedef typename __if_type::__type __type;
12747     };
12748
12749   template<>
12750     struct __remove_unsigned<char>
12751     { typedef signed char __type; };
12752
12753   template<>
12754     struct __remove_unsigned<unsigned char>
12755     { typedef signed char __type; };
12756
12757   template<>
12758     struct __remove_unsigned<unsigned short>
12759     { typedef short __type; };
12760
12761   template<>
12762     struct __remove_unsigned<unsigned int>
12763     { typedef int __type; };
12764
12765   template<>
12766     struct __remove_unsigned<unsigned long>
12767     { typedef long __type; };
12768
12769   template<>
12770     struct __remove_unsigned<unsigned long long>
12771     { typedef long long __type; };
12772
12773
12774   template<>
12775     struct __remove_unsigned<bool>;
12776
12777   template<>
12778     struct __remove_unsigned<wchar_t>;
12779
12780 }
12781 # 74 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 2 3
12782 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator_base_types.h" 1 3
12783 # 65 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator_base_types.h" 3
12784 #define _ITERATOR_BASE_TYPES_H 1
12785
12786        
12787 # 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator_base_types.h" 3
12788
12789 namespace std __attribute__ ((__visibility__ ("default"))) {
12790 # 80 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator_base_types.h" 3
12791   struct input_iterator_tag {};
12792
12793   struct output_iterator_tag {};
12794
12795   struct forward_iterator_tag : public input_iterator_tag {};
12796
12797
12798   struct bidirectional_iterator_tag : public forward_iterator_tag {};
12799
12800
12801   struct random_access_iterator_tag : public bidirectional_iterator_tag {};
12802 # 104 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator_base_types.h" 3
12803   template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t,
12804            typename _Pointer = _Tp*, typename _Reference = _Tp&>
12805     struct iterator
12806     {
12807
12808       typedef _Category iterator_category;
12809
12810       typedef _Tp value_type;
12811
12812       typedef _Distance difference_type;
12813
12814       typedef _Pointer pointer;
12815
12816       typedef _Reference reference;
12817     };
12818
12819
12820
12821
12822
12823
12824
12825   template<typename _Iterator>
12826     struct iterator_traits
12827     {
12828       typedef typename _Iterator::iterator_category iterator_category;
12829       typedef typename _Iterator::value_type value_type;
12830       typedef typename _Iterator::difference_type difference_type;
12831       typedef typename _Iterator::pointer pointer;
12832       typedef typename _Iterator::reference reference;
12833     };
12834
12835   template<typename _Tp>
12836     struct iterator_traits<_Tp*>
12837     {
12838       typedef random_access_iterator_tag iterator_category;
12839       typedef _Tp value_type;
12840       typedef ptrdiff_t difference_type;
12841       typedef _Tp* pointer;
12842       typedef _Tp& reference;
12843     };
12844
12845   template<typename _Tp>
12846     struct iterator_traits<const _Tp*>
12847     {
12848       typedef random_access_iterator_tag iterator_category;
12849       typedef _Tp value_type;
12850       typedef ptrdiff_t difference_type;
12851       typedef const _Tp* pointer;
12852       typedef const _Tp& reference;
12853     };
12854
12855
12856
12857
12858
12859
12860
12861   template<typename _Iter>
12862     inline typename iterator_traits<_Iter>::iterator_category
12863     __iterator_category(const _Iter&)
12864     { return typename iterator_traits<_Iter>::iterator_category(); }
12865
12866 }
12867 # 75 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 2 3
12868 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator_base_funcs.h" 1 3
12869 # 66 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator_base_funcs.h" 3
12870 #define _ITERATOR_BASE_FUNCS_H 1
12871
12872        
12873 # 69 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator_base_funcs.h" 3
12874 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/concept_check.h" 1 3
12875 # 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/concept_check.h" 3
12876 #define _CONCEPT_CHECK_H 1
12877
12878        
12879 # 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/concept_check.h" 3
12880 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/concept_check.h" 3
12881 #define __glibcxx_function_requires(...) 
12882 #define __glibcxx_class_requires(_a,_b) 
12883 #define __glibcxx_class_requires2(_a,_b,_c) 
12884 #define __glibcxx_class_requires3(_a,_b,_c,_d) 
12885 #define __glibcxx_class_requires4(_a,_b,_c,_d,_e) 
12886 # 70 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator_base_funcs.h" 2 3
12887
12888 namespace std __attribute__ ((__visibility__ ("default"))) {
12889
12890   template<typename _InputIterator>
12891     inline typename iterator_traits<_InputIterator>::difference_type
12892     __distance(_InputIterator __first, _InputIterator __last,
12893                input_iterator_tag)
12894     {
12895
12896      
12897
12898       typename iterator_traits<_InputIterator>::difference_type __n = 0;
12899       while (__first != __last)
12900  {
12901    ++__first;
12902    ++__n;
12903  }
12904       return __n;
12905     }
12906
12907   template<typename _RandomAccessIterator>
12908     inline typename iterator_traits<_RandomAccessIterator>::difference_type
12909     __distance(_RandomAccessIterator __first, _RandomAccessIterator __last,
12910                random_access_iterator_tag)
12911     {
12912
12913      
12914
12915       return __last - __first;
12916     }
12917 # 113 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator_base_funcs.h" 3
12918   template<typename _InputIterator>
12919     inline typename iterator_traits<_InputIterator>::difference_type
12920     distance(_InputIterator __first, _InputIterator __last)
12921     {
12922
12923       return std::__distance(__first, __last,
12924         std::__iterator_category(__first));
12925     }
12926
12927   template<typename _InputIterator, typename _Distance>
12928     inline void
12929     __advance(_InputIterator& __i, _Distance __n, input_iterator_tag)
12930     {
12931
12932      
12933       while (__n--)
12934  ++__i;
12935     }
12936
12937   template<typename _BidirectionalIterator, typename _Distance>
12938     inline void
12939     __advance(_BidirectionalIterator& __i, _Distance __n,
12940        bidirectional_iterator_tag)
12941     {
12942
12943      
12944
12945       if (__n > 0)
12946         while (__n--)
12947    ++__i;
12948       else
12949         while (__n++)
12950    --__i;
12951     }
12952
12953   template<typename _RandomAccessIterator, typename _Distance>
12954     inline void
12955     __advance(_RandomAccessIterator& __i, _Distance __n,
12956               random_access_iterator_tag)
12957     {
12958
12959      
12960
12961       __i += __n;
12962     }
12963 # 171 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator_base_funcs.h" 3
12964   template<typename _InputIterator, typename _Distance>
12965     inline void
12966     advance(_InputIterator& __i, _Distance __n)
12967     {
12968
12969       typename iterator_traits<_InputIterator>::difference_type __d = __n;
12970       std::__advance(__i, __d, std::__iterator_category(__i));
12971     }
12972
12973 }
12974 # 76 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 2 3
12975 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 1 3
12976 # 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
12977 #define _ITERATOR_H 1
12978
12979
12980
12981
12982 namespace std __attribute__ ((__visibility__ ("default"))) {
12983 # 93 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
12984   template<typename _Iterator>
12985     class reverse_iterator
12986     : public iterator<typename iterator_traits<_Iterator>::iterator_category,
12987         typename iterator_traits<_Iterator>::value_type,
12988         typename iterator_traits<_Iterator>::difference_type,
12989         typename iterator_traits<_Iterator>::pointer,
12990                       typename iterator_traits<_Iterator>::reference>
12991     {
12992     protected:
12993       _Iterator current;
12994
12995     public:
12996       typedef _Iterator iterator_type;
12997       typedef typename iterator_traits<_Iterator>::difference_type
12998               difference_type;
12999       typedef typename iterator_traits<_Iterator>::reference reference;
13000       typedef typename iterator_traits<_Iterator>::pointer pointer;
13001
13002     public:
13003
13004
13005
13006
13007
13008
13009       reverse_iterator() : current() { }
13010
13011
13012
13013
13014       explicit
13015       reverse_iterator(iterator_type __x) : current(__x) { }
13016
13017
13018
13019
13020       reverse_iterator(const reverse_iterator& __x)
13021       : current(__x.current) { }
13022
13023
13024
13025
13026
13027       template<typename _Iter>
13028         reverse_iterator(const reverse_iterator<_Iter>& __x)
13029  : current(__x.base()) { }
13030
13031
13032
13033
13034       iterator_type
13035       base() const
13036       { return current; }
13037
13038
13039
13040
13041
13042
13043       reference
13044       operator*() const
13045       {
13046  _Iterator __tmp = current;
13047  return *--__tmp;
13048       }
13049
13050
13051
13052
13053
13054
13055       pointer
13056       operator->() const
13057       { return &(operator*()); }
13058
13059
13060
13061
13062
13063
13064       reverse_iterator&
13065       operator++()
13066       {
13067  --current;
13068  return *this;
13069       }
13070
13071
13072
13073
13074
13075
13076       reverse_iterator
13077       operator++(int)
13078       {
13079  reverse_iterator __tmp = *this;
13080  --current;
13081  return __tmp;
13082       }
13083
13084
13085
13086
13087
13088
13089       reverse_iterator&
13090       operator--()
13091       {
13092  ++current;
13093  return *this;
13094       }
13095
13096
13097
13098
13099
13100
13101       reverse_iterator
13102       operator--(int)
13103       {
13104  reverse_iterator __tmp = *this;
13105  ++current;
13106  return __tmp;
13107       }
13108
13109
13110
13111
13112
13113
13114       reverse_iterator
13115       operator+(difference_type __n) const
13116       { return reverse_iterator(current - __n); }
13117
13118
13119
13120
13121
13122
13123       reverse_iterator&
13124       operator+=(difference_type __n)
13125       {
13126  current -= __n;
13127  return *this;
13128       }
13129
13130
13131
13132
13133
13134
13135       reverse_iterator
13136       operator-(difference_type __n) const
13137       { return reverse_iterator(current + __n); }
13138
13139
13140
13141
13142
13143
13144       reverse_iterator&
13145       operator-=(difference_type __n)
13146       {
13147  current += __n;
13148  return *this;
13149       }
13150
13151
13152
13153
13154
13155
13156       reference
13157       operator[](difference_type __n) const
13158       { return *(*this + __n); }
13159     };
13160 # 280 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
13161   template<typename _Iterator>
13162     inline bool
13163     operator==(const reverse_iterator<_Iterator>& __x,
13164         const reverse_iterator<_Iterator>& __y)
13165     { return __x.base() == __y.base(); }
13166
13167   template<typename _Iterator>
13168     inline bool
13169     operator<(const reverse_iterator<_Iterator>& __x,
13170        const reverse_iterator<_Iterator>& __y)
13171     { return __y.base() < __x.base(); }
13172
13173   template<typename _Iterator>
13174     inline bool
13175     operator!=(const reverse_iterator<_Iterator>& __x,
13176         const reverse_iterator<_Iterator>& __y)
13177     { return !(__x == __y); }
13178
13179   template<typename _Iterator>
13180     inline bool
13181     operator>(const reverse_iterator<_Iterator>& __x,
13182        const reverse_iterator<_Iterator>& __y)
13183     { return __y < __x; }
13184
13185   template<typename _Iterator>
13186     inline bool
13187     operator<=(const reverse_iterator<_Iterator>& __x,
13188         const reverse_iterator<_Iterator>& __y)
13189     { return !(__y < __x); }
13190
13191   template<typename _Iterator>
13192     inline bool
13193     operator>=(const reverse_iterator<_Iterator>& __x,
13194         const reverse_iterator<_Iterator>& __y)
13195     { return !(__x < __y); }
13196
13197   template<typename _Iterator>
13198     inline typename reverse_iterator<_Iterator>::difference_type
13199     operator-(const reverse_iterator<_Iterator>& __x,
13200        const reverse_iterator<_Iterator>& __y)
13201     { return __y.base() - __x.base(); }
13202
13203   template<typename _Iterator>
13204     inline reverse_iterator<_Iterator>
13205     operator+(typename reverse_iterator<_Iterator>::difference_type __n,
13206        const reverse_iterator<_Iterator>& __x)
13207     { return reverse_iterator<_Iterator>(__x.base() - __n); }
13208
13209
13210
13211   template<typename _IteratorL, typename _IteratorR>
13212     inline bool
13213     operator==(const reverse_iterator<_IteratorL>& __x,
13214         const reverse_iterator<_IteratorR>& __y)
13215     { return __x.base() == __y.base(); }
13216
13217   template<typename _IteratorL, typename _IteratorR>
13218     inline bool
13219     operator<(const reverse_iterator<_IteratorL>& __x,
13220        const reverse_iterator<_IteratorR>& __y)
13221     { return __y.base() < __x.base(); }
13222
13223   template<typename _IteratorL, typename _IteratorR>
13224     inline bool
13225     operator!=(const reverse_iterator<_IteratorL>& __x,
13226         const reverse_iterator<_IteratorR>& __y)
13227     { return !(__x == __y); }
13228
13229   template<typename _IteratorL, typename _IteratorR>
13230     inline bool
13231     operator>(const reverse_iterator<_IteratorL>& __x,
13232        const reverse_iterator<_IteratorR>& __y)
13233     { return __y < __x; }
13234
13235   template<typename _IteratorL, typename _IteratorR>
13236     inline bool
13237     operator<=(const reverse_iterator<_IteratorL>& __x,
13238         const reverse_iterator<_IteratorR>& __y)
13239     { return !(__y < __x); }
13240
13241   template<typename _IteratorL, typename _IteratorR>
13242     inline bool
13243     operator>=(const reverse_iterator<_IteratorL>& __x,
13244         const reverse_iterator<_IteratorR>& __y)
13245     { return !(__x < __y); }
13246
13247   template<typename _IteratorL, typename _IteratorR>
13248     inline typename reverse_iterator<_IteratorL>::difference_type
13249     operator-(const reverse_iterator<_IteratorL>& __x,
13250        const reverse_iterator<_IteratorR>& __y)
13251     { return __y.base() - __x.base(); }
13252 # 384 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
13253   template<typename _Container>
13254     class back_insert_iterator
13255     : public iterator<output_iterator_tag, void, void, void, void>
13256     {
13257     protected:
13258       _Container* container;
13259
13260     public:
13261
13262       typedef _Container container_type;
13263
13264
13265       explicit
13266       back_insert_iterator(_Container& __x) : container(&__x) { }
13267 # 410 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
13268       back_insert_iterator&
13269       operator=(typename _Container::const_reference __value)
13270       {
13271  container->push_back(__value);
13272  return *this;
13273       }
13274
13275
13276       back_insert_iterator&
13277       operator*()
13278       { return *this; }
13279
13280
13281       back_insert_iterator&
13282       operator++()
13283       { return *this; }
13284
13285
13286       back_insert_iterator
13287       operator++(int)
13288       { return *this; }
13289     };
13290 # 444 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
13291   template<typename _Container>
13292     inline back_insert_iterator<_Container>
13293     back_inserter(_Container& __x)
13294     { return back_insert_iterator<_Container>(__x); }
13295 # 459 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
13296   template<typename _Container>
13297     class front_insert_iterator
13298     : public iterator<output_iterator_tag, void, void, void, void>
13299     {
13300     protected:
13301       _Container* container;
13302
13303     public:
13304
13305       typedef _Container container_type;
13306
13307
13308       explicit front_insert_iterator(_Container& __x) : container(&__x) { }
13309 # 484 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
13310       front_insert_iterator&
13311       operator=(typename _Container::const_reference __value)
13312       {
13313  container->push_front(__value);
13314  return *this;
13315       }
13316
13317
13318       front_insert_iterator&
13319       operator*()
13320       { return *this; }
13321
13322
13323       front_insert_iterator&
13324       operator++()
13325       { return *this; }
13326
13327
13328       front_insert_iterator
13329       operator++(int)
13330       { return *this; }
13331     };
13332 # 518 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
13333   template<typename _Container>
13334     inline front_insert_iterator<_Container>
13335     front_inserter(_Container& __x)
13336     { return front_insert_iterator<_Container>(__x); }
13337 # 537 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
13338   template<typename _Container>
13339     class insert_iterator
13340     : public iterator<output_iterator_tag, void, void, void, void>
13341     {
13342     protected:
13343       _Container* container;
13344       typename _Container::iterator iter;
13345
13346     public:
13347
13348       typedef _Container container_type;
13349
13350
13351
13352
13353
13354       insert_iterator(_Container& __x, typename _Container::iterator __i)
13355       : container(&__x), iter(__i) {}
13356 # 579 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
13357       insert_iterator&
13358       operator=(const typename _Container::const_reference __value)
13359       {
13360  iter = container->insert(iter, __value);
13361  ++iter;
13362  return *this;
13363       }
13364
13365
13366       insert_iterator&
13367       operator*()
13368       { return *this; }
13369
13370
13371       insert_iterator&
13372       operator++()
13373       { return *this; }
13374
13375
13376       insert_iterator&
13377       operator++(int)
13378       { return *this; }
13379     };
13380 # 614 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
13381   template<typename _Container, typename _Iterator>
13382     inline insert_iterator<_Container>
13383     inserter(_Container& __x, _Iterator __i)
13384     {
13385       return insert_iterator<_Container>(__x,
13386       typename _Container::iterator(__i));
13387     }
13388
13389 }
13390
13391 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
13392 # 633 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
13393   using std::iterator_traits;
13394   using std::iterator;
13395   template<typename _Iterator, typename _Container>
13396     class __normal_iterator
13397     {
13398     protected:
13399       _Iterator _M_current;
13400
13401     public:
13402       typedef typename iterator_traits<_Iterator>::iterator_category
13403                                                              iterator_category;
13404       typedef typename iterator_traits<_Iterator>::value_type value_type;
13405       typedef typename iterator_traits<_Iterator>::difference_type
13406                                                              difference_type;
13407       typedef typename iterator_traits<_Iterator>::reference reference;
13408       typedef typename iterator_traits<_Iterator>::pointer pointer;
13409
13410       __normal_iterator() : _M_current(_Iterator()) { }
13411
13412       explicit
13413       __normal_iterator(const _Iterator& __i) : _M_current(__i) { }
13414
13415
13416       template<typename _Iter>
13417         __normal_iterator(const __normal_iterator<_Iter,
13418      typename __enable_if<
13419               (std::__are_same<_Iter, typename _Container::pointer>::__value),
13420         _Container>::__type>& __i)
13421         : _M_current(__i.base()) { }
13422
13423
13424       reference
13425       operator*() const
13426       { return *_M_current; }
13427
13428       pointer
13429       operator->() const
13430       { return _M_current; }
13431
13432       __normal_iterator&
13433       operator++()
13434       {
13435  ++_M_current;
13436  return *this;
13437       }
13438
13439       __normal_iterator
13440       operator++(int)
13441       { return __normal_iterator(_M_current++); }
13442
13443
13444       __normal_iterator&
13445       operator--()
13446       {
13447  --_M_current;
13448  return *this;
13449       }
13450
13451       __normal_iterator
13452       operator--(int)
13453       { return __normal_iterator(_M_current--); }
13454
13455
13456       reference
13457       operator[](const difference_type& __n) const
13458       { return _M_current[__n]; }
13459
13460       __normal_iterator&
13461       operator+=(const difference_type& __n)
13462       { _M_current += __n; return *this; }
13463
13464       __normal_iterator
13465       operator+(const difference_type& __n) const
13466       { return __normal_iterator(_M_current + __n); }
13467
13468       __normal_iterator&
13469       operator-=(const difference_type& __n)
13470       { _M_current -= __n; return *this; }
13471
13472       __normal_iterator
13473       operator-(const difference_type& __n) const
13474       { return __normal_iterator(_M_current - __n); }
13475
13476       const _Iterator&
13477       base() const
13478       { return _M_current; }
13479     };
13480 # 730 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_iterator.h" 3
13481   template<typename _IteratorL, typename _IteratorR, typename _Container>
13482     inline bool
13483     operator==(const __normal_iterator<_IteratorL, _Container>& __lhs,
13484         const __normal_iterator<_IteratorR, _Container>& __rhs)
13485     { return __lhs.base() == __rhs.base(); }
13486
13487   template<typename _Iterator, typename _Container>
13488     inline bool
13489     operator==(const __normal_iterator<_Iterator, _Container>& __lhs,
13490         const __normal_iterator<_Iterator, _Container>& __rhs)
13491     { return __lhs.base() == __rhs.base(); }
13492
13493   template<typename _IteratorL, typename _IteratorR, typename _Container>
13494     inline bool
13495     operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs,
13496         const __normal_iterator<_IteratorR, _Container>& __rhs)
13497     { return __lhs.base() != __rhs.base(); }
13498
13499   template<typename _Iterator, typename _Container>
13500     inline bool
13501     operator!=(const __normal_iterator<_Iterator, _Container>& __lhs,
13502         const __normal_iterator<_Iterator, _Container>& __rhs)
13503     { return __lhs.base() != __rhs.base(); }
13504
13505
13506   template<typename _IteratorL, typename _IteratorR, typename _Container>
13507     inline bool
13508     operator<(const __normal_iterator<_IteratorL, _Container>& __lhs,
13509        const __normal_iterator<_IteratorR, _Container>& __rhs)
13510     { return __lhs.base() < __rhs.base(); }
13511
13512   template<typename _Iterator, typename _Container>
13513     inline bool
13514     operator<(const __normal_iterator<_Iterator, _Container>& __lhs,
13515        const __normal_iterator<_Iterator, _Container>& __rhs)
13516     { return __lhs.base() < __rhs.base(); }
13517
13518   template<typename _IteratorL, typename _IteratorR, typename _Container>
13519     inline bool
13520     operator>(const __normal_iterator<_IteratorL, _Container>& __lhs,
13521        const __normal_iterator<_IteratorR, _Container>& __rhs)
13522     { return __lhs.base() > __rhs.base(); }
13523
13524   template<typename _Iterator, typename _Container>
13525     inline bool
13526     operator>(const __normal_iterator<_Iterator, _Container>& __lhs,
13527        const __normal_iterator<_Iterator, _Container>& __rhs)
13528     { return __lhs.base() > __rhs.base(); }
13529
13530   template<typename _IteratorL, typename _IteratorR, typename _Container>
13531     inline bool
13532     operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs,
13533         const __normal_iterator<_IteratorR, _Container>& __rhs)
13534     { return __lhs.base() <= __rhs.base(); }
13535
13536   template<typename _Iterator, typename _Container>
13537     inline bool
13538     operator<=(const __normal_iterator<_Iterator, _Container>& __lhs,
13539         const __normal_iterator<_Iterator, _Container>& __rhs)
13540     { return __lhs.base() <= __rhs.base(); }
13541
13542   template<typename _IteratorL, typename _IteratorR, typename _Container>
13543     inline bool
13544     operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs,
13545         const __normal_iterator<_IteratorR, _Container>& __rhs)
13546     { return __lhs.base() >= __rhs.base(); }
13547
13548   template<typename _Iterator, typename _Container>
13549     inline bool
13550     operator>=(const __normal_iterator<_Iterator, _Container>& __lhs,
13551         const __normal_iterator<_Iterator, _Container>& __rhs)
13552     { return __lhs.base() >= __rhs.base(); }
13553
13554
13555
13556
13557
13558   template<typename _IteratorL, typename _IteratorR, typename _Container>
13559     inline typename __normal_iterator<_IteratorL, _Container>::difference_type
13560     operator-(const __normal_iterator<_IteratorL, _Container>& __lhs,
13561        const __normal_iterator<_IteratorR, _Container>& __rhs)
13562     { return __lhs.base() - __rhs.base(); }
13563
13564   template<typename _Iterator, typename _Container>
13565     inline typename __normal_iterator<_Iterator, _Container>::difference_type
13566     operator-(const __normal_iterator<_Iterator, _Container>& __lhs,
13567        const __normal_iterator<_Iterator, _Container>& __rhs)
13568     { return __lhs.base() - __rhs.base(); }
13569
13570   template<typename _Iterator, typename _Container>
13571     inline __normal_iterator<_Iterator, _Container>
13572     operator+(typename __normal_iterator<_Iterator, _Container>::difference_type
13573        __n, const __normal_iterator<_Iterator, _Container>& __i)
13574     { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); }
13575
13576 }
13577 # 77 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 2 3
13578
13579 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/debug/debug.h" 1 3
13580 # 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/debug/debug.h" 3
13581 #define _GLIBCXX_DEBUG_MACRO_SWITCH_H 1
13582 # 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/debug/debug.h" 3
13583 namespace std
13584 {
13585   namespace __debug { }
13586 }
13587
13588 namespace __gnu_cxx
13589 {
13590   namespace __debug { };
13591 }
13592
13593 namespace __gnu_debug
13594 {
13595   using namespace std::__debug;
13596   using namespace __gnu_cxx::__debug;
13597 }
13598
13599
13600
13601 #define _GLIBCXX_DEBUG_ASSERT(_Condition) 
13602 #define _GLIBCXX_DEBUG_PEDASSERT(_Condition) 
13603 #define _GLIBCXX_DEBUG_ONLY(_Statement) ;
13604 #define __glibcxx_requires_cond(_Cond,_Msg) 
13605 #define __glibcxx_requires_valid_range(_First,_Last) 
13606 #define __glibcxx_requires_sorted(_First,_Last) 
13607 #define __glibcxx_requires_sorted_pred(_First,_Last,_Pred) 
13608 #define __glibcxx_requires_partitioned(_First,_Last,_Value) 
13609 #define __glibcxx_requires_partitioned_pred(_First,_Last,_Value,_Pred) 
13610 #define __glibcxx_requires_heap(_First,_Last) 
13611 #define __glibcxx_requires_heap_pred(_First,_Last,_Pred) 
13612 #define __glibcxx_requires_nonempty() 
13613 #define __glibcxx_requires_string(_String) 
13614 #define __glibcxx_requires_string_len(_String,_Len) 
13615 #define __glibcxx_requires_subscript(_N) 
13616 # 79 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 2 3
13617
13618 namespace std __attribute__ ((__visibility__ ("default"))) {
13619 # 91 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
13620   template<typename _Tp>
13621     inline void
13622     swap(_Tp& __a, _Tp& __b)
13623     {
13624
13625      
13626
13627       _Tp __tmp = __a;
13628       __a = __b;
13629       __b = __tmp;
13630     }
13631
13632
13633
13634
13635   template<bool _BoolType>
13636     struct __iter_swap
13637     {
13638       template<typename _ForwardIterator1, typename _ForwardIterator2>
13639         static void
13640         iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
13641         {
13642           typedef typename iterator_traits<_ForwardIterator1>::value_type
13643             _ValueType1;
13644           _ValueType1 __tmp = *__a;
13645           *__a = *__b;
13646           *__b = __tmp;
13647  }
13648     };
13649
13650   template<>
13651     struct __iter_swap<true>
13652     {
13653       template<typename _ForwardIterator1, typename _ForwardIterator2>
13654         static void
13655         iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
13656         {
13657           swap(*__a, *__b);
13658         }
13659     };
13660 # 141 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
13661   template<typename _ForwardIterator1, typename _ForwardIterator2>
13662     inline void
13663     iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
13664     {
13665       typedef typename iterator_traits<_ForwardIterator1>::value_type
13666  _ValueType1;
13667       typedef typename iterator_traits<_ForwardIterator2>::value_type
13668  _ValueType2;
13669
13670
13671      
13672
13673      
13674
13675      
13676
13677      
13678
13679
13680       typedef typename iterator_traits<_ForwardIterator1>::reference
13681  _ReferenceType1;
13682       typedef typename iterator_traits<_ForwardIterator2>::reference
13683  _ReferenceType2;
13684       std::__iter_swap<__are_same<_ValueType1, _ValueType2>::__value &&
13685  __are_same<_ValueType1 &, _ReferenceType1>::__value &&
13686  __are_same<_ValueType2 &, _ReferenceType2>::__value>::
13687  iter_swap(__a, __b);
13688     }
13689 # 180 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
13690   template<typename _Tp>
13691     inline const _Tp&
13692     min(const _Tp& __a, const _Tp& __b)
13693     {
13694
13695      
13696
13697       if (__b < __a)
13698  return __b;
13699       return __a;
13700     }
13701 # 202 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
13702   template<typename _Tp>
13703     inline const _Tp&
13704     max(const _Tp& __a, const _Tp& __b)
13705     {
13706
13707      
13708
13709       if (__a < __b)
13710  return __b;
13711       return __a;
13712     }
13713 # 224 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
13714   template<typename _Tp, typename _Compare>
13715     inline const _Tp&
13716     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
13717     {
13718
13719       if (__comp(__b, __a))
13720  return __b;
13721       return __a;
13722     }
13723 # 244 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
13724   template<typename _Tp, typename _Compare>
13725     inline const _Tp&
13726     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
13727     {
13728
13729       if (__comp(__a, __b))
13730  return __b;
13731       return __a;
13732     }
13733
13734
13735
13736
13737
13738
13739
13740   template<bool, typename>
13741     struct __copy
13742     {
13743       template<typename _II, typename _OI>
13744         static _OI
13745         copy(_II __first, _II __last, _OI __result)
13746         {
13747    for (; __first != __last; ++__result, ++__first)
13748      *__result = *__first;
13749    return __result;
13750  }
13751     };
13752
13753   template<bool _BoolType>
13754     struct __copy<_BoolType, random_access_iterator_tag>
13755     {
13756       template<typename _II, typename _OI>
13757         static _OI
13758         copy(_II __first, _II __last, _OI __result)
13759         {
13760    typedef typename iterator_traits<_II>::difference_type _Distance;
13761    for(_Distance __n = __last - __first; __n > 0; --__n)
13762      {
13763        *__result = *__first;
13764        ++__first;
13765        ++__result;
13766      }
13767    return __result;
13768  }
13769     };
13770
13771   template<>
13772     struct __copy<true, random_access_iterator_tag>
13773     {
13774       template<typename _Tp>
13775         static _Tp*
13776         copy(const _Tp* __first, const _Tp* __last, _Tp* __result)
13777         {
13778    std::memmove(__result, __first, sizeof(_Tp) * (__last - __first));
13779    return __result + (__last - __first);
13780  }
13781     };
13782
13783   template<typename _II, typename _OI>
13784     inline _OI
13785     __copy_aux(_II __first, _II __last, _OI __result)
13786     {
13787       typedef typename iterator_traits<_II>::value_type _ValueTypeI;
13788       typedef typename iterator_traits<_OI>::value_type _ValueTypeO;
13789       typedef typename iterator_traits<_II>::iterator_category _Category;
13790       const bool __simple = (__is_scalar<_ValueTypeI>::__value
13791                       && __is_pointer<_II>::__value
13792                       && __is_pointer<_OI>::__value
13793         && __are_same<_ValueTypeI, _ValueTypeO>::__value);
13794
13795       return std::__copy<__simple, _Category>::copy(__first, __last, __result);
13796     }
13797
13798
13799   template<typename _CharT>
13800   typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
13801       ostreambuf_iterator<_CharT> >::__type
13802     __copy_aux(_CharT*, _CharT*, ostreambuf_iterator<_CharT>);
13803
13804   template<typename _CharT>
13805     typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
13806         ostreambuf_iterator<_CharT> >::__type
13807     __copy_aux(const _CharT*, const _CharT*, ostreambuf_iterator<_CharT>);
13808
13809   template<typename _CharT>
13810   typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, _CharT*>::__type
13811     __copy_aux(istreambuf_iterator<_CharT>, istreambuf_iterator<_CharT>,
13812         _CharT*);
13813
13814   template<bool, bool>
13815     struct __copy_normal
13816     {
13817       template<typename _II, typename _OI>
13818         static _OI
13819         __copy_n(_II __first, _II __last, _OI __result)
13820         { return std::__copy_aux(__first, __last, __result); }
13821     };
13822
13823   template<>
13824     struct __copy_normal<true, false>
13825     {
13826       template<typename _II, typename _OI>
13827         static _OI
13828         __copy_n(_II __first, _II __last, _OI __result)
13829         { return std::__copy_aux(__first.base(), __last.base(), __result); }
13830     };
13831
13832   template<>
13833     struct __copy_normal<false, true>
13834     {
13835       template<typename _II, typename _OI>
13836         static _OI
13837         __copy_n(_II __first, _II __last, _OI __result)
13838         { return _OI(std::__copy_aux(__first, __last, __result.base())); }
13839     };
13840
13841   template<>
13842     struct __copy_normal<true, true>
13843     {
13844       template<typename _II, typename _OI>
13845         static _OI
13846         __copy_n(_II __first, _II __last, _OI __result)
13847         { return _OI(std::__copy_aux(__first.base(), __last.base(),
13848          __result.base())); }
13849     };
13850 # 387 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
13851   template<typename _InputIterator, typename _OutputIterator>
13852     inline _OutputIterator
13853     copy(_InputIterator __first, _InputIterator __last,
13854   _OutputIterator __result)
13855     {
13856
13857      
13858      
13859
13860       ;
13861
13862        const bool __in = __is_normal_iterator<_InputIterator>::__value;
13863        const bool __out = __is_normal_iterator<_OutputIterator>::__value;
13864        return std::__copy_normal<__in, __out>::__copy_n(__first, __last,
13865        __result);
13866     }
13867
13868
13869   template<typename _CharT>
13870     typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
13871                  ostreambuf_iterator<_CharT> >::__type
13872     copy(istreambuf_iterator<_CharT>, istreambuf_iterator<_CharT>,
13873   ostreambuf_iterator<_CharT>);
13874
13875   template<bool, typename>
13876     struct __copy_backward
13877     {
13878       template<typename _BI1, typename _BI2>
13879         static _BI2
13880         __copy_b(_BI1 __first, _BI1 __last, _BI2 __result)
13881         {
13882    while (__first != __last)
13883      *--__result = *--__last;
13884    return __result;
13885  }
13886     };
13887
13888   template<bool _BoolType>
13889     struct __copy_backward<_BoolType, random_access_iterator_tag>
13890     {
13891       template<typename _BI1, typename _BI2>
13892         static _BI2
13893         __copy_b(_BI1 __first, _BI1 __last, _BI2 __result)
13894         {
13895    typename iterator_traits<_BI1>::difference_type __n;
13896    for (__n = __last - __first; __n > 0; --__n)
13897      *--__result = *--__last;
13898    return __result;
13899  }
13900     };
13901
13902   template<>
13903     struct __copy_backward<true, random_access_iterator_tag>
13904     {
13905       template<typename _Tp>
13906         static _Tp*
13907         __copy_b(const _Tp* __first, const _Tp* __last, _Tp* __result)
13908         {
13909    const ptrdiff_t _Num = __last - __first;
13910    std::memmove(__result - _Num, __first, sizeof(_Tp) * _Num);
13911    return __result - _Num;
13912  }
13913     };
13914
13915   template<typename _BI1, typename _BI2>
13916     inline _BI2
13917     __copy_backward_aux(_BI1 __first, _BI1 __last, _BI2 __result)
13918     {
13919       typedef typename iterator_traits<_BI1>::value_type _ValueType1;
13920       typedef typename iterator_traits<_BI2>::value_type _ValueType2;
13921       typedef typename iterator_traits<_BI1>::iterator_category _Category;
13922       const bool __simple = (__is_scalar<_ValueType1>::__value
13923                       && __is_pointer<_BI1>::__value
13924                       && __is_pointer<_BI2>::__value
13925         && __are_same<_ValueType1, _ValueType2>::__value);
13926
13927       return std::__copy_backward<__simple, _Category>::__copy_b(__first,
13928          __last,
13929          __result);
13930     }
13931
13932   template<bool, bool>
13933     struct __copy_backward_normal
13934     {
13935       template<typename _BI1, typename _BI2>
13936         static _BI2
13937         __copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
13938         { return std::__copy_backward_aux(__first, __last, __result); }
13939     };
13940
13941   template<>
13942     struct __copy_backward_normal<true, false>
13943     {
13944       template<typename _BI1, typename _BI2>
13945         static _BI2
13946         __copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
13947         { return std::__copy_backward_aux(__first.base(), __last.base(),
13948        __result); }
13949     };
13950
13951   template<>
13952     struct __copy_backward_normal<false, true>
13953     {
13954       template<typename _BI1, typename _BI2>
13955         static _BI2
13956         __copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
13957         { return _BI2(std::__copy_backward_aux(__first, __last,
13958             __result.base())); }
13959     };
13960
13961   template<>
13962     struct __copy_backward_normal<true, true>
13963     {
13964       template<typename _BI1, typename _BI2>
13965         static _BI2
13966         __copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
13967         { return _BI2(std::__copy_backward_aux(__first.base(), __last.base(),
13968             __result.base())); }
13969     };
13970 # 524 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
13971   template <typename _BI1, typename _BI2>
13972     inline _BI2
13973     copy_backward(_BI1 __first, _BI1 __last, _BI2 __result)
13974     {
13975
13976      
13977      
13978      
13979
13980
13981       ;
13982
13983       const bool __bi1 = __is_normal_iterator<_BI1>::__value;
13984       const bool __bi2 = __is_normal_iterator<_BI2>::__value;
13985       return std::__copy_backward_normal<__bi1, __bi2>::__copy_b_n(__first,
13986            __last,
13987            __result);
13988     }
13989
13990   template<bool>
13991     struct __fill
13992     {
13993       template<typename _ForwardIterator, typename _Tp>
13994         static void
13995         fill(_ForwardIterator __first, _ForwardIterator __last,
13996       const _Tp& __value)
13997         {
13998    for (; __first != __last; ++__first)
13999      *__first = __value;
14000  }
14001     };
14002
14003   template<>
14004     struct __fill<true>
14005     {
14006       template<typename _ForwardIterator, typename _Tp>
14007         static void
14008         fill(_ForwardIterator __first, _ForwardIterator __last,
14009       const _Tp& __value)
14010         {
14011    const _Tp __tmp = __value;
14012    for (; __first != __last; ++__first)
14013      *__first = __tmp;
14014  }
14015     };
14016 # 581 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
14017   template<typename _ForwardIterator, typename _Tp>
14018     void
14019     fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value)
14020     {
14021
14022      
14023
14024       ;
14025
14026       const bool __scalar = __is_scalar<_Tp>::__value;
14027       std::__fill<__scalar>::fill(__first, __last, __value);
14028     }
14029
14030
14031   inline void
14032   fill(unsigned char* __first, unsigned char* __last, const unsigned char& __c)
14033   {
14034     ;
14035     const unsigned char __tmp = __c;
14036     std::memset(__first, __tmp, __last - __first);
14037   }
14038
14039   inline void
14040   fill(signed char* __first, signed char* __last, const signed char& __c)
14041   {
14042     ;
14043     const signed char __tmp = __c;
14044     std::memset(__first, static_cast<unsigned char>(__tmp), __last - __first);
14045   }
14046
14047   inline void
14048   fill(char* __first, char* __last, const char& __c)
14049   {
14050     ;
14051     const char __tmp = __c;
14052     std::memset(__first, static_cast<unsigned char>(__tmp), __last - __first);
14053   }
14054
14055   template<bool>
14056     struct __fill_n
14057     {
14058       template<typename _OutputIterator, typename _Size, typename _Tp>
14059         static _OutputIterator
14060         fill_n(_OutputIterator __first, _Size __n, const _Tp& __value)
14061         {
14062    for (; __n > 0; --__n, ++__first)
14063      *__first = __value;
14064    return __first;
14065  }
14066     };
14067
14068   template<>
14069     struct __fill_n<true>
14070     {
14071       template<typename _OutputIterator, typename _Size, typename _Tp>
14072         static _OutputIterator
14073         fill_n(_OutputIterator __first, _Size __n, const _Tp& __value)
14074         {
14075    const _Tp __tmp = __value;
14076    for (; __n > 0; --__n, ++__first)
14077      *__first = __tmp;
14078    return __first;
14079  }
14080     };
14081 # 657 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
14082   template<typename _OutputIterator, typename _Size, typename _Tp>
14083     _OutputIterator
14084     fill_n(_OutputIterator __first, _Size __n, const _Tp& __value)
14085     {
14086
14087      
14088
14089       const bool __scalar = __is_scalar<_Tp>::__value;
14090       return std::__fill_n<__scalar>::fill_n(__first, __n, __value);
14091     }
14092
14093   template<typename _Size>
14094     inline unsigned char*
14095     fill_n(unsigned char* __first, _Size __n, const unsigned char& __c)
14096     {
14097       std::fill(__first, __first + __n, __c);
14098       return __first + __n;
14099     }
14100
14101   template<typename _Size>
14102     inline signed char*
14103     fill_n(signed char* __first, _Size __n, const signed char& __c)
14104     {
14105       std::fill(__first, __first + __n, __c);
14106       return __first + __n;
14107     }
14108
14109   template<typename _Size>
14110     inline char*
14111     fill_n(char* __first, _Size __n, const char& __c)
14112     {
14113       std::fill(__first, __first + __n, __c);
14114       return __first + __n;
14115     }
14116 # 704 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
14117   template<typename _InputIterator1, typename _InputIterator2>
14118     pair<_InputIterator1, _InputIterator2>
14119     mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
14120       _InputIterator2 __first2)
14121     {
14122
14123      
14124      
14125      
14126
14127
14128       ;
14129
14130       while (__first1 != __last1 && *__first1 == *__first2)
14131         {
14132    ++__first1;
14133    ++__first2;
14134         }
14135       return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
14136     }
14137 # 739 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
14138   template<typename _InputIterator1, typename _InputIterator2,
14139     typename _BinaryPredicate>
14140     pair<_InputIterator1, _InputIterator2>
14141     mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
14142       _InputIterator2 __first2, _BinaryPredicate __binary_pred)
14143     {
14144
14145      
14146      
14147       ;
14148
14149       while (__first1 != __last1 && __binary_pred(*__first1, *__first2))
14150         {
14151    ++__first1;
14152    ++__first2;
14153         }
14154       return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
14155     }
14156 # 769 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
14157   template<typename _InputIterator1, typename _InputIterator2>
14158     inline bool
14159     equal(_InputIterator1 __first1, _InputIterator1 __last1,
14160    _InputIterator2 __first2)
14161     {
14162
14163      
14164      
14165      
14166
14167
14168       ;
14169
14170       for (; __first1 != __last1; ++__first1, ++__first2)
14171  if (!(*__first1 == *__first2))
14172    return false;
14173       return true;
14174     }
14175 # 801 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
14176   template<typename _InputIterator1, typename _InputIterator2,
14177     typename _BinaryPredicate>
14178     inline bool
14179     equal(_InputIterator1 __first1, _InputIterator1 __last1,
14180    _InputIterator2 __first2,
14181    _BinaryPredicate __binary_pred)
14182     {
14183
14184      
14185      
14186       ;
14187
14188       for (; __first1 != __last1; ++__first1, ++__first2)
14189  if (!__binary_pred(*__first1, *__first2))
14190    return false;
14191       return true;
14192     }
14193 # 833 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
14194   template<typename _InputIterator1, typename _InputIterator2>
14195     bool
14196     lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1,
14197        _InputIterator2 __first2, _InputIterator2 __last2)
14198     {
14199
14200      
14201      
14202      
14203
14204
14205      
14206
14207
14208       ;
14209       ;
14210
14211       for (; __first1 != __last1 && __first2 != __last2;
14212     ++__first1, ++__first2)
14213  {
14214    if (*__first1 < *__first2)
14215      return true;
14216    if (*__first2 < *__first1)
14217      return false;
14218  }
14219       return __first1 == __last1 && __first2 != __last2;
14220     }
14221 # 873 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algobase.h" 3
14222   template<typename _InputIterator1, typename _InputIterator2,
14223     typename _Compare>
14224     bool
14225     lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1,
14226        _InputIterator2 __first2, _InputIterator2 __last2,
14227        _Compare __comp)
14228     {
14229
14230      
14231      
14232       ;
14233       ;
14234
14235       for (; __first1 != __last1 && __first2 != __last2;
14236     ++__first1, ++__first2)
14237  {
14238    if (__comp(*__first1, *__first2))
14239      return true;
14240    if (__comp(*__first2, *__first1))
14241      return false;
14242  }
14243       return __first1 == __last1 && __first2 != __last2;
14244     }
14245
14246   inline bool
14247   lexicographical_compare(const unsigned char* __first1,
14248      const unsigned char* __last1,
14249      const unsigned char* __first2,
14250      const unsigned char* __last2)
14251   {
14252     ;
14253     ;
14254
14255     const size_t __len1 = __last1 - __first1;
14256     const size_t __len2 = __last2 - __first2;
14257     const int __result = std::memcmp(__first1, __first2,
14258          std::min(__len1, __len2));
14259     return __result != 0 ? __result < 0 : __len1 < __len2;
14260   }
14261
14262   inline bool
14263   lexicographical_compare(const char* __first1, const char* __last1,
14264      const char* __first2, const char* __last2)
14265   {
14266     ;
14267     ;
14268
14269
14270     return std::lexicographical_compare((const signed char*) __first1,
14271      (const signed char*) __last1,
14272      (const signed char*) __first2,
14273      (const signed char*) __last2);
14274
14275
14276
14277
14278
14279
14280   }
14281
14282 }
14283 # 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/deque" 2 3
14284 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/allocator.h" 1 3
14285 # 50 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/allocator.h" 3
14286 #define _ALLOCATOR_H 1
14287
14288
14289 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++allocator.h" 1 3
14290 # 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++allocator.h" 3
14291 #define _CXX_ALLOCATOR_H 1
14292
14293
14294 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ext/new_allocator.h" 1 3
14295 # 35 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ext/new_allocator.h" 3
14296 #define _NEW_ALLOCATOR_H 1
14297
14298 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/new" 1 3
14299 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/new" 3
14300 #define _NEW 
14301
14302
14303 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/exception" 1 3
14304 # 38 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/exception" 3
14305 #define __EXCEPTION__ 
14306
14307 #pragma GCC visibility push(default)
14308
14309
14310
14311 extern "C++" {
14312
14313 namespace std
14314 {
14315 # 56 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/exception" 3
14316   class exception
14317   {
14318   public:
14319     exception() throw() { }
14320     virtual ~exception() throw();
14321
14322
14323
14324     virtual const char* what() const throw();
14325   };
14326
14327
14328
14329   class bad_exception : public exception
14330   {
14331   public:
14332     bad_exception() throw() { }
14333
14334
14335
14336     virtual ~bad_exception() throw();
14337
14338
14339     virtual const char* what() const throw();
14340   };
14341
14342
14343   typedef void (*terminate_handler) ();
14344
14345
14346   typedef void (*unexpected_handler) ();
14347
14348
14349   terminate_handler set_terminate(terminate_handler) throw();
14350
14351
14352
14353   void terminate() __attribute__ ((__noreturn__));
14354
14355
14356   unexpected_handler set_unexpected(unexpected_handler) throw();
14357
14358
14359
14360   void unexpected() __attribute__ ((__noreturn__));
14361 # 112 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/exception" 3
14362   bool uncaught_exception() throw();
14363 }
14364
14365 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
14366 # 127 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/exception" 3
14367   void __verbose_terminate_handler ();
14368
14369 }
14370
14371 }
14372
14373 #pragma GCC visibility pop
14374 # 46 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/new" 2 3
14375
14376 #pragma GCC visibility push(default)
14377
14378 extern "C++" {
14379
14380 namespace std
14381 {
14382
14383
14384
14385
14386
14387   class bad_alloc : public exception
14388   {
14389   public:
14390     bad_alloc() throw() { }
14391
14392
14393
14394     virtual ~bad_alloc() throw();
14395
14396
14397     virtual const char* what() const throw();
14398   };
14399
14400   struct nothrow_t { };
14401
14402   extern const nothrow_t nothrow;
14403
14404
14405
14406   typedef void (*new_handler)();
14407
14408
14409
14410   new_handler set_new_handler(new_handler) throw();
14411 }
14412 # 95 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/new" 3
14413 void* operator new(std::size_t) throw (std::bad_alloc);
14414 void* operator new[](std::size_t) throw (std::bad_alloc);
14415 void operator delete(void*) throw();
14416 void operator delete[](void*) throw();
14417 void* operator new(std::size_t, const std::nothrow_t&) throw();
14418 void* operator new[](std::size_t, const std::nothrow_t&) throw();
14419 void operator delete(void*, const std::nothrow_t&) throw();
14420 void operator delete[](void*, const std::nothrow_t&) throw();
14421
14422
14423 inline void* operator new(std::size_t, void* __p) throw() { return __p; }
14424 inline void* operator new[](std::size_t, void* __p) throw() { return __p; }
14425
14426
14427 inline void operator delete (void*, void*) throw() { }
14428 inline void operator delete[](void*, void*) throw() { }
14429
14430 }
14431
14432 #pragma GCC visibility pop
14433 # 38 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ext/new_allocator.h" 2 3
14434
14435
14436 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
14437
14438   using std::size_t;
14439   using std::ptrdiff_t;
14440 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ext/new_allocator.h" 3
14441   template<typename _Tp>
14442     class new_allocator
14443     {
14444     public:
14445       typedef size_t size_type;
14446       typedef ptrdiff_t difference_type;
14447       typedef _Tp* pointer;
14448       typedef const _Tp* const_pointer;
14449       typedef _Tp& reference;
14450       typedef const _Tp& const_reference;
14451       typedef _Tp value_type;
14452
14453       template<typename _Tp1>
14454         struct rebind
14455         { typedef new_allocator<_Tp1> other; };
14456
14457       new_allocator() throw() { }
14458
14459       new_allocator(const new_allocator&) throw() { }
14460
14461       template<typename _Tp1>
14462         new_allocator(const new_allocator<_Tp1>&) throw() { }
14463
14464       ~new_allocator() throw() { }
14465
14466       pointer
14467       address(reference __x) const { return &__x; }
14468
14469       const_pointer
14470       address(const_reference __x) const { return &__x; }
14471
14472
14473
14474       pointer
14475       allocate(size_type __n, const void* = 0)
14476       {
14477  if (__builtin_expect(__n > this->max_size(), false))
14478    std::__throw_bad_alloc();
14479
14480  return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
14481       }
14482
14483
14484       void
14485       deallocate(pointer __p, size_type)
14486       { ::operator delete(__p); }
14487
14488       size_type
14489       max_size() const throw()
14490       { return size_t(-1) / sizeof(_Tp); }
14491
14492
14493
14494       void
14495       construct(pointer __p, const _Tp& __val)
14496       { ::new(__p) _Tp(__val); }
14497
14498       void
14499       destroy(pointer __p) { __p->~_Tp(); }
14500     };
14501
14502   template<typename _Tp>
14503     inline bool
14504     operator==(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
14505     { return true; }
14506
14507   template<typename _Tp>
14508     inline bool
14509     operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
14510     { return false; }
14511
14512 }
14513 # 40 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/c++allocator.h" 2 3
14514 #define __glibcxx_base_allocator __gnu_cxx::new_allocator
14515 # 54 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/allocator.h" 2 3
14516
14517
14518
14519 namespace std __attribute__ ((__visibility__ ("default"))) {
14520
14521   template<typename _Tp>
14522     class allocator;
14523
14524
14525   template<>
14526     class allocator<void>
14527     {
14528     public:
14529       typedef size_t size_type;
14530       typedef ptrdiff_t difference_type;
14531       typedef void* pointer;
14532       typedef const void* const_pointer;
14533       typedef void value_type;
14534
14535       template<typename _Tp1>
14536         struct rebind
14537         { typedef allocator<_Tp1> other; };
14538     };
14539
14540
14541
14542
14543
14544
14545
14546   template<typename _Tp>
14547     class allocator: public __gnu_cxx::new_allocator<_Tp>
14548     {
14549    public:
14550       typedef size_t size_type;
14551       typedef ptrdiff_t difference_type;
14552       typedef _Tp* pointer;
14553       typedef const _Tp* const_pointer;
14554       typedef _Tp& reference;
14555       typedef const _Tp& const_reference;
14556       typedef _Tp value_type;
14557
14558       template<typename _Tp1>
14559         struct rebind
14560         { typedef allocator<_Tp1> other; };
14561
14562       allocator() throw() { }
14563
14564       allocator(const allocator& __a) throw()
14565       : __gnu_cxx::new_allocator<_Tp>(__a) { }
14566
14567       template<typename _Tp1>
14568         allocator(const allocator<_Tp1>&) throw() { }
14569
14570       ~allocator() throw() { }
14571
14572
14573     };
14574
14575   template<typename _T1, typename _T2>
14576     inline bool
14577     operator==(const allocator<_T1>&, const allocator<_T2>&)
14578     { return true; }
14579
14580   template<typename _Tp>
14581     inline bool
14582     operator==(const allocator<_Tp>&, const allocator<_Tp>&)
14583     { return true; }
14584
14585   template<typename _T1, typename _T2>
14586     inline bool
14587     operator!=(const allocator<_T1>&, const allocator<_T2>&)
14588     { return false; }
14589
14590   template<typename _Tp>
14591     inline bool
14592     operator!=(const allocator<_Tp>&, const allocator<_Tp>&)
14593     { return false; }
14594
14595
14596
14597
14598
14599   extern template class allocator<char>;
14600   extern template class allocator<wchar_t>;
14601
14602
14603
14604 #undef __glibcxx_base_allocator
14605
14606
14607   template<typename _Alloc, bool = std::__is_empty<_Alloc>::__value>
14608     struct __alloc_swap
14609     { static void _S_do_it(_Alloc&, _Alloc&) { } };
14610
14611   template<typename _Alloc>
14612     struct __alloc_swap<_Alloc, false>
14613     {
14614       static void
14615       _S_do_it(_Alloc& __one, _Alloc& __two)
14616       {
14617
14618  if (__one != __two)
14619    swap(__one, __two);
14620       }
14621     };
14622
14623 }
14624 # 68 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/deque" 2 3
14625 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_construct.h" 1 3
14626 # 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_construct.h" 3
14627 #define _STL_CONSTRUCT_H 1
14628
14629
14630
14631
14632 namespace std __attribute__ ((__visibility__ ("default"))) {
14633
14634
14635
14636
14637
14638
14639
14640   template<typename _T1, typename _T2>
14641     inline void
14642     _Construct(_T1* __p, const _T2& __value)
14643     {
14644
14645
14646       ::new(static_cast<void*>(__p)) _T1(__value);
14647     }
14648
14649
14650
14651
14652
14653
14654
14655   template<typename _T1>
14656     inline void
14657     _Construct(_T1* __p)
14658     {
14659
14660
14661       ::new(static_cast<void*>(__p)) _T1();
14662     }
14663
14664
14665
14666
14667
14668
14669   template<typename _Tp>
14670     inline void
14671     _Destroy(_Tp* __pointer)
14672     { __pointer->~_Tp(); }
14673 # 116 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_construct.h" 3
14674   template<typename _ForwardIterator>
14675     inline void
14676     __destroy_aux(_ForwardIterator __first, _ForwardIterator __last,
14677     __false_type)
14678     {
14679       for (; __first != __last; ++__first)
14680  std::_Destroy(&*__first);
14681     }
14682 # 134 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_construct.h" 3
14683   template<typename _ForwardIterator>
14684     inline void
14685     __destroy_aux(_ForwardIterator, _ForwardIterator, __true_type)
14686     { }
14687 # 146 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_construct.h" 3
14688   template<typename _ForwardIterator>
14689     inline void
14690     _Destroy(_ForwardIterator __first, _ForwardIterator __last)
14691     {
14692       typedef typename iterator_traits<_ForwardIterator>::value_type
14693                        _Value_type;
14694       typedef typename std::__is_scalar<_Value_type>::__type
14695                 _Has_trivial_destructor;
14696
14697       std::__destroy_aux(__first, __last, _Has_trivial_destructor());
14698     }
14699 # 166 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_construct.h" 3
14700   template <typename _Tp> class allocator;
14701
14702   template<typename _ForwardIterator, typename _Allocator>
14703     void
14704     _Destroy(_ForwardIterator __first, _ForwardIterator __last,
14705       _Allocator __alloc)
14706     {
14707       for (; __first != __last; ++__first)
14708  __alloc.destroy(&*__first);
14709     }
14710
14711   template<typename _ForwardIterator, typename _Tp>
14712     inline void
14713     _Destroy(_ForwardIterator __first, _ForwardIterator __last,
14714       allocator<_Tp>)
14715     {
14716       _Destroy(__first, __last);
14717     }
14718
14719 }
14720 # 69 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/deque" 2 3
14721 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_uninitialized.h" 1 3
14722 # 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_uninitialized.h" 3
14723 #define _STL_UNINITIALIZED_H 1
14724
14725
14726
14727 namespace std __attribute__ ((__visibility__ ("default"))) {
14728
14729
14730   template<typename _InputIterator, typename _ForwardIterator>
14731     inline _ForwardIterator
14732     __uninitialized_copy_aux(_InputIterator __first, _InputIterator __last,
14733         _ForwardIterator __result,
14734         __true_type)
14735     { return std::copy(__first, __last, __result); }
14736
14737   template<typename _InputIterator, typename _ForwardIterator>
14738     inline _ForwardIterator
14739     __uninitialized_copy_aux(_InputIterator __first, _InputIterator __last,
14740         _ForwardIterator __result,
14741         __false_type)
14742     {
14743       _ForwardIterator __cur = __result;
14744       try
14745  {
14746    for (; __first != __last; ++__first, ++__cur)
14747      std::_Construct(&*__cur, *__first);
14748    return __cur;
14749  }
14750       catch(...)
14751  {
14752    std::_Destroy(__result, __cur);
14753    throw;
14754  }
14755     }
14756 # 106 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_uninitialized.h" 3
14757   template<typename _InputIterator, typename _ForwardIterator>
14758     inline _ForwardIterator
14759     uninitialized_copy(_InputIterator __first, _InputIterator __last,
14760          _ForwardIterator __result)
14761     {
14762       typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
14763       typedef typename std::__is_scalar<_ValueType>::__type _Is_POD;
14764       return std::__uninitialized_copy_aux(__first, __last, __result,
14765         _Is_POD());
14766     }
14767
14768   inline char*
14769   uninitialized_copy(const char* __first, const char* __last, char* __result)
14770   {
14771     std::memmove(__result, __first, __last - __first);
14772     return __result + (__last - __first);
14773   }
14774
14775   inline wchar_t*
14776   uninitialized_copy(const wchar_t* __first, const wchar_t* __last,
14777        wchar_t* __result)
14778   {
14779     std::memmove(__result, __first, sizeof(wchar_t) * (__last - __first));
14780     return __result + (__last - __first);
14781   }
14782
14783
14784
14785   template<typename _ForwardIterator, typename _Tp>
14786     inline void
14787     __uninitialized_fill_aux(_ForwardIterator __first,
14788         _ForwardIterator __last,
14789         const _Tp& __x, __true_type)
14790     { std::fill(__first, __last, __x); }
14791
14792   template<typename _ForwardIterator, typename _Tp>
14793     void
14794     __uninitialized_fill_aux(_ForwardIterator __first, _ForwardIterator __last,
14795         const _Tp& __x, __false_type)
14796     {
14797       _ForwardIterator __cur = __first;
14798       try
14799  {
14800    for (; __cur != __last; ++__cur)
14801      std::_Construct(&*__cur, __x);
14802  }
14803       catch(...)
14804  {
14805    std::_Destroy(__first, __cur);
14806    throw;
14807  }
14808     }
14809 # 168 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_uninitialized.h" 3
14810   template<typename _ForwardIterator, typename _Tp>
14811     inline void
14812     uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last,
14813          const _Tp& __x)
14814     {
14815       typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
14816       typedef typename std::__is_scalar<_ValueType>::__type _Is_POD;
14817       std::__uninitialized_fill_aux(__first, __last, __x, _Is_POD());
14818     }
14819
14820
14821
14822   template<typename _ForwardIterator, typename _Size, typename _Tp>
14823     inline void
14824     __uninitialized_fill_n_aux(_ForwardIterator __first, _Size __n,
14825           const _Tp& __x, __true_type)
14826     { std::fill_n(__first, __n, __x); }
14827
14828   template<typename _ForwardIterator, typename _Size, typename _Tp>
14829     void
14830     __uninitialized_fill_n_aux(_ForwardIterator __first, _Size __n,
14831           const _Tp& __x, __false_type)
14832     {
14833       _ForwardIterator __cur = __first;
14834       try
14835  {
14836    for (; __n > 0; --__n, ++__cur)
14837      std::_Construct(&*__cur, __x);
14838  }
14839       catch(...)
14840  {
14841    std::_Destroy(__first, __cur);
14842    throw;
14843  }
14844     }
14845 # 213 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_uninitialized.h" 3
14846   template<typename _ForwardIterator, typename _Size, typename _Tp>
14847     inline void
14848     uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x)
14849     {
14850       typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
14851       typedef typename std::__is_scalar<_ValueType>::__type _Is_POD;
14852       std::__uninitialized_fill_n_aux(__first, __n, __x, _Is_POD());
14853     }
14854
14855
14856
14857
14858
14859
14860
14861   template<typename _InputIterator, typename _ForwardIterator,
14862     typename _Allocator>
14863     _ForwardIterator
14864     __uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
14865       _ForwardIterator __result,
14866       _Allocator __alloc)
14867     {
14868       _ForwardIterator __cur = __result;
14869       try
14870  {
14871    for (; __first != __last; ++__first, ++__cur)
14872      __alloc.construct(&*__cur, *__first);
14873    return __cur;
14874  }
14875       catch(...)
14876  {
14877    std::_Destroy(__result, __cur, __alloc);
14878    throw;
14879  }
14880     }
14881
14882   template<typename _InputIterator, typename _ForwardIterator, typename _Tp>
14883     inline _ForwardIterator
14884     __uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
14885       _ForwardIterator __result,
14886       allocator<_Tp>)
14887     { return std::uninitialized_copy(__first, __last, __result); }
14888
14889   template<typename _ForwardIterator, typename _Tp, typename _Allocator>
14890     void
14891     __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last,
14892       const _Tp& __x, _Allocator __alloc)
14893     {
14894       _ForwardIterator __cur = __first;
14895       try
14896  {
14897    for (; __cur != __last; ++__cur)
14898      __alloc.construct(&*__cur, __x);
14899  }
14900       catch(...)
14901  {
14902    std::_Destroy(__first, __cur, __alloc);
14903    throw;
14904  }
14905     }
14906
14907   template<typename _ForwardIterator, typename _Tp, typename _Tp2>
14908     inline void
14909     __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last,
14910       const _Tp& __x, allocator<_Tp2>)
14911     { std::uninitialized_fill(__first, __last, __x); }
14912
14913   template<typename _ForwardIterator, typename _Size, typename _Tp,
14914     typename _Allocator>
14915     void
14916     __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n,
14917         const _Tp& __x,
14918         _Allocator __alloc)
14919     {
14920       _ForwardIterator __cur = __first;
14921       try
14922  {
14923    for (; __n > 0; --__n, ++__cur)
14924      __alloc.construct(&*__cur, __x);
14925  }
14926       catch(...)
14927  {
14928    std::_Destroy(__first, __cur, __alloc);
14929    throw;
14930  }
14931     }
14932
14933   template<typename _ForwardIterator, typename _Size, typename _Tp,
14934     typename _Tp2>
14935     inline void
14936     __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n,
14937         const _Tp& __x,
14938         allocator<_Tp2>)
14939     { std::uninitialized_fill_n(__first, __n, __x); }
14940 # 318 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_uninitialized.h" 3
14941   template<typename _InputIterator1, typename _InputIterator2,
14942     typename _ForwardIterator, typename _Allocator>
14943     inline _ForwardIterator
14944     __uninitialized_copy_copy(_InputIterator1 __first1,
14945          _InputIterator1 __last1,
14946          _InputIterator2 __first2,
14947          _InputIterator2 __last2,
14948          _ForwardIterator __result,
14949          _Allocator __alloc)
14950     {
14951       _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1,
14952           __result,
14953           __alloc);
14954       try
14955  {
14956    return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc);
14957  }
14958       catch(...)
14959  {
14960    std::_Destroy(__result, __mid, __alloc);
14961    throw;
14962  }
14963     }
14964
14965
14966
14967
14968   template<typename _ForwardIterator, typename _Tp, typename _InputIterator,
14969     typename _Allocator>
14970     inline _ForwardIterator
14971     __uninitialized_fill_copy(_ForwardIterator __result, _ForwardIterator __mid,
14972          const _Tp& __x, _InputIterator __first,
14973          _InputIterator __last,
14974          _Allocator __alloc)
14975     {
14976       std::__uninitialized_fill_a(__result, __mid, __x, __alloc);
14977       try
14978  {
14979    return std::__uninitialized_copy_a(__first, __last, __mid, __alloc);
14980  }
14981       catch(...)
14982  {
14983    std::_Destroy(__result, __mid, __alloc);
14984    throw;
14985  }
14986     }
14987
14988
14989
14990
14991   template<typename _InputIterator, typename _ForwardIterator, typename _Tp,
14992     typename _Allocator>
14993     inline void
14994     __uninitialized_copy_fill(_InputIterator __first1, _InputIterator __last1,
14995          _ForwardIterator __first2,
14996          _ForwardIterator __last2, const _Tp& __x,
14997          _Allocator __alloc)
14998     {
14999       _ForwardIterator __mid2 = std::__uninitialized_copy_a(__first1, __last1,
15000            __first2,
15001            __alloc);
15002       try
15003  {
15004    std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc);
15005  }
15006       catch(...)
15007  {
15008    std::_Destroy(__first2, __mid2, __alloc);
15009    throw;
15010  }
15011     }
15012
15013 }
15014 # 70 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/deque" 2 3
15015 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 1 3
15016 # 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15017 #define _DEQUE_H 1
15018
15019
15020
15021
15022
15023 namespace std __attribute__ ((__visibility__ ("default"))) {
15024 # 83 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15025   inline size_t
15026   __deque_buf_size(size_t __size)
15027   { return __size < 512 ? size_t(512 / __size) : size_t(1); }
15028 # 101 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15029   template<typename _Tp, typename _Ref, typename _Ptr>
15030     struct _Deque_iterator
15031     {
15032       typedef _Deque_iterator<_Tp, _Tp&, _Tp*> iterator;
15033       typedef _Deque_iterator<_Tp, const _Tp&, const _Tp*> const_iterator;
15034
15035       static size_t _S_buffer_size()
15036       { return __deque_buf_size(sizeof(_Tp)); }
15037
15038       typedef std::random_access_iterator_tag iterator_category;
15039       typedef _Tp value_type;
15040       typedef _Ptr pointer;
15041       typedef _Ref reference;
15042       typedef size_t size_type;
15043       typedef ptrdiff_t difference_type;
15044       typedef _Tp** _Map_pointer;
15045       typedef _Deque_iterator _Self;
15046
15047       _Tp* _M_cur;
15048       _Tp* _M_first;
15049       _Tp* _M_last;
15050       _Map_pointer _M_node;
15051
15052       _Deque_iterator(_Tp* __x, _Map_pointer __y)
15053       : _M_cur(__x), _M_first(*__y),
15054         _M_last(*__y + _S_buffer_size()), _M_node(__y) {}
15055
15056       _Deque_iterator() : _M_cur(0), _M_first(0), _M_last(0), _M_node(0) {}
15057
15058       _Deque_iterator(const iterator& __x)
15059       : _M_cur(__x._M_cur), _M_first(__x._M_first),
15060         _M_last(__x._M_last), _M_node(__x._M_node) {}
15061
15062       reference
15063       operator*() const
15064       { return *_M_cur; }
15065
15066       pointer
15067       operator->() const
15068       { return _M_cur; }
15069
15070       _Self&
15071       operator++()
15072       {
15073  ++_M_cur;
15074  if (_M_cur == _M_last)
15075    {
15076      _M_set_node(_M_node + 1);
15077      _M_cur = _M_first;
15078    }
15079  return *this;
15080       }
15081
15082       _Self
15083       operator++(int)
15084       {
15085  _Self __tmp = *this;
15086  ++*this;
15087  return __tmp;
15088       }
15089
15090       _Self&
15091       operator--()
15092       {
15093  if (_M_cur == _M_first)
15094    {
15095      _M_set_node(_M_node - 1);
15096      _M_cur = _M_last;
15097    }
15098  --_M_cur;
15099  return *this;
15100       }
15101
15102       _Self
15103       operator--(int)
15104       {
15105  _Self __tmp = *this;
15106  --*this;
15107  return __tmp;
15108       }
15109
15110       _Self&
15111       operator+=(difference_type __n)
15112       {
15113  const difference_type __offset = __n + (_M_cur - _M_first);
15114  if (__offset >= 0 && __offset < difference_type(_S_buffer_size()))
15115    _M_cur += __n;
15116  else
15117    {
15118      const difference_type __node_offset =
15119        __offset > 0 ? __offset / difference_type(_S_buffer_size())
15120                     : -difference_type((-__offset - 1)
15121            / _S_buffer_size()) - 1;
15122      _M_set_node(_M_node + __node_offset);
15123      _M_cur = _M_first + (__offset - __node_offset
15124      * difference_type(_S_buffer_size()));
15125    }
15126  return *this;
15127       }
15128
15129       _Self
15130       operator+(difference_type __n) const
15131       {
15132  _Self __tmp = *this;
15133  return __tmp += __n;
15134       }
15135
15136       _Self&
15137       operator-=(difference_type __n)
15138       { return *this += -__n; }
15139
15140       _Self
15141       operator-(difference_type __n) const
15142       {
15143  _Self __tmp = *this;
15144  return __tmp -= __n;
15145       }
15146
15147       reference
15148       operator[](difference_type __n) const
15149       { return *(*this + __n); }
15150
15151
15152
15153
15154
15155
15156
15157       void
15158       _M_set_node(_Map_pointer __new_node)
15159       {
15160  _M_node = __new_node;
15161  _M_first = *__new_node;
15162  _M_last = _M_first + difference_type(_S_buffer_size());
15163       }
15164     };
15165
15166
15167
15168
15169   template<typename _Tp, typename _Ref, typename _Ptr>
15170     inline bool
15171     operator==(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
15172         const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
15173     { return __x._M_cur == __y._M_cur; }
15174
15175   template<typename _Tp, typename _RefL, typename _PtrL,
15176     typename _RefR, typename _PtrR>
15177     inline bool
15178     operator==(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
15179         const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
15180     { return __x._M_cur == __y._M_cur; }
15181
15182   template<typename _Tp, typename _Ref, typename _Ptr>
15183     inline bool
15184     operator!=(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
15185         const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
15186     { return !(__x == __y); }
15187
15188   template<typename _Tp, typename _RefL, typename _PtrL,
15189     typename _RefR, typename _PtrR>
15190     inline bool
15191     operator!=(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
15192         const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
15193     { return !(__x == __y); }
15194
15195   template<typename _Tp, typename _Ref, typename _Ptr>
15196     inline bool
15197     operator<(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
15198        const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
15199     { return (__x._M_node == __y._M_node) ? (__x._M_cur < __y._M_cur)
15200                                           : (__x._M_node < __y._M_node); }
15201
15202   template<typename _Tp, typename _RefL, typename _PtrL,
15203     typename _RefR, typename _PtrR>
15204     inline bool
15205     operator<(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
15206        const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
15207     { return (__x._M_node == __y._M_node) ? (__x._M_cur < __y._M_cur)
15208                                    : (__x._M_node < __y._M_node); }
15209
15210   template<typename _Tp, typename _Ref, typename _Ptr>
15211     inline bool
15212     operator>(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
15213        const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
15214     { return __y < __x; }
15215
15216   template<typename _Tp, typename _RefL, typename _PtrL,
15217     typename _RefR, typename _PtrR>
15218     inline bool
15219     operator>(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
15220        const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
15221     { return __y < __x; }
15222
15223   template<typename _Tp, typename _Ref, typename _Ptr>
15224     inline bool
15225     operator<=(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
15226         const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
15227     { return !(__y < __x); }
15228
15229   template<typename _Tp, typename _RefL, typename _PtrL,
15230     typename _RefR, typename _PtrR>
15231     inline bool
15232     operator<=(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
15233         const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
15234     { return !(__y < __x); }
15235
15236   template<typename _Tp, typename _Ref, typename _Ptr>
15237     inline bool
15238     operator>=(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
15239         const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
15240     { return !(__x < __y); }
15241
15242   template<typename _Tp, typename _RefL, typename _PtrL,
15243     typename _RefR, typename _PtrR>
15244     inline bool
15245     operator>=(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
15246         const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
15247     { return !(__x < __y); }
15248
15249
15250
15251
15252
15253   template<typename _Tp, typename _Ref, typename _Ptr>
15254     inline typename _Deque_iterator<_Tp, _Ref, _Ptr>::difference_type
15255     operator-(const _Deque_iterator<_Tp, _Ref, _Ptr>& __x,
15256        const _Deque_iterator<_Tp, _Ref, _Ptr>& __y)
15257     {
15258       return typename _Deque_iterator<_Tp, _Ref, _Ptr>::difference_type
15259  (_Deque_iterator<_Tp, _Ref, _Ptr>::_S_buffer_size())
15260  * (__x._M_node - __y._M_node - 1) + (__x._M_cur - __x._M_first)
15261  + (__y._M_last - __y._M_cur);
15262     }
15263
15264   template<typename _Tp, typename _RefL, typename _PtrL,
15265     typename _RefR, typename _PtrR>
15266     inline typename _Deque_iterator<_Tp, _RefL, _PtrL>::difference_type
15267     operator-(const _Deque_iterator<_Tp, _RefL, _PtrL>& __x,
15268        const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
15269     {
15270       return typename _Deque_iterator<_Tp, _RefL, _PtrL>::difference_type
15271  (_Deque_iterator<_Tp, _RefL, _PtrL>::_S_buffer_size())
15272  * (__x._M_node - __y._M_node - 1) + (__x._M_cur - __x._M_first)
15273  + (__y._M_last - __y._M_cur);
15274     }
15275
15276   template<typename _Tp, typename _Ref, typename _Ptr>
15277     inline _Deque_iterator<_Tp, _Ref, _Ptr>
15278     operator+(ptrdiff_t __n, const _Deque_iterator<_Tp, _Ref, _Ptr>& __x)
15279     { return __x + __n; }
15280
15281   template<typename _Tp>
15282     void
15283     fill(const _Deque_iterator<_Tp, _Tp&, _Tp*>& __first,
15284   const _Deque_iterator<_Tp, _Tp&, _Tp*>& __last, const _Tp& __value);
15285 # 370 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15286   template<typename _Tp, typename _Alloc>
15287     class _Deque_base
15288     {
15289     public:
15290       typedef _Alloc allocator_type;
15291
15292       allocator_type
15293       get_allocator() const
15294       { return allocator_type(_M_get_Tp_allocator()); }
15295
15296       typedef _Deque_iterator<_Tp, _Tp&, _Tp*> iterator;
15297       typedef _Deque_iterator<_Tp, const _Tp&, const _Tp*> const_iterator;
15298
15299       _Deque_base(const allocator_type& __a, size_t __num_elements)
15300       : _M_impl(__a)
15301       { _M_initialize_map(__num_elements); }
15302
15303       _Deque_base(const allocator_type& __a)
15304       : _M_impl(__a)
15305       { }
15306
15307       ~_Deque_base();
15308
15309     protected:
15310
15311
15312
15313       typedef typename _Alloc::template rebind<_Tp*>::other _Map_alloc_type;
15314
15315       typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type;
15316
15317       struct _Deque_impl
15318       : public _Tp_alloc_type
15319       {
15320  _Tp** _M_map;
15321  size_t _M_map_size;
15322  iterator _M_start;
15323  iterator _M_finish;
15324
15325  _Deque_impl(const _Tp_alloc_type& __a)
15326  : _Tp_alloc_type(__a), _M_map(0), _M_map_size(0),
15327    _M_start(), _M_finish()
15328  { }
15329       };
15330
15331       _Tp_alloc_type&
15332       _M_get_Tp_allocator()
15333       { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); }
15334
15335       const _Tp_alloc_type&
15336       _M_get_Tp_allocator() const
15337       { return *static_cast<const _Tp_alloc_type*>(&this->_M_impl); }
15338
15339       _Map_alloc_type
15340       _M_get_map_allocator() const
15341       { return _Map_alloc_type(_M_get_Tp_allocator()); }
15342
15343       _Tp*
15344       _M_allocate_node()
15345       {
15346  return _M_impl._Tp_alloc_type::allocate(__deque_buf_size(sizeof(_Tp)));
15347       }
15348
15349       void
15350       _M_deallocate_node(_Tp* __p)
15351       {
15352  _M_impl._Tp_alloc_type::deallocate(__p, __deque_buf_size(sizeof(_Tp)));
15353       }
15354
15355       _Tp**
15356       _M_allocate_map(size_t __n)
15357       { return _M_get_map_allocator().allocate(__n); }
15358
15359       void
15360       _M_deallocate_map(_Tp** __p, size_t __n)
15361       { _M_get_map_allocator().deallocate(__p, __n); }
15362
15363     protected:
15364       void _M_initialize_map(size_t);
15365       void _M_create_nodes(_Tp** __nstart, _Tp** __nfinish);
15366       void _M_destroy_nodes(_Tp** __nstart, _Tp** __nfinish);
15367       enum { _S_initial_map_size = 8 };
15368
15369       _Deque_impl _M_impl;
15370     };
15371
15372   template<typename _Tp, typename _Alloc>
15373     _Deque_base<_Tp, _Alloc>::
15374     ~_Deque_base()
15375     {
15376       if (this->_M_impl._M_map)
15377  {
15378    _M_destroy_nodes(this->_M_impl._M_start._M_node,
15379       this->_M_impl._M_finish._M_node + 1);
15380    _M_deallocate_map(this->_M_impl._M_map, this->_M_impl._M_map_size);
15381  }
15382     }
15383 # 478 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15384   template<typename _Tp, typename _Alloc>
15385     void
15386     _Deque_base<_Tp, _Alloc>::
15387     _M_initialize_map(size_t __num_elements)
15388     {
15389       const size_t __num_nodes = (__num_elements/ __deque_buf_size(sizeof(_Tp))
15390       + 1);
15391
15392       this->_M_impl._M_map_size = std::max((size_t) _S_initial_map_size,
15393         size_t(__num_nodes + 2));
15394       this->_M_impl._M_map = _M_allocate_map(this->_M_impl._M_map_size);
15395
15396
15397
15398
15399
15400
15401       _Tp** __nstart = (this->_M_impl._M_map
15402    + (this->_M_impl._M_map_size - __num_nodes) / 2);
15403       _Tp** __nfinish = __nstart + __num_nodes;
15404
15405       try
15406  { _M_create_nodes(__nstart, __nfinish); }
15407       catch(...)
15408  {
15409    _M_deallocate_map(this->_M_impl._M_map, this->_M_impl._M_map_size);
15410    this->_M_impl._M_map = 0;
15411    this->_M_impl._M_map_size = 0;
15412    throw;
15413  }
15414
15415       this->_M_impl._M_start._M_set_node(__nstart);
15416       this->_M_impl._M_finish._M_set_node(__nfinish - 1);
15417       this->_M_impl._M_start._M_cur = _M_impl._M_start._M_first;
15418       this->_M_impl._M_finish._M_cur = (this->_M_impl._M_finish._M_first
15419      + __num_elements
15420      % __deque_buf_size(sizeof(_Tp)));
15421     }
15422
15423   template<typename _Tp, typename _Alloc>
15424     void
15425     _Deque_base<_Tp, _Alloc>::
15426     _M_create_nodes(_Tp** __nstart, _Tp** __nfinish)
15427     {
15428       _Tp** __cur;
15429       try
15430  {
15431    for (__cur = __nstart; __cur < __nfinish; ++__cur)
15432      *__cur = this->_M_allocate_node();
15433  }
15434       catch(...)
15435  {
15436    _M_destroy_nodes(__nstart, __cur);
15437    throw;
15438  }
15439     }
15440
15441   template<typename _Tp, typename _Alloc>
15442     void
15443     _Deque_base<_Tp, _Alloc>::
15444     _M_destroy_nodes(_Tp** __nstart, _Tp** __nfinish)
15445     {
15446       for (_Tp** __n = __nstart; __n < __nfinish; ++__n)
15447  _M_deallocate_node(*__n);
15448     }
15449 # 628 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15450   template<typename _Tp, typename _Alloc = std::allocator<_Tp> >
15451     class deque : protected _Deque_base<_Tp, _Alloc>
15452     {
15453
15454       typedef typename _Alloc::value_type _Alloc_value_type;
15455      
15456      
15457
15458       typedef _Deque_base<_Tp, _Alloc> _Base;
15459       typedef typename _Base::_Tp_alloc_type _Tp_alloc_type;
15460
15461     public:
15462       typedef _Tp value_type;
15463       typedef typename _Tp_alloc_type::pointer pointer;
15464       typedef typename _Tp_alloc_type::const_pointer const_pointer;
15465       typedef typename _Tp_alloc_type::reference reference;
15466       typedef typename _Tp_alloc_type::const_reference const_reference;
15467       typedef typename _Base::iterator iterator;
15468       typedef typename _Base::const_iterator const_iterator;
15469       typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
15470       typedef std::reverse_iterator<iterator> reverse_iterator;
15471       typedef size_t size_type;
15472       typedef ptrdiff_t difference_type;
15473       typedef _Alloc allocator_type;
15474
15475     protected:
15476       typedef pointer* _Map_pointer;
15477
15478       static size_t _S_buffer_size()
15479       { return __deque_buf_size(sizeof(_Tp)); }
15480
15481
15482       using _Base::_M_initialize_map;
15483       using _Base::_M_create_nodes;
15484       using _Base::_M_destroy_nodes;
15485       using _Base::_M_allocate_node;
15486       using _Base::_M_deallocate_node;
15487       using _Base::_M_allocate_map;
15488       using _Base::_M_deallocate_map;
15489       using _Base::_M_get_Tp_allocator;
15490
15491
15492
15493
15494
15495
15496       using _Base::_M_impl;
15497
15498     public:
15499
15500
15501
15502
15503
15504       explicit
15505       deque(const allocator_type& __a = allocator_type())
15506       : _Base(__a, 0) {}
15507 # 693 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15508       explicit
15509       deque(size_type __n, const value_type& __value = value_type(),
15510      const allocator_type& __a = allocator_type())
15511       : _Base(__a, __n)
15512       { _M_fill_initialize(__value); }
15513 # 706 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15514       deque(const deque& __x)
15515       : _Base(__x._M_get_Tp_allocator(), __x.size())
15516       { std::__uninitialized_copy_a(__x.begin(), __x.end(),
15517         this->_M_impl._M_start,
15518         _M_get_Tp_allocator()); }
15519 # 726 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15520       template<typename _InputIterator>
15521         deque(_InputIterator __first, _InputIterator __last,
15522        const allocator_type& __a = allocator_type())
15523  : _Base(__a)
15524         {
15525
15526    typedef typename std::__is_integer<_InputIterator>::__type _Integral;
15527    _M_initialize_dispatch(__first, __last, _Integral());
15528  }
15529
15530
15531
15532
15533
15534
15535       ~deque()
15536       { _M_destroy_data(begin(), end(), _M_get_Tp_allocator()); }
15537 # 751 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15538       deque&
15539       operator=(const deque& __x);
15540 # 764 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15541       void
15542       assign(size_type __n, const value_type& __val)
15543       { _M_fill_assign(__n, __val); }
15544 # 780 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15545       template<typename _InputIterator>
15546         void
15547         assign(_InputIterator __first, _InputIterator __last)
15548         {
15549    typedef typename std::__is_integer<_InputIterator>::__type _Integral;
15550    _M_assign_dispatch(__first, __last, _Integral());
15551  }
15552
15553
15554       allocator_type
15555       get_allocator() const
15556       { return _Base::get_allocator(); }
15557
15558
15559
15560
15561
15562
15563       iterator
15564       begin()
15565       { return this->_M_impl._M_start; }
15566
15567
15568
15569
15570
15571       const_iterator
15572       begin() const
15573       { return this->_M_impl._M_start; }
15574
15575
15576
15577
15578
15579
15580       iterator
15581       end()
15582       { return this->_M_impl._M_finish; }
15583
15584
15585
15586
15587
15588
15589       const_iterator
15590       end() const
15591       { return this->_M_impl._M_finish; }
15592
15593
15594
15595
15596
15597
15598       reverse_iterator
15599       rbegin()
15600       { return reverse_iterator(this->_M_impl._M_finish); }
15601
15602
15603
15604
15605
15606
15607       const_reverse_iterator
15608       rbegin() const
15609       { return const_reverse_iterator(this->_M_impl._M_finish); }
15610
15611
15612
15613
15614
15615
15616       reverse_iterator
15617       rend()
15618       { return reverse_iterator(this->_M_impl._M_start); }
15619
15620
15621
15622
15623
15624
15625       const_reverse_iterator
15626       rend() const
15627       { return const_reverse_iterator(this->_M_impl._M_start); }
15628
15629
15630
15631       size_type
15632       size() const
15633       { return this->_M_impl._M_finish - this->_M_impl._M_start; }
15634
15635
15636       size_type
15637       max_size() const
15638       { return _M_get_Tp_allocator().max_size(); }
15639 # 886 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15640       void
15641       resize(size_type __new_size, value_type __x = value_type())
15642       {
15643  const size_type __len = size();
15644  if (__new_size < __len)
15645    _M_erase_at_end(this->_M_impl._M_start + difference_type(__new_size));
15646  else
15647    insert(this->_M_impl._M_finish, __new_size - __len, __x);
15648       }
15649
15650
15651
15652
15653
15654       bool
15655       empty() const
15656       { return this->_M_impl._M_finish == this->_M_impl._M_start; }
15657 # 916 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15658       reference
15659       operator[](size_type __n)
15660       { return this->_M_impl._M_start[difference_type(__n)]; }
15661 # 931 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15662       const_reference
15663       operator[](size_type __n) const
15664       { return this->_M_impl._M_start[difference_type(__n)]; }
15665
15666     protected:
15667
15668       void
15669       _M_range_check(size_type __n) const
15670       {
15671  if (__n >= this->size())
15672    __throw_out_of_range(("deque::_M_range_check"));
15673       }
15674
15675     public:
15676 # 956 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15677       reference
15678       at(size_type __n)
15679       {
15680  _M_range_check(__n);
15681  return (*this)[__n];
15682       }
15683 # 974 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15684       const_reference
15685       at(size_type __n) const
15686       {
15687  _M_range_check(__n);
15688  return (*this)[__n];
15689       }
15690
15691
15692
15693
15694
15695       reference
15696       front()
15697       { return *begin(); }
15698
15699
15700
15701
15702
15703       const_reference
15704       front() const
15705       { return *begin(); }
15706
15707
15708
15709
15710
15711       reference
15712       back()
15713       {
15714  iterator __tmp = end();
15715  --__tmp;
15716  return *__tmp;
15717       }
15718
15719
15720
15721
15722
15723       const_reference
15724       back() const
15725       {
15726  const_iterator __tmp = end();
15727  --__tmp;
15728  return *__tmp;
15729       }
15730 # 1031 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15731       void
15732       push_front(const value_type& __x)
15733       {
15734  if (this->_M_impl._M_start._M_cur != this->_M_impl._M_start._M_first)
15735    {
15736      this->_M_impl.construct(this->_M_impl._M_start._M_cur - 1, __x);
15737      --this->_M_impl._M_start._M_cur;
15738    }
15739  else
15740    _M_push_front_aux(__x);
15741       }
15742 # 1052 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15743       void
15744       push_back(const value_type& __x)
15745       {
15746  if (this->_M_impl._M_finish._M_cur
15747      != this->_M_impl._M_finish._M_last - 1)
15748    {
15749      this->_M_impl.construct(this->_M_impl._M_finish._M_cur, __x);
15750      ++this->_M_impl._M_finish._M_cur;
15751    }
15752  else
15753    _M_push_back_aux(__x);
15754       }
15755 # 1073 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15756       void
15757       pop_front()
15758       {
15759  if (this->_M_impl._M_start._M_cur
15760      != this->_M_impl._M_start._M_last - 1)
15761    {
15762      this->_M_impl.destroy(this->_M_impl._M_start._M_cur);
15763      ++this->_M_impl._M_start._M_cur;
15764    }
15765  else
15766    _M_pop_front_aux();
15767       }
15768 # 1094 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15769       void
15770       pop_back()
15771       {
15772  if (this->_M_impl._M_finish._M_cur
15773      != this->_M_impl._M_finish._M_first)
15774    {
15775      --this->_M_impl._M_finish._M_cur;
15776      this->_M_impl.destroy(this->_M_impl._M_finish._M_cur);
15777    }
15778  else
15779    _M_pop_back_aux();
15780       }
15781 # 1116 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15782       iterator
15783       insert(iterator __position, const value_type& __x);
15784 # 1128 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15785       void
15786       insert(iterator __position, size_type __n, const value_type& __x)
15787       { _M_fill_insert(__position, __n, __x); }
15788 # 1142 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15789       template<typename _InputIterator>
15790         void
15791         insert(iterator __position, _InputIterator __first,
15792         _InputIterator __last)
15793         {
15794
15795    typedef typename std::__is_integer<_InputIterator>::__type _Integral;
15796    _M_insert_dispatch(__position, __first, __last, _Integral());
15797  }
15798 # 1165 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15799       iterator
15800       erase(iterator __position);
15801 # 1184 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15802       iterator
15803       erase(iterator __first, iterator __last);
15804 # 1196 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15805       void
15806       swap(deque& __x)
15807       {
15808  std::swap(this->_M_impl._M_start, __x._M_impl._M_start);
15809  std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish);
15810  std::swap(this->_M_impl._M_map, __x._M_impl._M_map);
15811  std::swap(this->_M_impl._M_map_size, __x._M_impl._M_map_size);
15812
15813
15814
15815  std::__alloc_swap<_Tp_alloc_type>::_S_do_it(_M_get_Tp_allocator(),
15816           __x._M_get_Tp_allocator());
15817       }
15818
15819
15820
15821
15822
15823
15824
15825       void
15826       clear()
15827       { _M_erase_at_end(begin()); }
15828
15829     protected:
15830
15831
15832
15833       template<typename _Integer>
15834         void
15835         _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type)
15836         {
15837    _M_initialize_map(__n);
15838    _M_fill_initialize(__x);
15839  }
15840
15841
15842       template<typename _InputIterator>
15843         void
15844         _M_initialize_dispatch(_InputIterator __first, _InputIterator __last,
15845           __false_type)
15846         {
15847    typedef typename std::iterator_traits<_InputIterator>::
15848      iterator_category _IterCategory;
15849    _M_range_initialize(__first, __last, _IterCategory());
15850  }
15851 # 1257 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15852       template<typename _InputIterator>
15853         void
15854         _M_range_initialize(_InputIterator __first, _InputIterator __last,
15855        std::input_iterator_tag);
15856
15857
15858       template<typename _ForwardIterator>
15859         void
15860         _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last,
15861        std::forward_iterator_tag);
15862 # 1281 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
15863       void
15864       _M_fill_initialize(const value_type& __value);
15865
15866
15867
15868
15869
15870       template<typename _Integer>
15871         void
15872         _M_assign_dispatch(_Integer __n, _Integer __val, __true_type)
15873         {
15874    _M_fill_assign(static_cast<size_type>(__n),
15875     static_cast<value_type>(__val));
15876  }
15877
15878
15879       template<typename _InputIterator>
15880         void
15881         _M_assign_dispatch(_InputIterator __first, _InputIterator __last,
15882       __false_type)
15883         {
15884    typedef typename std::iterator_traits<_InputIterator>::
15885      iterator_category _IterCategory;
15886    _M_assign_aux(__first, __last, _IterCategory());
15887  }
15888
15889
15890       template<typename _InputIterator>
15891         void
15892         _M_assign_aux(_InputIterator __first, _InputIterator __last,
15893         std::input_iterator_tag);
15894
15895
15896       template<typename _ForwardIterator>
15897         void
15898         _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last,
15899         std::forward_iterator_tag)
15900         {
15901    const size_type __len = std::distance(__first, __last);
15902    if (__len > size())
15903      {
15904        _ForwardIterator __mid = __first;
15905        std::advance(__mid, size());
15906        std::copy(__first, __mid, begin());
15907        insert(end(), __mid, __last);
15908      }
15909    else
15910      _M_erase_at_end(std::copy(__first, __last, begin()));
15911  }
15912
15913
15914
15915       void
15916       _M_fill_assign(size_type __n, const value_type& __val)
15917       {
15918  if (__n > size())
15919    {
15920      std::fill(begin(), end(), __val);
15921      insert(end(), __n - size(), __val);
15922    }
15923  else
15924    {
15925      _M_erase_at_end(begin() + difference_type(__n));
15926      std::fill(begin(), end(), __val);
15927    }
15928       }
15929
15930
15931
15932
15933
15934
15935
15936       void _M_push_back_aux(const value_type&);
15937
15938       void _M_push_front_aux(const value_type&);
15939
15940       void _M_pop_back_aux();
15941
15942       void _M_pop_front_aux();
15943
15944
15945
15946
15947
15948
15949       template<typename _Integer>
15950         void
15951         _M_insert_dispatch(iterator __pos,
15952       _Integer __n, _Integer __x, __true_type)
15953         {
15954    _M_fill_insert(__pos, static_cast<size_type>(__n),
15955     static_cast<value_type>(__x));
15956  }
15957
15958
15959       template<typename _InputIterator>
15960         void
15961         _M_insert_dispatch(iterator __pos,
15962       _InputIterator __first, _InputIterator __last,
15963       __false_type)
15964         {
15965    typedef typename std::iterator_traits<_InputIterator>::
15966      iterator_category _IterCategory;
15967           _M_range_insert_aux(__pos, __first, __last, _IterCategory());
15968  }
15969
15970
15971       template<typename _InputIterator>
15972         void
15973         _M_range_insert_aux(iterator __pos, _InputIterator __first,
15974        _InputIterator __last, std::input_iterator_tag);
15975
15976
15977       template<typename _ForwardIterator>
15978         void
15979         _M_range_insert_aux(iterator __pos, _ForwardIterator __first,
15980        _ForwardIterator __last, std::forward_iterator_tag);
15981
15982
15983
15984
15985       void
15986       _M_fill_insert(iterator __pos, size_type __n, const value_type& __x);
15987
15988
15989       iterator
15990       _M_insert_aux(iterator __pos, const value_type& __x);
15991
15992
15993       void
15994       _M_insert_aux(iterator __pos, size_type __n, const value_type& __x);
15995
15996
15997       template<typename _ForwardIterator>
15998         void
15999         _M_insert_aux(iterator __pos,
16000         _ForwardIterator __first, _ForwardIterator __last,
16001         size_type __n);
16002
16003
16004
16005
16006       void
16007       _M_destroy_data_aux(iterator __first, iterator __last);
16008
16009       void
16010       _M_destroy_data_dispatch(iterator, iterator, __true_type) { }
16011
16012       void
16013       _M_destroy_data_dispatch(iterator __first, iterator __last, __false_type)
16014       { _M_destroy_data_aux(__first, __last); }
16015
16016
16017
16018       template<typename _Alloc1>
16019         void
16020         _M_destroy_data(iterator __first, iterator __last, const _Alloc1&)
16021         { _M_destroy_data_aux(__first, __last); }
16022
16023       void
16024       _M_destroy_data(iterator __first, iterator __last,
16025         const std::allocator<_Tp>&)
16026       {
16027  typedef typename std::__is_scalar<value_type>::__type
16028    _Has_trivial_destructor;
16029  _M_destroy_data_dispatch(__first, __last, _Has_trivial_destructor());
16030       }
16031
16032
16033       void
16034       _M_erase_at_begin(iterator __pos)
16035       {
16036  _M_destroy_data(begin(), __pos, _M_get_Tp_allocator());
16037  _M_destroy_nodes(this->_M_impl._M_start._M_node, __pos._M_node);
16038  this->_M_impl._M_start = __pos;
16039       }
16040
16041
16042
16043       void
16044       _M_erase_at_end(iterator __pos)
16045       {
16046  _M_destroy_data(__pos, end(), _M_get_Tp_allocator());
16047  _M_destroy_nodes(__pos._M_node + 1,
16048     this->_M_impl._M_finish._M_node + 1);
16049  this->_M_impl._M_finish = __pos;
16050       }
16051 # 1477 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
16052       iterator
16053       _M_reserve_elements_at_front(size_type __n)
16054       {
16055  const size_type __vacancies = this->_M_impl._M_start._M_cur
16056                                - this->_M_impl._M_start._M_first;
16057  if (__n > __vacancies)
16058    _M_new_elements_at_front(__n - __vacancies);
16059  return this->_M_impl._M_start - difference_type(__n);
16060       }
16061
16062       iterator
16063       _M_reserve_elements_at_back(size_type __n)
16064       {
16065  const size_type __vacancies = (this->_M_impl._M_finish._M_last
16066            - this->_M_impl._M_finish._M_cur) - 1;
16067  if (__n > __vacancies)
16068    _M_new_elements_at_back(__n - __vacancies);
16069  return this->_M_impl._M_finish + difference_type(__n);
16070       }
16071
16072       void
16073       _M_new_elements_at_front(size_type __new_elements);
16074
16075       void
16076       _M_new_elements_at_back(size_type __new_elements);
16077 # 1515 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
16078       void
16079       _M_reserve_map_at_back(size_type __nodes_to_add = 1)
16080       {
16081  if (__nodes_to_add + 1 > this->_M_impl._M_map_size
16082      - (this->_M_impl._M_finish._M_node - this->_M_impl._M_map))
16083    _M_reallocate_map(__nodes_to_add, false);
16084       }
16085
16086       void
16087       _M_reserve_map_at_front(size_type __nodes_to_add = 1)
16088       {
16089  if (__nodes_to_add > size_type(this->_M_impl._M_start._M_node
16090            - this->_M_impl._M_map))
16091    _M_reallocate_map(__nodes_to_add, true);
16092       }
16093
16094       void
16095       _M_reallocate_map(size_type __nodes_to_add, bool __add_at_front);
16096
16097     };
16098 # 1547 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
16099   template<typename _Tp, typename _Alloc>
16100     inline bool
16101     operator==(const deque<_Tp, _Alloc>& __x,
16102                          const deque<_Tp, _Alloc>& __y)
16103     { return __x.size() == __y.size()
16104              && std::equal(__x.begin(), __x.end(), __y.begin()); }
16105 # 1565 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_deque.h" 3
16106   template<typename _Tp, typename _Alloc>
16107     inline bool
16108     operator<(const deque<_Tp, _Alloc>& __x,
16109        const deque<_Tp, _Alloc>& __y)
16110     { return std::lexicographical_compare(__x.begin(), __x.end(),
16111        __y.begin(), __y.end()); }
16112
16113
16114   template<typename _Tp, typename _Alloc>
16115     inline bool
16116     operator!=(const deque<_Tp, _Alloc>& __x,
16117         const deque<_Tp, _Alloc>& __y)
16118     { return !(__x == __y); }
16119
16120
16121   template<typename _Tp, typename _Alloc>
16122     inline bool
16123     operator>(const deque<_Tp, _Alloc>& __x,
16124        const deque<_Tp, _Alloc>& __y)
16125     { return __y < __x; }
16126
16127
16128   template<typename _Tp, typename _Alloc>
16129     inline bool
16130     operator<=(const deque<_Tp, _Alloc>& __x,
16131         const deque<_Tp, _Alloc>& __y)
16132     { return !(__y < __x); }
16133
16134
16135   template<typename _Tp, typename _Alloc>
16136     inline bool
16137     operator>=(const deque<_Tp, _Alloc>& __x,
16138         const deque<_Tp, _Alloc>& __y)
16139     { return !(__x < __y); }
16140
16141
16142   template<typename _Tp, typename _Alloc>
16143     inline void
16144     swap(deque<_Tp,_Alloc>& __x, deque<_Tp,_Alloc>& __y)
16145     { __x.swap(__y); }
16146
16147 }
16148 # 71 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/deque" 2 3
16149
16150
16151 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/deque.tcc" 1 3
16152 # 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/deque.tcc" 3
16153 #define _DEQUE_TCC 1
16154
16155 namespace std __attribute__ ((__visibility__ ("default"))) {
16156
16157   template <typename _Tp, typename _Alloc>
16158     deque<_Tp, _Alloc>&
16159     deque<_Tp, _Alloc>::
16160     operator=(const deque& __x)
16161     {
16162       const size_type __len = size();
16163       if (&__x != this)
16164  {
16165    if (__len >= __x.size())
16166      _M_erase_at_end(std::copy(__x.begin(), __x.end(),
16167           this->_M_impl._M_start));
16168    else
16169      {
16170        const_iterator __mid = __x.begin() + difference_type(__len);
16171        std::copy(__x.begin(), __mid, this->_M_impl._M_start);
16172        insert(this->_M_impl._M_finish, __mid, __x.end());
16173      }
16174  }
16175       return *this;
16176     }
16177
16178   template <typename _Tp, typename _Alloc>
16179     typename deque<_Tp, _Alloc>::iterator
16180     deque<_Tp, _Alloc>::
16181     insert(iterator __position, const value_type& __x)
16182     {
16183       if (__position._M_cur == this->_M_impl._M_start._M_cur)
16184  {
16185    push_front(__x);
16186    return this->_M_impl._M_start;
16187  }
16188       else if (__position._M_cur == this->_M_impl._M_finish._M_cur)
16189  {
16190    push_back(__x);
16191    iterator __tmp = this->_M_impl._M_finish;
16192    --__tmp;
16193    return __tmp;
16194  }
16195       else
16196         return _M_insert_aux(__position, __x);
16197     }
16198
16199   template <typename _Tp, typename _Alloc>
16200     typename deque<_Tp, _Alloc>::iterator
16201     deque<_Tp, _Alloc>::
16202     erase(iterator __position)
16203     {
16204       iterator __next = __position;
16205       ++__next;
16206       const difference_type __index = __position - begin();
16207       if (static_cast<size_type>(__index) < (size() >> 1))
16208  {
16209    if (__position != begin())
16210      std::copy_backward(begin(), __position, __next);
16211    pop_front();
16212  }
16213       else
16214  {
16215    if (__next != end())
16216      std::copy(__next, end(), __position);
16217    pop_back();
16218  }
16219       return begin() + __index;
16220     }
16221
16222   template <typename _Tp, typename _Alloc>
16223     typename deque<_Tp, _Alloc>::iterator
16224     deque<_Tp, _Alloc>::
16225     erase(iterator __first, iterator __last)
16226     {
16227       if (__first == begin() && __last == end())
16228  {
16229    clear();
16230    return end();
16231  }
16232       else
16233  {
16234    const difference_type __n = __last - __first;
16235    const difference_type __elems_before = __first - begin();
16236    if (static_cast<size_type>(__elems_before) <= (size() - __n) / 2)
16237      {
16238        if (__first != begin())
16239   std::copy_backward(begin(), __first, __last);
16240        _M_erase_at_begin(begin() + __n);
16241      }
16242    else
16243      {
16244        if (__last != end())
16245   std::copy(__last, end(), __first);
16246        _M_erase_at_end(end() - __n);
16247      }
16248    return begin() + __elems_before;
16249  }
16250     }
16251
16252   template <typename _Tp, class _Alloc>
16253     template <typename _InputIterator>
16254       void
16255       deque<_Tp, _Alloc>::
16256       _M_assign_aux(_InputIterator __first, _InputIterator __last,
16257       std::input_iterator_tag)
16258       {
16259         iterator __cur = begin();
16260         for (; __first != __last && __cur != end(); ++__cur, ++__first)
16261           *__cur = *__first;
16262         if (__first == __last)
16263           _M_erase_at_end(__cur);
16264         else
16265           insert(end(), __first, __last);
16266       }
16267
16268   template <typename _Tp, typename _Alloc>
16269     void
16270     deque<_Tp, _Alloc>::
16271     _M_fill_insert(iterator __pos, size_type __n, const value_type& __x)
16272     {
16273       if (__pos._M_cur == this->_M_impl._M_start._M_cur)
16274  {
16275    iterator __new_start = _M_reserve_elements_at_front(__n);
16276    try
16277      {
16278        std::__uninitialized_fill_a(__new_start, this->_M_impl._M_start,
16279        __x, _M_get_Tp_allocator());
16280        this->_M_impl._M_start = __new_start;
16281      }
16282    catch(...)
16283      {
16284        _M_destroy_nodes(__new_start._M_node,
16285           this->_M_impl._M_start._M_node);
16286        throw;
16287      }
16288  }
16289       else if (__pos._M_cur == this->_M_impl._M_finish._M_cur)
16290  {
16291    iterator __new_finish = _M_reserve_elements_at_back(__n);
16292    try
16293      {
16294        std::__uninitialized_fill_a(this->_M_impl._M_finish,
16295        __new_finish, __x,
16296        _M_get_Tp_allocator());
16297        this->_M_impl._M_finish = __new_finish;
16298      }
16299    catch(...)
16300      {
16301        _M_destroy_nodes(this->_M_impl._M_finish._M_node + 1,
16302           __new_finish._M_node + 1);
16303        throw;
16304      }
16305  }
16306       else
16307         _M_insert_aux(__pos, __n, __x);
16308     }
16309
16310   template <typename _Tp, typename _Alloc>
16311     void
16312     deque<_Tp, _Alloc>::
16313     _M_fill_initialize(const value_type& __value)
16314     {
16315       _Map_pointer __cur;
16316       try
16317         {
16318           for (__cur = this->_M_impl._M_start._M_node;
16319         __cur < this->_M_impl._M_finish._M_node;
16320         ++__cur)
16321             std::__uninitialized_fill_a(*__cur, *__cur + _S_buffer_size(),
16322      __value, _M_get_Tp_allocator());
16323           std::__uninitialized_fill_a(this->_M_impl._M_finish._M_first,
16324           this->_M_impl._M_finish._M_cur,
16325           __value, _M_get_Tp_allocator());
16326         }
16327       catch(...)
16328         {
16329           std::_Destroy(this->_M_impl._M_start, iterator(*__cur, __cur),
16330    _M_get_Tp_allocator());
16331           throw;
16332         }
16333     }
16334
16335   template <typename _Tp, typename _Alloc>
16336     template <typename _InputIterator>
16337       void
16338       deque<_Tp, _Alloc>::
16339       _M_range_initialize(_InputIterator __first, _InputIterator __last,
16340                           std::input_iterator_tag)
16341       {
16342         this->_M_initialize_map(0);
16343         try
16344           {
16345             for (; __first != __last; ++__first)
16346               push_back(*__first);
16347           }
16348         catch(...)
16349           {
16350             clear();
16351             throw;
16352           }
16353       }
16354
16355   template <typename _Tp, typename _Alloc>
16356     template <typename _ForwardIterator>
16357       void
16358       deque<_Tp, _Alloc>::
16359       _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last,
16360                           std::forward_iterator_tag)
16361       {
16362         const size_type __n = std::distance(__first, __last);
16363         this->_M_initialize_map(__n);
16364
16365         _Map_pointer __cur_node;
16366         try
16367           {
16368             for (__cur_node = this->_M_impl._M_start._M_node;
16369                  __cur_node < this->_M_impl._M_finish._M_node;
16370                  ++__cur_node)
16371        {
16372   _ForwardIterator __mid = __first;
16373   std::advance(__mid, _S_buffer_size());
16374   std::__uninitialized_copy_a(__first, __mid, *__cur_node,
16375          _M_get_Tp_allocator());
16376   __first = __mid;
16377        }
16378             std::__uninitialized_copy_a(__first, __last,
16379      this->_M_impl._M_finish._M_first,
16380      _M_get_Tp_allocator());
16381           }
16382         catch(...)
16383           {
16384             std::_Destroy(this->_M_impl._M_start,
16385      iterator(*__cur_node, __cur_node),
16386      _M_get_Tp_allocator());
16387             throw;
16388           }
16389       }
16390
16391
16392   template <typename _Tp, typename _Alloc>
16393     void
16394     deque<_Tp, _Alloc>::
16395     _M_push_back_aux(const value_type& __t)
16396     {
16397       value_type __t_copy = __t;
16398       _M_reserve_map_at_back();
16399       *(this->_M_impl._M_finish._M_node + 1) = this->_M_allocate_node();
16400       try
16401         {
16402           this->_M_impl.construct(this->_M_impl._M_finish._M_cur, __t_copy);
16403           this->_M_impl._M_finish._M_set_node(this->_M_impl._M_finish._M_node
16404            + 1);
16405           this->_M_impl._M_finish._M_cur = this->_M_impl._M_finish._M_first;
16406         }
16407       catch(...)
16408         {
16409           _M_deallocate_node(*(this->_M_impl._M_finish._M_node + 1));
16410           throw;
16411         }
16412     }
16413
16414
16415   template <typename _Tp, typename _Alloc>
16416     void
16417     deque<_Tp, _Alloc>::
16418     _M_push_front_aux(const value_type& __t)
16419     {
16420       value_type __t_copy = __t;
16421       _M_reserve_map_at_front();
16422       *(this->_M_impl._M_start._M_node - 1) = this->_M_allocate_node();
16423       try
16424         {
16425           this->_M_impl._M_start._M_set_node(this->_M_impl._M_start._M_node
16426           - 1);
16427           this->_M_impl._M_start._M_cur = this->_M_impl._M_start._M_last - 1;
16428           this->_M_impl.construct(this->_M_impl._M_start._M_cur, __t_copy);
16429         }
16430       catch(...)
16431         {
16432           ++this->_M_impl._M_start;
16433           _M_deallocate_node(*(this->_M_impl._M_start._M_node - 1));
16434           throw;
16435         }
16436     }
16437
16438
16439   template <typename _Tp, typename _Alloc>
16440     void deque<_Tp, _Alloc>::
16441     _M_pop_back_aux()
16442     {
16443       _M_deallocate_node(this->_M_impl._M_finish._M_first);
16444       this->_M_impl._M_finish._M_set_node(this->_M_impl._M_finish._M_node - 1);
16445       this->_M_impl._M_finish._M_cur = this->_M_impl._M_finish._M_last - 1;
16446       this->_M_impl.destroy(this->_M_impl._M_finish._M_cur);
16447     }
16448
16449
16450
16451
16452
16453
16454   template <typename _Tp, typename _Alloc>
16455     void deque<_Tp, _Alloc>::
16456     _M_pop_front_aux()
16457     {
16458       this->_M_impl.destroy(this->_M_impl._M_start._M_cur);
16459       _M_deallocate_node(this->_M_impl._M_start._M_first);
16460       this->_M_impl._M_start._M_set_node(this->_M_impl._M_start._M_node + 1);
16461       this->_M_impl._M_start._M_cur = this->_M_impl._M_start._M_first;
16462     }
16463
16464   template <typename _Tp, typename _Alloc>
16465     template <typename _InputIterator>
16466       void
16467       deque<_Tp, _Alloc>::
16468       _M_range_insert_aux(iterator __pos,
16469                           _InputIterator __first, _InputIterator __last,
16470                           std::input_iterator_tag)
16471       { std::copy(__first, __last, std::inserter(*this, __pos)); }
16472
16473   template <typename _Tp, typename _Alloc>
16474     template <typename _ForwardIterator>
16475       void
16476       deque<_Tp, _Alloc>::
16477       _M_range_insert_aux(iterator __pos,
16478                           _ForwardIterator __first, _ForwardIterator __last,
16479                           std::forward_iterator_tag)
16480       {
16481         const size_type __n = std::distance(__first, __last);
16482         if (__pos._M_cur == this->_M_impl._M_start._M_cur)
16483    {
16484      iterator __new_start = _M_reserve_elements_at_front(__n);
16485      try
16486        {
16487   std::__uninitialized_copy_a(__first, __last, __new_start,
16488          _M_get_Tp_allocator());
16489   this->_M_impl._M_start = __new_start;
16490        }
16491      catch(...)
16492        {
16493   _M_destroy_nodes(__new_start._M_node,
16494      this->_M_impl._M_start._M_node);
16495   throw;
16496        }
16497    }
16498         else if (__pos._M_cur == this->_M_impl._M_finish._M_cur)
16499    {
16500      iterator __new_finish = _M_reserve_elements_at_back(__n);
16501      try
16502        {
16503   std::__uninitialized_copy_a(__first, __last,
16504          this->_M_impl._M_finish,
16505          _M_get_Tp_allocator());
16506   this->_M_impl._M_finish = __new_finish;
16507        }
16508      catch(...)
16509        {
16510   _M_destroy_nodes(this->_M_impl._M_finish._M_node + 1,
16511      __new_finish._M_node + 1);
16512   throw;
16513        }
16514    }
16515         else
16516           _M_insert_aux(__pos, __first, __last, __n);
16517       }
16518
16519   template <typename _Tp, typename _Alloc>
16520     typename deque<_Tp, _Alloc>::iterator
16521     deque<_Tp, _Alloc>::
16522     _M_insert_aux(iterator __pos, const value_type& __x)
16523     {
16524       difference_type __index = __pos - this->_M_impl._M_start;
16525       value_type __x_copy = __x;
16526       if (static_cast<size_type>(__index) < size() / 2)
16527  {
16528    push_front(front());
16529    iterator __front1 = this->_M_impl._M_start;
16530    ++__front1;
16531    iterator __front2 = __front1;
16532    ++__front2;
16533    __pos = this->_M_impl._M_start + __index;
16534    iterator __pos1 = __pos;
16535    ++__pos1;
16536    std::copy(__front2, __pos1, __front1);
16537  }
16538       else
16539  {
16540    push_back(back());
16541    iterator __back1 = this->_M_impl._M_finish;
16542    --__back1;
16543    iterator __back2 = __back1;
16544    --__back2;
16545    __pos = this->_M_impl._M_start + __index;
16546    std::copy_backward(__pos, __back2, __back1);
16547  }
16548       *__pos = __x_copy;
16549       return __pos;
16550     }
16551
16552   template <typename _Tp, typename _Alloc>
16553     void
16554     deque<_Tp, _Alloc>::
16555     _M_insert_aux(iterator __pos, size_type __n, const value_type& __x)
16556     {
16557       const difference_type __elems_before = __pos - this->_M_impl._M_start;
16558       const size_type __length = this->size();
16559       value_type __x_copy = __x;
16560       if (__elems_before < difference_type(__length / 2))
16561  {
16562    iterator __new_start = _M_reserve_elements_at_front(__n);
16563    iterator __old_start = this->_M_impl._M_start;
16564    __pos = this->_M_impl._M_start + __elems_before;
16565    try
16566      {
16567        if (__elems_before >= difference_type(__n))
16568   {
16569     iterator __start_n = (this->_M_impl._M_start
16570      + difference_type(__n));
16571     std::__uninitialized_copy_a(this->_M_impl._M_start,
16572            __start_n, __new_start,
16573            _M_get_Tp_allocator());
16574     this->_M_impl._M_start = __new_start;
16575     std::copy(__start_n, __pos, __old_start);
16576     std::fill(__pos - difference_type(__n), __pos, __x_copy);
16577   }
16578        else
16579   {
16580     std::__uninitialized_copy_fill(this->_M_impl._M_start,
16581        __pos, __new_start,
16582        this->_M_impl._M_start,
16583        __x_copy,
16584        _M_get_Tp_allocator());
16585     this->_M_impl._M_start = __new_start;
16586     std::fill(__old_start, __pos, __x_copy);
16587   }
16588      }
16589    catch(...)
16590      {
16591        _M_destroy_nodes(__new_start._M_node,
16592           this->_M_impl._M_start._M_node);
16593        throw;
16594      }
16595  }
16596       else
16597  {
16598    iterator __new_finish = _M_reserve_elements_at_back(__n);
16599    iterator __old_finish = this->_M_impl._M_finish;
16600    const difference_type __elems_after =
16601      difference_type(__length) - __elems_before;
16602    __pos = this->_M_impl._M_finish - __elems_after;
16603    try
16604      {
16605        if (__elems_after > difference_type(__n))
16606   {
16607     iterator __finish_n = (this->_M_impl._M_finish
16608       - difference_type(__n));
16609     std::__uninitialized_copy_a(__finish_n,
16610            this->_M_impl._M_finish,
16611            this->_M_impl._M_finish,
16612            _M_get_Tp_allocator());
16613     this->_M_impl._M_finish = __new_finish;
16614     std::copy_backward(__pos, __finish_n, __old_finish);
16615     std::fill(__pos, __pos + difference_type(__n), __x_copy);
16616   }
16617        else
16618   {
16619     std::__uninitialized_fill_copy(this->_M_impl._M_finish,
16620        __pos + difference_type(__n),
16621        __x_copy, __pos,
16622        this->_M_impl._M_finish,
16623        _M_get_Tp_allocator());
16624     this->_M_impl._M_finish = __new_finish;
16625     std::fill(__pos, __old_finish, __x_copy);
16626   }
16627      }
16628    catch(...)
16629      {
16630        _M_destroy_nodes(this->_M_impl._M_finish._M_node + 1,
16631           __new_finish._M_node + 1);
16632        throw;
16633      }
16634  }
16635     }
16636
16637   template <typename _Tp, typename _Alloc>
16638     template <typename _ForwardIterator>
16639       void
16640       deque<_Tp, _Alloc>::
16641       _M_insert_aux(iterator __pos,
16642                     _ForwardIterator __first, _ForwardIterator __last,
16643                     size_type __n)
16644       {
16645         const difference_type __elemsbefore = __pos - this->_M_impl._M_start;
16646         const size_type __length = size();
16647         if (static_cast<size_type>(__elemsbefore) < __length / 2)
16648    {
16649      iterator __new_start = _M_reserve_elements_at_front(__n);
16650      iterator __old_start = this->_M_impl._M_start;
16651      __pos = this->_M_impl._M_start + __elemsbefore;
16652      try
16653        {
16654   if (__elemsbefore >= difference_type(__n))
16655     {
16656       iterator __start_n = (this->_M_impl._M_start
16657        + difference_type(__n));
16658       std::__uninitialized_copy_a(this->_M_impl._M_start,
16659       __start_n, __new_start,
16660       _M_get_Tp_allocator());
16661       this->_M_impl._M_start = __new_start;
16662       std::copy(__start_n, __pos, __old_start);
16663       std::copy(__first, __last, __pos - difference_type(__n));
16664     }
16665   else
16666     {
16667       _ForwardIterator __mid = __first;
16668       std::advance(__mid, difference_type(__n) - __elemsbefore);
16669       std::__uninitialized_copy_copy(this->_M_impl._M_start,
16670          __pos, __first, __mid,
16671          __new_start,
16672          _M_get_Tp_allocator());
16673       this->_M_impl._M_start = __new_start;
16674       std::copy(__mid, __last, __old_start);
16675     }
16676        }
16677      catch(...)
16678        {
16679   _M_destroy_nodes(__new_start._M_node,
16680      this->_M_impl._M_start._M_node);
16681   throw;
16682        }
16683    }
16684         else
16685         {
16686           iterator __new_finish = _M_reserve_elements_at_back(__n);
16687           iterator __old_finish = this->_M_impl._M_finish;
16688           const difference_type __elemsafter =
16689             difference_type(__length) - __elemsbefore;
16690           __pos = this->_M_impl._M_finish - __elemsafter;
16691           try
16692             {
16693               if (__elemsafter > difference_type(__n))
16694   {
16695     iterator __finish_n = (this->_M_impl._M_finish
16696       - difference_type(__n));
16697     std::__uninitialized_copy_a(__finish_n,
16698            this->_M_impl._M_finish,
16699            this->_M_impl._M_finish,
16700            _M_get_Tp_allocator());
16701     this->_M_impl._M_finish = __new_finish;
16702     std::copy_backward(__pos, __finish_n, __old_finish);
16703     std::copy(__first, __last, __pos);
16704   }
16705               else
16706   {
16707     _ForwardIterator __mid = __first;
16708     std::advance(__mid, __elemsafter);
16709     std::__uninitialized_copy_copy(__mid, __last, __pos,
16710        this->_M_impl._M_finish,
16711        this->_M_impl._M_finish,
16712        _M_get_Tp_allocator());
16713     this->_M_impl._M_finish = __new_finish;
16714     std::copy(__first, __mid, __pos);
16715   }
16716             }
16717           catch(...)
16718             {
16719               _M_destroy_nodes(this->_M_impl._M_finish._M_node + 1,
16720           __new_finish._M_node + 1);
16721               throw;
16722             }
16723         }
16724       }
16725
16726    template<typename _Tp, typename _Alloc>
16727      void
16728      deque<_Tp, _Alloc>::
16729      _M_destroy_data_aux(iterator __first, iterator __last)
16730      {
16731        for (_Map_pointer __node = __first._M_node + 1;
16732      __node < __last._M_node; ++__node)
16733   std::_Destroy(*__node, *__node + _S_buffer_size(),
16734          _M_get_Tp_allocator());
16735
16736        if (__first._M_node != __last._M_node)
16737   {
16738     std::_Destroy(__first._M_cur, __first._M_last,
16739     _M_get_Tp_allocator());
16740     std::_Destroy(__last._M_first, __last._M_cur,
16741     _M_get_Tp_allocator());
16742   }
16743        else
16744   std::_Destroy(__first._M_cur, __last._M_cur,
16745          _M_get_Tp_allocator());
16746      }
16747
16748   template <typename _Tp, typename _Alloc>
16749     void
16750     deque<_Tp, _Alloc>::
16751     _M_new_elements_at_front(size_type __new_elems)
16752     {
16753       if (this->max_size() - this->size() < __new_elems)
16754  __throw_length_error(("deque::_M_new_elements_at_front"));
16755
16756       const size_type __new_nodes = ((__new_elems + _S_buffer_size() - 1)
16757          / _S_buffer_size());
16758       _M_reserve_map_at_front(__new_nodes);
16759       size_type __i;
16760       try
16761         {
16762           for (__i = 1; __i <= __new_nodes; ++__i)
16763             *(this->_M_impl._M_start._M_node - __i) = this->_M_allocate_node();
16764         }
16765       catch(...)
16766         {
16767           for (size_type __j = 1; __j < __i; ++__j)
16768             _M_deallocate_node(*(this->_M_impl._M_start._M_node - __j));
16769           throw;
16770         }
16771     }
16772
16773   template <typename _Tp, typename _Alloc>
16774     void
16775     deque<_Tp, _Alloc>::
16776     _M_new_elements_at_back(size_type __new_elems)
16777     {
16778       if (this->max_size() - this->size() < __new_elems)
16779  __throw_length_error(("deque::_M_new_elements_at_back"));
16780
16781       const size_type __new_nodes = ((__new_elems + _S_buffer_size() - 1)
16782          / _S_buffer_size());
16783       _M_reserve_map_at_back(__new_nodes);
16784       size_type __i;
16785       try
16786         {
16787           for (__i = 1; __i <= __new_nodes; ++__i)
16788             *(this->_M_impl._M_finish._M_node + __i) = this->_M_allocate_node();
16789         }
16790       catch(...)
16791         {
16792           for (size_type __j = 1; __j < __i; ++__j)
16793             _M_deallocate_node(*(this->_M_impl._M_finish._M_node + __j));
16794           throw;
16795         }
16796     }
16797
16798   template <typename _Tp, typename _Alloc>
16799     void
16800     deque<_Tp, _Alloc>::
16801     _M_reallocate_map(size_type __nodes_to_add, bool __add_at_front)
16802     {
16803       const size_type __old_num_nodes
16804  = this->_M_impl._M_finish._M_node - this->_M_impl._M_start._M_node + 1;
16805       const size_type __new_num_nodes = __old_num_nodes + __nodes_to_add;
16806
16807       _Map_pointer __new_nstart;
16808       if (this->_M_impl._M_map_size > 2 * __new_num_nodes)
16809  {
16810    __new_nstart = this->_M_impl._M_map + (this->_M_impl._M_map_size
16811       - __new_num_nodes) / 2
16812                   + (__add_at_front ? __nodes_to_add : 0);
16813    if (__new_nstart < this->_M_impl._M_start._M_node)
16814      std::copy(this->_M_impl._M_start._M_node,
16815         this->_M_impl._M_finish._M_node + 1,
16816         __new_nstart);
16817    else
16818      std::copy_backward(this->_M_impl._M_start._M_node,
16819           this->_M_impl._M_finish._M_node + 1,
16820           __new_nstart + __old_num_nodes);
16821  }
16822       else
16823  {
16824    size_type __new_map_size = this->_M_impl._M_map_size
16825                               + std::max(this->_M_impl._M_map_size,
16826       __nodes_to_add) + 2;
16827
16828    _Map_pointer __new_map = this->_M_allocate_map(__new_map_size);
16829    __new_nstart = __new_map + (__new_map_size - __new_num_nodes) / 2
16830                   + (__add_at_front ? __nodes_to_add : 0);
16831    std::copy(this->_M_impl._M_start._M_node,
16832       this->_M_impl._M_finish._M_node + 1,
16833       __new_nstart);
16834    _M_deallocate_map(this->_M_impl._M_map, this->_M_impl._M_map_size);
16835
16836    this->_M_impl._M_map = __new_map;
16837    this->_M_impl._M_map_size = __new_map_size;
16838  }
16839
16840       this->_M_impl._M_start._M_set_node(__new_nstart);
16841       this->_M_impl._M_finish._M_set_node(__new_nstart + __old_num_nodes - 1);
16842     }
16843
16844
16845
16846   template<typename _Tp>
16847     void
16848     fill(const _Deque_iterator<_Tp, _Tp&, _Tp*>& __first,
16849   const _Deque_iterator<_Tp, _Tp&, _Tp*>& __last, const _Tp& __value)
16850     {
16851       typedef typename _Deque_iterator<_Tp, _Tp&, _Tp*>::_Self _Self;
16852
16853       for (typename _Self::_Map_pointer __node = __first._M_node + 1;
16854            __node < __last._M_node; ++__node)
16855  std::fill(*__node, *__node + _Self::_S_buffer_size(), __value);
16856
16857       if (__first._M_node != __last._M_node)
16858  {
16859    std::fill(__first._M_cur, __first._M_last, __value);
16860    std::fill(__last._M_first, __last._M_cur, __value);
16861  }
16862       else
16863  std::fill(__first._M_cur, __last._M_cur, __value);
16864     }
16865
16866 }
16867 # 74 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/deque" 2 3
16868 # 40 "Command.h" 2
16869
16870 namespace aria2 {
16871
16872 class Logger;
16873
16874 typedef int32_t CommandUuid;
16875
16876 class Command {
16877 public:
16878   enum STATUS {
16879     STATUS_ALL,
16880     STATUS_INACTIVE,
16881     STATUS_ACTIVE,
16882     STATUS_REALTIME
16883   };
16884 private:
16885   CommandUuid uuid;
16886   static int32_t uuidGen;
16887   STATUS status;
16888 protected:
16889   int32_t cuid;
16890   const Logger* logger;
16891 public:
16892   Command(int32_t cuid);
16893
16894   virtual ~Command() {}
16895
16896   virtual bool execute() = 0;
16897
16898   int32_t getCuid() const { return cuid; }
16899
16900   const CommandUuid& getUuid() const { return uuid; }
16901
16902   void setStatusActive() { this->status = STATUS_ACTIVE; }
16903
16904   void setStatusInactive() { this->status = STATUS_INACTIVE; }
16905
16906   void setStatusRealtime() { this->status = STATUS_REALTIME; }
16907
16908   bool statusMatch(Command::STATUS statusFilter) const
16909   {
16910     return statusFilter <= status;
16911   }
16912
16913   void transitStatus();
16914 };
16915
16916 typedef std::deque<Command*> Commands;
16917
16918 }
16919 # 36 "Command.cc" 2
16920 # 1 "LogFactory.h" 1
16921 # 36 "LogFactory.h"
16922 #define _D_LOG_FACTORY_H_ 
16923
16924
16925 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/string" 1 3
16926 # 41 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/string" 3
16927 #define _GLIBCXX_STRING 1
16928
16929        
16930 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/string" 3
16931
16932
16933
16934 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/char_traits.h" 1 3
16935 # 41 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/char_traits.h" 3
16936 #define _CHAR_TRAITS_H 1
16937
16938        
16939 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/char_traits.h" 3
16940
16941
16942
16943
16944
16945 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
16946 # 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/char_traits.h" 3
16947   template <class _CharT>
16948     struct _Char_types
16949     {
16950       typedef unsigned long int_type;
16951       typedef std::streampos pos_type;
16952       typedef std::streamoff off_type;
16953       typedef std::mbstate_t state_type;
16954     };
16955 # 86 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/char_traits.h" 3
16956   template<typename _CharT>
16957     struct char_traits
16958     {
16959       typedef _CharT char_type;
16960       typedef typename _Char_types<_CharT>::int_type int_type;
16961       typedef typename _Char_types<_CharT>::pos_type pos_type;
16962       typedef typename _Char_types<_CharT>::off_type off_type;
16963       typedef typename _Char_types<_CharT>::state_type state_type;
16964
16965       static void
16966       assign(char_type& __c1, const char_type& __c2)
16967       { __c1 = __c2; }
16968
16969       static bool
16970       eq(const char_type& __c1, const char_type& __c2)
16971       { return __c1 == __c2; }
16972
16973       static bool
16974       lt(const char_type& __c1, const char_type& __c2)
16975       { return __c1 < __c2; }
16976
16977       static int
16978       compare(const char_type* __s1, const char_type* __s2, std::size_t __n);
16979
16980       static std::size_t
16981       length(const char_type* __s);
16982
16983       static const char_type*
16984       find(const char_type* __s, std::size_t __n, const char_type& __a);
16985
16986       static char_type*
16987       move(char_type* __s1, const char_type* __s2, std::size_t __n);
16988
16989       static char_type*
16990       copy(char_type* __s1, const char_type* __s2, std::size_t __n);
16991
16992       static char_type*
16993       assign(char_type* __s, std::size_t __n, char_type __a);
16994
16995       static char_type
16996       to_char_type(const int_type& __c)
16997       { return static_cast<char_type>(__c); }
16998
16999       static int_type
17000       to_int_type(const char_type& __c)
17001       { return static_cast<int_type>(__c); }
17002
17003       static bool
17004       eq_int_type(const int_type& __c1, const int_type& __c2)
17005       { return __c1 == __c2; }
17006
17007       static int_type
17008       eof()
17009       { return static_cast<int_type>((-1)); }
17010
17011       static int_type
17012       not_eof(const int_type& __c)
17013       { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); }
17014     };
17015
17016   template<typename _CharT>
17017     int
17018     char_traits<_CharT>::
17019     compare(const char_type* __s1, const char_type* __s2, std::size_t __n)
17020     {
17021       for (std::size_t __i = 0; __i < __n; ++__i)
17022  if (lt(__s1[__i], __s2[__i]))
17023    return -1;
17024  else if (lt(__s2[__i], __s1[__i]))
17025    return 1;
17026       return 0;
17027     }
17028
17029   template<typename _CharT>
17030     std::size_t
17031     char_traits<_CharT>::
17032     length(const char_type* __p)
17033     {
17034       std::size_t __i = 0;
17035       while (!eq(__p[__i], char_type()))
17036         ++__i;
17037       return __i;
17038     }
17039
17040   template<typename _CharT>
17041     const typename char_traits<_CharT>::char_type*
17042     char_traits<_CharT>::
17043     find(const char_type* __s, std::size_t __n, const char_type& __a)
17044     {
17045       for (std::size_t __i = 0; __i < __n; ++__i)
17046         if (eq(__s[__i], __a))
17047           return __s + __i;
17048       return 0;
17049     }
17050
17051   template<typename _CharT>
17052     typename char_traits<_CharT>::char_type*
17053     char_traits<_CharT>::
17054     move(char_type* __s1, const char_type* __s2, std::size_t __n)
17055     {
17056       return static_cast<_CharT*>(std::memmove(__s1, __s2,
17057             __n * sizeof(char_type)));
17058     }
17059
17060   template<typename _CharT>
17061     typename char_traits<_CharT>::char_type*
17062     char_traits<_CharT>::
17063     copy(char_type* __s1, const char_type* __s2, std::size_t __n)
17064     {
17065       std::copy(__s2, __s2 + __n, __s1);
17066       return __s1;
17067     }
17068
17069   template<typename _CharT>
17070     typename char_traits<_CharT>::char_type*
17071     char_traits<_CharT>::
17072     assign(char_type* __s, std::size_t __n, char_type __a)
17073     {
17074       std::fill_n(__s, __n, __a);
17075       return __s;
17076     }
17077
17078 }
17079
17080 namespace std __attribute__ ((__visibility__ ("default"))) {
17081 # 225 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/char_traits.h" 3
17082   template<class _CharT>
17083     struct char_traits : public __gnu_cxx::char_traits<_CharT>
17084     { };
17085
17086
17087
17088   template<>
17089     struct char_traits<char>
17090     {
17091       typedef char char_type;
17092       typedef int int_type;
17093       typedef streampos pos_type;
17094       typedef streamoff off_type;
17095       typedef mbstate_t state_type;
17096
17097       static void
17098       assign(char_type& __c1, const char_type& __c2)
17099       { __c1 = __c2; }
17100
17101       static bool
17102       eq(const char_type& __c1, const char_type& __c2)
17103       { return __c1 == __c2; }
17104
17105       static bool
17106       lt(const char_type& __c1, const char_type& __c2)
17107       { return __c1 < __c2; }
17108
17109       static int
17110       compare(const char_type* __s1, const char_type* __s2, size_t __n)
17111       { return memcmp(__s1, __s2, __n); }
17112
17113       static size_t
17114       length(const char_type* __s)
17115       { return strlen(__s); }
17116
17117       static const char_type*
17118       find(const char_type* __s, size_t __n, const char_type& __a)
17119       { return static_cast<const char_type*>(memchr(__s, __a, __n)); }
17120
17121       static char_type*
17122       move(char_type* __s1, const char_type* __s2, size_t __n)
17123       { return static_cast<char_type*>(memmove(__s1, __s2, __n)); }
17124
17125       static char_type*
17126       copy(char_type* __s1, const char_type* __s2, size_t __n)
17127       { return static_cast<char_type*>(memcpy(__s1, __s2, __n)); }
17128
17129       static char_type*
17130       assign(char_type* __s, size_t __n, char_type __a)
17131       { return static_cast<char_type*>(memset(__s, __a, __n)); }
17132
17133       static char_type
17134       to_char_type(const int_type& __c)
17135       { return static_cast<char_type>(__c); }
17136
17137
17138
17139       static int_type
17140       to_int_type(const char_type& __c)
17141       { return static_cast<int_type>(static_cast<unsigned char>(__c)); }
17142
17143       static bool
17144       eq_int_type(const int_type& __c1, const int_type& __c2)
17145       { return __c1 == __c2; }
17146
17147       static int_type
17148       eof() { return static_cast<int_type>((-1)); }
17149
17150       static int_type
17151       not_eof(const int_type& __c)
17152       { return (__c == eof()) ? 0 : __c; }
17153   };
17154
17155
17156
17157
17158   template<>
17159     struct char_traits<wchar_t>
17160     {
17161       typedef wchar_t char_type;
17162       typedef wint_t int_type;
17163       typedef streamoff off_type;
17164       typedef wstreampos pos_type;
17165       typedef mbstate_t state_type;
17166
17167       static void
17168       assign(char_type& __c1, const char_type& __c2)
17169       { __c1 = __c2; }
17170
17171       static bool
17172       eq(const char_type& __c1, const char_type& __c2)
17173       { return __c1 == __c2; }
17174
17175       static bool
17176       lt(const char_type& __c1, const char_type& __c2)
17177       { return __c1 < __c2; }
17178
17179       static int
17180       compare(const char_type* __s1, const char_type* __s2, size_t __n)
17181       { return wmemcmp(__s1, __s2, __n); }
17182
17183       static size_t
17184       length(const char_type* __s)
17185       { return wcslen(__s); }
17186
17187       static const char_type*
17188       find(const char_type* __s, size_t __n, const char_type& __a)
17189       { return wmemchr(__s, __a, __n); }
17190
17191       static char_type*
17192       move(char_type* __s1, const char_type* __s2, size_t __n)
17193       { return wmemmove(__s1, __s2, __n); }
17194
17195       static char_type*
17196       copy(char_type* __s1, const char_type* __s2, size_t __n)
17197       { return wmemcpy(__s1, __s2, __n); }
17198
17199       static char_type*
17200       assign(char_type* __s, size_t __n, char_type __a)
17201       { return wmemset(__s, __a, __n); }
17202
17203       static char_type
17204       to_char_type(const int_type& __c) { return char_type(__c); }
17205
17206       static int_type
17207       to_int_type(const char_type& __c) { return int_type(__c); }
17208
17209       static bool
17210       eq_int_type(const int_type& __c1, const int_type& __c2)
17211       { return __c1 == __c2; }
17212
17213       static int_type
17214       eof() { return static_cast<int_type>((0xffffffffu)); }
17215
17216       static int_type
17217       not_eof(const int_type& __c)
17218       { return eq_int_type(__c, eof()) ? 0 : __c; }
17219   };
17220
17221
17222 }
17223 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/string" 2 3
17224 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 1 3
17225 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
17226 #define _GLIBCXX_MEMORY 1
17227
17228        
17229 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
17230
17231
17232
17233
17234
17235
17236 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_raw_storage_iter.h" 1 3
17237 # 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_raw_storage_iter.h" 3
17238 #define _STL_RAW_STORAGE_ITERATOR_H 1
17239
17240 namespace std __attribute__ ((__visibility__ ("default"))) {
17241
17242
17243
17244
17245
17246   template <class _ForwardIterator, class _Tp>
17247     class raw_storage_iterator
17248     : public iterator<output_iterator_tag, void, void, void, void>
17249     {
17250     protected:
17251       _ForwardIterator _M_iter;
17252
17253     public:
17254       explicit
17255       raw_storage_iterator(_ForwardIterator __x)
17256       : _M_iter(__x) {}
17257
17258       raw_storage_iterator&
17259       operator*() { return *this; }
17260
17261       raw_storage_iterator&
17262       operator=(const _Tp& __element)
17263       {
17264  std::_Construct(&*_M_iter, __element);
17265  return *this;
17266       }
17267
17268       raw_storage_iterator<_ForwardIterator, _Tp>&
17269       operator++()
17270       {
17271  ++_M_iter;
17272  return *this;
17273       }
17274
17275       raw_storage_iterator<_ForwardIterator, _Tp>
17276       operator++(int)
17277       {
17278  raw_storage_iterator<_ForwardIterator, _Tp> __tmp = *this;
17279  ++_M_iter;
17280  return __tmp;
17281       }
17282     };
17283
17284 }
17285 # 59 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 2 3
17286
17287 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/limits" 1 3
17288 # 44 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/limits" 3
17289 #define _GLIBCXX_NUMERIC_LIMITS 1
17290
17291        
17292 # 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/limits" 3
17293 # 86 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/limits" 3
17294 #define __glibcxx_integral_traps true
17295 # 95 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/limits" 3
17296 #define __glibcxx_float_has_denorm_loss false
17297
17298
17299 #define __glibcxx_float_traps false
17300
17301
17302 #define __glibcxx_float_tinyness_before false
17303
17304
17305
17306
17307
17308
17309
17310 #define __glibcxx_double_has_denorm_loss false
17311
17312
17313 #define __glibcxx_double_traps false
17314
17315
17316 #define __glibcxx_double_tinyness_before false
17317
17318
17319
17320
17321
17322
17323
17324 #define __glibcxx_long_double_has_denorm_loss false
17325
17326
17327 #define __glibcxx_long_double_traps false
17328
17329
17330 #define __glibcxx_long_double_tinyness_before false
17331
17332
17333
17334
17335 #define __glibcxx_signed(T) ((T)(-1) < 0)
17336
17337 #define __glibcxx_min(T) (__glibcxx_signed (T) ? (T)1 << __glibcxx_digits (T) : (T)0)
17338
17339
17340 #define __glibcxx_max(T) (__glibcxx_signed (T) ? ((T)1 << __glibcxx_digits (T)) - 1 : ~(T)0)
17341
17342
17343 #define __glibcxx_digits(T) (sizeof(T) * __CHAR_BIT__ - __glibcxx_signed (T))
17344
17345
17346
17347 #define __glibcxx_digits10(T) (__glibcxx_digits (T) * 643 / 2136)
17348
17349
17350
17351 namespace std __attribute__ ((__visibility__ ("default"))) {
17352
17353
17354
17355
17356
17357
17358   enum float_round_style
17359   {
17360     round_indeterminate = -1,
17361     round_toward_zero = 0,
17362     round_to_nearest = 1,
17363     round_toward_infinity = 2,
17364     round_toward_neg_infinity = 3
17365   };
17366
17367
17368
17369
17370
17371
17372
17373   enum float_denorm_style
17374   {
17375
17376     denorm_indeterminate = -1,
17377
17378     denorm_absent = 0,
17379
17380     denorm_present = 1
17381   };
17382 # 192 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/limits" 3
17383   struct __numeric_limits_base
17384   {
17385
17386
17387     static const bool is_specialized = false;
17388
17389
17390
17391
17392     static const int digits = 0;
17393
17394     static const int digits10 = 0;
17395
17396     static const bool is_signed = false;
17397
17398
17399
17400
17401
17402     static const bool is_integer = false;
17403
17404
17405
17406
17407     static const bool is_exact = false;
17408
17409
17410     static const int radix = 0;
17411
17412
17413
17414     static const int min_exponent = 0;
17415
17416
17417     static const int min_exponent10 = 0;
17418
17419
17420
17421     static const int max_exponent = 0;
17422
17423
17424     static const int max_exponent10 = 0;
17425
17426
17427     static const bool has_infinity = false;
17428
17429
17430     static const bool has_quiet_NaN = false;
17431
17432
17433     static const bool has_signaling_NaN = false;
17434
17435     static const float_denorm_style has_denorm = denorm_absent;
17436
17437
17438     static const bool has_denorm_loss = false;
17439
17440
17441
17442     static const bool is_iec559 = false;
17443
17444
17445
17446     static const bool is_bounded = false;
17447
17448
17449
17450
17451     static const bool is_modulo = false;
17452
17453
17454     static const bool traps = false;
17455
17456     static const bool tinyness_before = false;
17457
17458
17459
17460     static const float_round_style round_style = round_toward_zero;
17461   };
17462 # 285 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/limits" 3
17463   template<typename _Tp>
17464     struct numeric_limits : public __numeric_limits_base
17465     {
17466
17467
17468       static _Tp min() throw() { return static_cast<_Tp>(0); }
17469
17470       static _Tp max() throw() { return static_cast<_Tp>(0); }
17471
17472
17473       static _Tp epsilon() throw() { return static_cast<_Tp>(0); }
17474
17475       static _Tp round_error() throw() { return static_cast<_Tp>(0); }
17476
17477       static _Tp infinity() throw() { return static_cast<_Tp>(0); }
17478
17479       static _Tp quiet_NaN() throw() { return static_cast<_Tp>(0); }
17480
17481
17482       static _Tp signaling_NaN() throw() { return static_cast<_Tp>(0); }
17483
17484
17485
17486       static _Tp denorm_min() throw() { return static_cast<_Tp>(0); }
17487     };
17488
17489
17490
17491
17492
17493   template<>
17494     struct numeric_limits<bool>
17495     {
17496       static const bool is_specialized = true;
17497
17498       static bool min() throw()
17499       { return false; }
17500       static bool max() throw()
17501       { return true; }
17502
17503       static const int digits = 1;
17504       static const int digits10 = 0;
17505       static const bool is_signed = false;
17506       static const bool is_integer = true;
17507       static const bool is_exact = true;
17508       static const int radix = 2;
17509       static bool epsilon() throw()
17510       { return false; }
17511       static bool round_error() throw()
17512       { return false; }
17513
17514       static const int min_exponent = 0;
17515       static const int min_exponent10 = 0;
17516       static const int max_exponent = 0;
17517       static const int max_exponent10 = 0;
17518
17519       static const bool has_infinity = false;
17520       static const bool has_quiet_NaN = false;
17521       static const bool has_signaling_NaN = false;
17522       static const float_denorm_style has_denorm = denorm_absent;
17523       static const bool has_denorm_loss = false;
17524
17525       static bool infinity() throw()
17526       { return false; }
17527       static bool quiet_NaN() throw()
17528       { return false; }
17529       static bool signaling_NaN() throw()
17530       { return false; }
17531       static bool denorm_min() throw()
17532       { return false; }
17533
17534       static const bool is_iec559 = false;
17535       static const bool is_bounded = true;
17536       static const bool is_modulo = false;
17537
17538
17539
17540
17541       static const bool traps = true;
17542       static const bool tinyness_before = false;
17543       static const float_round_style round_style = round_toward_zero;
17544     };
17545
17546
17547   template<>
17548     struct numeric_limits<char>
17549     {
17550       static const bool is_specialized = true;
17551
17552       static char min() throw()
17553       { return (((char)(-1) < 0) ? (char)1 << (sizeof(char) * 8 - ((char)(-1) < 0)) : (char)0); }
17554       static char max() throw()
17555       { return (((char)(-1) < 0) ? ((char)1 << (sizeof(char) * 8 - ((char)(-1) < 0))) - 1 : ~(char)0); }
17556
17557       static const int digits = (sizeof(char) * 8 - ((char)(-1) < 0));
17558       static const int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643 / 2136);
17559       static const bool is_signed = ((char)(-1) < 0);
17560       static const bool is_integer = true;
17561       static const bool is_exact = true;
17562       static const int radix = 2;
17563       static char epsilon() throw()
17564       { return 0; }
17565       static char round_error() throw()
17566       { return 0; }
17567
17568       static const int min_exponent = 0;
17569       static const int min_exponent10 = 0;
17570       static const int max_exponent = 0;
17571       static const int max_exponent10 = 0;
17572
17573       static const bool has_infinity = false;
17574       static const bool has_quiet_NaN = false;
17575       static const bool has_signaling_NaN = false;
17576       static const float_denorm_style has_denorm = denorm_absent;
17577       static const bool has_denorm_loss = false;
17578
17579       static char infinity() throw()
17580       { return char(); }
17581       static char quiet_NaN() throw()
17582       { return char(); }
17583       static char signaling_NaN() throw()
17584       { return char(); }
17585       static char denorm_min() throw()
17586       { return static_cast<char>(0); }
17587
17588       static const bool is_iec559 = false;
17589       static const bool is_bounded = true;
17590       static const bool is_modulo = true;
17591
17592       static const bool traps = true;
17593       static const bool tinyness_before = false;
17594       static const float_round_style round_style = round_toward_zero;
17595     };
17596
17597
17598   template<>
17599     struct numeric_limits<signed char>
17600     {
17601       static const bool is_specialized = true;
17602
17603       static signed char min() throw()
17604       { return -127 - 1; }
17605       static signed char max() throw()
17606       { return 127; }
17607
17608       static const int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0));
17609       static const int digits10 = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643 / 2136);
17610       static const bool is_signed = true;
17611       static const bool is_integer = true;
17612       static const bool is_exact = true;
17613       static const int radix = 2;
17614       static signed char epsilon() throw()
17615       { return 0; }
17616       static signed char round_error() throw()
17617       { return 0; }
17618
17619       static const int min_exponent = 0;
17620       static const int min_exponent10 = 0;
17621       static const int max_exponent = 0;
17622       static const int max_exponent10 = 0;
17623
17624       static const bool has_infinity = false;
17625       static const bool has_quiet_NaN = false;
17626       static const bool has_signaling_NaN = false;
17627       static const float_denorm_style has_denorm = denorm_absent;
17628       static const bool has_denorm_loss = false;
17629
17630       static signed char infinity() throw()
17631       { return static_cast<signed char>(0); }
17632       static signed char quiet_NaN() throw()
17633       { return static_cast<signed char>(0); }
17634       static signed char signaling_NaN() throw()
17635       { return static_cast<signed char>(0); }
17636       static signed char denorm_min() throw()
17637       { return static_cast<signed char>(0); }
17638
17639       static const bool is_iec559 = false;
17640       static const bool is_bounded = true;
17641       static const bool is_modulo = true;
17642
17643       static const bool traps = true;
17644       static const bool tinyness_before = false;
17645       static const float_round_style round_style = round_toward_zero;
17646     };
17647
17648
17649   template<>
17650     struct numeric_limits<unsigned char>
17651     {
17652       static const bool is_specialized = true;
17653
17654       static unsigned char min() throw()
17655       { return 0; }
17656       static unsigned char max() throw()
17657       { return 127 * 2U + 1; }
17658
17659       static const int digits = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0));
17660       static const int digits10 = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643 / 2136);
17661       static const bool is_signed = false;
17662       static const bool is_integer = true;
17663       static const bool is_exact = true;
17664       static const int radix = 2;
17665       static unsigned char epsilon() throw()
17666       { return 0; }
17667       static unsigned char round_error() throw()
17668       { return 0; }
17669
17670       static const int min_exponent = 0;
17671       static const int min_exponent10 = 0;
17672       static const int max_exponent = 0;
17673       static const int max_exponent10 = 0;
17674
17675       static const bool has_infinity = false;
17676       static const bool has_quiet_NaN = false;
17677       static const bool has_signaling_NaN = false;
17678       static const float_denorm_style has_denorm = denorm_absent;
17679       static const bool has_denorm_loss = false;
17680
17681       static unsigned char infinity() throw()
17682       { return static_cast<unsigned char>(0); }
17683       static unsigned char quiet_NaN() throw()
17684       { return static_cast<unsigned char>(0); }
17685       static unsigned char signaling_NaN() throw()
17686       { return static_cast<unsigned char>(0); }
17687       static unsigned char denorm_min() throw()
17688       { return static_cast<unsigned char>(0); }
17689
17690       static const bool is_iec559 = false;
17691       static const bool is_bounded = true;
17692       static const bool is_modulo = true;
17693
17694       static const bool traps = true;
17695       static const bool tinyness_before = false;
17696       static const float_round_style round_style = round_toward_zero;
17697     };
17698
17699
17700   template<>
17701     struct numeric_limits<wchar_t>
17702     {
17703       static const bool is_specialized = true;
17704
17705       static wchar_t min() throw()
17706       { return (((wchar_t)(-1) < 0) ? (wchar_t)1 << (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) : (wchar_t)0); }
17707       static wchar_t max() throw()
17708       { return (((wchar_t)(-1) < 0) ? ((wchar_t)1 << (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0))) - 1 : ~(wchar_t)0); }
17709
17710       static const int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0));
17711       static const int digits10 = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643 / 2136);
17712       static const bool is_signed = ((wchar_t)(-1) < 0);
17713       static const bool is_integer = true;
17714       static const bool is_exact = true;
17715       static const int radix = 2;
17716       static wchar_t epsilon() throw()
17717       { return 0; }
17718       static wchar_t round_error() throw()
17719       { return 0; }
17720
17721       static const int min_exponent = 0;
17722       static const int min_exponent10 = 0;
17723       static const int max_exponent = 0;
17724       static const int max_exponent10 = 0;
17725
17726       static const bool has_infinity = false;
17727       static const bool has_quiet_NaN = false;
17728       static const bool has_signaling_NaN = false;
17729       static const float_denorm_style has_denorm = denorm_absent;
17730       static const bool has_denorm_loss = false;
17731
17732       static wchar_t infinity() throw()
17733       { return wchar_t(); }
17734       static wchar_t quiet_NaN() throw()
17735       { return wchar_t(); }
17736       static wchar_t signaling_NaN() throw()
17737       { return wchar_t(); }
17738       static wchar_t denorm_min() throw()
17739       { return wchar_t(); }
17740
17741       static const bool is_iec559 = false;
17742       static const bool is_bounded = true;
17743       static const bool is_modulo = true;
17744
17745       static const bool traps = true;
17746       static const bool tinyness_before = false;
17747       static const float_round_style round_style = round_toward_zero;
17748     };
17749
17750
17751   template<>
17752     struct numeric_limits<short>
17753     {
17754       static const bool is_specialized = true;
17755
17756       static short min() throw()
17757       { return -32767 - 1; }
17758       static short max() throw()
17759       { return 32767; }
17760
17761       static const int digits = (sizeof(short) * 8 - ((short)(-1) < 0));
17762       static const int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643 / 2136);
17763       static const bool is_signed = true;
17764       static const bool is_integer = true;
17765       static const bool is_exact = true;
17766       static const int radix = 2;
17767       static short epsilon() throw()
17768       { return 0; }
17769       static short round_error() throw()
17770       { return 0; }
17771
17772       static const int min_exponent = 0;
17773       static const int min_exponent10 = 0;
17774       static const int max_exponent = 0;
17775       static const int max_exponent10 = 0;
17776
17777       static const bool has_infinity = false;
17778       static const bool has_quiet_NaN = false;
17779       static const bool has_signaling_NaN = false;
17780       static const float_denorm_style has_denorm = denorm_absent;
17781       static const bool has_denorm_loss = false;
17782
17783       static short infinity() throw()
17784       { return short(); }
17785       static short quiet_NaN() throw()
17786       { return short(); }
17787       static short signaling_NaN() throw()
17788       { return short(); }
17789       static short denorm_min() throw()
17790       { return short(); }
17791
17792       static const bool is_iec559 = false;
17793       static const bool is_bounded = true;
17794       static const bool is_modulo = true;
17795
17796       static const bool traps = true;
17797       static const bool tinyness_before = false;
17798       static const float_round_style round_style = round_toward_zero;
17799     };
17800
17801
17802   template<>
17803     struct numeric_limits<unsigned short>
17804     {
17805       static const bool is_specialized = true;
17806
17807       static unsigned short min() throw()
17808       { return 0; }
17809       static unsigned short max() throw()
17810       { return 32767 * 2U + 1; }
17811
17812       static const int digits = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0));
17813       static const int digits10 = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643 / 2136);
17814       static const bool is_signed = false;
17815       static const bool is_integer = true;
17816       static const bool is_exact = true;
17817       static const int radix = 2;
17818       static unsigned short epsilon() throw()
17819       { return 0; }
17820       static unsigned short round_error() throw()
17821       { return 0; }
17822
17823       static const int min_exponent = 0;
17824       static const int min_exponent10 = 0;
17825       static const int max_exponent = 0;
17826       static const int max_exponent10 = 0;
17827
17828       static const bool has_infinity = false;
17829       static const bool has_quiet_NaN = false;
17830       static const bool has_signaling_NaN = false;
17831       static const float_denorm_style has_denorm = denorm_absent;
17832       static const bool has_denorm_loss = false;
17833
17834       static unsigned short infinity() throw()
17835       { return static_cast<unsigned short>(0); }
17836       static unsigned short quiet_NaN() throw()
17837       { return static_cast<unsigned short>(0); }
17838       static unsigned short signaling_NaN() throw()
17839       { return static_cast<unsigned short>(0); }
17840       static unsigned short denorm_min() throw()
17841       { return static_cast<unsigned short>(0); }
17842
17843       static const bool is_iec559 = false;
17844       static const bool is_bounded = true;
17845       static const bool is_modulo = true;
17846
17847       static const bool traps = true;
17848       static const bool tinyness_before = false;
17849       static const float_round_style round_style = round_toward_zero;
17850     };
17851
17852
17853   template<>
17854     struct numeric_limits<int>
17855     {
17856       static const bool is_specialized = true;
17857
17858       static int min() throw()
17859       { return -2147483647 - 1; }
17860       static int max() throw()
17861       { return 2147483647; }
17862
17863       static const int digits = (sizeof(int) * 8 - ((int)(-1) < 0));
17864       static const int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643 / 2136);
17865       static const bool is_signed = true;
17866       static const bool is_integer = true;
17867       static const bool is_exact = true;
17868       static const int radix = 2;
17869       static int epsilon() throw()
17870       { return 0; }
17871       static int round_error() throw()
17872       { return 0; }
17873
17874       static const int min_exponent = 0;
17875       static const int min_exponent10 = 0;
17876       static const int max_exponent = 0;
17877       static const int max_exponent10 = 0;
17878
17879       static const bool has_infinity = false;
17880       static const bool has_quiet_NaN = false;
17881       static const bool has_signaling_NaN = false;
17882       static const float_denorm_style has_denorm = denorm_absent;
17883       static const bool has_denorm_loss = false;
17884
17885       static int infinity() throw()
17886       { return static_cast<int>(0); }
17887       static int quiet_NaN() throw()
17888       { return static_cast<int>(0); }
17889       static int signaling_NaN() throw()
17890       { return static_cast<int>(0); }
17891       static int denorm_min() throw()
17892       { return static_cast<int>(0); }
17893
17894       static const bool is_iec559 = false;
17895       static const bool is_bounded = true;
17896       static const bool is_modulo = true;
17897
17898       static const bool traps = true;
17899       static const bool tinyness_before = false;
17900       static const float_round_style round_style = round_toward_zero;
17901     };
17902
17903
17904   template<>
17905     struct numeric_limits<unsigned int>
17906     {
17907       static const bool is_specialized = true;
17908
17909       static unsigned int min() throw()
17910       { return 0; }
17911       static unsigned int max() throw()
17912       { return 2147483647 * 2U + 1; }
17913
17914       static const int digits = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0));
17915       static const int digits10 = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643 / 2136);
17916       static const bool is_signed = false;
17917       static const bool is_integer = true;
17918       static const bool is_exact = true;
17919       static const int radix = 2;
17920       static unsigned int epsilon() throw()
17921       { return 0; }
17922       static unsigned int round_error() throw()
17923       { return 0; }
17924
17925       static const int min_exponent = 0;
17926       static const int min_exponent10 = 0;
17927       static const int max_exponent = 0;
17928       static const int max_exponent10 = 0;
17929
17930       static const bool has_infinity = false;
17931       static const bool has_quiet_NaN = false;
17932       static const bool has_signaling_NaN = false;
17933       static const float_denorm_style has_denorm = denorm_absent;
17934       static const bool has_denorm_loss = false;
17935
17936       static unsigned int infinity() throw()
17937       { return static_cast<unsigned int>(0); }
17938       static unsigned int quiet_NaN() throw()
17939       { return static_cast<unsigned int>(0); }
17940       static unsigned int signaling_NaN() throw()
17941       { return static_cast<unsigned int>(0); }
17942       static unsigned int denorm_min() throw()
17943       { return static_cast<unsigned int>(0); }
17944
17945       static const bool is_iec559 = false;
17946       static const bool is_bounded = true;
17947       static const bool is_modulo = true;
17948
17949       static const bool traps = true;
17950       static const bool tinyness_before = false;
17951       static const float_round_style round_style = round_toward_zero;
17952     };
17953
17954
17955   template<>
17956     struct numeric_limits<long>
17957     {
17958       static const bool is_specialized = true;
17959
17960       static long min() throw()
17961       { return -9223372036854775807L - 1; }
17962       static long max() throw()
17963       { return 9223372036854775807L; }
17964
17965       static const int digits = (sizeof(long) * 8 - ((long)(-1) < 0));
17966       static const int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643 / 2136);
17967       static const bool is_signed = true;
17968       static const bool is_integer = true;
17969       static const bool is_exact = true;
17970       static const int radix = 2;
17971       static long epsilon() throw()
17972       { return 0; }
17973       static long round_error() throw()
17974       { return 0; }
17975
17976       static const int min_exponent = 0;
17977       static const int min_exponent10 = 0;
17978       static const int max_exponent = 0;
17979       static const int max_exponent10 = 0;
17980
17981       static const bool has_infinity = false;
17982       static const bool has_quiet_NaN = false;
17983       static const bool has_signaling_NaN = false;
17984       static const float_denorm_style has_denorm = denorm_absent;
17985       static const bool has_denorm_loss = false;
17986
17987       static long infinity() throw()
17988       { return static_cast<long>(0); }
17989       static long quiet_NaN() throw()
17990       { return static_cast<long>(0); }
17991       static long signaling_NaN() throw()
17992       { return static_cast<long>(0); }
17993       static long denorm_min() throw()
17994       { return static_cast<long>(0); }
17995
17996       static const bool is_iec559 = false;
17997       static const bool is_bounded = true;
17998       static const bool is_modulo = true;
17999
18000       static const bool traps = true;
18001       static const bool tinyness_before = false;
18002       static const float_round_style round_style = round_toward_zero;
18003     };
18004
18005
18006   template<>
18007     struct numeric_limits<unsigned long>
18008     {
18009       static const bool is_specialized = true;
18010
18011       static unsigned long min() throw()
18012       { return 0; }
18013       static unsigned long max() throw()
18014       { return 9223372036854775807L * 2UL + 1; }
18015
18016       static const int digits = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0));
18017       static const int digits10 = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643 / 2136);
18018       static const bool is_signed = false;
18019       static const bool is_integer = true;
18020       static const bool is_exact = true;
18021       static const int radix = 2;
18022       static unsigned long epsilon() throw()
18023       { return 0; }
18024       static unsigned long round_error() throw()
18025       { return 0; }
18026
18027       static const int min_exponent = 0;
18028       static const int min_exponent10 = 0;
18029       static const int max_exponent = 0;
18030       static const int max_exponent10 = 0;
18031
18032       static const bool has_infinity = false;
18033       static const bool has_quiet_NaN = false;
18034       static const bool has_signaling_NaN = false;
18035       static const float_denorm_style has_denorm = denorm_absent;
18036       static const bool has_denorm_loss = false;
18037
18038       static unsigned long infinity() throw()
18039       { return static_cast<unsigned long>(0); }
18040       static unsigned long quiet_NaN() throw()
18041       { return static_cast<unsigned long>(0); }
18042       static unsigned long signaling_NaN() throw()
18043       { return static_cast<unsigned long>(0); }
18044       static unsigned long denorm_min() throw()
18045       { return static_cast<unsigned long>(0); }
18046
18047       static const bool is_iec559 = false;
18048       static const bool is_bounded = true;
18049       static const bool is_modulo = true;
18050
18051       static const bool traps = true;
18052       static const bool tinyness_before = false;
18053       static const float_round_style round_style = round_toward_zero;
18054     };
18055
18056
18057   template<>
18058     struct numeric_limits<long long>
18059     {
18060       static const bool is_specialized = true;
18061
18062       static long long min() throw()
18063       { return -9223372036854775807LL - 1; }
18064       static long long max() throw()
18065       { return 9223372036854775807LL; }
18066
18067       static const int digits = (sizeof(long long) * 8 - ((long long)(-1) < 0));
18068       static const int digits10 = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643 / 2136);
18069       static const bool is_signed = true;
18070       static const bool is_integer = true;
18071       static const bool is_exact = true;
18072       static const int radix = 2;
18073       static long long epsilon() throw()
18074       { return 0; }
18075       static long long round_error() throw()
18076       { return 0; }
18077
18078       static const int min_exponent = 0;
18079       static const int min_exponent10 = 0;
18080       static const int max_exponent = 0;
18081       static const int max_exponent10 = 0;
18082
18083       static const bool has_infinity = false;
18084       static const bool has_quiet_NaN = false;
18085       static const bool has_signaling_NaN = false;
18086       static const float_denorm_style has_denorm = denorm_absent;
18087       static const bool has_denorm_loss = false;
18088
18089       static long long infinity() throw()
18090       { return static_cast<long long>(0); }
18091       static long long quiet_NaN() throw()
18092       { return static_cast<long long>(0); }
18093       static long long signaling_NaN() throw()
18094       { return static_cast<long long>(0); }
18095       static long long denorm_min() throw()
18096       { return static_cast<long long>(0); }
18097
18098       static const bool is_iec559 = false;
18099       static const bool is_bounded = true;
18100       static const bool is_modulo = true;
18101
18102       static const bool traps = true;
18103       static const bool tinyness_before = false;
18104       static const float_round_style round_style = round_toward_zero;
18105     };
18106
18107
18108   template<>
18109     struct numeric_limits<unsigned long long>
18110     {
18111       static const bool is_specialized = true;
18112
18113       static unsigned long long min() throw()
18114       { return 0; }
18115       static unsigned long long max() throw()
18116       { return 9223372036854775807LL * 2ULL + 1; }
18117
18118       static const int digits = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0));
18119       static const int digits10 = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643 / 2136);
18120       static const bool is_signed = false;
18121       static const bool is_integer = true;
18122       static const bool is_exact = true;
18123       static const int radix = 2;
18124       static unsigned long long epsilon() throw()
18125       { return 0; }
18126       static unsigned long long round_error() throw()
18127       { return 0; }
18128
18129       static const int min_exponent = 0;
18130       static const int min_exponent10 = 0;
18131       static const int max_exponent = 0;
18132       static const int max_exponent10 = 0;
18133
18134       static const bool has_infinity = false;
18135       static const bool has_quiet_NaN = false;
18136       static const bool has_signaling_NaN = false;
18137       static const float_denorm_style has_denorm = denorm_absent;
18138       static const bool has_denorm_loss = false;
18139
18140       static unsigned long long infinity() throw()
18141       { return static_cast<unsigned long long>(0); }
18142       static unsigned long long quiet_NaN() throw()
18143       { return static_cast<unsigned long long>(0); }
18144       static unsigned long long signaling_NaN() throw()
18145       { return static_cast<unsigned long long>(0); }
18146       static unsigned long long denorm_min() throw()
18147       { return static_cast<unsigned long long>(0); }
18148
18149       static const bool is_iec559 = false;
18150       static const bool is_bounded = true;
18151       static const bool is_modulo = true;
18152
18153       static const bool traps = true;
18154       static const bool tinyness_before = false;
18155       static const float_round_style round_style = round_toward_zero;
18156     };
18157
18158
18159   template<>
18160     struct numeric_limits<float>
18161     {
18162       static const bool is_specialized = true;
18163
18164       static float min() throw()
18165       { return 1.17549435e-38F; }
18166       static float max() throw()
18167       { return 3.40282347e+38F; }
18168
18169       static const int digits = 24;
18170       static const int digits10 = 6;
18171       static const bool is_signed = true;
18172       static const bool is_integer = false;
18173       static const bool is_exact = false;
18174       static const int radix = 2;
18175       static float epsilon() throw()
18176       { return 1.19209290e-7F; }
18177       static float round_error() throw()
18178       { return 0.5F; }
18179
18180       static const int min_exponent = (-125);
18181       static const int min_exponent10 = (-37);
18182       static const int max_exponent = 128;
18183       static const int max_exponent10 = 38;
18184
18185       static const bool has_infinity = 1;
18186       static const bool has_quiet_NaN = 1;
18187       static const bool has_signaling_NaN = has_quiet_NaN;
18188       static const float_denorm_style has_denorm
18189  = bool(1) ? denorm_present : denorm_absent;
18190       static const bool has_denorm_loss = false;
18191
18192       static float infinity() throw()
18193       { return __builtin_huge_valf (); }
18194       static float quiet_NaN() throw()
18195       { return __builtin_nanf (""); }
18196       static float signaling_NaN() throw()
18197       { return __builtin_nansf (""); }
18198       static float denorm_min() throw()
18199       { return 1.40129846e-45F; }
18200
18201       static const bool is_iec559
18202  = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
18203       static const bool is_bounded = true;
18204       static const bool is_modulo = false;
18205
18206       static const bool traps = false;
18207       static const bool tinyness_before = false;
18208       static const float_round_style round_style = round_to_nearest;
18209     };
18210
18211 #undef __glibcxx_float_has_denorm_loss
18212 #undef __glibcxx_float_traps
18213 #undef __glibcxx_float_tinyness_before
18214
18215
18216   template<>
18217     struct numeric_limits<double>
18218     {
18219       static const bool is_specialized = true;
18220
18221       static double min() throw()
18222       { return 2.2250738585072014e-308; }
18223       static double max() throw()
18224       { return 1.7976931348623157e+308; }
18225
18226       static const int digits = 53;
18227       static const int digits10 = 15;
18228       static const bool is_signed = true;
18229       static const bool is_integer = false;
18230       static const bool is_exact = false;
18231       static const int radix = 2;
18232       static double epsilon() throw()
18233       { return 2.2204460492503131e-16; }
18234       static double round_error() throw()
18235       { return 0.5; }
18236
18237       static const int min_exponent = (-1021);
18238       static const int min_exponent10 = (-307);
18239       static const int max_exponent = 1024;
18240       static const int max_exponent10 = 308;
18241
18242       static const bool has_infinity = 1;
18243       static const bool has_quiet_NaN = 1;
18244       static const bool has_signaling_NaN = has_quiet_NaN;
18245       static const float_denorm_style has_denorm
18246  = bool(1) ? denorm_present : denorm_absent;
18247       static const bool has_denorm_loss = false;
18248
18249       static double infinity() throw()
18250       { return __builtin_huge_val(); }
18251       static double quiet_NaN() throw()
18252       { return __builtin_nan (""); }
18253       static double signaling_NaN() throw()
18254       { return __builtin_nans (""); }
18255       static double denorm_min() throw()
18256       { return 4.9406564584124654e-324; }
18257
18258       static const bool is_iec559
18259  = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
18260       static const bool is_bounded = true;
18261       static const bool is_modulo = false;
18262
18263       static const bool traps = false;
18264       static const bool tinyness_before = false;
18265       static const float_round_style round_style = round_to_nearest;
18266     };
18267
18268 #undef __glibcxx_double_has_denorm_loss
18269 #undef __glibcxx_double_traps
18270 #undef __glibcxx_double_tinyness_before
18271
18272
18273   template<>
18274     struct numeric_limits<long double>
18275     {
18276       static const bool is_specialized = true;
18277
18278       static long double min() throw()
18279       { return 3.36210314311209350626e-4932L; }
18280       static long double max() throw()
18281       { return 1.18973149535723176502e+4932L; }
18282
18283       static const int digits = 64;
18284       static const int digits10 = 18;
18285       static const bool is_signed = true;
18286       static const bool is_integer = false;
18287       static const bool is_exact = false;
18288       static const int radix = 2;
18289       static long double epsilon() throw()
18290       { return 1.08420217248550443401e-19L; }
18291       static long double round_error() throw()
18292       { return 0.5L; }
18293
18294       static const int min_exponent = (-16381);
18295       static const int min_exponent10 = (-4931);
18296       static const int max_exponent = 16384;
18297       static const int max_exponent10 = 4932;
18298
18299       static const bool has_infinity = 1;
18300       static const bool has_quiet_NaN = 1;
18301       static const bool has_signaling_NaN = has_quiet_NaN;
18302       static const float_denorm_style has_denorm
18303  = bool(1) ? denorm_present : denorm_absent;
18304       static const bool has_denorm_loss
18305  = false;
18306
18307       static long double infinity() throw()
18308       { return __builtin_huge_vall (); }
18309       static long double quiet_NaN() throw()
18310       { return __builtin_nanl (""); }
18311       static long double signaling_NaN() throw()
18312       { return __builtin_nansl (""); }
18313       static long double denorm_min() throw()
18314       { return 3.64519953188247460253e-4951L; }
18315
18316       static const bool is_iec559
18317  = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
18318       static const bool is_bounded = true;
18319       static const bool is_modulo = false;
18320
18321       static const bool traps = false;
18322       static const bool tinyness_before = false;
18323       static const float_round_style round_style = round_to_nearest;
18324     };
18325
18326 #undef __glibcxx_long_double_has_denorm_loss
18327 #undef __glibcxx_long_double_traps
18328 #undef __glibcxx_long_double_tinyness_before
18329
18330 }
18331
18332 #undef __glibcxx_signed
18333 #undef __glibcxx_min
18334 #undef __glibcxx_max
18335 #undef __glibcxx_digits
18336 #undef __glibcxx_digits10
18337 # 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 2 3
18338
18339 namespace std __attribute__ ((__visibility__ ("default"))) {
18340 # 72 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18341   template<typename _Tp>
18342     pair<_Tp*, ptrdiff_t>
18343     __get_temporary_buffer(ptrdiff_t __len, _Tp*)
18344     {
18345       const ptrdiff_t __max = numeric_limits<ptrdiff_t>::max() / sizeof(_Tp);
18346       if (__len > __max)
18347  __len = __max;
18348
18349       while (__len > 0)
18350  {
18351    _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp),
18352        nothrow));
18353    if (__tmp != 0)
18354      return pair<_Tp*, ptrdiff_t>(__tmp, __len);
18355    __len /= 2;
18356  }
18357       return pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0);
18358     }
18359 # 108 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18360   template<typename _Tp>
18361     inline pair<_Tp*, ptrdiff_t>
18362     get_temporary_buffer(ptrdiff_t __len)
18363     { return std::__get_temporary_buffer(__len, static_cast<_Tp*>(0)); }
18364 # 120 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18365   template<typename _Tp>
18366     void
18367     return_temporary_buffer(_Tp* __p)
18368     { ::operator delete(__p, nothrow); }
18369 # 132 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18370   template<typename _Tp1>
18371     struct auto_ptr_ref
18372     {
18373       _Tp1* _M_ptr;
18374
18375       explicit
18376       auto_ptr_ref(_Tp1* __p): _M_ptr(__p) { }
18377     };
18378 # 173 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18379   template<typename _Tp>
18380     class auto_ptr
18381     {
18382     private:
18383       _Tp* _M_ptr;
18384
18385     public:
18386
18387       typedef _Tp element_type;
18388
18389
18390
18391
18392
18393
18394
18395       explicit
18396       auto_ptr(element_type* __p = 0) throw() : _M_ptr(__p) { }
18397 # 199 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18398       auto_ptr(auto_ptr& __a) throw() : _M_ptr(__a.release()) { }
18399 # 211 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18400       template<typename _Tp1>
18401         auto_ptr(auto_ptr<_Tp1>& __a) throw() : _M_ptr(__a.release()) { }
18402 # 222 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18403       auto_ptr&
18404       operator=(auto_ptr& __a) throw()
18405       {
18406  reset(__a.release());
18407  return *this;
18408       }
18409 # 239 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18410       template<typename _Tp1>
18411         auto_ptr&
18412         operator=(auto_ptr<_Tp1>& __a) throw()
18413         {
18414    reset(__a.release());
18415    return *this;
18416  }
18417 # 259 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18418       ~auto_ptr() { delete _M_ptr; }
18419 # 269 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18420       element_type&
18421       operator*() const throw()
18422       {
18423  ;
18424  return *_M_ptr;
18425       }
18426
18427
18428
18429
18430
18431
18432
18433       element_type*
18434       operator->() const throw()
18435       {
18436  ;
18437  return _M_ptr;
18438       }
18439 # 299 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18440       element_type*
18441       get() const throw() { return _M_ptr; }
18442 # 313 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18443       element_type*
18444       release() throw()
18445       {
18446  element_type* __tmp = _M_ptr;
18447  _M_ptr = 0;
18448  return __tmp;
18449       }
18450 # 328 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18451       void
18452       reset(element_type* __p = 0) throw()
18453       {
18454  if (__p != _M_ptr)
18455    {
18456      delete _M_ptr;
18457      _M_ptr = __p;
18458    }
18459       }
18460 # 349 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/memory" 3
18461       auto_ptr(auto_ptr_ref<element_type> __ref) throw()
18462       : _M_ptr(__ref._M_ptr) { }
18463
18464       auto_ptr&
18465       operator=(auto_ptr_ref<element_type> __ref) throw()
18466       {
18467  if (__ref._M_ptr != this->get())
18468    {
18469      delete _M_ptr;
18470      _M_ptr = __ref._M_ptr;
18471    }
18472  return *this;
18473       }
18474
18475       template<typename _Tp1>
18476         operator auto_ptr_ref<_Tp1>() throw()
18477         { return auto_ptr_ref<_Tp1>(this->release()); }
18478
18479       template<typename _Tp1>
18480         operator auto_ptr<_Tp1>() throw()
18481         { return auto_ptr<_Tp1>(this->release()); }
18482   };
18483
18484 }
18485 # 49 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/string" 2 3
18486
18487
18488 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/ostream_insert.h" 1 3
18489 # 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/ostream_insert.h" 3
18490 #define _OSTREAM_INSERT_H 1
18491
18492        
18493 # 39 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/ostream_insert.h" 3
18494
18495
18496
18497 namespace std __attribute__ ((__visibility__ ("default"))) {
18498
18499   template<typename _CharT, typename _Traits>
18500     inline void
18501     __ostream_write(basic_ostream<_CharT, _Traits>& __out,
18502       const _CharT* __s, streamsize __n)
18503     {
18504       typedef basic_ostream<_CharT, _Traits> __ostream_type;
18505       typedef typename __ostream_type::ios_base __ios_base;
18506
18507       const streamsize __put = __out.rdbuf()->sputn(__s, __n);
18508       if (__put != __n)
18509  __out.setstate(__ios_base::badbit);
18510     }
18511
18512   template<typename _CharT, typename _Traits>
18513     inline void
18514     __ostream_fill(basic_ostream<_CharT, _Traits>& __out, streamsize __n)
18515     {
18516       typedef basic_ostream<_CharT, _Traits> __ostream_type;
18517       typedef typename __ostream_type::ios_base __ios_base;
18518
18519       const _CharT __c = __out.fill();
18520       for (; __n > 0; --__n)
18521  {
18522    const typename _Traits::int_type __put = __out.rdbuf()->sputc(__c);
18523    if (_Traits::eq_int_type(__put, _Traits::eof()))
18524      {
18525        __out.setstate(__ios_base::badbit);
18526        break;
18527      }
18528  }
18529     }
18530
18531   template<typename _CharT, typename _Traits>
18532     basic_ostream<_CharT, _Traits>&
18533     __ostream_insert(basic_ostream<_CharT, _Traits>& __out,
18534        const _CharT* __s, streamsize __n)
18535     {
18536       typedef basic_ostream<_CharT, _Traits> __ostream_type;
18537       typedef typename __ostream_type::ios_base __ios_base;
18538
18539       typename __ostream_type::sentry __cerb(__out);
18540       if (__cerb)
18541  {
18542    try
18543      {
18544        const streamsize __w = __out.width();
18545        if (__w > __n)
18546   {
18547     const bool __left = ((__out.flags()
18548      & __ios_base::adjustfield)
18549            == __ios_base::left);
18550     if (!__left)
18551       __ostream_fill(__out, __w - __n);
18552     if (__out.good())
18553       __ostream_write(__out, __s, __n);
18554     if (__left && __out.good())
18555       __ostream_fill(__out, __w - __n);
18556   }
18557        else
18558   __ostream_write(__out, __s, __n);
18559        __out.width(0);
18560      }
18561    catch(...)
18562      { __out._M_setstate(__ios_base::badbit); }
18563  }
18564       return __out;
18565     }
18566
18567
18568
18569
18570
18571   extern template ostream& __ostream_insert(ostream&, const char*, streamsize);
18572
18573
18574   extern template wostream& __ostream_insert(wostream&, const wchar_t*,
18575           streamsize);
18576
18577
18578
18579 }
18580 # 52 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/string" 2 3
18581
18582 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_function.h" 1 3
18583 # 62 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_function.h" 3
18584 #define _FUNCTION_H 1
18585
18586 namespace std __attribute__ ((__visibility__ ("default"))) {
18587 # 101 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_function.h" 3
18588   template <class _Arg, class _Result>
18589     struct unary_function
18590     {
18591       typedef _Arg argument_type;
18592
18593
18594       typedef _Result result_type;
18595     };
18596
18597
18598
18599
18600   template <class _Arg1, class _Arg2, class _Result>
18601     struct binary_function
18602     {
18603       typedef _Arg1 first_argument_type;
18604
18605
18606       typedef _Arg2 second_argument_type;
18607       typedef _Result result_type;
18608     };
18609 # 133 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_function.h" 3
18610   template <class _Tp>
18611     struct plus : public binary_function<_Tp, _Tp, _Tp>
18612     {
18613       _Tp
18614       operator()(const _Tp& __x, const _Tp& __y) const
18615       { return __x + __y; }
18616     };
18617
18618
18619   template <class _Tp>
18620     struct minus : public binary_function<_Tp, _Tp, _Tp>
18621     {
18622       _Tp
18623       operator()(const _Tp& __x, const _Tp& __y) const
18624       { return __x - __y; }
18625     };
18626
18627
18628   template <class _Tp>
18629     struct multiplies : public binary_function<_Tp, _Tp, _Tp>
18630     {
18631       _Tp
18632       operator()(const _Tp& __x, const _Tp& __y) const
18633       { return __x * __y; }
18634     };
18635
18636
18637   template <class _Tp>
18638     struct divides : public binary_function<_Tp, _Tp, _Tp>
18639     {
18640       _Tp
18641       operator()(const _Tp& __x, const _Tp& __y) const
18642       { return __x / __y; }
18643     };
18644
18645
18646   template <class _Tp>
18647     struct modulus : public binary_function<_Tp, _Tp, _Tp>
18648     {
18649       _Tp
18650       operator()(const _Tp& __x, const _Tp& __y) const
18651       { return __x % __y; }
18652     };
18653
18654
18655   template <class _Tp>
18656     struct negate : public unary_function<_Tp, _Tp>
18657     {
18658       _Tp
18659       operator()(const _Tp& __x) const
18660       { return -__x; }
18661     };
18662 # 195 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_function.h" 3
18663   template <class _Tp>
18664     struct equal_to : public binary_function<_Tp, _Tp, bool>
18665     {
18666       bool
18667       operator()(const _Tp& __x, const _Tp& __y) const
18668       { return __x == __y; }
18669     };
18670
18671
18672   template <class _Tp>
18673     struct not_equal_to : public binary_function<_Tp, _Tp, bool>
18674     {
18675       bool
18676       operator()(const _Tp& __x, const _Tp& __y) const
18677       { return __x != __y; }
18678     };
18679
18680
18681   template <class _Tp>
18682     struct greater : public binary_function<_Tp, _Tp, bool>
18683     {
18684       bool
18685       operator()(const _Tp& __x, const _Tp& __y) const
18686       { return __x > __y; }
18687     };
18688
18689
18690   template <class _Tp>
18691     struct less : public binary_function<_Tp, _Tp, bool>
18692     {
18693       bool
18694       operator()(const _Tp& __x, const _Tp& __y) const
18695       { return __x < __y; }
18696     };
18697
18698
18699   template <class _Tp>
18700     struct greater_equal : public binary_function<_Tp, _Tp, bool>
18701     {
18702       bool
18703       operator()(const _Tp& __x, const _Tp& __y) const
18704       { return __x >= __y; }
18705     };
18706
18707
18708   template <class _Tp>
18709     struct less_equal : public binary_function<_Tp, _Tp, bool>
18710     {
18711       bool
18712       operator()(const _Tp& __x, const _Tp& __y) const
18713       { return __x <= __y; }
18714     };
18715 # 256 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_function.h" 3
18716   template <class _Tp>
18717     struct logical_and : public binary_function<_Tp, _Tp, bool>
18718     {
18719       bool
18720       operator()(const _Tp& __x, const _Tp& __y) const
18721       { return __x && __y; }
18722     };
18723
18724
18725   template <class _Tp>
18726     struct logical_or : public binary_function<_Tp, _Tp, bool>
18727     {
18728       bool
18729       operator()(const _Tp& __x, const _Tp& __y) const
18730       { return __x || __y; }
18731     };
18732
18733
18734   template <class _Tp>
18735     struct logical_not : public unary_function<_Tp, bool>
18736     {
18737       bool
18738       operator()(const _Tp& __x) const
18739       { return !__x; }
18740     };
18741 # 311 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_function.h" 3
18742   template <class _Predicate>
18743     class unary_negate
18744     : public unary_function<typename _Predicate::argument_type, bool>
18745     {
18746     protected:
18747       _Predicate _M_pred;
18748     public:
18749       explicit
18750       unary_negate(const _Predicate& __x) : _M_pred(__x) {}
18751
18752       bool
18753       operator()(const typename _Predicate::argument_type& __x) const
18754       { return !_M_pred(__x); }
18755     };
18756
18757
18758   template <class _Predicate>
18759     inline unary_negate<_Predicate>
18760     not1(const _Predicate& __pred)
18761     { return unary_negate<_Predicate>(__pred); }
18762
18763
18764   template <class _Predicate>
18765     class binary_negate
18766     : public binary_function<typename _Predicate::first_argument_type,
18767         typename _Predicate::second_argument_type,
18768         bool>
18769     {
18770     protected:
18771       _Predicate _M_pred;
18772     public:
18773       explicit
18774       binary_negate(const _Predicate& __x)
18775       : _M_pred(__x) { }
18776
18777       bool
18778       operator()(const typename _Predicate::first_argument_type& __x,
18779    const typename _Predicate::second_argument_type& __y) const
18780       { return !_M_pred(__x, __y); }
18781     };
18782
18783
18784   template <class _Predicate>
18785     inline binary_negate<_Predicate>
18786     not2(const _Predicate& __pred)
18787     { return binary_negate<_Predicate>(__pred); }
18788 # 391 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_function.h" 3
18789   template <class _Operation>
18790     class binder1st
18791     : public unary_function<typename _Operation::second_argument_type,
18792        typename _Operation::result_type>
18793     {
18794     protected:
18795       _Operation op;
18796       typename _Operation::first_argument_type value;
18797     public:
18798       binder1st(const _Operation& __x,
18799   const typename _Operation::first_argument_type& __y)
18800       : op(__x), value(__y) {}
18801
18802       typename _Operation::result_type
18803       operator()(const typename _Operation::second_argument_type& __x) const
18804       { return op(value, __x); }
18805
18806
18807
18808       typename _Operation::result_type
18809       operator()(typename _Operation::second_argument_type& __x) const
18810       { return op(value, __x); }
18811     };
18812
18813
18814   template <class _Operation, class _Tp>
18815     inline binder1st<_Operation>
18816     bind1st(const _Operation& __fn, const _Tp& __x)
18817     {
18818       typedef typename _Operation::first_argument_type _Arg1_type;
18819       return binder1st<_Operation>(__fn, _Arg1_type(__x));
18820     }
18821
18822
18823   template <class _Operation>
18824     class binder2nd
18825     : public unary_function<typename _Operation::first_argument_type,
18826        typename _Operation::result_type>
18827     {
18828     protected:
18829       _Operation op;
18830       typename _Operation::second_argument_type value;
18831     public:
18832       binder2nd(const _Operation& __x,
18833   const typename _Operation::second_argument_type& __y)
18834       : op(__x), value(__y) {}
18835
18836       typename _Operation::result_type
18837       operator()(const typename _Operation::first_argument_type& __x) const
18838       { return op(__x, value); }
18839
18840
18841
18842       typename _Operation::result_type
18843       operator()(typename _Operation::first_argument_type& __x) const
18844       { return op(__x, value); }
18845     };
18846
18847
18848   template <class _Operation, class _Tp>
18849     inline binder2nd<_Operation>
18850     bind2nd(const _Operation& __fn, const _Tp& __x)
18851     {
18852       typedef typename _Operation::second_argument_type _Arg2_type;
18853       return binder2nd<_Operation>(__fn, _Arg2_type(__x));
18854     }
18855 # 480 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_function.h" 3
18856   template <class _Arg, class _Result>
18857     class pointer_to_unary_function : public unary_function<_Arg, _Result>
18858     {
18859     protected:
18860       _Result (*_M_ptr)(_Arg);
18861     public:
18862       pointer_to_unary_function() {}
18863
18864       explicit
18865       pointer_to_unary_function(_Result (*__x)(_Arg))
18866       : _M_ptr(__x) {}
18867
18868       _Result
18869       operator()(_Arg __x) const
18870       { return _M_ptr(__x); }
18871     };
18872
18873
18874   template <class _Arg, class _Result>
18875     inline pointer_to_unary_function<_Arg, _Result>
18876     ptr_fun(_Result (*__x)(_Arg))
18877     { return pointer_to_unary_function<_Arg, _Result>(__x); }
18878
18879
18880   template <class _Arg1, class _Arg2, class _Result>
18881     class pointer_to_binary_function
18882     : public binary_function<_Arg1, _Arg2, _Result>
18883     {
18884     protected:
18885       _Result (*_M_ptr)(_Arg1, _Arg2);
18886     public:
18887       pointer_to_binary_function() {}
18888
18889       explicit
18890       pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2))
18891       : _M_ptr(__x) {}
18892
18893       _Result
18894       operator()(_Arg1 __x, _Arg2 __y) const
18895       { return _M_ptr(__x, __y); }
18896     };
18897
18898
18899   template <class _Arg1, class _Arg2, class _Result>
18900     inline pointer_to_binary_function<_Arg1, _Arg2, _Result>
18901     ptr_fun(_Result (*__x)(_Arg1, _Arg2))
18902     { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); }
18903
18904
18905   template <class _Tp>
18906     struct _Identity : public unary_function<_Tp,_Tp>
18907     {
18908       _Tp&
18909       operator()(_Tp& __x) const
18910       { return __x; }
18911
18912       const _Tp&
18913       operator()(const _Tp& __x) const
18914       { return __x; }
18915     };
18916
18917   template <class _Pair>
18918     struct _Select1st : public unary_function<_Pair,
18919            typename _Pair::first_type>
18920     {
18921       typename _Pair::first_type&
18922       operator()(_Pair& __x) const
18923       { return __x.first; }
18924
18925       const typename _Pair::first_type&
18926       operator()(const _Pair& __x) const
18927       { return __x.first; }
18928     };
18929
18930   template <class _Pair>
18931     struct _Select2nd : public unary_function<_Pair,
18932            typename _Pair::second_type>
18933     {
18934       typename _Pair::second_type&
18935       operator()(_Pair& __x) const
18936       { return __x.second; }
18937
18938       const typename _Pair::second_type&
18939       operator()(const _Pair& __x) const
18940       { return __x.second; }
18941     };
18942 # 582 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_function.h" 3
18943   template <class _Ret, class _Tp>
18944     class mem_fun_t : public unary_function<_Tp*, _Ret>
18945     {
18946     public:
18947       explicit
18948       mem_fun_t(_Ret (_Tp::*__pf)())
18949       : _M_f(__pf) {}
18950
18951       _Ret
18952       operator()(_Tp* __p) const
18953       { return (__p->*_M_f)(); }
18954     private:
18955       _Ret (_Tp::*_M_f)();
18956     };
18957
18958
18959   template <class _Ret, class _Tp>
18960     class const_mem_fun_t : public unary_function<const _Tp*, _Ret>
18961     {
18962     public:
18963       explicit
18964       const_mem_fun_t(_Ret (_Tp::*__pf)() const)
18965       : _M_f(__pf) {}
18966
18967       _Ret
18968       operator()(const _Tp* __p) const
18969       { return (__p->*_M_f)(); }
18970     private:
18971       _Ret (_Tp::*_M_f)() const;
18972     };
18973
18974
18975   template <class _Ret, class _Tp>
18976     class mem_fun_ref_t : public unary_function<_Tp, _Ret>
18977     {
18978     public:
18979       explicit
18980       mem_fun_ref_t(_Ret (_Tp::*__pf)())
18981       : _M_f(__pf) {}
18982
18983       _Ret
18984       operator()(_Tp& __r) const
18985       { return (__r.*_M_f)(); }
18986     private:
18987       _Ret (_Tp::*_M_f)();
18988   };
18989
18990
18991   template <class _Ret, class _Tp>
18992     class const_mem_fun_ref_t : public unary_function<_Tp, _Ret>
18993     {
18994     public:
18995       explicit
18996       const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const)
18997       : _M_f(__pf) {}
18998
18999       _Ret
19000       operator()(const _Tp& __r) const
19001       { return (__r.*_M_f)(); }
19002     private:
19003       _Ret (_Tp::*_M_f)() const;
19004     };
19005
19006
19007   template <class _Ret, class _Tp, class _Arg>
19008     class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret>
19009     {
19010     public:
19011       explicit
19012       mem_fun1_t(_Ret (_Tp::*__pf)(_Arg))
19013       : _M_f(__pf) {}
19014
19015       _Ret
19016       operator()(_Tp* __p, _Arg __x) const
19017       { return (__p->*_M_f)(__x); }
19018     private:
19019       _Ret (_Tp::*_M_f)(_Arg);
19020     };
19021
19022
19023   template <class _Ret, class _Tp, class _Arg>
19024     class const_mem_fun1_t : public binary_function<const _Tp*, _Arg, _Ret>
19025     {
19026     public:
19027       explicit
19028       const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const)
19029       : _M_f(__pf) {}
19030
19031       _Ret
19032       operator()(const _Tp* __p, _Arg __x) const
19033       { return (__p->*_M_f)(__x); }
19034     private:
19035       _Ret (_Tp::*_M_f)(_Arg) const;
19036     };
19037
19038
19039   template <class _Ret, class _Tp, class _Arg>
19040     class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret>
19041     {
19042     public:
19043       explicit
19044       mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg))
19045       : _M_f(__pf) {}
19046
19047       _Ret
19048       operator()(_Tp& __r, _Arg __x) const
19049       { return (__r.*_M_f)(__x); }
19050     private:
19051       _Ret (_Tp::*_M_f)(_Arg);
19052     };
19053
19054
19055   template <class _Ret, class _Tp, class _Arg>
19056     class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret>
19057     {
19058     public:
19059       explicit
19060       const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const)
19061       : _M_f(__pf) {}
19062
19063       _Ret
19064       operator()(const _Tp& __r, _Arg __x) const
19065       { return (__r.*_M_f)(__x); }
19066     private:
19067       _Ret (_Tp::*_M_f)(_Arg) const;
19068     };
19069
19070
19071
19072   template <class _Ret, class _Tp>
19073     inline mem_fun_t<_Ret, _Tp>
19074     mem_fun(_Ret (_Tp::*__f)())
19075     { return mem_fun_t<_Ret, _Tp>(__f); }
19076
19077   template <class _Ret, class _Tp>
19078     inline const_mem_fun_t<_Ret, _Tp>
19079     mem_fun(_Ret (_Tp::*__f)() const)
19080     { return const_mem_fun_t<_Ret, _Tp>(__f); }
19081
19082   template <class _Ret, class _Tp>
19083     inline mem_fun_ref_t<_Ret, _Tp>
19084     mem_fun_ref(_Ret (_Tp::*__f)())
19085     { return mem_fun_ref_t<_Ret, _Tp>(__f); }
19086
19087   template <class _Ret, class _Tp>
19088     inline const_mem_fun_ref_t<_Ret, _Tp>
19089     mem_fun_ref(_Ret (_Tp::*__f)() const)
19090     { return const_mem_fun_ref_t<_Ret, _Tp>(__f); }
19091
19092   template <class _Ret, class _Tp, class _Arg>
19093     inline mem_fun1_t<_Ret, _Tp, _Arg>
19094     mem_fun(_Ret (_Tp::*__f)(_Arg))
19095     { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); }
19096
19097   template <class _Ret, class _Tp, class _Arg>
19098     inline const_mem_fun1_t<_Ret, _Tp, _Arg>
19099     mem_fun(_Ret (_Tp::*__f)(_Arg) const)
19100     { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); }
19101
19102   template <class _Ret, class _Tp, class _Arg>
19103     inline mem_fun1_ref_t<_Ret, _Tp, _Arg>
19104     mem_fun_ref(_Ret (_Tp::*__f)(_Arg))
19105     { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
19106
19107   template <class _Ret, class _Tp, class _Arg>
19108     inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg>
19109     mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const)
19110     { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
19111
19112
19113
19114 }
19115 # 54 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/string" 2 3
19116 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 1 3
19117 # 42 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19118 #define _BASIC_STRING_H 1
19119
19120        
19121 # 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19122
19123 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ext/atomicity.h" 1 3
19124 # 36 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ext/atomicity.h" 3
19125 #define _GLIBCXX_ATOMICITY_H 1
19126
19127
19128
19129 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/atomic_word.h" 1 3
19130 # 35 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/x86_64-pc-linux-gnu/bits/atomic_word.h" 3
19131 #define _GLIBCXX_ATOMIC_WORD_H 1
19132
19133 typedef int _Atomic_word;
19134 # 41 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ext/atomicity.h" 2 3
19135
19136 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
19137
19138
19139
19140
19141
19142
19143   static inline _Atomic_word
19144   __exchange_and_add(volatile _Atomic_word* __mem, int __val)
19145   { return __sync_fetch_and_add(__mem, __val); }
19146
19147   static inline void
19148   __atomic_add(volatile _Atomic_word* __mem, int __val)
19149   { __sync_fetch_and_add(__mem, __val); }
19150 # 66 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/ext/atomicity.h" 3
19151   static inline _Atomic_word
19152   __exchange_and_add_single(_Atomic_word* __mem, int __val)
19153   {
19154     _Atomic_word __result = *__mem;
19155     *__mem += __val;
19156     return __result;
19157   }
19158
19159   static inline void
19160   __atomic_add_single(_Atomic_word* __mem, int __val)
19161   { *__mem += __val; }
19162
19163   static inline _Atomic_word
19164   __attribute__ ((__unused__))
19165   __exchange_and_add_dispatch(_Atomic_word* __mem, int __val)
19166   {
19167
19168     if (__gthread_active_p())
19169       return __exchange_and_add(__mem, __val);
19170     else
19171       return __exchange_and_add_single(__mem, __val);
19172
19173
19174
19175   }
19176
19177   static inline void
19178   __attribute__ ((__unused__))
19179   __atomic_add_dispatch(_Atomic_word* __mem, int __val)
19180   {
19181
19182     if (__gthread_active_p())
19183       __atomic_add(__mem, __val);
19184     else
19185       __atomic_add_single(__mem, __val);
19186
19187
19188
19189   }
19190
19191 }
19192
19193
19194
19195
19196
19197 #define _GLIBCXX_READ_MEM_BARRIER __asm __volatile ("":::"memory")
19198
19199
19200 #define _GLIBCXX_WRITE_MEM_BARRIER __asm __volatile ("":::"memory")
19201 # 47 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 2 3
19202
19203
19204 namespace std __attribute__ ((__visibility__ ("default"))) {
19205 # 110 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19206   template<typename _CharT, typename _Traits, typename _Alloc>
19207     class basic_string
19208     {
19209       typedef typename _Alloc::template rebind<_CharT>::other _CharT_alloc_type;
19210
19211
19212     public:
19213       typedef _Traits traits_type;
19214       typedef typename _Traits::char_type value_type;
19215       typedef _Alloc allocator_type;
19216       typedef typename _CharT_alloc_type::size_type size_type;
19217       typedef typename _CharT_alloc_type::difference_type difference_type;
19218       typedef typename _CharT_alloc_type::reference reference;
19219       typedef typename _CharT_alloc_type::const_reference const_reference;
19220       typedef typename _CharT_alloc_type::pointer pointer;
19221       typedef typename _CharT_alloc_type::const_pointer const_pointer;
19222       typedef __gnu_cxx::__normal_iterator<pointer, basic_string> iterator;
19223       typedef __gnu_cxx::__normal_iterator<const_pointer, basic_string>
19224                                                             const_iterator;
19225       typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
19226       typedef std::reverse_iterator<iterator> reverse_iterator;
19227
19228     private:
19229 # 147 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19230       struct _Rep_base
19231       {
19232  size_type _M_length;
19233  size_type _M_capacity;
19234  _Atomic_word _M_refcount;
19235       };
19236
19237       struct _Rep : _Rep_base
19238       {
19239
19240  typedef typename _Alloc::template rebind<char>::other _Raw_bytes_alloc;
19241 # 172 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19242  static const size_type _S_max_size;
19243  static const _CharT _S_terminal;
19244
19245
19246
19247         static size_type _S_empty_rep_storage[];
19248
19249         static _Rep&
19250         _S_empty_rep()
19251         {
19252
19253
19254
19255    void* __p = reinterpret_cast<void*>(&_S_empty_rep_storage);
19256    return *reinterpret_cast<_Rep*>(__p);
19257  }
19258
19259         bool
19260  _M_is_leaked() const
19261         { return this->_M_refcount < 0; }
19262
19263         bool
19264  _M_is_shared() const
19265         { return this->_M_refcount > 0; }
19266
19267         void
19268  _M_set_leaked()
19269         { this->_M_refcount = -1; }
19270
19271         void
19272  _M_set_sharable()
19273         { this->_M_refcount = 0; }
19274
19275  void
19276  _M_set_length_and_sharable(size_type __n)
19277  {
19278    this->_M_set_sharable();
19279    this->_M_length = __n;
19280    traits_type::assign(this->_M_refdata()[__n], _S_terminal);
19281
19282
19283  }
19284
19285  _CharT*
19286  _M_refdata() throw()
19287  { return reinterpret_cast<_CharT*>(this + 1); }
19288
19289  _CharT*
19290  _M_grab(const _Alloc& __alloc1, const _Alloc& __alloc2)
19291  {
19292    return (!_M_is_leaked() && __alloc1 == __alloc2)
19293            ? _M_refcopy() : _M_clone(__alloc1);
19294  }
19295
19296
19297  static _Rep*
19298  _S_create(size_type, size_type, const _Alloc&);
19299
19300  void
19301  _M_dispose(const _Alloc& __a)
19302  {
19303
19304    if (__builtin_expect(this != &_S_empty_rep(), false))
19305
19306      if (__gnu_cxx::__exchange_and_add_dispatch(&this->_M_refcount,
19307              -1) <= 0)
19308        _M_destroy(__a);
19309  }
19310
19311  void
19312  _M_destroy(const _Alloc&) throw();
19313
19314  _CharT*
19315  _M_refcopy() throw()
19316  {
19317
19318    if (__builtin_expect(this != &_S_empty_rep(), false))
19319
19320             __gnu_cxx::__atomic_add_dispatch(&this->_M_refcount, 1);
19321    return _M_refdata();
19322  }
19323
19324  _CharT*
19325  _M_clone(const _Alloc&, size_type __res = 0);
19326       };
19327
19328
19329       struct _Alloc_hider : _Alloc
19330       {
19331  _Alloc_hider(_CharT* __dat, const _Alloc& __a)
19332  : _Alloc(__a), _M_p(__dat) { }
19333
19334  _CharT* _M_p;
19335       };
19336
19337     public:
19338
19339
19340
19341
19342       static const size_type npos = static_cast<size_type>(-1);
19343
19344     private:
19345
19346       mutable _Alloc_hider _M_dataplus;
19347
19348       _CharT*
19349       _M_data() const
19350       { return _M_dataplus._M_p; }
19351
19352       _CharT*
19353       _M_data(_CharT* __p)
19354       { return (_M_dataplus._M_p = __p); }
19355
19356       _Rep*
19357       _M_rep() const
19358       { return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); }
19359
19360
19361
19362       iterator
19363       _M_ibegin() const
19364       { return iterator(_M_data()); }
19365
19366       iterator
19367       _M_iend() const
19368       { return iterator(_M_data() + this->size()); }
19369
19370       void
19371       _M_leak()
19372       {
19373  if (!_M_rep()->_M_is_leaked())
19374    _M_leak_hard();
19375       }
19376
19377       size_type
19378       _M_check(size_type __pos, const char* __s) const
19379       {
19380  if (__pos > this->size())
19381    __throw_out_of_range((__s));
19382  return __pos;
19383       }
19384
19385       void
19386       _M_check_length(size_type __n1, size_type __n2, const char* __s) const
19387       {
19388  if (this->max_size() - (this->size() - __n1) < __n2)
19389    __throw_length_error((__s));
19390       }
19391
19392
19393       size_type
19394       _M_limit(size_type __pos, size_type __off) const
19395       {
19396  const bool __testoff = __off < this->size() - __pos;
19397  return __testoff ? __off : this->size() - __pos;
19398       }
19399
19400
19401       bool
19402       _M_disjunct(const _CharT* __s) const
19403       {
19404  return (less<const _CharT*>()(__s, _M_data())
19405   || less<const _CharT*>()(_M_data() + this->size(), __s));
19406       }
19407
19408
19409
19410       static void
19411       _M_copy(_CharT* __d, const _CharT* __s, size_type __n)
19412       {
19413  if (__n == 1)
19414    traits_type::assign(*__d, *__s);
19415  else
19416    traits_type::copy(__d, __s, __n);
19417       }
19418
19419       static void
19420       _M_move(_CharT* __d, const _CharT* __s, size_type __n)
19421       {
19422  if (__n == 1)
19423    traits_type::assign(*__d, *__s);
19424  else
19425    traits_type::move(__d, __s, __n);
19426       }
19427
19428       static void
19429       _M_assign(_CharT* __d, size_type __n, _CharT __c)
19430       {
19431  if (__n == 1)
19432    traits_type::assign(*__d, __c);
19433  else
19434    traits_type::assign(__d, __n, __c);
19435       }
19436
19437
19438
19439       template<class _Iterator>
19440         static void
19441         _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2)
19442         {
19443    for (; __k1 != __k2; ++__k1, ++__p)
19444      traits_type::assign(*__p, *__k1);
19445  }
19446
19447       static void
19448       _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2)
19449       { _S_copy_chars(__p, __k1.base(), __k2.base()); }
19450
19451       static void
19452       _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2)
19453       { _S_copy_chars(__p, __k1.base(), __k2.base()); }
19454
19455       static void
19456       _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2)
19457       { _M_copy(__p, __k1, __k2 - __k1); }
19458
19459       static void
19460       _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2)
19461       { _M_copy(__p, __k1, __k2 - __k1); }
19462
19463       void
19464       _M_mutate(size_type __pos, size_type __len1, size_type __len2);
19465
19466       void
19467       _M_leak_hard();
19468
19469       static _Rep&
19470       _S_empty_rep()
19471       { return _Rep::_S_empty_rep(); }
19472
19473     public:
19474
19475
19476
19477
19478
19479
19480
19481       inline
19482       basic_string();
19483
19484
19485
19486
19487       explicit
19488       basic_string(const _Alloc& __a);
19489
19490
19491
19492
19493
19494
19495       basic_string(const basic_string& __str);
19496
19497
19498
19499
19500
19501
19502       basic_string(const basic_string& __str, size_type __pos,
19503      size_type __n = npos);
19504
19505
19506
19507
19508
19509
19510
19511       basic_string(const basic_string& __str, size_type __pos,
19512      size_type __n, const _Alloc& __a);
19513 # 453 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19514       basic_string(const _CharT* __s, size_type __n,
19515      const _Alloc& __a = _Alloc());
19516
19517
19518
19519
19520
19521       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc());
19522
19523
19524
19525
19526
19527
19528       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc());
19529
19530
19531
19532
19533
19534
19535
19536       template<class _InputIterator>
19537         basic_string(_InputIterator __beg, _InputIterator __end,
19538        const _Alloc& __a = _Alloc());
19539
19540
19541
19542
19543       ~basic_string()
19544       { _M_rep()->_M_dispose(this->get_allocator()); }
19545
19546
19547
19548
19549
19550       basic_string&
19551       operator=(const basic_string& __str)
19552       { return this->assign(__str); }
19553
19554
19555
19556
19557
19558       basic_string&
19559       operator=(const _CharT* __s)
19560       { return this->assign(__s); }
19561 # 508 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19562       basic_string&
19563       operator=(_CharT __c)
19564       {
19565  this->assign(1, __c);
19566  return *this;
19567       }
19568
19569
19570
19571
19572
19573
19574       iterator
19575       begin()
19576       {
19577  _M_leak();
19578  return iterator(_M_data());
19579       }
19580
19581
19582
19583
19584
19585       const_iterator
19586       begin() const
19587       { return const_iterator(_M_data()); }
19588
19589
19590
19591
19592
19593       iterator
19594       end()
19595       {
19596  _M_leak();
19597  return iterator(_M_data() + this->size());
19598       }
19599
19600
19601
19602
19603
19604       const_iterator
19605       end() const
19606       { return const_iterator(_M_data() + this->size()); }
19607
19608
19609
19610
19611
19612
19613       reverse_iterator
19614       rbegin()
19615       { return reverse_iterator(this->end()); }
19616
19617
19618
19619
19620
19621
19622       const_reverse_iterator
19623       rbegin() const
19624       { return const_reverse_iterator(this->end()); }
19625
19626
19627
19628
19629
19630
19631       reverse_iterator
19632       rend()
19633       { return reverse_iterator(this->begin()); }
19634
19635
19636
19637
19638
19639
19640       const_reverse_iterator
19641       rend() const
19642       { return const_reverse_iterator(this->begin()); }
19643
19644     public:
19645
19646
19647
19648       size_type
19649       size() const
19650       { return _M_rep()->_M_length; }
19651
19652
19653
19654       size_type
19655       length() const
19656       { return _M_rep()->_M_length; }
19657
19658
19659       size_type
19660       max_size() const
19661       { return _Rep::_S_max_size; }
19662 # 619 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19663       void
19664       resize(size_type __n, _CharT __c);
19665 # 632 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19666       void
19667       resize(size_type __n)
19668       { this->resize(__n, _CharT()); }
19669
19670
19671
19672
19673
19674       size_type
19675       capacity() const
19676       { return _M_rep()->_M_capacity; }
19677 # 661 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19678       void
19679       reserve(size_type __res_arg = 0);
19680
19681
19682
19683
19684       void
19685       clear()
19686       { _M_mutate(0, this->size(), 0); }
19687
19688
19689
19690
19691       bool
19692       empty() const
19693       { return this->size() == 0; }
19694 # 689 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19695       const_reference
19696       operator[] (size_type __pos) const
19697       {
19698  ;
19699  return _M_data()[__pos];
19700       }
19701 # 706 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19702       reference
19703       operator[](size_type __pos)
19704       {
19705
19706  ;
19707
19708  ;
19709  _M_leak();
19710  return _M_data()[__pos];
19711       }
19712 # 727 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19713       const_reference
19714       at(size_type __n) const
19715       {
19716  if (__n >= this->size())
19717    __throw_out_of_range(("basic_string::at"));
19718  return _M_data()[__n];
19719       }
19720 # 746 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19721       reference
19722       at(size_type __n)
19723       {
19724  if (__n >= size())
19725    __throw_out_of_range(("basic_string::at"));
19726  _M_leak();
19727  return _M_data()[__n];
19728       }
19729
19730
19731
19732
19733
19734
19735
19736       basic_string&
19737       operator+=(const basic_string& __str)
19738       { return this->append(__str); }
19739
19740
19741
19742
19743
19744
19745       basic_string&
19746       operator+=(const _CharT* __s)
19747       { return this->append(__s); }
19748
19749
19750
19751
19752
19753
19754       basic_string&
19755       operator+=(_CharT __c)
19756       {
19757  this->push_back(__c);
19758  return *this;
19759       }
19760
19761
19762
19763
19764
19765
19766       basic_string&
19767       append(const basic_string& __str);
19768 # 806 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19769       basic_string&
19770       append(const basic_string& __str, size_type __pos, size_type __n);
19771
19772
19773
19774
19775
19776
19777
19778       basic_string&
19779       append(const _CharT* __s, size_type __n);
19780
19781
19782
19783
19784
19785
19786       basic_string&
19787       append(const _CharT* __s)
19788       {
19789  ;
19790  return this->append(__s, traits_type::length(__s));
19791       }
19792 # 838 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19793       basic_string&
19794       append(size_type __n, _CharT __c);
19795 # 849 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19796       template<class _InputIterator>
19797         basic_string&
19798         append(_InputIterator __first, _InputIterator __last)
19799         { return this->replace(_M_iend(), _M_iend(), __first, __last); }
19800
19801
19802
19803
19804
19805       void
19806       push_back(_CharT __c)
19807       {
19808  const size_type __len = 1 + this->size();
19809  if (__len > this->capacity() || _M_rep()->_M_is_shared())
19810    this->reserve(__len);
19811  traits_type::assign(_M_data()[this->size()], __c);
19812  _M_rep()->_M_set_length_and_sharable(__len);
19813       }
19814
19815
19816
19817
19818
19819
19820       basic_string&
19821       assign(const basic_string& __str);
19822 # 888 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19823       basic_string&
19824       assign(const basic_string& __str, size_type __pos, size_type __n)
19825       { return this->assign(__str._M_data()
19826        + __str._M_check(__pos, "basic_string::assign"),
19827        __str._M_limit(__pos, __n)); }
19828 # 904 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19829       basic_string&
19830       assign(const _CharT* __s, size_type __n);
19831 # 916 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19832       basic_string&
19833       assign(const _CharT* __s)
19834       {
19835  ;
19836  return this->assign(__s, traits_type::length(__s));
19837       }
19838 # 932 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19839       basic_string&
19840       assign(size_type __n, _CharT __c)
19841       { return _M_replace_aux(size_type(0), this->size(), __n, __c); }
19842 # 944 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19843       template<class _InputIterator>
19844         basic_string&
19845         assign(_InputIterator __first, _InputIterator __last)
19846         { return this->replace(_M_ibegin(), _M_iend(), __first, __last); }
19847 # 961 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19848       void
19849       insert(iterator __p, size_type __n, _CharT __c)
19850       { this->replace(__p, __p, __n, __c); }
19851 # 976 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19852       template<class _InputIterator>
19853         void
19854         insert(iterator __p, _InputIterator __beg, _InputIterator __end)
19855         { this->replace(__p, __p, __beg, __end); }
19856 # 992 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19857       basic_string&
19858       insert(size_type __pos1, const basic_string& __str)
19859       { return this->insert(__pos1, __str, size_type(0), __str.size()); }
19860 # 1014 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19861       basic_string&
19862       insert(size_type __pos1, const basic_string& __str,
19863       size_type __pos2, size_type __n)
19864       { return this->insert(__pos1, __str._M_data()
19865        + __str._M_check(__pos2, "basic_string::insert"),
19866        __str._M_limit(__pos2, __n)); }
19867 # 1037 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19868       basic_string&
19869       insert(size_type __pos, const _CharT* __s, size_type __n);
19870 # 1055 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19871       basic_string&
19872       insert(size_type __pos, const _CharT* __s)
19873       {
19874  ;
19875  return this->insert(__pos, __s, traits_type::length(__s));
19876       }
19877 # 1078 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19878       basic_string&
19879       insert(size_type __pos, size_type __n, _CharT __c)
19880       { return _M_replace_aux(_M_check(__pos, "basic_string::insert"),
19881          size_type(0), __n, __c); }
19882 # 1095 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19883       iterator
19884       insert(iterator __p, _CharT __c)
19885       {
19886  ;
19887  const size_type __pos = __p - _M_ibegin();
19888  _M_replace_aux(__pos, size_type(0), size_type(1), __c);
19889  _M_rep()->_M_set_leaked();
19890  return iterator(_M_data() + __pos);
19891       }
19892 # 1119 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19893       basic_string&
19894       erase(size_type __pos = 0, size_type __n = npos)
19895       {
19896  _M_mutate(_M_check(__pos, "basic_string::erase"),
19897     _M_limit(__pos, __n), size_type(0));
19898  return *this;
19899       }
19900 # 1135 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19901       iterator
19902       erase(iterator __position)
19903       {
19904  ;
19905
19906  const size_type __pos = __position - _M_ibegin();
19907  _M_mutate(__pos, size_type(1), size_type(0));
19908  _M_rep()->_M_set_leaked();
19909  return iterator(_M_data() + __pos);
19910       }
19911 # 1155 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19912       iterator
19913       erase(iterator __first, iterator __last)
19914       {
19915  ;
19916
19917         const size_type __pos = __first - _M_ibegin();
19918  _M_mutate(__pos, __last - __first, size_type(0));
19919  _M_rep()->_M_set_leaked();
19920  return iterator(_M_data() + __pos);
19921       }
19922 # 1182 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19923       basic_string&
19924       replace(size_type __pos, size_type __n, const basic_string& __str)
19925       { return this->replace(__pos, __n, __str._M_data(), __str.size()); }
19926 # 1204 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19927       basic_string&
19928       replace(size_type __pos1, size_type __n1, const basic_string& __str,
19929        size_type __pos2, size_type __n2)
19930       { return this->replace(__pos1, __n1, __str._M_data()
19931         + __str._M_check(__pos2, "basic_string::replace"),
19932         __str._M_limit(__pos2, __n2)); }
19933 # 1228 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19934       basic_string&
19935       replace(size_type __pos, size_type __n1, const _CharT* __s,
19936        size_type __n2);
19937 # 1247 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19938       basic_string&
19939       replace(size_type __pos, size_type __n1, const _CharT* __s)
19940       {
19941  ;
19942  return this->replace(__pos, __n1, __s, traits_type::length(__s));
19943       }
19944 # 1270 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19945       basic_string&
19946       replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c)
19947       { return _M_replace_aux(_M_check(__pos, "basic_string::replace"),
19948          _M_limit(__pos, __n1), __n2, __c); }
19949 # 1288 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19950       basic_string&
19951       replace(iterator __i1, iterator __i2, const basic_string& __str)
19952       { return this->replace(__i1, __i2, __str._M_data(), __str.size()); }
19953 # 1306 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19954       basic_string&
19955       replace(iterator __i1, iterator __i2, const _CharT* __s, size_type __n)
19956       {
19957  ;
19958
19959  return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __s, __n);
19960       }
19961 # 1327 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19962       basic_string&
19963       replace(iterator __i1, iterator __i2, const _CharT* __s)
19964       {
19965  ;
19966  return this->replace(__i1, __i2, __s, traits_type::length(__s));
19967       }
19968 # 1348 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19969       basic_string&
19970       replace(iterator __i1, iterator __i2, size_type __n, _CharT __c)
19971       {
19972  ;
19973
19974  return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __c);
19975       }
19976 # 1370 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
19977       template<class _InputIterator>
19978         basic_string&
19979         replace(iterator __i1, iterator __i2,
19980   _InputIterator __k1, _InputIterator __k2)
19981         {
19982    ;
19983
19984    ;
19985    typedef typename std::__is_integer<_InputIterator>::__type _Integral;
19986    return _M_replace_dispatch(__i1, __i2, __k1, __k2, _Integral());
19987  }
19988
19989
19990
19991       basic_string&
19992       replace(iterator __i1, iterator __i2, _CharT* __k1, _CharT* __k2)
19993       {
19994  ;
19995
19996  ;
19997  return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
19998         __k1, __k2 - __k1);
19999       }
20000
20001       basic_string&
20002       replace(iterator __i1, iterator __i2,
20003        const _CharT* __k1, const _CharT* __k2)
20004       {
20005  ;
20006
20007  ;
20008  return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
20009         __k1, __k2 - __k1);
20010       }
20011
20012       basic_string&
20013       replace(iterator __i1, iterator __i2, iterator __k1, iterator __k2)
20014       {
20015  ;
20016
20017  ;
20018  return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
20019         __k1.base(), __k2 - __k1);
20020       }
20021
20022       basic_string&
20023       replace(iterator __i1, iterator __i2,
20024        const_iterator __k1, const_iterator __k2)
20025       {
20026  ;
20027
20028  ;
20029  return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
20030         __k1.base(), __k2 - __k1);
20031       }
20032
20033     private:
20034       template<class _Integer>
20035  basic_string&
20036  _M_replace_dispatch(iterator __i1, iterator __i2, _Integer __n,
20037        _Integer __val, __true_type)
20038         { return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __val); }
20039
20040       template<class _InputIterator>
20041  basic_string&
20042  _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1,
20043        _InputIterator __k2, __false_type);
20044
20045       basic_string&
20046       _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2,
20047        _CharT __c);
20048
20049       basic_string&
20050       _M_replace_safe(size_type __pos1, size_type __n1, const _CharT* __s,
20051         size_type __n2);
20052
20053
20054
20055       template<class _InIterator>
20056         static _CharT*
20057         _S_construct_aux(_InIterator __beg, _InIterator __end,
20058     const _Alloc& __a, __false_type)
20059  {
20060           typedef typename iterator_traits<_InIterator>::iterator_category _Tag;
20061           return _S_construct(__beg, __end, __a, _Tag());
20062  }
20063
20064       template<class _InIterator>
20065         static _CharT*
20066         _S_construct_aux(_InIterator __beg, _InIterator __end,
20067     const _Alloc& __a, __true_type)
20068  { return _S_construct(static_cast<size_type>(__beg),
20069          static_cast<value_type>(__end), __a); }
20070
20071       template<class _InIterator>
20072         static _CharT*
20073         _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a)
20074  {
20075    typedef typename std::__is_integer<_InIterator>::__type _Integral;
20076    return _S_construct_aux(__beg, __end, __a, _Integral());
20077         }
20078
20079
20080       template<class _InIterator>
20081         static _CharT*
20082          _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
20083         input_iterator_tag);
20084
20085
20086
20087       template<class _FwdIterator>
20088         static _CharT*
20089         _S_construct(_FwdIterator __beg, _FwdIterator __end, const _Alloc& __a,
20090        forward_iterator_tag);
20091
20092       static _CharT*
20093       _S_construct(size_type __req, _CharT __c, const _Alloc& __a);
20094
20095     public:
20096 # 1501 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20097       size_type
20098       copy(_CharT* __s, size_type __n, size_type __pos = 0) const;
20099 # 1511 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20100       void
20101       swap(basic_string& __s);
20102 # 1521 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20103       const _CharT*
20104       c_str() const
20105       { return _M_data(); }
20106
20107
20108
20109
20110
20111
20112
20113       const _CharT*
20114       data() const
20115       { return _M_data(); }
20116
20117
20118
20119
20120       allocator_type
20121       get_allocator() const
20122       { return _M_dataplus; }
20123 # 1553 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20124       size_type
20125       find(const _CharT* __s, size_type __pos, size_type __n) const;
20126 # 1566 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20127       size_type
20128       find(const basic_string& __str, size_type __pos = 0) const
20129       { return this->find(__str.data(), __pos, __str.size()); }
20130 # 1580 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20131       size_type
20132       find(const _CharT* __s, size_type __pos = 0) const
20133       {
20134  ;
20135  return this->find(__s, __pos, traits_type::length(__s));
20136       }
20137 # 1597 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20138       size_type
20139       find(_CharT __c, size_type __pos = 0) const;
20140 # 1610 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20141       size_type
20142       rfind(const basic_string& __str, size_type __pos = npos) const
20143       { return this->rfind(__str.data(), __pos, __str.size()); }
20144 # 1625 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20145       size_type
20146       rfind(const _CharT* __s, size_type __pos, size_type __n) const;
20147 # 1638 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20148       size_type
20149       rfind(const _CharT* __s, size_type __pos = npos) const
20150       {
20151  ;
20152  return this->rfind(__s, __pos, traits_type::length(__s));
20153       }
20154 # 1655 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20155       size_type
20156       rfind(_CharT __c, size_type __pos = npos) const;
20157 # 1668 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20158       size_type
20159       find_first_of(const basic_string& __str, size_type __pos = 0) const
20160       { return this->find_first_of(__str.data(), __pos, __str.size()); }
20161 # 1683 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20162       size_type
20163       find_first_of(const _CharT* __s, size_type __pos, size_type __n) const;
20164 # 1696 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20165       size_type
20166       find_first_of(const _CharT* __s, size_type __pos = 0) const
20167       {
20168  ;
20169  return this->find_first_of(__s, __pos, traits_type::length(__s));
20170       }
20171 # 1715 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20172       size_type
20173       find_first_of(_CharT __c, size_type __pos = 0) const
20174       { return this->find(__c, __pos); }
20175 # 1729 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20176       size_type
20177       find_last_of(const basic_string& __str, size_type __pos = npos) const
20178       { return this->find_last_of(__str.data(), __pos, __str.size()); }
20179 # 1744 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20180       size_type
20181       find_last_of(const _CharT* __s, size_type __pos, size_type __n) const;
20182 # 1757 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20183       size_type
20184       find_last_of(const _CharT* __s, size_type __pos = npos) const
20185       {
20186  ;
20187  return this->find_last_of(__s, __pos, traits_type::length(__s));
20188       }
20189 # 1776 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20190       size_type
20191       find_last_of(_CharT __c, size_type __pos = npos) const
20192       { return this->rfind(__c, __pos); }
20193 # 1790 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20194       size_type
20195       find_first_not_of(const basic_string& __str, size_type __pos = 0) const
20196       { return this->find_first_not_of(__str.data(), __pos, __str.size()); }
20197 # 1805 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20198       size_type
20199       find_first_not_of(const _CharT* __s, size_type __pos,
20200    size_type __n) const;
20201 # 1819 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20202       size_type
20203       find_first_not_of(const _CharT* __s, size_type __pos = 0) const
20204       {
20205  ;
20206  return this->find_first_not_of(__s, __pos, traits_type::length(__s));
20207       }
20208 # 1836 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20209       size_type
20210       find_first_not_of(_CharT __c, size_type __pos = 0) const;
20211 # 1849 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20212       size_type
20213       find_last_not_of(const basic_string& __str, size_type __pos = npos) const
20214       { return this->find_last_not_of(__str.data(), __pos, __str.size()); }
20215 # 1865 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20216       size_type
20217       find_last_not_of(const _CharT* __s, size_type __pos,
20218          size_type __n) const;
20219 # 1878 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20220       size_type
20221       find_last_not_of(const _CharT* __s, size_type __pos = npos) const
20222       {
20223  ;
20224  return this->find_last_not_of(__s, __pos, traits_type::length(__s));
20225       }
20226 # 1895 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20227       size_type
20228       find_last_not_of(_CharT __c, size_type __pos = npos) const;
20229 # 1910 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20230       basic_string
20231       substr(size_type __pos = 0, size_type __n = npos) const
20232       { return basic_string(*this,
20233        _M_check(__pos, "basic_string::substr"), __n); }
20234 # 1928 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20235       int
20236       compare(const basic_string& __str) const
20237       {
20238  const size_type __size = this->size();
20239  const size_type __osize = __str.size();
20240  const size_type __len = std::min(__size, __osize);
20241
20242  int __r = traits_type::compare(_M_data(), __str.data(), __len);
20243  if (!__r)
20244    __r = __size - __osize;
20245  return __r;
20246       }
20247 # 1958 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20248       int
20249       compare(size_type __pos, size_type __n, const basic_string& __str) const;
20250 # 1982 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20251       int
20252       compare(size_type __pos1, size_type __n1, const basic_string& __str,
20253        size_type __pos2, size_type __n2) const;
20254 # 2000 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20255       int
20256       compare(const _CharT* __s) const;
20257 # 2023 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20258       int
20259       compare(size_type __pos, size_type __n1, const _CharT* __s) const;
20260 # 2048 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20261       int
20262       compare(size_type __pos, size_type __n1, const _CharT* __s,
20263        size_type __n2) const;
20264   };
20265
20266   template<typename _CharT, typename _Traits, typename _Alloc>
20267     inline basic_string<_CharT, _Traits, _Alloc>::
20268     basic_string()
20269
20270     : _M_dataplus(_S_empty_rep()._M_refdata(), _Alloc()) { }
20271 # 2069 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20272   template<typename _CharT, typename _Traits, typename _Alloc>
20273     basic_string<_CharT, _Traits, _Alloc>
20274     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20275        const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20276     {
20277       basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
20278       __str.append(__rhs);
20279       return __str;
20280     }
20281
20282
20283
20284
20285
20286
20287
20288   template<typename _CharT, typename _Traits, typename _Alloc>
20289     basic_string<_CharT,_Traits,_Alloc>
20290     operator+(const _CharT* __lhs,
20291        const basic_string<_CharT,_Traits,_Alloc>& __rhs);
20292
20293
20294
20295
20296
20297
20298
20299   template<typename _CharT, typename _Traits, typename _Alloc>
20300     basic_string<_CharT,_Traits,_Alloc>
20301     operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs);
20302
20303
20304
20305
20306
20307
20308
20309   template<typename _CharT, typename _Traits, typename _Alloc>
20310     inline basic_string<_CharT, _Traits, _Alloc>
20311     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20312       const _CharT* __rhs)
20313     {
20314       basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
20315       __str.append(__rhs);
20316       return __str;
20317     }
20318
20319
20320
20321
20322
20323
20324
20325   template<typename _CharT, typename _Traits, typename _Alloc>
20326     inline basic_string<_CharT, _Traits, _Alloc>
20327     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs)
20328     {
20329       typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
20330       typedef typename __string_type::size_type __size_type;
20331       __string_type __str(__lhs);
20332       __str.append(__size_type(1), __rhs);
20333       return __str;
20334     }
20335 # 2140 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20336   template<typename _CharT, typename _Traits, typename _Alloc>
20337     inline bool
20338     operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20339         const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20340     { return __lhs.compare(__rhs) == 0; }
20341
20342
20343
20344
20345
20346
20347
20348   template<typename _CharT, typename _Traits, typename _Alloc>
20349     inline bool
20350     operator==(const _CharT* __lhs,
20351         const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20352     { return __rhs.compare(__lhs) == 0; }
20353
20354
20355
20356
20357
20358
20359
20360   template<typename _CharT, typename _Traits, typename _Alloc>
20361     inline bool
20362     operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20363         const _CharT* __rhs)
20364     { return __lhs.compare(__rhs) == 0; }
20365 # 2177 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20366   template<typename _CharT, typename _Traits, typename _Alloc>
20367     inline bool
20368     operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20369         const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20370     { return __rhs.compare(__lhs) != 0; }
20371
20372
20373
20374
20375
20376
20377
20378   template<typename _CharT, typename _Traits, typename _Alloc>
20379     inline bool
20380     operator!=(const _CharT* __lhs,
20381         const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20382     { return __rhs.compare(__lhs) != 0; }
20383
20384
20385
20386
20387
20388
20389
20390   template<typename _CharT, typename _Traits, typename _Alloc>
20391     inline bool
20392     operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20393         const _CharT* __rhs)
20394     { return __lhs.compare(__rhs) != 0; }
20395 # 2214 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20396   template<typename _CharT, typename _Traits, typename _Alloc>
20397     inline bool
20398     operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20399        const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20400     { return __lhs.compare(__rhs) < 0; }
20401
20402
20403
20404
20405
20406
20407
20408   template<typename _CharT, typename _Traits, typename _Alloc>
20409     inline bool
20410     operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20411        const _CharT* __rhs)
20412     { return __lhs.compare(__rhs) < 0; }
20413
20414
20415
20416
20417
20418
20419
20420   template<typename _CharT, typename _Traits, typename _Alloc>
20421     inline bool
20422     operator<(const _CharT* __lhs,
20423        const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20424     { return __rhs.compare(__lhs) > 0; }
20425 # 2251 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20426   template<typename _CharT, typename _Traits, typename _Alloc>
20427     inline bool
20428     operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20429        const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20430     { return __lhs.compare(__rhs) > 0; }
20431
20432
20433
20434
20435
20436
20437
20438   template<typename _CharT, typename _Traits, typename _Alloc>
20439     inline bool
20440     operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20441        const _CharT* __rhs)
20442     { return __lhs.compare(__rhs) > 0; }
20443
20444
20445
20446
20447
20448
20449
20450   template<typename _CharT, typename _Traits, typename _Alloc>
20451     inline bool
20452     operator>(const _CharT* __lhs,
20453        const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20454     { return __rhs.compare(__lhs) < 0; }
20455 # 2288 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20456   template<typename _CharT, typename _Traits, typename _Alloc>
20457     inline bool
20458     operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20459         const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20460     { return __lhs.compare(__rhs) <= 0; }
20461
20462
20463
20464
20465
20466
20467
20468   template<typename _CharT, typename _Traits, typename _Alloc>
20469     inline bool
20470     operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20471         const _CharT* __rhs)
20472     { return __lhs.compare(__rhs) <= 0; }
20473
20474
20475
20476
20477
20478
20479
20480   template<typename _CharT, typename _Traits, typename _Alloc>
20481     inline bool
20482     operator<=(const _CharT* __lhs,
20483         const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20484     { return __rhs.compare(__lhs) >= 0; }
20485 # 2325 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20486   template<typename _CharT, typename _Traits, typename _Alloc>
20487     inline bool
20488     operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20489         const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20490     { return __lhs.compare(__rhs) >= 0; }
20491
20492
20493
20494
20495
20496
20497
20498   template<typename _CharT, typename _Traits, typename _Alloc>
20499     inline bool
20500     operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
20501         const _CharT* __rhs)
20502     { return __lhs.compare(__rhs) >= 0; }
20503
20504
20505
20506
20507
20508
20509
20510   template<typename _CharT, typename _Traits, typename _Alloc>
20511     inline bool
20512     operator>=(const _CharT* __lhs,
20513       const basic_string<_CharT, _Traits, _Alloc>& __rhs)
20514     { return __rhs.compare(__lhs) <= 0; }
20515 # 2362 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20516   template<typename _CharT, typename _Traits, typename _Alloc>
20517     inline void
20518     swap(basic_string<_CharT, _Traits, _Alloc>& __lhs,
20519   basic_string<_CharT, _Traits, _Alloc>& __rhs)
20520     { __lhs.swap(__rhs); }
20521 # 2379 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20522   template<typename _CharT, typename _Traits, typename _Alloc>
20523     basic_istream<_CharT, _Traits>&
20524     operator>>(basic_istream<_CharT, _Traits>& __is,
20525         basic_string<_CharT, _Traits, _Alloc>& __str);
20526
20527   template<>
20528     basic_istream<char>&
20529     operator>>(basic_istream<char>& __is, basic_string<char>& __str);
20530 # 2397 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20531   template<typename _CharT, typename _Traits, typename _Alloc>
20532     inline basic_ostream<_CharT, _Traits>&
20533     operator<<(basic_ostream<_CharT, _Traits>& __os,
20534         const basic_string<_CharT, _Traits, _Alloc>& __str)
20535     {
20536
20537
20538       return __ostream_insert(__os, __str.data(), __str.size());
20539     }
20540 # 2420 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20541   template<typename _CharT, typename _Traits, typename _Alloc>
20542     basic_istream<_CharT, _Traits>&
20543     getline(basic_istream<_CharT, _Traits>& __is,
20544      basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim);
20545 # 2437 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.h" 3
20546   template<typename _CharT, typename _Traits, typename _Alloc>
20547     inline basic_istream<_CharT, _Traits>&
20548     getline(basic_istream<_CharT, _Traits>& __is,
20549      basic_string<_CharT, _Traits, _Alloc>& __str)
20550     { return getline(__is, __str, __is.widen('\n')); }
20551
20552   template<>
20553     basic_istream<char>&
20554     getline(basic_istream<char>& __in, basic_string<char>& __str,
20555      char __delim);
20556
20557
20558   template<>
20559     basic_istream<wchar_t>&
20560     getline(basic_istream<wchar_t>& __in, basic_string<wchar_t>& __str,
20561      wchar_t __delim);
20562
20563
20564 }
20565 # 55 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/string" 2 3
20566
20567
20568 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/algorithm" 1 3
20569 # 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/algorithm" 3
20570 #define _GLIBCXX_ALGORITHM 1
20571
20572        
20573 # 64 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/algorithm" 3
20574
20575
20576
20577
20578 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 1 3
20579 # 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
20580 #define _ALGO_H 1
20581
20582 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_heap.h" 1 3
20583 # 61 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_heap.h" 3
20584 #define _STL_HEAP_H 1
20585
20586
20587
20588 namespace std __attribute__ ((__visibility__ ("default"))) {
20589
20590
20591
20592
20593   template<typename _RandomAccessIterator, typename _Distance>
20594     bool
20595     __is_heap(_RandomAccessIterator __first, _Distance __n)
20596     {
20597       _Distance __parent = 0;
20598       for (_Distance __child = 1; __child < __n; ++__child)
20599  {
20600    if (__first[__parent] < __first[__child])
20601      return false;
20602    if ((__child & 1) == 0)
20603      ++__parent;
20604  }
20605       return true;
20606     }
20607
20608   template<typename _RandomAccessIterator, typename _Distance,
20609            typename _StrictWeakOrdering>
20610     bool
20611     __is_heap(_RandomAccessIterator __first, _StrictWeakOrdering __comp,
20612        _Distance __n)
20613     {
20614       _Distance __parent = 0;
20615       for (_Distance __child = 1; __child < __n; ++__child)
20616  {
20617    if (__comp(__first[__parent], __first[__child]))
20618      return false;
20619    if ((__child & 1) == 0)
20620      ++__parent;
20621  }
20622       return true;
20623     }
20624
20625   template<typename _RandomAccessIterator>
20626     bool
20627     __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
20628     { return std::__is_heap(__first, std::distance(__first, __last)); }
20629
20630   template<typename _RandomAccessIterator, typename _StrictWeakOrdering>
20631     bool
20632     __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
20633      _StrictWeakOrdering __comp)
20634     { return std::__is_heap(__first, __comp, std::distance(__first, __last)); }
20635
20636
20637
20638   template<typename _RandomAccessIterator, typename _Distance, typename _Tp>
20639     void
20640     __push_heap(_RandomAccessIterator __first,
20641   _Distance __holeIndex, _Distance __topIndex, _Tp __value)
20642     {
20643       _Distance __parent = (__holeIndex - 1) / 2;
20644       while (__holeIndex > __topIndex && *(__first + __parent) < __value)
20645  {
20646    *(__first + __holeIndex) = *(__first + __parent);
20647    __holeIndex = __parent;
20648    __parent = (__holeIndex - 1) / 2;
20649  }
20650       *(__first + __holeIndex) = __value;
20651     }
20652 # 139 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_heap.h" 3
20653   template<typename _RandomAccessIterator>
20654     inline void
20655     push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
20656     {
20657       typedef typename iterator_traits<_RandomAccessIterator>::value_type
20658    _ValueType;
20659       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
20660    _DistanceType;
20661
20662
20663      
20664
20665      
20666       ;
20667
20668
20669       std::__push_heap(__first, _DistanceType((__last - __first) - 1),
20670          _DistanceType(0), _ValueType(*(__last - 1)));
20671     }
20672
20673   template<typename _RandomAccessIterator, typename _Distance, typename _Tp,
20674      typename _Compare>
20675     void
20676     __push_heap(_RandomAccessIterator __first, _Distance __holeIndex,
20677   _Distance __topIndex, _Tp __value, _Compare __comp)
20678     {
20679       _Distance __parent = (__holeIndex - 1) / 2;
20680       while (__holeIndex > __topIndex
20681       && __comp(*(__first + __parent), __value))
20682  {
20683    *(__first + __holeIndex) = *(__first + __parent);
20684    __holeIndex = __parent;
20685    __parent = (__holeIndex - 1) / 2;
20686  }
20687       *(__first + __holeIndex) = __value;
20688     }
20689 # 187 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_heap.h" 3
20690   template<typename _RandomAccessIterator, typename _Compare>
20691     inline void
20692     push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
20693        _Compare __comp)
20694     {
20695       typedef typename iterator_traits<_RandomAccessIterator>::value_type
20696    _ValueType;
20697       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
20698    _DistanceType;
20699
20700
20701      
20702
20703       ;
20704       ;
20705
20706       std::__push_heap(__first, _DistanceType((__last - __first) - 1),
20707          _DistanceType(0), _ValueType(*(__last - 1)), __comp);
20708     }
20709
20710   template<typename _RandomAccessIterator, typename _Distance, typename _Tp>
20711     void
20712     __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
20713     _Distance __len, _Tp __value)
20714     {
20715       const _Distance __topIndex = __holeIndex;
20716       _Distance __secondChild = 2 * __holeIndex + 2;
20717       while (__secondChild < __len)
20718  {
20719    if (*(__first + __secondChild) < *(__first + (__secondChild - 1)))
20720      __secondChild--;
20721    *(__first + __holeIndex) = *(__first + __secondChild);
20722    __holeIndex = __secondChild;
20723    __secondChild = 2 * (__secondChild + 1);
20724  }
20725       if (__secondChild == __len)
20726  {
20727    *(__first + __holeIndex) = *(__first + (__secondChild - 1));
20728    __holeIndex = __secondChild - 1;
20729  }
20730       std::__push_heap(__first, __holeIndex, __topIndex, __value);
20731     }
20732
20733   template<typename _RandomAccessIterator, typename _Tp>
20734     inline void
20735     __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
20736         _RandomAccessIterator __result, _Tp __value)
20737     {
20738       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
20739  _Distance;
20740       *__result = *__first;
20741       std::__adjust_heap(__first, _Distance(0), _Distance(__last - __first),
20742     __value);
20743     }
20744 # 251 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_heap.h" 3
20745   template<typename _RandomAccessIterator>
20746     inline void
20747     pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
20748     {
20749       typedef typename iterator_traits<_RandomAccessIterator>::value_type
20750  _ValueType;
20751
20752
20753      
20754
20755      
20756       ;
20757       ;
20758
20759       std::__pop_heap(__first, __last - 1, __last - 1,
20760         _ValueType(*(__last - 1)));
20761     }
20762
20763   template<typename _RandomAccessIterator, typename _Distance,
20764     typename _Tp, typename _Compare>
20765     void
20766     __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
20767     _Distance __len, _Tp __value, _Compare __comp)
20768     {
20769       const _Distance __topIndex = __holeIndex;
20770       _Distance __secondChild = 2 * __holeIndex + 2;
20771       while (__secondChild < __len)
20772  {
20773    if (__comp(*(__first + __secondChild),
20774        *(__first + (__secondChild - 1))))
20775      __secondChild--;
20776    *(__first + __holeIndex) = *(__first + __secondChild);
20777    __holeIndex = __secondChild;
20778    __secondChild = 2 * (__secondChild + 1);
20779  }
20780       if (__secondChild == __len)
20781  {
20782    *(__first + __holeIndex) = *(__first + (__secondChild - 1));
20783    __holeIndex = __secondChild - 1;
20784  }
20785       std::__push_heap(__first, __holeIndex, __topIndex, __value, __comp);
20786     }
20787
20788   template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
20789     inline void
20790     __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
20791         _RandomAccessIterator __result, _Tp __value, _Compare __comp)
20792     {
20793       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
20794  _Distance;
20795       *__result = *__first;
20796       std::__adjust_heap(__first, _Distance(0), _Distance(__last - __first),
20797     __value, __comp);
20798     }
20799 # 317 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_heap.h" 3
20800   template<typename _RandomAccessIterator, typename _Compare>
20801     inline void
20802     pop_heap(_RandomAccessIterator __first,
20803       _RandomAccessIterator __last, _Compare __comp)
20804     {
20805
20806      
20807
20808       ;
20809       ;
20810
20811       typedef typename iterator_traits<_RandomAccessIterator>::value_type
20812  _ValueType;
20813       std::__pop_heap(__first, __last - 1, __last - 1,
20814         _ValueType(*(__last - 1)), __comp);
20815     }
20816 # 342 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_heap.h" 3
20817   template<typename _RandomAccessIterator>
20818     void
20819     make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
20820     {
20821       typedef typename iterator_traits<_RandomAccessIterator>::value_type
20822    _ValueType;
20823       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
20824    _DistanceType;
20825
20826
20827      
20828
20829      
20830       ;
20831
20832       if (__last - __first < 2)
20833  return;
20834
20835       const _DistanceType __len = __last - __first;
20836       _DistanceType __parent = (__len - 2) / 2;
20837       while (true)
20838  {
20839    std::__adjust_heap(__first, __parent, __len,
20840         _ValueType(*(__first + __parent)));
20841    if (__parent == 0)
20842      return;
20843    __parent--;
20844  }
20845     }
20846 # 382 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_heap.h" 3
20847   template<typename _RandomAccessIterator, typename _Compare>
20848     inline void
20849     make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
20850        _Compare __comp)
20851     {
20852       typedef typename iterator_traits<_RandomAccessIterator>::value_type
20853    _ValueType;
20854       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
20855    _DistanceType;
20856
20857
20858      
20859
20860       ;
20861
20862       if (__last - __first < 2)
20863  return;
20864
20865       const _DistanceType __len = __last - __first;
20866       _DistanceType __parent = (__len - 2) / 2;
20867       while (true)
20868  {
20869    std::__adjust_heap(__first, __parent, __len,
20870         _ValueType(*(__first + __parent)), __comp);
20871    if (__parent == 0)
20872      return;
20873    __parent--;
20874  }
20875     }
20876 # 420 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_heap.h" 3
20877   template<typename _RandomAccessIterator>
20878     void
20879     sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
20880     {
20881
20882      
20883
20884      
20885
20886       ;
20887
20888
20889       while (__last - __first > 1)
20890  std::pop_heap(__first, _RandomAccessIterator(__last--));
20891     }
20892 # 446 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_heap.h" 3
20893   template<typename _RandomAccessIterator, typename _Compare>
20894     void
20895     sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
20896        _Compare __comp)
20897     {
20898
20899      
20900
20901       ;
20902       ;
20903
20904       while (__last - __first > 1)
20905  std::pop_heap(__first, _RandomAccessIterator(__last--), __comp);
20906     }
20907
20908 }
20909 # 66 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 2 3
20910 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_tempbuf.h" 1 3
20911 # 63 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_tempbuf.h" 3
20912 #define _TEMPBUF_H 1
20913
20914
20915
20916 namespace std __attribute__ ((__visibility__ ("default"))) {
20917 # 76 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_tempbuf.h" 3
20918   template<typename _ForwardIterator, typename _Tp>
20919     class _Temporary_buffer
20920     {
20921
20922      
20923
20924     public:
20925       typedef _Tp value_type;
20926       typedef value_type* pointer;
20927       typedef pointer iterator;
20928       typedef ptrdiff_t size_type;
20929
20930     protected:
20931       size_type _M_original_len;
20932       size_type _M_len;
20933       pointer _M_buffer;
20934
20935       void
20936       _M_initialize_buffer(const _Tp&, __true_type) { }
20937
20938       void
20939       _M_initialize_buffer(const _Tp& __val, __false_type)
20940       { std::uninitialized_fill_n(_M_buffer, _M_len, __val); }
20941
20942     public:
20943
20944       size_type
20945       size() const
20946       { return _M_len; }
20947
20948
20949       size_type
20950       requested_size() const
20951       { return _M_original_len; }
20952
20953
20954       iterator
20955       begin()
20956       { return _M_buffer; }
20957
20958
20959       iterator
20960       end()
20961       { return _M_buffer + _M_len; }
20962
20963
20964
20965
20966
20967       _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last);
20968
20969       ~_Temporary_buffer()
20970       {
20971  std::_Destroy(_M_buffer, _M_buffer + _M_len);
20972  std::return_temporary_buffer(_M_buffer);
20973       }
20974
20975     private:
20976
20977       _Temporary_buffer(const _Temporary_buffer&);
20978
20979       void
20980       operator=(const _Temporary_buffer&);
20981     };
20982
20983
20984   template<typename _ForwardIterator, typename _Tp>
20985     _Temporary_buffer<_ForwardIterator, _Tp>::
20986     _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last)
20987     : _M_original_len(std::distance(__first, __last)),
20988       _M_len(0), _M_buffer(0)
20989     {
20990
20991       typedef typename std::__is_scalar<_Tp>::__type _Trivial;
20992
20993       try
20994  {
20995    pair<pointer, size_type> __p(get_temporary_buffer<
20996            value_type>(_M_original_len));
20997    _M_buffer = __p.first;
20998    _M_len = __p.second;
20999    if (_M_len > 0)
21000      _M_initialize_buffer(*__first, _Trivial());
21001  }
21002       catch(...)
21003  {
21004    std::return_temporary_buffer(_M_buffer);
21005    _M_buffer = 0;
21006    _M_len = 0;
21007    throw;
21008  }
21009     }
21010
21011 }
21012 # 67 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 2 3
21013
21014
21015
21016
21017 namespace std __attribute__ ((__visibility__ ("default"))) {
21018 # 85 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21019   template<typename _Tp>
21020     inline const _Tp&
21021     __median(const _Tp& __a, const _Tp& __b, const _Tp& __c)
21022     {
21023
21024      
21025       if (__a < __b)
21026  if (__b < __c)
21027    return __b;
21028  else if (__a < __c)
21029    return __c;
21030  else
21031    return __a;
21032       else if (__a < __c)
21033  return __a;
21034       else if (__b < __c)
21035  return __c;
21036       else
21037  return __b;
21038     }
21039 # 119 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21040   template<typename _Tp, typename _Compare>
21041     inline const _Tp&
21042     __median(const _Tp& __a, const _Tp& __b, const _Tp& __c, _Compare __comp)
21043     {
21044
21045      
21046       if (__comp(__a, __b))
21047  if (__comp(__b, __c))
21048    return __b;
21049  else if (__comp(__a, __c))
21050    return __c;
21051  else
21052    return __a;
21053       else if (__comp(__a, __c))
21054  return __a;
21055       else if (__comp(__b, __c))
21056  return __c;
21057       else
21058  return __b;
21059     }
21060 # 151 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21061   template<typename _InputIterator, typename _Function>
21062     _Function
21063     for_each(_InputIterator __first, _InputIterator __last, _Function __f)
21064     {
21065
21066      
21067       ;
21068       for ( ; __first != __last; ++__first)
21069  __f(*__first);
21070       return __f;
21071     }
21072
21073
21074
21075
21076
21077
21078   template<typename _InputIterator, typename _Tp>
21079     inline _InputIterator
21080     __find(_InputIterator __first, _InputIterator __last,
21081     const _Tp& __val, input_iterator_tag)
21082     {
21083       while (__first != __last && !(*__first == __val))
21084  ++__first;
21085       return __first;
21086     }
21087
21088
21089
21090
21091
21092
21093   template<typename _InputIterator, typename _Predicate>
21094     inline _InputIterator
21095     __find_if(_InputIterator __first, _InputIterator __last,
21096        _Predicate __pred, input_iterator_tag)
21097     {
21098       while (__first != __last && !__pred(*__first))
21099  ++__first;
21100       return __first;
21101     }
21102
21103
21104
21105
21106
21107
21108   template<typename _RandomAccessIterator, typename _Tp>
21109     _RandomAccessIterator
21110     __find(_RandomAccessIterator __first, _RandomAccessIterator __last,
21111     const _Tp& __val, random_access_iterator_tag)
21112     {
21113       typename iterator_traits<_RandomAccessIterator>::difference_type
21114  __trip_count = (__last - __first) >> 2;
21115
21116       for ( ; __trip_count > 0 ; --__trip_count)
21117  {
21118    if (*__first == __val)
21119      return __first;
21120    ++__first;
21121
21122    if (*__first == __val)
21123      return __first;
21124    ++__first;
21125
21126    if (*__first == __val)
21127      return __first;
21128    ++__first;
21129
21130    if (*__first == __val)
21131      return __first;
21132    ++__first;
21133  }
21134
21135       switch (__last - __first)
21136  {
21137  case 3:
21138    if (*__first == __val)
21139      return __first;
21140    ++__first;
21141  case 2:
21142    if (*__first == __val)
21143      return __first;
21144    ++__first;
21145  case 1:
21146    if (*__first == __val)
21147      return __first;
21148    ++__first;
21149  case 0:
21150  default:
21151    return __last;
21152  }
21153     }
21154
21155
21156
21157
21158
21159
21160   template<typename _RandomAccessIterator, typename _Predicate>
21161     _RandomAccessIterator
21162     __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last,
21163        _Predicate __pred, random_access_iterator_tag)
21164     {
21165       typename iterator_traits<_RandomAccessIterator>::difference_type
21166  __trip_count = (__last - __first) >> 2;
21167
21168       for ( ; __trip_count > 0 ; --__trip_count)
21169  {
21170    if (__pred(*__first))
21171      return __first;
21172    ++__first;
21173
21174    if (__pred(*__first))
21175      return __first;
21176    ++__first;
21177
21178    if (__pred(*__first))
21179      return __first;
21180    ++__first;
21181
21182    if (__pred(*__first))
21183      return __first;
21184    ++__first;
21185  }
21186
21187       switch (__last - __first)
21188  {
21189  case 3:
21190    if (__pred(*__first))
21191      return __first;
21192    ++__first;
21193  case 2:
21194    if (__pred(*__first))
21195      return __first;
21196    ++__first;
21197  case 1:
21198    if (__pred(*__first))
21199      return __first;
21200    ++__first;
21201  case 0:
21202  default:
21203    return __last;
21204  }
21205     }
21206
21207
21208
21209
21210
21211
21212   template<typename _CharT>
21213     typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
21214         istreambuf_iterator<_CharT> >::__type
21215     find(istreambuf_iterator<_CharT>, istreambuf_iterator<_CharT>,
21216   const _CharT&);
21217 # 316 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21218   template<typename _InputIterator, typename _Tp>
21219     inline _InputIterator
21220     find(_InputIterator __first, _InputIterator __last,
21221   const _Tp& __val)
21222     {
21223
21224      
21225      
21226
21227       ;
21228       return std::__find(__first, __last, __val,
21229            std::__iterator_category(__first));
21230     }
21231 # 338 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21232   template<typename _InputIterator, typename _Predicate>
21233     inline _InputIterator
21234     find_if(_InputIterator __first, _InputIterator __last,
21235      _Predicate __pred)
21236     {
21237
21238      
21239      
21240
21241       ;
21242       return std::__find_if(__first, __last, __pred,
21243        std::__iterator_category(__first));
21244     }
21245 # 360 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21246   template<typename _ForwardIterator>
21247     _ForwardIterator
21248     adjacent_find(_ForwardIterator __first, _ForwardIterator __last)
21249     {
21250
21251      
21252      
21253
21254       ;
21255       if (__first == __last)
21256  return __last;
21257       _ForwardIterator __next = __first;
21258       while(++__next != __last)
21259  {
21260    if (*__first == *__next)
21261      return __first;
21262    __first = __next;
21263  }
21264       return __last;
21265     }
21266 # 391 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21267   template<typename _ForwardIterator, typename _BinaryPredicate>
21268     _ForwardIterator
21269     adjacent_find(_ForwardIterator __first, _ForwardIterator __last,
21270     _BinaryPredicate __binary_pred)
21271     {
21272
21273      
21274      
21275
21276
21277       ;
21278       if (__first == __last)
21279  return __last;
21280       _ForwardIterator __next = __first;
21281       while(++__next != __last)
21282  {
21283    if (__binary_pred(*__first, *__next))
21284      return __first;
21285    __first = __next;
21286  }
21287       return __last;
21288     }
21289 # 422 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21290   template<typename _InputIterator, typename _Tp>
21291     typename iterator_traits<_InputIterator>::difference_type
21292     count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
21293     {
21294
21295      
21296      
21297
21298       ;
21299       typename iterator_traits<_InputIterator>::difference_type __n = 0;
21300       for ( ; __first != __last; ++__first)
21301  if (*__first == __value)
21302    ++__n;
21303       return __n;
21304     }
21305 # 446 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21306   template<typename _InputIterator, typename _Predicate>
21307     typename iterator_traits<_InputIterator>::difference_type
21308     count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred)
21309     {
21310
21311      
21312      
21313
21314       ;
21315       typename iterator_traits<_InputIterator>::difference_type __n = 0;
21316       for ( ; __first != __last; ++__first)
21317  if (__pred(*__first))
21318    ++__n;
21319       return __n;
21320     }
21321 # 485 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21322   template<typename _ForwardIterator1, typename _ForwardIterator2>
21323     _ForwardIterator1
21324     search(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
21325     _ForwardIterator2 __first2, _ForwardIterator2 __last2)
21326     {
21327
21328      
21329      
21330      
21331
21332
21333       ;
21334       ;
21335
21336       if (__first1 == __last1 || __first2 == __last2)
21337  return __first1;
21338
21339
21340       _ForwardIterator2 __tmp(__first2);
21341       ++__tmp;
21342       if (__tmp == __last2)
21343  return std::find(__first1, __last1, *__first2);
21344
21345
21346       _ForwardIterator2 __p1, __p;
21347       __p1 = __first2; ++__p1;
21348       _ForwardIterator1 __current = __first1;
21349
21350       while (__first1 != __last1)
21351  {
21352    __first1 = std::find(__first1, __last1, *__first2);
21353    if (__first1 == __last1)
21354      return __last1;
21355
21356    __p = __p1;
21357    __current = __first1;
21358    if (++__current == __last1)
21359      return __last1;
21360
21361    while (*__current == *__p)
21362      {
21363        if (++__p == __last2)
21364   return __first1;
21365        if (++__current == __last1)
21366   return __last1;
21367      }
21368    ++__first1;
21369  }
21370       return __first1;
21371     }
21372 # 556 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21373   template<typename _ForwardIterator1, typename _ForwardIterator2,
21374     typename _BinaryPredicate>
21375     _ForwardIterator1
21376     search(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
21377     _ForwardIterator2 __first2, _ForwardIterator2 __last2,
21378     _BinaryPredicate __predicate)
21379     {
21380
21381      
21382      
21383      
21384
21385
21386       ;
21387       ;
21388
21389
21390       if (__first1 == __last1 || __first2 == __last2)
21391  return __first1;
21392
21393
21394       _ForwardIterator2 __tmp(__first2);
21395       ++__tmp;
21396       if (__tmp == __last2)
21397  {
21398    while (__first1 != __last1 && !__predicate(*__first1, *__first2))
21399      ++__first1;
21400    return __first1;
21401  }
21402
21403
21404       _ForwardIterator2 __p1, __p;
21405       __p1 = __first2; ++__p1;
21406       _ForwardIterator1 __current = __first1;
21407
21408       while (__first1 != __last1)
21409  {
21410    while (__first1 != __last1)
21411      {
21412        if (__predicate(*__first1, *__first2))
21413   break;
21414        ++__first1;
21415      }
21416    while (__first1 != __last1 && !__predicate(*__first1, *__first2))
21417      ++__first1;
21418    if (__first1 == __last1)
21419      return __last1;
21420
21421    __p = __p1;
21422    __current = __first1;
21423    if (++__current == __last1)
21424      return __last1;
21425
21426    while (__predicate(*__current, *__p))
21427      {
21428        if (++__p == __last2)
21429   return __first1;
21430        if (++__current == __last1)
21431   return __last1;
21432      }
21433    ++__first1;
21434  }
21435       return __first1;
21436     }
21437 # 628 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21438   template<typename _ForwardIterator, typename _Integer, typename _Tp>
21439     _ForwardIterator
21440     __search_n(_ForwardIterator __first, _ForwardIterator __last,
21441         _Integer __count, const _Tp& __val,
21442         std::forward_iterator_tag)
21443     {
21444       __first = std::find(__first, __last, __val);
21445       while (__first != __last)
21446  {
21447    typename iterator_traits<_ForwardIterator>::difference_type
21448      __n = __count;
21449    _ForwardIterator __i = __first;
21450    ++__i;
21451    while (__i != __last && __n != 1 && *__i == __val)
21452      {
21453        ++__i;
21454        --__n;
21455      }
21456    if (__n == 1)
21457      return __first;
21458    if (__i == __last)
21459      return __last;
21460    __first = std::find(++__i, __last, __val);
21461  }
21462       return __last;
21463     }
21464 # 662 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21465   template<typename _RandomAccessIter, typename _Integer, typename _Tp>
21466     _RandomAccessIter
21467     __search_n(_RandomAccessIter __first, _RandomAccessIter __last,
21468         _Integer __count, const _Tp& __val,
21469         std::random_access_iterator_tag)
21470     {
21471
21472       typedef typename std::iterator_traits<_RandomAccessIter>::difference_type
21473  _DistanceType;
21474
21475       _DistanceType __tailSize = __last - __first;
21476       const _DistanceType __pattSize = __count;
21477
21478       if (__tailSize < __pattSize)
21479         return __last;
21480
21481       const _DistanceType __skipOffset = __pattSize - 1;
21482       _RandomAccessIter __lookAhead = __first + __skipOffset;
21483       __tailSize -= __pattSize;
21484
21485       while (1)
21486  {
21487
21488
21489    while (!(*__lookAhead == __val))
21490      {
21491        if (__tailSize < __pattSize)
21492   return __last;
21493        __lookAhead += __pattSize;
21494        __tailSize -= __pattSize;
21495      }
21496    _DistanceType __remainder = __skipOffset;
21497    for (_RandomAccessIter __backTrack = __lookAhead - 1;
21498         *__backTrack == __val; --__backTrack)
21499      {
21500        if (--__remainder == 0)
21501   return (__lookAhead - __skipOffset);
21502      }
21503    if (__remainder > __tailSize)
21504      return __last;
21505    __lookAhead += __remainder;
21506    __tailSize -= __remainder;
21507  }
21508     }
21509 # 720 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21510   template<typename _ForwardIterator, typename _Integer, typename _Tp>
21511     _ForwardIterator
21512     search_n(_ForwardIterator __first, _ForwardIterator __last,
21513       _Integer __count, const _Tp& __val)
21514     {
21515
21516      
21517      
21518
21519       ;
21520
21521       if (__count <= 0)
21522  return __first;
21523       if (__count == 1)
21524  return std::find(__first, __last, __val);
21525       return std::__search_n(__first, __last, __count, __val,
21526         std::__iterator_category(__first));
21527     }
21528 # 747 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21529   template<typename _ForwardIterator, typename _Integer, typename _Tp,
21530            typename _BinaryPredicate>
21531     _ForwardIterator
21532     __search_n(_ForwardIterator __first, _ForwardIterator __last,
21533         _Integer __count, const _Tp& __val,
21534         _BinaryPredicate __binary_pred, std::forward_iterator_tag)
21535     {
21536       while (__first != __last && !__binary_pred(*__first, __val))
21537         ++__first;
21538
21539       while (__first != __last)
21540  {
21541    typename iterator_traits<_ForwardIterator>::difference_type
21542      __n = __count;
21543    _ForwardIterator __i = __first;
21544    ++__i;
21545    while (__i != __last && __n != 1 && __binary_pred(*__i, __val))
21546      {
21547        ++__i;
21548        --__n;
21549      }
21550    if (__n == 1)
21551      return __first;
21552    if (__i == __last)
21553      return __last;
21554    __first = ++__i;
21555    while (__first != __last && !__binary_pred(*__first, __val))
21556      ++__first;
21557  }
21558       return __last;
21559     }
21560 # 787 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21561   template<typename _RandomAccessIter, typename _Integer, typename _Tp,
21562     typename _BinaryPredicate>
21563     _RandomAccessIter
21564     __search_n(_RandomAccessIter __first, _RandomAccessIter __last,
21565         _Integer __count, const _Tp& __val,
21566         _BinaryPredicate __binary_pred, std::random_access_iterator_tag)
21567     {
21568
21569       typedef typename std::iterator_traits<_RandomAccessIter>::difference_type
21570  _DistanceType;
21571
21572       _DistanceType __tailSize = __last - __first;
21573       const _DistanceType __pattSize = __count;
21574
21575       if (__tailSize < __pattSize)
21576         return __last;
21577
21578       const _DistanceType __skipOffset = __pattSize - 1;
21579       _RandomAccessIter __lookAhead = __first + __skipOffset;
21580       __tailSize -= __pattSize;
21581
21582       while (1)
21583  {
21584
21585
21586    while (!__binary_pred(*__lookAhead, __val))
21587      {
21588        if (__tailSize < __pattSize)
21589   return __last;
21590        __lookAhead += __pattSize;
21591        __tailSize -= __pattSize;
21592      }
21593    _DistanceType __remainder = __skipOffset;
21594    for (_RandomAccessIter __backTrack = __lookAhead - 1;
21595         __binary_pred(*__backTrack, __val); --__backTrack)
21596      {
21597        if (--__remainder == 0)
21598   return (__lookAhead - __skipOffset);
21599      }
21600    if (__remainder > __tailSize)
21601      return __last;
21602    __lookAhead += __remainder;
21603    __tailSize -= __remainder;
21604  }
21605     }
21606 # 848 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21607   template<typename _ForwardIterator, typename _Integer, typename _Tp,
21608            typename _BinaryPredicate>
21609     _ForwardIterator
21610     search_n(_ForwardIterator __first, _ForwardIterator __last,
21611       _Integer __count, const _Tp& __val,
21612       _BinaryPredicate __binary_pred)
21613     {
21614
21615      
21616      
21617
21618       ;
21619
21620       if (__count <= 0)
21621  return __first;
21622       if (__count == 1)
21623  {
21624    while (__first != __last && !__binary_pred(*__first, __val))
21625      ++__first;
21626    return __first;
21627  }
21628       return std::__search_n(__first, __last, __count, __val, __binary_pred,
21629         std::__iterator_category(__first));
21630     }
21631 # 884 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21632   template<typename _ForwardIterator1, typename _ForwardIterator2>
21633     _ForwardIterator2
21634     swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
21635   _ForwardIterator2 __first2)
21636     {
21637
21638      
21639
21640      
21641
21642      
21643
21644
21645      
21646
21647
21648       ;
21649
21650       for ( ; __first1 != __last1; ++__first1, ++__first2)
21651  std::iter_swap(__first1, __first2);
21652       return __first2;
21653     }
21654 # 922 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21655   template<typename _InputIterator, typename _OutputIterator,
21656     typename _UnaryOperation>
21657     _OutputIterator
21658     transform(_InputIterator __first, _InputIterator __last,
21659        _OutputIterator __result, _UnaryOperation __unary_op)
21660     {
21661
21662      
21663      
21664
21665
21666       ;
21667
21668       for ( ; __first != __last; ++__first, ++__result)
21669  *__result = __unary_op(*__first);
21670       return __result;
21671     }
21672 # 957 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21673   template<typename _InputIterator1, typename _InputIterator2,
21674     typename _OutputIterator, typename _BinaryOperation>
21675     _OutputIterator
21676     transform(_InputIterator1 __first1, _InputIterator1 __last1,
21677        _InputIterator2 __first2, _OutputIterator __result,
21678        _BinaryOperation __binary_op)
21679     {
21680
21681      
21682      
21683      
21684
21685
21686       ;
21687
21688       for ( ; __first1 != __last1; ++__first1, ++__first2, ++__result)
21689  *__result = __binary_op(*__first1, *__first2);
21690       return __result;
21691     }
21692 # 989 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21693   template<typename _ForwardIterator, typename _Tp>
21694     void
21695     replace(_ForwardIterator __first, _ForwardIterator __last,
21696      const _Tp& __old_value, const _Tp& __new_value)
21697     {
21698
21699      
21700
21701      
21702
21703      
21704
21705       ;
21706
21707       for ( ; __first != __last; ++__first)
21708  if (*__first == __old_value)
21709    *__first = __new_value;
21710     }
21711 # 1020 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21712   template<typename _ForwardIterator, typename _Predicate, typename _Tp>
21713     void
21714     replace_if(_ForwardIterator __first, _ForwardIterator __last,
21715         _Predicate __pred, const _Tp& __new_value)
21716     {
21717
21718      
21719
21720      
21721
21722      
21723
21724       ;
21725
21726       for ( ; __first != __last; ++__first)
21727  if (__pred(*__first))
21728    *__first = __new_value;
21729     }
21730 # 1053 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21731   template<typename _InputIterator, typename _OutputIterator, typename _Tp>
21732     _OutputIterator
21733     replace_copy(_InputIterator __first, _InputIterator __last,
21734    _OutputIterator __result,
21735    const _Tp& __old_value, const _Tp& __new_value)
21736     {
21737
21738      
21739      
21740
21741      
21742
21743       ;
21744
21745       for ( ; __first != __last; ++__first, ++__result)
21746  if (*__first == __old_value)
21747    *__result = __new_value;
21748  else
21749    *__result = *__first;
21750       return __result;
21751     }
21752 # 1089 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21753   template<typename _InputIterator, typename _OutputIterator,
21754     typename _Predicate, typename _Tp>
21755     _OutputIterator
21756     replace_copy_if(_InputIterator __first, _InputIterator __last,
21757       _OutputIterator __result,
21758       _Predicate __pred, const _Tp& __new_value)
21759     {
21760
21761      
21762      
21763
21764      
21765
21766       ;
21767
21768       for ( ; __first != __last; ++__first, ++__result)
21769  if (__pred(*__first))
21770    *__result = __new_value;
21771  else
21772    *__result = *__first;
21773       return __result;
21774     }
21775 # 1123 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21776   template<typename _ForwardIterator, typename _Generator>
21777     void
21778     generate(_ForwardIterator __first, _ForwardIterator __last,
21779       _Generator __gen)
21780     {
21781
21782      
21783      
21784
21785       ;
21786
21787       for ( ; __first != __last; ++__first)
21788  *__first = __gen();
21789     }
21790 # 1149 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21791   template<typename _OutputIterator, typename _Size, typename _Generator>
21792     _OutputIterator
21793     generate_n(_OutputIterator __first, _Size __n, _Generator __gen)
21794     {
21795
21796      
21797
21798
21799
21800       for ( ; __n > 0; --__n, ++__first)
21801  *__first = __gen();
21802       return __first;
21803     }
21804 # 1176 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21805   template<typename _InputIterator, typename _OutputIterator, typename _Tp>
21806     _OutputIterator
21807     remove_copy(_InputIterator __first, _InputIterator __last,
21808   _OutputIterator __result, const _Tp& __value)
21809     {
21810
21811      
21812      
21813
21814      
21815
21816       ;
21817
21818       for ( ; __first != __last; ++__first)
21819  if (!(*__first == __value))
21820    {
21821      *__result = *__first;
21822      ++__result;
21823    }
21824       return __result;
21825     }
21826 # 1212 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21827   template<typename _InputIterator, typename _OutputIterator,
21828     typename _Predicate>
21829     _OutputIterator
21830     remove_copy_if(_InputIterator __first, _InputIterator __last,
21831      _OutputIterator __result, _Predicate __pred)
21832     {
21833
21834      
21835      
21836
21837      
21838
21839       ;
21840
21841       for ( ; __first != __last; ++__first)
21842  if (!__pred(*__first))
21843    {
21844      *__result = *__first;
21845      ++__result;
21846    }
21847       return __result;
21848     }
21849 # 1251 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21850   template<typename _ForwardIterator, typename _Tp>
21851     _ForwardIterator
21852     remove(_ForwardIterator __first, _ForwardIterator __last,
21853     const _Tp& __value)
21854     {
21855
21856      
21857
21858      
21859
21860       ;
21861
21862       __first = std::find(__first, __last, __value);
21863       _ForwardIterator __i = __first;
21864       return __first == __last ? __first
21865           : std::remove_copy(++__i, __last,
21866         __first, __value);
21867     }
21868 # 1286 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21869   template<typename _ForwardIterator, typename _Predicate>
21870     _ForwardIterator
21871     remove_if(_ForwardIterator __first, _ForwardIterator __last,
21872        _Predicate __pred)
21873     {
21874
21875      
21876
21877      
21878
21879       ;
21880
21881       __first = std::find_if(__first, __last, __pred);
21882       _ForwardIterator __i = __first;
21883       return __first == __last ? __first
21884           : std::remove_copy_if(++__i, __last,
21885            __first, __pred);
21886     }
21887 # 1312 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21888   template<typename _ForwardIterator, typename _OutputIterator>
21889     _OutputIterator
21890     __unique_copy(_ForwardIterator __first, _ForwardIterator __last,
21891     _OutputIterator __result,
21892     forward_iterator_tag, output_iterator_tag)
21893     {
21894
21895       _ForwardIterator __next = __first;
21896       *__result = *__first;
21897       while (++__next != __last)
21898  if (!(*__first == *__next))
21899    {
21900      __first = __next;
21901      *++__result = *__first;
21902    }
21903       return ++__result;
21904     }
21905 # 1337 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21906   template<typename _InputIterator, typename _OutputIterator>
21907     _OutputIterator
21908     __unique_copy(_InputIterator __first, _InputIterator __last,
21909     _OutputIterator __result,
21910     input_iterator_tag, output_iterator_tag)
21911     {
21912
21913       typename iterator_traits<_InputIterator>::value_type __value = *__first;
21914       *__result = __value;
21915       while (++__first != __last)
21916  if (!(__value == *__first))
21917    {
21918      __value = *__first;
21919      *++__result = __value;
21920    }
21921       return ++__result;
21922     }
21923 # 1362 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21924   template<typename _InputIterator, typename _ForwardIterator>
21925     _ForwardIterator
21926     __unique_copy(_InputIterator __first, _InputIterator __last,
21927     _ForwardIterator __result,
21928     input_iterator_tag, forward_iterator_tag)
21929     {
21930
21931       *__result = *__first;
21932       while (++__first != __last)
21933  if (!(*__result == *__first))
21934    *++__result = *__first;
21935       return ++__result;
21936     }
21937 # 1384 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21938   template<typename _ForwardIterator, typename _OutputIterator,
21939     typename _BinaryPredicate>
21940     _OutputIterator
21941     __unique_copy(_ForwardIterator __first, _ForwardIterator __last,
21942     _OutputIterator __result, _BinaryPredicate __binary_pred,
21943     forward_iterator_tag, output_iterator_tag)
21944     {
21945
21946      
21947
21948
21949
21950       _ForwardIterator __next = __first;
21951       *__result = *__first;
21952       while (++__next != __last)
21953  if (!__binary_pred(*__first, *__next))
21954    {
21955      __first = __next;
21956      *++__result = *__first;
21957    }
21958       return ++__result;
21959     }
21960 # 1415 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21961   template<typename _InputIterator, typename _OutputIterator,
21962     typename _BinaryPredicate>
21963     _OutputIterator
21964     __unique_copy(_InputIterator __first, _InputIterator __last,
21965     _OutputIterator __result, _BinaryPredicate __binary_pred,
21966     input_iterator_tag, output_iterator_tag)
21967     {
21968
21969      
21970
21971
21972
21973       typename iterator_traits<_InputIterator>::value_type __value = *__first;
21974       *__result = __value;
21975       while (++__first != __last)
21976  if (!__binary_pred(__value, *__first))
21977    {
21978      __value = *__first;
21979      *++__result = __value;
21980    }
21981       return ++__result;
21982     }
21983 # 1446 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
21984   template<typename _InputIterator, typename _ForwardIterator,
21985     typename _BinaryPredicate>
21986     _ForwardIterator
21987     __unique_copy(_InputIterator __first, _InputIterator __last,
21988     _ForwardIterator __result, _BinaryPredicate __binary_pred,
21989     input_iterator_tag, forward_iterator_tag)
21990     {
21991
21992      
21993
21994
21995
21996       *__result = *__first;
21997       while (++__first != __last)
21998  if (!__binary_pred(*__result, *__first))
21999    *++__result = *__first;
22000       return ++__result;
22001     }
22002 # 1487 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22003   template<typename _InputIterator, typename _OutputIterator>
22004     inline _OutputIterator
22005     unique_copy(_InputIterator __first, _InputIterator __last,
22006   _OutputIterator __result)
22007     {
22008
22009      
22010      
22011
22012      
22013
22014       ;
22015
22016       if (__first == __last)
22017  return __result;
22018       return std::__unique_copy(__first, __last, __result,
22019     std::__iterator_category(__first),
22020     std::__iterator_category(__result));
22021     }
22022 # 1527 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22023   template<typename _InputIterator, typename _OutputIterator,
22024     typename _BinaryPredicate>
22025     inline _OutputIterator
22026     unique_copy(_InputIterator __first, _InputIterator __last,
22027   _OutputIterator __result,
22028   _BinaryPredicate __binary_pred)
22029     {
22030
22031      
22032      
22033
22034       ;
22035
22036       if (__first == __last)
22037  return __result;
22038       return std::__unique_copy(__first, __last, __result, __binary_pred,
22039     std::__iterator_category(__first),
22040     std::__iterator_category(__result));
22041     }
22042 # 1560 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22043   template<typename _ForwardIterator>
22044     _ForwardIterator
22045     unique(_ForwardIterator __first, _ForwardIterator __last)
22046     {
22047
22048      
22049
22050      
22051
22052       ;
22053
22054
22055       __first = std::adjacent_find(__first, __last);
22056       if (__first == __last)
22057  return __last;
22058
22059
22060       _ForwardIterator __dest = __first;
22061       ++__first;
22062       while (++__first != __last)
22063  if (!(*__dest == *__first))
22064    *++__dest = *__first;
22065       return ++__dest;
22066     }
22067 # 1599 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22068   template<typename _ForwardIterator, typename _BinaryPredicate>
22069     _ForwardIterator
22070     unique(_ForwardIterator __first, _ForwardIterator __last,
22071            _BinaryPredicate __binary_pred)
22072     {
22073
22074      
22075
22076      
22077
22078
22079       ;
22080
22081
22082       __first = std::adjacent_find(__first, __last, __binary_pred);
22083       if (__first == __last)
22084  return __last;
22085
22086
22087       _ForwardIterator __dest = __first;
22088       ++__first;
22089       while (++__first != __last)
22090  if (!__binary_pred(*__dest, *__first))
22091    *++__dest = *__first;
22092       return ++__dest;
22093     }
22094 # 1633 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22095   template<typename _BidirectionalIterator>
22096     void
22097     __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last,
22098        bidirectional_iterator_tag)
22099     {
22100       while (true)
22101  if (__first == __last || __first == --__last)
22102    return;
22103  else
22104    {
22105      std::iter_swap(__first, __last);
22106      ++__first;
22107    }
22108     }
22109 # 1655 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22110   template<typename _RandomAccessIterator>
22111     void
22112     __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last,
22113        random_access_iterator_tag)
22114     {
22115       if (__first == __last)
22116  return;
22117       --__last;
22118       while (__first < __last)
22119  {
22120    std::iter_swap(__first, __last);
22121    ++__first;
22122    --__last;
22123  }
22124     }
22125 # 1682 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22126   template<typename _BidirectionalIterator>
22127     inline void
22128     reverse(_BidirectionalIterator __first, _BidirectionalIterator __last)
22129     {
22130
22131      
22132
22133       ;
22134       std::__reverse(__first, __last, std::__iterator_category(__first));
22135     }
22136 # 1708 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22137   template<typename _BidirectionalIterator, typename _OutputIterator>
22138     _OutputIterator
22139     reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last,
22140         _OutputIterator __result)
22141     {
22142
22143      
22144
22145      
22146
22147       ;
22148
22149       while (__first != __last)
22150  {
22151    --__last;
22152    *__result = *__last;
22153    ++__result;
22154  }
22155       return __result;
22156     }
22157 # 1736 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22158   template<typename _EuclideanRingElement>
22159     _EuclideanRingElement
22160     __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n)
22161     {
22162       while (__n != 0)
22163  {
22164    _EuclideanRingElement __t = __m % __n;
22165    __m = __n;
22166    __n = __t;
22167  }
22168       return __m;
22169     }
22170
22171
22172
22173
22174
22175
22176   template<typename _ForwardIterator>
22177     void
22178     __rotate(_ForwardIterator __first,
22179       _ForwardIterator __middle,
22180       _ForwardIterator __last,
22181       forward_iterator_tag)
22182     {
22183       if (__first == __middle || __last == __middle)
22184  return;
22185
22186       _ForwardIterator __first2 = __middle;
22187       do
22188  {
22189    swap(*__first, *__first2);
22190    ++__first;
22191    ++__first2;
22192    if (__first == __middle)
22193      __middle = __first2;
22194  }
22195       while (__first2 != __last);
22196
22197       __first2 = __middle;
22198
22199       while (__first2 != __last)
22200  {
22201    swap(*__first, *__first2);
22202    ++__first;
22203    ++__first2;
22204    if (__first == __middle)
22205      __middle = __first2;
22206    else if (__first2 == __last)
22207      __first2 = __middle;
22208  }
22209     }
22210
22211
22212
22213
22214
22215
22216   template<typename _BidirectionalIterator>
22217     void
22218     __rotate(_BidirectionalIterator __first,
22219       _BidirectionalIterator __middle,
22220       _BidirectionalIterator __last,
22221        bidirectional_iterator_tag)
22222     {
22223
22224      
22225
22226
22227       if (__first == __middle || __last == __middle)
22228  return;
22229
22230       std::__reverse(__first, __middle, bidirectional_iterator_tag());
22231       std::__reverse(__middle, __last, bidirectional_iterator_tag());
22232
22233       while (__first != __middle && __middle != __last)
22234  {
22235    swap(*__first, *--__last);
22236    ++__first;
22237  }
22238
22239       if (__first == __middle)
22240  std::__reverse(__middle, __last, bidirectional_iterator_tag());
22241       else
22242  std::__reverse(__first, __middle, bidirectional_iterator_tag());
22243     }
22244
22245
22246
22247
22248
22249
22250   template<typename _RandomAccessIterator>
22251     void
22252     __rotate(_RandomAccessIterator __first,
22253       _RandomAccessIterator __middle,
22254       _RandomAccessIterator __last,
22255       random_access_iterator_tag)
22256     {
22257
22258      
22259
22260
22261       if (__first == __middle || __last == __middle)
22262  return;
22263
22264       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
22265  _Distance;
22266       typedef typename iterator_traits<_RandomAccessIterator>::value_type
22267  _ValueType;
22268
22269       const _Distance __n = __last - __first;
22270       const _Distance __k = __middle - __first;
22271       const _Distance __l = __n - __k;
22272
22273       if (__k == __l)
22274  {
22275    std::swap_ranges(__first, __middle, __middle);
22276    return;
22277  }
22278
22279       const _Distance __d = __gcd(__n, __k);
22280
22281       for (_Distance __i = 0; __i < __d; __i++)
22282  {
22283    _ValueType __tmp = *__first;
22284    _RandomAccessIterator __p = __first;
22285
22286    if (__k < __l)
22287      {
22288        for (_Distance __j = 0; __j < __l / __d; __j++)
22289   {
22290     if (__p > __first + __l)
22291       {
22292         *__p = *(__p - __l);
22293         __p -= __l;
22294       }
22295
22296     *__p = *(__p + __k);
22297     __p += __k;
22298   }
22299      }
22300    else
22301      {
22302        for (_Distance __j = 0; __j < __k / __d - 1; __j ++)
22303   {
22304     if (__p < __last - __k)
22305       {
22306         *__p = *(__p + __k);
22307         __p += __k;
22308       }
22309     *__p = * (__p - __l);
22310     __p -= __l;
22311   }
22312      }
22313
22314    *__p = __tmp;
22315    ++__first;
22316  }
22317     }
22318 # 1915 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22319   template<typename _ForwardIterator>
22320     inline void
22321     rotate(_ForwardIterator __first, _ForwardIterator __middle,
22322     _ForwardIterator __last)
22323     {
22324
22325      
22326
22327       ;
22328       ;
22329
22330       typedef typename iterator_traits<_ForwardIterator>::iterator_category
22331  _IterType;
22332       std::__rotate(__first, __middle, __last, _IterType());
22333     }
22334 # 1948 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22335   template<typename _ForwardIterator, typename _OutputIterator>
22336     _OutputIterator
22337     rotate_copy(_ForwardIterator __first, _ForwardIterator __middle,
22338                 _ForwardIterator __last, _OutputIterator __result)
22339     {
22340
22341      
22342      
22343
22344       ;
22345       ;
22346
22347       return std::copy(__first, __middle,
22348                        std::copy(__middle, __last, __result));
22349     }
22350 # 1974 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22351   template<typename _RandomAccessIterator>
22352     inline void
22353     random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last)
22354     {
22355
22356      
22357
22358       ;
22359
22360       if (__first != __last)
22361  for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
22362    std::iter_swap(__i, __first + (std::rand() % ((__i - __first) + 1)));
22363     }
22364 # 2001 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22365   template<typename _RandomAccessIterator, typename _RandomNumberGenerator>
22366     void
22367     random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last,
22368      _RandomNumberGenerator& __rand)
22369     {
22370
22371      
22372
22373       ;
22374
22375       if (__first == __last)
22376  return;
22377       for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
22378  std::iter_swap(__i, __first + __rand((__i - __first) + 1));
22379     }
22380
22381
22382
22383
22384
22385
22386
22387   template<typename _ForwardIterator, typename _Predicate>
22388     _ForwardIterator
22389     __partition(_ForwardIterator __first, _ForwardIterator __last,
22390   _Predicate __pred,
22391   forward_iterator_tag)
22392     {
22393       if (__first == __last)
22394  return __first;
22395
22396       while (__pred(*__first))
22397  if (++__first == __last)
22398    return __first;
22399
22400       _ForwardIterator __next = __first;
22401
22402       while (++__next != __last)
22403  if (__pred(*__next))
22404    {
22405      swap(*__first, *__next);
22406      ++__first;
22407    }
22408
22409       return __first;
22410     }
22411
22412
22413
22414
22415
22416
22417   template<typename _BidirectionalIterator, typename _Predicate>
22418     _BidirectionalIterator
22419     __partition(_BidirectionalIterator __first, _BidirectionalIterator __last,
22420   _Predicate __pred,
22421   bidirectional_iterator_tag)
22422     {
22423       while (true)
22424  {
22425    while (true)
22426      if (__first == __last)
22427        return __first;
22428      else if (__pred(*__first))
22429        ++__first;
22430      else
22431        break;
22432    --__last;
22433    while (true)
22434      if (__first == __last)
22435        return __first;
22436      else if (!__pred(*__last))
22437        --__last;
22438      else
22439        break;
22440    std::iter_swap(__first, __last);
22441    ++__first;
22442  }
22443     }
22444 # 2095 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22445   template<typename _ForwardIterator, typename _Predicate>
22446     inline _ForwardIterator
22447     partition(_ForwardIterator __first, _ForwardIterator __last,
22448        _Predicate __pred)
22449     {
22450
22451      
22452
22453      
22454
22455       ;
22456
22457       return std::__partition(__first, __last, __pred,
22458          std::__iterator_category(__first));
22459     }
22460
22461
22462
22463
22464
22465
22466
22467   template<typename _ForwardIterator, typename _Predicate, typename _Distance>
22468     _ForwardIterator
22469     __inplace_stable_partition(_ForwardIterator __first,
22470           _ForwardIterator __last,
22471           _Predicate __pred, _Distance __len)
22472     {
22473       if (__len == 1)
22474  return __pred(*__first) ? __last : __first;
22475       _ForwardIterator __middle = __first;
22476       std::advance(__middle, __len / 2);
22477       _ForwardIterator __begin = std::__inplace_stable_partition(__first,
22478          __middle,
22479          __pred,
22480          __len / 2);
22481       _ForwardIterator __end = std::__inplace_stable_partition(__middle, __last,
22482               __pred,
22483               __len
22484               - __len / 2);
22485       std::rotate(__begin, __middle, __end);
22486       std::advance(__begin, std::distance(__middle, __end));
22487       return __begin;
22488     }
22489
22490
22491
22492
22493
22494
22495   template<typename _ForwardIterator, typename _Pointer, typename _Predicate,
22496     typename _Distance>
22497     _ForwardIterator
22498     __stable_partition_adaptive(_ForwardIterator __first,
22499     _ForwardIterator __last,
22500     _Predicate __pred, _Distance __len,
22501     _Pointer __buffer,
22502     _Distance __buffer_size)
22503     {
22504       if (__len <= __buffer_size)
22505  {
22506    _ForwardIterator __result1 = __first;
22507    _Pointer __result2 = __buffer;
22508    for ( ; __first != __last ; ++__first)
22509      if (__pred(*__first))
22510        {
22511   *__result1 = *__first;
22512   ++__result1;
22513        }
22514      else
22515        {
22516   *__result2 = *__first;
22517   ++__result2;
22518        }
22519    std::copy(__buffer, __result2, __result1);
22520    return __result1;
22521  }
22522       else
22523  {
22524    _ForwardIterator __middle = __first;
22525    std::advance(__middle, __len / 2);
22526    _ForwardIterator __begin =
22527      std::__stable_partition_adaptive(__first, __middle, __pred,
22528           __len / 2, __buffer,
22529           __buffer_size);
22530    _ForwardIterator __end =
22531      std::__stable_partition_adaptive(__middle, __last, __pred,
22532           __len - __len / 2,
22533           __buffer, __buffer_size);
22534    std::rotate(__begin, __middle, __end);
22535    std::advance(__begin, std::distance(__middle, __end));
22536    return __begin;
22537  }
22538     }
22539 # 2206 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22540   template<typename _ForwardIterator, typename _Predicate>
22541     _ForwardIterator
22542     stable_partition(_ForwardIterator __first, _ForwardIterator __last,
22543        _Predicate __pred)
22544     {
22545
22546      
22547
22548      
22549
22550       ;
22551
22552       if (__first == __last)
22553  return __first;
22554       else
22555  {
22556    typedef typename iterator_traits<_ForwardIterator>::value_type
22557      _ValueType;
22558    typedef typename iterator_traits<_ForwardIterator>::difference_type
22559      _DistanceType;
22560
22561    _Temporary_buffer<_ForwardIterator, _ValueType> __buf(__first,
22562         __last);
22563  if (__buf.size() > 0)
22564    return
22565      std::__stable_partition_adaptive(__first, __last, __pred,
22566        _DistanceType(__buf.requested_size()),
22567        __buf.begin(), __buf.size());
22568  else
22569    return
22570      std::__inplace_stable_partition(__first, __last, __pred,
22571       _DistanceType(__buf.requested_size()));
22572  }
22573     }
22574
22575
22576
22577
22578
22579
22580   template<typename _RandomAccessIterator, typename _Tp>
22581     _RandomAccessIterator
22582     __unguarded_partition(_RandomAccessIterator __first,
22583      _RandomAccessIterator __last, _Tp __pivot)
22584     {
22585       while (true)
22586  {
22587    while (*__first < __pivot)
22588      ++__first;
22589    --__last;
22590    while (__pivot < *__last)
22591      --__last;
22592    if (!(__first < __last))
22593      return __first;
22594    std::iter_swap(__first, __last);
22595    ++__first;
22596  }
22597     }
22598
22599
22600
22601
22602
22603
22604   template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
22605     _RandomAccessIterator
22606     __unguarded_partition(_RandomAccessIterator __first,
22607      _RandomAccessIterator __last,
22608      _Tp __pivot, _Compare __comp)
22609     {
22610       while (true)
22611  {
22612    while (__comp(*__first, __pivot))
22613      ++__first;
22614    --__last;
22615    while (__comp(__pivot, *__last))
22616      --__last;
22617    if (!(__first < __last))
22618      return __first;
22619    std::iter_swap(__first, __last);
22620    ++__first;
22621  }
22622     }
22623
22624
22625
22626
22627
22628
22629
22630   enum { _S_threshold = 16 };
22631
22632
22633
22634
22635
22636
22637   template<typename _RandomAccessIterator, typename _Tp>
22638     void
22639     __unguarded_linear_insert(_RandomAccessIterator __last, _Tp __val)
22640     {
22641       _RandomAccessIterator __next = __last;
22642       --__next;
22643       while (__val < *__next)
22644  {
22645    *__last = *__next;
22646    __last = __next;
22647    --__next;
22648  }
22649       *__last = __val;
22650     }
22651
22652
22653
22654
22655
22656
22657   template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
22658     void
22659     __unguarded_linear_insert(_RandomAccessIterator __last, _Tp __val,
22660          _Compare __comp)
22661     {
22662       _RandomAccessIterator __next = __last;
22663       --__next;
22664       while (__comp(__val, *__next))
22665  {
22666    *__last = *__next;
22667    __last = __next;
22668    --__next;
22669  }
22670       *__last = __val;
22671     }
22672
22673
22674
22675
22676
22677
22678   template<typename _RandomAccessIterator>
22679     void
22680     __insertion_sort(_RandomAccessIterator __first,
22681        _RandomAccessIterator __last)
22682     {
22683       if (__first == __last)
22684  return;
22685
22686       for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
22687  {
22688    typename iterator_traits<_RandomAccessIterator>::value_type
22689      __val = *__i;
22690    if (__val < *__first)
22691      {
22692        std::copy_backward(__first, __i, __i + 1);
22693        *__first = __val;
22694      }
22695    else
22696      std::__unguarded_linear_insert(__i, __val);
22697  }
22698     }
22699
22700
22701
22702
22703
22704
22705   template<typename _RandomAccessIterator, typename _Compare>
22706     void
22707     __insertion_sort(_RandomAccessIterator __first,
22708        _RandomAccessIterator __last, _Compare __comp)
22709     {
22710       if (__first == __last) return;
22711
22712       for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
22713  {
22714    typename iterator_traits<_RandomAccessIterator>::value_type
22715      __val = *__i;
22716    if (__comp(__val, *__first))
22717      {
22718        std::copy_backward(__first, __i, __i + 1);
22719        *__first = __val;
22720      }
22721    else
22722      std::__unguarded_linear_insert(__i, __val, __comp);
22723  }
22724     }
22725
22726
22727
22728
22729
22730
22731   template<typename _RandomAccessIterator>
22732     inline void
22733     __unguarded_insertion_sort(_RandomAccessIterator __first,
22734           _RandomAccessIterator __last)
22735     {
22736       typedef typename iterator_traits<_RandomAccessIterator>::value_type
22737  _ValueType;
22738
22739       for (_RandomAccessIterator __i = __first; __i != __last; ++__i)
22740  std::__unguarded_linear_insert(__i, _ValueType(*__i));
22741     }
22742
22743
22744
22745
22746
22747
22748   template<typename _RandomAccessIterator, typename _Compare>
22749     inline void
22750     __unguarded_insertion_sort(_RandomAccessIterator __first,
22751           _RandomAccessIterator __last, _Compare __comp)
22752     {
22753       typedef typename iterator_traits<_RandomAccessIterator>::value_type
22754  _ValueType;
22755
22756       for (_RandomAccessIterator __i = __first; __i != __last; ++__i)
22757  std::__unguarded_linear_insert(__i, _ValueType(*__i), __comp);
22758     }
22759
22760
22761
22762
22763
22764
22765   template<typename _RandomAccessIterator>
22766     void
22767     __final_insertion_sort(_RandomAccessIterator __first,
22768       _RandomAccessIterator __last)
22769     {
22770       if (__last - __first > int(_S_threshold))
22771  {
22772    std::__insertion_sort(__first, __first + int(_S_threshold));
22773    std::__unguarded_insertion_sort(__first + int(_S_threshold), __last);
22774  }
22775       else
22776  std::__insertion_sort(__first, __last);
22777     }
22778
22779
22780
22781
22782
22783
22784   template<typename _RandomAccessIterator, typename _Compare>
22785     void
22786     __final_insertion_sort(_RandomAccessIterator __first,
22787       _RandomAccessIterator __last, _Compare __comp)
22788     {
22789       if (__last - __first > int(_S_threshold))
22790  {
22791    std::__insertion_sort(__first, __first + int(_S_threshold), __comp);
22792    std::__unguarded_insertion_sort(__first + int(_S_threshold), __last,
22793        __comp);
22794  }
22795       else
22796  std::__insertion_sort(__first, __last, __comp);
22797     }
22798
22799
22800
22801
22802
22803
22804   template<typename _RandomAccessIterator>
22805     void
22806     __heap_select(_RandomAccessIterator __first,
22807     _RandomAccessIterator __middle,
22808     _RandomAccessIterator __last)
22809     {
22810       typedef typename iterator_traits<_RandomAccessIterator>::value_type
22811  _ValueType;
22812
22813       std::make_heap(__first, __middle);
22814       for (_RandomAccessIterator __i = __middle; __i < __last; ++__i)
22815  if (*__i < *__first)
22816    std::__pop_heap(__first, __middle, __i, _ValueType(*__i));
22817     }
22818
22819
22820
22821
22822
22823
22824   template<typename _RandomAccessIterator, typename _Compare>
22825     void
22826     __heap_select(_RandomAccessIterator __first,
22827     _RandomAccessIterator __middle,
22828     _RandomAccessIterator __last, _Compare __comp)
22829     {
22830       typedef typename iterator_traits<_RandomAccessIterator>::value_type
22831  _ValueType;
22832
22833       std::make_heap(__first, __middle, __comp);
22834       for (_RandomAccessIterator __i = __middle; __i < __last; ++__i)
22835  if (__comp(*__i, *__first))
22836    std::__pop_heap(__first, __middle, __i, _ValueType(*__i), __comp);
22837     }
22838
22839
22840
22841
22842
22843
22844   template<typename _Size>
22845     inline _Size
22846     __lg(_Size __n)
22847     {
22848       _Size __k;
22849       for (__k = 0; __n != 1; __n >>= 1)
22850  ++__k;
22851       return __k;
22852     }
22853 # 2535 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22854   template<typename _RandomAccessIterator>
22855     inline void
22856     partial_sort(_RandomAccessIterator __first,
22857    _RandomAccessIterator __middle,
22858    _RandomAccessIterator __last)
22859     {
22860       typedef typename iterator_traits<_RandomAccessIterator>::value_type
22861  _ValueType;
22862
22863
22864      
22865
22866      
22867       ;
22868       ;
22869
22870       std::__heap_select(__first, __middle, __last);
22871       std::sort_heap(__first, __middle);
22872     }
22873 # 2573 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22874   template<typename _RandomAccessIterator, typename _Compare>
22875     inline void
22876     partial_sort(_RandomAccessIterator __first,
22877    _RandomAccessIterator __middle,
22878    _RandomAccessIterator __last,
22879    _Compare __comp)
22880     {
22881       typedef typename iterator_traits<_RandomAccessIterator>::value_type
22882  _ValueType;
22883
22884
22885      
22886
22887      
22888
22889       ;
22890       ;
22891
22892       std::__heap_select(__first, __middle, __last, __comp);
22893       std::sort_heap(__first, __middle, __comp);
22894     }
22895 # 2612 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22896   template<typename _InputIterator, typename _RandomAccessIterator>
22897     _RandomAccessIterator
22898     partial_sort_copy(_InputIterator __first, _InputIterator __last,
22899         _RandomAccessIterator __result_first,
22900         _RandomAccessIterator __result_last)
22901     {
22902       typedef typename iterator_traits<_InputIterator>::value_type
22903  _InputValueType;
22904       typedef typename iterator_traits<_RandomAccessIterator>::value_type
22905  _OutputValueType;
22906       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
22907  _DistanceType;
22908
22909
22910      
22911      
22912
22913      
22914
22915      
22916       ;
22917       ;
22918
22919       if (__result_first == __result_last)
22920  return __result_last;
22921       _RandomAccessIterator __result_real_last = __result_first;
22922       while(__first != __last && __result_real_last != __result_last)
22923  {
22924    *__result_real_last = *__first;
22925    ++__result_real_last;
22926    ++__first;
22927  }
22928       std::make_heap(__result_first, __result_real_last);
22929       while (__first != __last)
22930  {
22931    if (*__first < *__result_first)
22932      std::__adjust_heap(__result_first, _DistanceType(0),
22933           _DistanceType(__result_real_last
22934           - __result_first),
22935           _InputValueType(*__first));
22936    ++__first;
22937  }
22938       std::sort_heap(__result_first, __result_real_last);
22939       return __result_real_last;
22940     }
22941 # 2677 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
22942   template<typename _InputIterator, typename _RandomAccessIterator, typename _Compare>
22943     _RandomAccessIterator
22944     partial_sort_copy(_InputIterator __first, _InputIterator __last,
22945         _RandomAccessIterator __result_first,
22946         _RandomAccessIterator __result_last,
22947         _Compare __comp)
22948     {
22949       typedef typename iterator_traits<_InputIterator>::value_type
22950  _InputValueType;
22951       typedef typename iterator_traits<_RandomAccessIterator>::value_type
22952  _OutputValueType;
22953       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
22954  _DistanceType;
22955
22956
22957      
22958      
22959
22960      
22961
22962      
22963
22964      
22965
22966       ;
22967       ;
22968
22969       if (__result_first == __result_last)
22970  return __result_last;
22971       _RandomAccessIterator __result_real_last = __result_first;
22972       while(__first != __last && __result_real_last != __result_last)
22973  {
22974    *__result_real_last = *__first;
22975    ++__result_real_last;
22976    ++__first;
22977  }
22978       std::make_heap(__result_first, __result_real_last, __comp);
22979       while (__first != __last)
22980  {
22981    if (__comp(*__first, *__result_first))
22982      std::__adjust_heap(__result_first, _DistanceType(0),
22983           _DistanceType(__result_real_last
22984           - __result_first),
22985           _InputValueType(*__first),
22986           __comp);
22987    ++__first;
22988  }
22989       std::sort_heap(__result_first, __result_real_last, __comp);
22990       return __result_real_last;
22991     }
22992
22993
22994
22995
22996
22997
22998   template<typename _RandomAccessIterator, typename _Size>
22999     void
23000     __introsort_loop(_RandomAccessIterator __first,
23001        _RandomAccessIterator __last,
23002        _Size __depth_limit)
23003     {
23004       typedef typename iterator_traits<_RandomAccessIterator>::value_type
23005  _ValueType;
23006
23007       while (__last - __first > int(_S_threshold))
23008  {
23009    if (__depth_limit == 0)
23010      {
23011        std::partial_sort(__first, __last, __last);
23012        return;
23013      }
23014    --__depth_limit;
23015    _RandomAccessIterator __cut =
23016      std::__unguarded_partition(__first, __last,
23017            _ValueType(std::__median(*__first,
23018         *(__first
23019           + (__last
23020              - __first)
23021           / 2),
23022         *(__last
23023           - 1))));
23024    std::__introsort_loop(__cut, __last, __depth_limit);
23025    __last = __cut;
23026  }
23027     }
23028
23029
23030
23031
23032
23033
23034   template<typename _RandomAccessIterator, typename _Size, typename _Compare>
23035     void
23036     __introsort_loop(_RandomAccessIterator __first,
23037        _RandomAccessIterator __last,
23038        _Size __depth_limit, _Compare __comp)
23039     {
23040       typedef typename iterator_traits<_RandomAccessIterator>::value_type
23041  _ValueType;
23042
23043       while (__last - __first > int(_S_threshold))
23044  {
23045    if (__depth_limit == 0)
23046      {
23047        std::partial_sort(__first, __last, __last, __comp);
23048        return;
23049      }
23050    --__depth_limit;
23051    _RandomAccessIterator __cut =
23052      std::__unguarded_partition(__first, __last,
23053            _ValueType(std::__median(*__first,
23054         *(__first
23055           + (__last
23056              - __first)
23057           / 2),
23058         *(__last - 1),
23059         __comp)),
23060            __comp);
23061    std::__introsort_loop(__cut, __last, __depth_limit, __comp);
23062    __last = __cut;
23063  }
23064     }
23065 # 2814 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
23066   template<typename _RandomAccessIterator>
23067     inline void
23068     sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
23069     {
23070       typedef typename iterator_traits<_RandomAccessIterator>::value_type
23071  _ValueType;
23072
23073
23074      
23075
23076      
23077       ;
23078
23079       if (__first != __last)
23080  {
23081    std::__introsort_loop(__first, __last,
23082     std::__lg(__last - __first) * 2);
23083    std::__final_insertion_sort(__first, __last);
23084  }
23085     }
23086 # 2849 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
23087   template<typename _RandomAccessIterator, typename _Compare>
23088     inline void
23089     sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
23090   _Compare __comp)
23091     {
23092       typedef typename iterator_traits<_RandomAccessIterator>::value_type
23093  _ValueType;
23094
23095
23096      
23097
23098      
23099
23100       ;
23101
23102       if (__first != __last)
23103  {
23104    std::__introsort_loop(__first, __last,
23105     std::__lg(__last - __first) * 2, __comp);
23106    std::__final_insertion_sort(__first, __last, __comp);
23107  }
23108     }
23109 # 2882 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
23110   template<typename _ForwardIterator, typename _Tp>
23111     _ForwardIterator
23112     lower_bound(_ForwardIterator __first, _ForwardIterator __last,
23113   const _Tp& __val)
23114     {
23115       typedef typename iterator_traits<_ForwardIterator>::value_type
23116  _ValueType;
23117       typedef typename iterator_traits<_ForwardIterator>::difference_type
23118  _DistanceType;
23119
23120
23121      
23122      
23123       ;
23124
23125       _DistanceType __len = std::distance(__first, __last);
23126       _DistanceType __half;
23127       _ForwardIterator __middle;
23128
23129       while (__len > 0)
23130  {
23131    __half = __len >> 1;
23132    __middle = __first;
23133    std::advance(__middle, __half);
23134    if (*__middle < __val)
23135      {
23136        __first = __middle;
23137        ++__first;
23138        __len = __len - __half - 1;
23139      }
23140    else
23141      __len = __half;
23142  }
23143       return __first;
23144     }
23145 # 2932 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
23146   template<typename _ForwardIterator, typename _Tp, typename _Compare>
23147     _ForwardIterator
23148     lower_bound(_ForwardIterator __first, _ForwardIterator __last,
23149   const _Tp& __val, _Compare __comp)
23150     {
23151       typedef typename iterator_traits<_ForwardIterator>::value_type
23152  _ValueType;
23153       typedef typename iterator_traits<_ForwardIterator>::difference_type
23154  _DistanceType;
23155
23156
23157      
23158      
23159
23160       ;
23161
23162       _DistanceType __len = std::distance(__first, __last);
23163       _DistanceType __half;
23164       _ForwardIterator __middle;
23165
23166       while (__len > 0)
23167  {
23168    __half = __len >> 1;
23169    __middle = __first;
23170    std::advance(__middle, __half);
23171    if (__comp(*__middle, __val))
23172      {
23173        __first = __middle;
23174        ++__first;
23175        __len = __len - __half - 1;
23176      }
23177    else
23178      __len = __half;
23179  }
23180       return __first;
23181     }
23182 # 2979 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
23183   template<typename _ForwardIterator, typename _Tp>
23184     _ForwardIterator
23185     upper_bound(_ForwardIterator __first, _ForwardIterator __last,
23186   const _Tp& __val)
23187     {
23188       typedef typename iterator_traits<_ForwardIterator>::value_type
23189  _ValueType;
23190       typedef typename iterator_traits<_ForwardIterator>::difference_type
23191  _DistanceType;
23192
23193
23194      
23195      
23196       ;
23197
23198       _DistanceType __len = std::distance(__first, __last);
23199       _DistanceType __half;
23200       _ForwardIterator __middle;
23201
23202       while (__len > 0)
23203  {
23204    __half = __len >> 1;
23205    __middle = __first;
23206    std::advance(__middle, __half);
23207    if (__val < *__middle)
23208      __len = __half;
23209    else
23210      {
23211        __first = __middle;
23212        ++__first;
23213        __len = __len - __half - 1;
23214      }
23215  }
23216       return __first;
23217     }
23218 # 3029 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
23219   template<typename _ForwardIterator, typename _Tp, typename _Compare>
23220     _ForwardIterator
23221     upper_bound(_ForwardIterator __first, _ForwardIterator __last,
23222   const _Tp& __val, _Compare __comp)
23223     {
23224       typedef typename iterator_traits<_ForwardIterator>::value_type
23225  _ValueType;
23226       typedef typename iterator_traits<_ForwardIterator>::difference_type
23227  _DistanceType;
23228
23229
23230      
23231      
23232
23233       ;
23234
23235       _DistanceType __len = std::distance(__first, __last);
23236       _DistanceType __half;
23237       _ForwardIterator __middle;
23238
23239       while (__len > 0)
23240  {
23241    __half = __len >> 1;
23242    __middle = __first;
23243    std::advance(__middle, __half);
23244    if (__comp(__val, *__middle))
23245      __len = __half;
23246    else
23247      {
23248        __first = __middle;
23249        ++__first;
23250        __len = __len - __half - 1;
23251      }
23252  }
23253       return __first;
23254     }
23255
23256
23257
23258
23259
23260
23261   template<typename _BidirectionalIterator, typename _Distance>
23262     void
23263     __merge_without_buffer(_BidirectionalIterator __first,
23264       _BidirectionalIterator __middle,
23265       _BidirectionalIterator __last,
23266       _Distance __len1, _Distance __len2)
23267     {
23268       if (__len1 == 0 || __len2 == 0)
23269  return;
23270       if (__len1 + __len2 == 2)
23271  {
23272    if (*__middle < *__first)
23273      std::iter_swap(__first, __middle);
23274    return;
23275  }
23276       _BidirectionalIterator __first_cut = __first;
23277       _BidirectionalIterator __second_cut = __middle;
23278       _Distance __len11 = 0;
23279       _Distance __len22 = 0;
23280       if (__len1 > __len2)
23281  {
23282    __len11 = __len1 / 2;
23283    std::advance(__first_cut, __len11);
23284    __second_cut = std::lower_bound(__middle, __last, *__first_cut);
23285    __len22 = std::distance(__middle, __second_cut);
23286  }
23287       else
23288  {
23289    __len22 = __len2 / 2;
23290    std::advance(__second_cut, __len22);
23291    __first_cut = std::upper_bound(__first, __middle, *__second_cut);
23292    __len11 = std::distance(__first, __first_cut);
23293  }
23294       std::rotate(__first_cut, __middle, __second_cut);
23295       _BidirectionalIterator __new_middle = __first_cut;
23296       std::advance(__new_middle, std::distance(__middle, __second_cut));
23297       std::__merge_without_buffer(__first, __first_cut, __new_middle,
23298       __len11, __len22);
23299       std::__merge_without_buffer(__new_middle, __second_cut, __last,
23300       __len1 - __len11, __len2 - __len22);
23301     }
23302
23303
23304
23305
23306
23307
23308   template<typename _BidirectionalIterator, typename _Distance,
23309     typename _Compare>
23310     void
23311     __merge_without_buffer(_BidirectionalIterator __first,
23312                            _BidirectionalIterator __middle,
23313       _BidirectionalIterator __last,
23314       _Distance __len1, _Distance __len2,
23315       _Compare __comp)
23316     {
23317       if (__len1 == 0 || __len2 == 0)
23318  return;
23319       if (__len1 + __len2 == 2)
23320  {
23321    if (__comp(*__middle, *__first))
23322      std::iter_swap(__first, __middle);
23323    return;
23324  }
23325       _BidirectionalIterator __first_cut = __first;
23326       _BidirectionalIterator __second_cut = __middle;
23327       _Distance __len11 = 0;
23328       _Distance __len22 = 0;
23329       if (__len1 > __len2)
23330  {
23331    __len11 = __len1 / 2;
23332    std::advance(__first_cut, __len11);
23333    __second_cut = std::lower_bound(__middle, __last, *__first_cut,
23334        __comp);
23335    __len22 = std::distance(__middle, __second_cut);
23336  }
23337       else
23338  {
23339    __len22 = __len2 / 2;
23340    std::advance(__second_cut, __len22);
23341    __first_cut = std::upper_bound(__first, __middle, *__second_cut,
23342       __comp);
23343    __len11 = std::distance(__first, __first_cut);
23344  }
23345       std::rotate(__first_cut, __middle, __second_cut);
23346       _BidirectionalIterator __new_middle = __first_cut;
23347       std::advance(__new_middle, std::distance(__middle, __second_cut));
23348       std::__merge_without_buffer(__first, __first_cut, __new_middle,
23349       __len11, __len22, __comp);
23350       std::__merge_without_buffer(__new_middle, __second_cut, __last,
23351       __len1 - __len11, __len2 - __len22, __comp);
23352     }
23353
23354
23355
23356
23357
23358
23359   template<typename _RandomAccessIterator>
23360     void
23361     __inplace_stable_sort(_RandomAccessIterator __first,
23362      _RandomAccessIterator __last)
23363     {
23364       if (__last - __first < 15)
23365  {
23366    std::__insertion_sort(__first, __last);
23367    return;
23368  }
23369       _RandomAccessIterator __middle = __first + (__last - __first) / 2;
23370       std::__inplace_stable_sort(__first, __middle);
23371       std::__inplace_stable_sort(__middle, __last);
23372       std::__merge_without_buffer(__first, __middle, __last,
23373       __middle - __first,
23374       __last - __middle);
23375     }
23376
23377
23378
23379
23380
23381
23382   template<typename _RandomAccessIterator, typename _Compare>
23383     void
23384     __inplace_stable_sort(_RandomAccessIterator __first,
23385      _RandomAccessIterator __last, _Compare __comp)
23386     {
23387       if (__last - __first < 15)
23388  {
23389    std::__insertion_sort(__first, __last, __comp);
23390    return;
23391  }
23392       _RandomAccessIterator __middle = __first + (__last - __first) / 2;
23393       std::__inplace_stable_sort(__first, __middle, __comp);
23394       std::__inplace_stable_sort(__middle, __last, __comp);
23395       std::__merge_without_buffer(__first, __middle, __last,
23396       __middle - __first,
23397       __last - __middle,
23398       __comp);
23399     }
23400 # 3227 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
23401   template<typename _InputIterator1, typename _InputIterator2,
23402     typename _OutputIterator>
23403     _OutputIterator
23404     merge(_InputIterator1 __first1, _InputIterator1 __last1,
23405    _InputIterator2 __first2, _InputIterator2 __last2,
23406    _OutputIterator __result)
23407     {
23408       typedef typename iterator_traits<_InputIterator1>::value_type
23409  _ValueType1;
23410       typedef typename iterator_traits<_InputIterator2>::value_type
23411  _ValueType2;
23412
23413
23414      
23415      
23416      
23417
23418      
23419
23420      
23421       ;
23422       ;
23423
23424       while (__first1 != __last1 && __first2 != __last2)
23425  {
23426    if (*__first2 < *__first1)
23427      {
23428        *__result = *__first2;
23429        ++__first2;
23430      }
23431    else
23432      {
23433        *__result = *__first1;
23434        ++__first1;
23435      }
23436    ++__result;
23437  }
23438       return std::copy(__first2, __last2, std::copy(__first1, __last1,
23439           __result));
23440     }
23441 # 3288 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
23442   template<typename _InputIterator1, typename _InputIterator2,
23443     typename _OutputIterator, typename _Compare>
23444     _OutputIterator
23445     merge(_InputIterator1 __first1, _InputIterator1 __last1,
23446    _InputIterator2 __first2, _InputIterator2 __last2,
23447    _OutputIterator __result, _Compare __comp)
23448     {
23449       typedef typename iterator_traits<_InputIterator1>::value_type
23450  _ValueType1;
23451       typedef typename iterator_traits<_InputIterator2>::value_type
23452  _ValueType2;
23453
23454
23455      
23456      
23457      
23458
23459      
23460
23461      
23462
23463       ;
23464       ;
23465
23466       while (__first1 != __last1 && __first2 != __last2)
23467  {
23468    if (__comp(*__first2, *__first1))
23469      {
23470        *__result = *__first2;
23471        ++__first2;
23472      }
23473    else
23474      {
23475        *__result = *__first1;
23476        ++__first1;
23477      }
23478    ++__result;
23479  }
23480       return std::copy(__first2, __last2, std::copy(__first1, __last1,
23481           __result));
23482     }
23483
23484   template<typename _RandomAccessIterator1, typename _RandomAccessIterator2,
23485     typename _Distance>
23486     void
23487     __merge_sort_loop(_RandomAccessIterator1 __first,
23488         _RandomAccessIterator1 __last,
23489         _RandomAccessIterator2 __result,
23490         _Distance __step_size)
23491     {
23492       const _Distance __two_step = 2 * __step_size;
23493
23494       while (__last - __first >= __two_step)
23495  {
23496    __result = std::merge(__first, __first + __step_size,
23497     __first + __step_size, __first + __two_step,
23498     __result);
23499    __first += __two_step;
23500  }
23501
23502       __step_size = std::min(_Distance(__last - __first), __step_size);
23503       std::merge(__first, __first + __step_size, __first + __step_size, __last,
23504    __result);
23505     }
23506
23507   template<typename _RandomAccessIterator1, typename _RandomAccessIterator2,
23508     typename _Distance, typename _Compare>
23509     void
23510     __merge_sort_loop(_RandomAccessIterator1 __first,
23511         _RandomAccessIterator1 __last,
23512         _RandomAccessIterator2 __result, _Distance __step_size,
23513         _Compare __comp)
23514     {
23515       const _Distance __two_step = 2 * __step_size;
23516
23517       while (__last - __first >= __two_step)
23518  {
23519    __result = std::merge(__first, __first + __step_size,
23520     __first + __step_size, __first + __two_step,
23521     __result,
23522     __comp);
23523    __first += __two_step;
23524  }
23525       __step_size = std::min(_Distance(__last - __first), __step_size);
23526
23527       std::merge(__first, __first + __step_size,
23528    __first + __step_size, __last,
23529    __result,
23530    __comp);
23531     }
23532
23533   enum { _S_chunk_size = 7 };
23534
23535   template<typename _RandomAccessIterator, typename _Distance>
23536     void
23537     __chunk_insertion_sort(_RandomAccessIterator __first,
23538       _RandomAccessIterator __last,
23539       _Distance __chunk_size)
23540     {
23541       while (__last - __first >= __chunk_size)
23542  {
23543    std::__insertion_sort(__first, __first + __chunk_size);
23544    __first += __chunk_size;
23545  }
23546       std::__insertion_sort(__first, __last);
23547     }
23548
23549   template<typename _RandomAccessIterator, typename _Distance, typename _Compare>
23550     void
23551     __chunk_insertion_sort(_RandomAccessIterator __first,
23552       _RandomAccessIterator __last,
23553       _Distance __chunk_size, _Compare __comp)
23554     {
23555       while (__last - __first >= __chunk_size)
23556  {
23557    std::__insertion_sort(__first, __first + __chunk_size, __comp);
23558    __first += __chunk_size;
23559  }
23560       std::__insertion_sort(__first, __last, __comp);
23561     }
23562
23563   template<typename _RandomAccessIterator, typename _Pointer>
23564     void
23565     __merge_sort_with_buffer(_RandomAccessIterator __first,
23566         _RandomAccessIterator __last,
23567                              _Pointer __buffer)
23568     {
23569       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
23570  _Distance;
23571
23572       const _Distance __len = __last - __first;
23573       const _Pointer __buffer_last = __buffer + __len;
23574
23575       _Distance __step_size = _S_chunk_size;
23576       std::__chunk_insertion_sort(__first, __last, __step_size);
23577
23578       while (__step_size < __len)
23579  {
23580    std::__merge_sort_loop(__first, __last, __buffer, __step_size);
23581    __step_size *= 2;
23582    std::__merge_sort_loop(__buffer, __buffer_last, __first, __step_size);
23583    __step_size *= 2;
23584  }
23585     }
23586
23587   template<typename _RandomAccessIterator, typename _Pointer, typename _Compare>
23588     void
23589     __merge_sort_with_buffer(_RandomAccessIterator __first,
23590         _RandomAccessIterator __last,
23591                              _Pointer __buffer, _Compare __comp)
23592     {
23593       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
23594  _Distance;
23595
23596       const _Distance __len = __last - __first;
23597       const _Pointer __buffer_last = __buffer + __len;
23598
23599       _Distance __step_size = _S_chunk_size;
23600       std::__chunk_insertion_sort(__first, __last, __step_size, __comp);
23601
23602       while (__step_size < __len)
23603  {
23604    std::__merge_sort_loop(__first, __last, __buffer,
23605      __step_size, __comp);
23606    __step_size *= 2;
23607    std::__merge_sort_loop(__buffer, __buffer_last, __first,
23608      __step_size, __comp);
23609    __step_size *= 2;
23610  }
23611     }
23612
23613
23614
23615
23616
23617
23618   template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
23619     typename _BidirectionalIterator3>
23620     _BidirectionalIterator3
23621     __merge_backward(_BidirectionalIterator1 __first1,
23622        _BidirectionalIterator1 __last1,
23623        _BidirectionalIterator2 __first2,
23624        _BidirectionalIterator2 __last2,
23625        _BidirectionalIterator3 __result)
23626     {
23627       if (__first1 == __last1)
23628  return std::copy_backward(__first2, __last2, __result);
23629       if (__first2 == __last2)
23630  return std::copy_backward(__first1, __last1, __result);
23631       --__last1;
23632       --__last2;
23633       while (true)
23634  {
23635    if (*__last2 < *__last1)
23636      {
23637        *--__result = *__last1;
23638        if (__first1 == __last1)
23639   return std::copy_backward(__first2, ++__last2, __result);
23640        --__last1;
23641      }
23642    else
23643      {
23644        *--__result = *__last2;
23645        if (__first2 == __last2)
23646   return std::copy_backward(__first1, ++__last1, __result);
23647        --__last2;
23648      }
23649  }
23650     }
23651
23652
23653
23654
23655
23656
23657   template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
23658     typename _BidirectionalIterator3, typename _Compare>
23659     _BidirectionalIterator3
23660     __merge_backward(_BidirectionalIterator1 __first1,
23661        _BidirectionalIterator1 __last1,
23662        _BidirectionalIterator2 __first2,
23663        _BidirectionalIterator2 __last2,
23664        _BidirectionalIterator3 __result,
23665        _Compare __comp)
23666     {
23667       if (__first1 == __last1)
23668  return std::copy_backward(__first2, __last2, __result);
23669       if (__first2 == __last2)
23670  return std::copy_backward(__first1, __last1, __result);
23671       --__last1;
23672       --__last2;
23673       while (true)
23674  {
23675    if (__comp(*__last2, *__last1))
23676      {
23677        *--__result = *__last1;
23678        if (__first1 == __last1)
23679   return std::copy_backward(__first2, ++__last2, __result);
23680        --__last1;
23681      }
23682    else
23683      {
23684        *--__result = *__last2;
23685        if (__first2 == __last2)
23686   return std::copy_backward(__first1, ++__last1, __result);
23687        --__last2;
23688      }
23689  }
23690     }
23691
23692
23693
23694
23695
23696
23697   template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
23698     typename _Distance>
23699     _BidirectionalIterator1
23700     __rotate_adaptive(_BidirectionalIterator1 __first,
23701         _BidirectionalIterator1 __middle,
23702         _BidirectionalIterator1 __last,
23703         _Distance __len1, _Distance __len2,
23704         _BidirectionalIterator2 __buffer,
23705         _Distance __buffer_size)
23706     {
23707       _BidirectionalIterator2 __buffer_end;
23708       if (__len1 > __len2 && __len2 <= __buffer_size)
23709  {
23710    __buffer_end = std::copy(__middle, __last, __buffer);
23711    std::copy_backward(__first, __middle, __last);
23712    return std::copy(__buffer, __buffer_end, __first);
23713  }
23714       else if (__len1 <= __buffer_size)
23715  {
23716    __buffer_end = std::copy(__first, __middle, __buffer);
23717    std::copy(__middle, __last, __first);
23718    return std::copy_backward(__buffer, __buffer_end, __last);
23719  }
23720       else
23721  {
23722    std::rotate(__first, __middle, __last);
23723    std::advance(__first, std::distance(__middle, __last));
23724    return __first;
23725  }
23726     }
23727
23728
23729
23730
23731
23732
23733   template<typename _BidirectionalIterator, typename _Distance,
23734     typename _Pointer>
23735     void
23736     __merge_adaptive(_BidirectionalIterator __first,
23737                      _BidirectionalIterator __middle,
23738        _BidirectionalIterator __last,
23739        _Distance __len1, _Distance __len2,
23740        _Pointer __buffer, _Distance __buffer_size)
23741     {
23742       if (__len1 <= __len2 && __len1 <= __buffer_size)
23743  {
23744    _Pointer __buffer_end = std::copy(__first, __middle, __buffer);
23745    std::merge(__buffer, __buffer_end, __middle, __last, __first);
23746  }
23747       else if (__len2 <= __buffer_size)
23748  {
23749    _Pointer __buffer_end = std::copy(__middle, __last, __buffer);
23750    std::__merge_backward(__first, __middle, __buffer,
23751     __buffer_end, __last);
23752  }
23753       else
23754  {
23755    _BidirectionalIterator __first_cut = __first;
23756    _BidirectionalIterator __second_cut = __middle;
23757    _Distance __len11 = 0;
23758    _Distance __len22 = 0;
23759    if (__len1 > __len2)
23760      {
23761        __len11 = __len1 / 2;
23762        std::advance(__first_cut, __len11);
23763        __second_cut = std::lower_bound(__middle, __last,
23764            *__first_cut);
23765        __len22 = std::distance(__middle, __second_cut);
23766      }
23767    else
23768      {
23769        __len22 = __len2 / 2;
23770        std::advance(__second_cut, __len22);
23771        __first_cut = std::upper_bound(__first, __middle,
23772           *__second_cut);
23773        __len11 = std::distance(__first, __first_cut);
23774      }
23775    _BidirectionalIterator __new_middle =
23776      std::__rotate_adaptive(__first_cut, __middle, __second_cut,
23777        __len1 - __len11, __len22, __buffer,
23778        __buffer_size);
23779    std::__merge_adaptive(__first, __first_cut, __new_middle, __len11,
23780     __len22, __buffer, __buffer_size);
23781    std::__merge_adaptive(__new_middle, __second_cut, __last,
23782     __len1 - __len11,
23783     __len2 - __len22, __buffer, __buffer_size);
23784  }
23785     }
23786
23787
23788
23789
23790
23791
23792   template<typename _BidirectionalIterator, typename _Distance, typename _Pointer,
23793     typename _Compare>
23794     void
23795     __merge_adaptive(_BidirectionalIterator __first,
23796                      _BidirectionalIterator __middle,
23797        _BidirectionalIterator __last,
23798        _Distance __len1, _Distance __len2,
23799        _Pointer __buffer, _Distance __buffer_size,
23800        _Compare __comp)
23801     {
23802       if (__len1 <= __len2 && __len1 <= __buffer_size)
23803  {
23804    _Pointer __buffer_end = std::copy(__first, __middle, __buffer);
23805    std::merge(__buffer, __buffer_end, __middle, __last, __first, __comp);
23806  }
23807       else if (__len2 <= __buffer_size)
23808  {
23809    _Pointer __buffer_end = std::copy(__middle, __last, __buffer);
23810    std::__merge_backward(__first, __middle, __buffer, __buffer_end,
23811     __last, __comp);
23812  }
23813       else
23814  {
23815    _BidirectionalIterator __first_cut = __first;
23816    _BidirectionalIterator __second_cut = __middle;
23817    _Distance __len11 = 0;
23818    _Distance __len22 = 0;
23819    if (__len1 > __len2)
23820      {
23821        __len11 = __len1 / 2;
23822        std::advance(__first_cut, __len11);
23823        __second_cut = std::lower_bound(__middle, __last, *__first_cut,
23824            __comp);
23825        __len22 = std::distance(__middle, __second_cut);
23826      }
23827    else
23828      {
23829        __len22 = __len2 / 2;
23830        std::advance(__second_cut, __len22);
23831        __first_cut = std::upper_bound(__first, __middle, *__second_cut,
23832           __comp);
23833        __len11 = std::distance(__first, __first_cut);
23834      }
23835    _BidirectionalIterator __new_middle =
23836      std::__rotate_adaptive(__first_cut, __middle, __second_cut,
23837        __len1 - __len11, __len22, __buffer,
23838        __buffer_size);
23839    std::__merge_adaptive(__first, __first_cut, __new_middle, __len11,
23840     __len22, __buffer, __buffer_size, __comp);
23841    std::__merge_adaptive(__new_middle, __second_cut, __last,
23842     __len1 - __len11,
23843     __len2 - __len22, __buffer,
23844     __buffer_size, __comp);
23845  }
23846     }
23847 # 3711 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
23848   template<typename _BidirectionalIterator>
23849     void
23850     inplace_merge(_BidirectionalIterator __first,
23851     _BidirectionalIterator __middle,
23852     _BidirectionalIterator __last)
23853     {
23854       typedef typename iterator_traits<_BidirectionalIterator>::value_type
23855           _ValueType;
23856       typedef typename iterator_traits<_BidirectionalIterator>::difference_type
23857           _DistanceType;
23858
23859
23860      
23861
23862      
23863       ;
23864       ;
23865
23866       if (__first == __middle || __middle == __last)
23867  return;
23868
23869       _DistanceType __len1 = std::distance(__first, __middle);
23870       _DistanceType __len2 = std::distance(__middle, __last);
23871
23872       _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first,
23873           __last);
23874       if (__buf.begin() == 0)
23875  std::__merge_without_buffer(__first, __middle, __last, __len1, __len2);
23876       else
23877  std::__merge_adaptive(__first, __middle, __last, __len1, __len2,
23878          __buf.begin(), _DistanceType(__buf.size()));
23879     }
23880 # 3765 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
23881   template<typename _BidirectionalIterator, typename _Compare>
23882     void
23883     inplace_merge(_BidirectionalIterator __first,
23884     _BidirectionalIterator __middle,
23885     _BidirectionalIterator __last,
23886     _Compare __comp)
23887     {
23888       typedef typename iterator_traits<_BidirectionalIterator>::value_type
23889           _ValueType;
23890       typedef typename iterator_traits<_BidirectionalIterator>::difference_type
23891           _DistanceType;
23892
23893
23894      
23895
23896      
23897
23898       ;
23899       ;
23900
23901       if (__first == __middle || __middle == __last)
23902  return;
23903
23904       const _DistanceType __len1 = std::distance(__first, __middle);
23905       const _DistanceType __len2 = std::distance(__middle, __last);
23906
23907       _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first,
23908           __last);
23909       if (__buf.begin() == 0)
23910  std::__merge_without_buffer(__first, __middle, __last, __len1,
23911         __len2, __comp);
23912       else
23913  std::__merge_adaptive(__first, __middle, __last, __len1, __len2,
23914          __buf.begin(), _DistanceType(__buf.size()),
23915          __comp);
23916     }
23917
23918   template<typename _RandomAccessIterator, typename _Pointer,
23919     typename _Distance>
23920     void
23921     __stable_sort_adaptive(_RandomAccessIterator __first,
23922       _RandomAccessIterator __last,
23923                            _Pointer __buffer, _Distance __buffer_size)
23924     {
23925       const _Distance __len = (__last - __first + 1) / 2;
23926       const _RandomAccessIterator __middle = __first + __len;
23927       if (__len > __buffer_size)
23928  {
23929    std::__stable_sort_adaptive(__first, __middle,
23930           __buffer, __buffer_size);
23931    std::__stable_sort_adaptive(__middle, __last,
23932           __buffer, __buffer_size);
23933  }
23934       else
23935  {
23936    std::__merge_sort_with_buffer(__first, __middle, __buffer);
23937    std::__merge_sort_with_buffer(__middle, __last, __buffer);
23938  }
23939       std::__merge_adaptive(__first, __middle, __last,
23940        _Distance(__middle - __first),
23941        _Distance(__last - __middle),
23942        __buffer, __buffer_size);
23943     }
23944
23945   template<typename _RandomAccessIterator, typename _Pointer,
23946     typename _Distance, typename _Compare>
23947     void
23948     __stable_sort_adaptive(_RandomAccessIterator __first,
23949       _RandomAccessIterator __last,
23950                            _Pointer __buffer, _Distance __buffer_size,
23951                            _Compare __comp)
23952     {
23953       const _Distance __len = (__last - __first + 1) / 2;
23954       const _RandomAccessIterator __middle = __first + __len;
23955       if (__len > __buffer_size)
23956  {
23957    std::__stable_sort_adaptive(__first, __middle, __buffer,
23958           __buffer_size, __comp);
23959    std::__stable_sort_adaptive(__middle, __last, __buffer,
23960           __buffer_size, __comp);
23961  }
23962       else
23963  {
23964    std::__merge_sort_with_buffer(__first, __middle, __buffer, __comp);
23965    std::__merge_sort_with_buffer(__middle, __last, __buffer, __comp);
23966  }
23967       std::__merge_adaptive(__first, __middle, __last,
23968        _Distance(__middle - __first),
23969        _Distance(__last - __middle),
23970        __buffer, __buffer_size,
23971        __comp);
23972     }
23973 # 3874 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
23974   template<typename _RandomAccessIterator>
23975     inline void
23976     stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
23977     {
23978       typedef typename iterator_traits<_RandomAccessIterator>::value_type
23979  _ValueType;
23980       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
23981  _DistanceType;
23982
23983
23984      
23985
23986      
23987       ;
23988
23989       _Temporary_buffer<_RandomAccessIterator, _ValueType> __buf(__first,
23990          __last);
23991       if (__buf.begin() == 0)
23992  std::__inplace_stable_sort(__first, __last);
23993       else
23994  std::__stable_sort_adaptive(__first, __last, __buf.begin(),
23995         _DistanceType(__buf.size()));
23996     }
23997 # 3915 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
23998   template<typename _RandomAccessIterator, typename _Compare>
23999     inline void
24000     stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
24001   _Compare __comp)
24002     {
24003       typedef typename iterator_traits<_RandomAccessIterator>::value_type
24004  _ValueType;
24005       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
24006  _DistanceType;
24007
24008
24009      
24010
24011      
24012
24013
24014       ;
24015
24016       _Temporary_buffer<_RandomAccessIterator, _ValueType> __buf(__first,
24017          __last);
24018       if (__buf.begin() == 0)
24019  std::__inplace_stable_sort(__first, __last, __comp);
24020       else
24021  std::__stable_sort_adaptive(__first, __last, __buf.begin(),
24022         _DistanceType(__buf.size()), __comp);
24023     }
24024
24025
24026   template<typename _RandomAccessIterator, typename _Size>
24027     void
24028     __introselect(_RandomAccessIterator __first, _RandomAccessIterator __nth,
24029     _RandomAccessIterator __last, _Size __depth_limit)
24030     {
24031       typedef typename iterator_traits<_RandomAccessIterator>::value_type
24032  _ValueType;
24033
24034       while (__last - __first > 3)
24035  {
24036    if (__depth_limit == 0)
24037      {
24038        std::__heap_select(__first, __nth + 1, __last);
24039
24040        std::iter_swap(__first, __nth);
24041        return;
24042      }
24043    --__depth_limit;
24044    _RandomAccessIterator __cut =
24045      std::__unguarded_partition(__first, __last,
24046            _ValueType(std::__median(*__first,
24047         *(__first
24048           + (__last
24049              - __first)
24050           / 2),
24051         *(__last
24052           - 1))));
24053    if (__cut <= __nth)
24054      __first = __cut;
24055    else
24056      __last = __cut;
24057  }
24058       std::__insertion_sort(__first, __last);
24059     }
24060
24061   template<typename _RandomAccessIterator, typename _Size, typename _Compare>
24062     void
24063     __introselect(_RandomAccessIterator __first, _RandomAccessIterator __nth,
24064     _RandomAccessIterator __last, _Size __depth_limit,
24065     _Compare __comp)
24066     {
24067       typedef typename iterator_traits<_RandomAccessIterator>::value_type
24068  _ValueType;
24069
24070       while (__last - __first > 3)
24071  {
24072    if (__depth_limit == 0)
24073      {
24074        std::__heap_select(__first, __nth + 1, __last, __comp);
24075
24076        std::iter_swap(__first, __nth);
24077        return;
24078      }
24079    --__depth_limit;
24080    _RandomAccessIterator __cut =
24081      std::__unguarded_partition(__first, __last,
24082            _ValueType(std::__median(*__first,
24083         *(__first
24084           + (__last
24085              - __first)
24086           / 2),
24087         *(__last - 1),
24088         __comp)),
24089            __comp);
24090    if (__cut <= __nth)
24091      __first = __cut;
24092    else
24093      __last = __cut;
24094  }
24095       std::__insertion_sort(__first, __last, __comp);
24096     }
24097 # 4030 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24098   template<typename _RandomAccessIterator>
24099     inline void
24100     nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth,
24101   _RandomAccessIterator __last)
24102     {
24103       typedef typename iterator_traits<_RandomAccessIterator>::value_type
24104  _ValueType;
24105
24106
24107      
24108
24109      
24110       ;
24111       ;
24112
24113       if (__first == __last || __nth == __last)
24114  return;
24115
24116       std::__introselect(__first, __nth, __last,
24117     std::__lg(__last - __first) * 2);
24118     }
24119 # 4068 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24120   template<typename _RandomAccessIterator, typename _Compare>
24121     inline void
24122     nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth,
24123   _RandomAccessIterator __last, _Compare __comp)
24124     {
24125       typedef typename iterator_traits<_RandomAccessIterator>::value_type
24126  _ValueType;
24127
24128
24129      
24130
24131      
24132
24133       ;
24134       ;
24135
24136       if (__first == __last || __nth == __last)
24137  return;
24138
24139       std::__introselect(__first, __nth, __last,
24140     std::__lg(__last - __first) * 2, __comp);
24141     }
24142 # 4107 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24143   template<typename _ForwardIterator, typename _Tp>
24144     pair<_ForwardIterator, _ForwardIterator>
24145     equal_range(_ForwardIterator __first, _ForwardIterator __last,
24146   const _Tp& __val)
24147     {
24148       typedef typename iterator_traits<_ForwardIterator>::value_type
24149  _ValueType;
24150       typedef typename iterator_traits<_ForwardIterator>::difference_type
24151  _DistanceType;
24152
24153
24154      
24155      
24156      
24157       ;
24158
24159       _DistanceType __len = std::distance(__first, __last);
24160       _DistanceType __half;
24161       _ForwardIterator __middle, __left, __right;
24162
24163       while (__len > 0)
24164  {
24165    __half = __len >> 1;
24166    __middle = __first;
24167    std::advance(__middle, __half);
24168    if (*__middle < __val)
24169      {
24170        __first = __middle;
24171        ++__first;
24172        __len = __len - __half - 1;
24173      }
24174    else if (__val < *__middle)
24175      __len = __half;
24176    else
24177      {
24178        __left = std::lower_bound(__first, __middle, __val);
24179        std::advance(__first, __len);
24180        __right = std::upper_bound(++__middle, __first, __val);
24181        return pair<_ForwardIterator, _ForwardIterator>(__left, __right);
24182      }
24183  }
24184       return pair<_ForwardIterator, _ForwardIterator>(__first, __first);
24185     }
24186 # 4168 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24187   template<typename _ForwardIterator, typename _Tp, typename _Compare>
24188     pair<_ForwardIterator, _ForwardIterator>
24189     equal_range(_ForwardIterator __first, _ForwardIterator __last,
24190   const _Tp& __val,
24191   _Compare __comp)
24192     {
24193       typedef typename iterator_traits<_ForwardIterator>::value_type
24194  _ValueType;
24195       typedef typename iterator_traits<_ForwardIterator>::difference_type
24196  _DistanceType;
24197
24198
24199      
24200      
24201
24202      
24203
24204       ;
24205
24206       _DistanceType __len = std::distance(__first, __last);
24207       _DistanceType __half;
24208       _ForwardIterator __middle, __left, __right;
24209
24210       while (__len > 0)
24211  {
24212    __half = __len >> 1;
24213    __middle = __first;
24214    std::advance(__middle, __half);
24215    if (__comp(*__middle, __val))
24216      {
24217        __first = __middle;
24218        ++__first;
24219        __len = __len - __half - 1;
24220      }
24221    else if (__comp(__val, *__middle))
24222      __len = __half;
24223    else
24224      {
24225        __left = std::lower_bound(__first, __middle, __val, __comp);
24226        std::advance(__first, __len);
24227        __right = std::upper_bound(++__middle, __first, __val, __comp);
24228        return pair<_ForwardIterator, _ForwardIterator>(__left, __right);
24229      }
24230  }
24231       return pair<_ForwardIterator, _ForwardIterator>(__first, __first);
24232     }
24233 # 4226 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24234   template<typename _ForwardIterator, typename _Tp>
24235     bool
24236     binary_search(_ForwardIterator __first, _ForwardIterator __last,
24237                   const _Tp& __val)
24238     {
24239       typedef typename iterator_traits<_ForwardIterator>::value_type
24240  _ValueType;
24241
24242
24243      
24244      
24245       ;
24246
24247       _ForwardIterator __i = std::lower_bound(__first, __last, __val);
24248       return __i != __last && !(__val < *__i);
24249     }
24250 # 4258 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24251   template<typename _ForwardIterator, typename _Tp, typename _Compare>
24252     bool
24253     binary_search(_ForwardIterator __first, _ForwardIterator __last,
24254                   const _Tp& __val, _Compare __comp)
24255     {
24256       typedef typename iterator_traits<_ForwardIterator>::value_type
24257  _ValueType;
24258
24259
24260      
24261      
24262
24263       ;
24264
24265       _ForwardIterator __i = std::lower_bound(__first, __last, __val, __comp);
24266       return __i != __last && !__comp(__val, *__i);
24267     }
24268 # 4297 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24269   template<typename _InputIterator1, typename _InputIterator2>
24270     bool
24271     includes(_InputIterator1 __first1, _InputIterator1 __last1,
24272       _InputIterator2 __first2, _InputIterator2 __last2)
24273     {
24274       typedef typename iterator_traits<_InputIterator1>::value_type
24275  _ValueType1;
24276       typedef typename iterator_traits<_InputIterator2>::value_type
24277  _ValueType2;
24278
24279
24280      
24281      
24282      
24283      
24284       ;
24285       ;
24286
24287       while (__first1 != __last1 && __first2 != __last2)
24288  if (*__first2 < *__first1)
24289    return false;
24290  else if(*__first1 < *__first2)
24291    ++__first1;
24292  else
24293    ++__first1, ++__first2;
24294
24295       return __first2 == __last2;
24296     }
24297 # 4345 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24298   template<typename _InputIterator1, typename _InputIterator2,
24299     typename _Compare>
24300     bool
24301     includes(_InputIterator1 __first1, _InputIterator1 __last1,
24302       _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp)
24303     {
24304       typedef typename iterator_traits<_InputIterator1>::value_type
24305  _ValueType1;
24306       typedef typename iterator_traits<_InputIterator2>::value_type
24307  _ValueType2;
24308
24309
24310      
24311      
24312      
24313
24314      
24315
24316       ;
24317       ;
24318
24319       while (__first1 != __last1 && __first2 != __last2)
24320  if (__comp(*__first2, *__first1))
24321    return false;
24322  else if(__comp(*__first1, *__first2))
24323    ++__first1;
24324  else
24325    ++__first1, ++__first2;
24326
24327       return __first2 == __last2;
24328     }
24329 # 4394 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24330   template<typename _InputIterator1, typename _InputIterator2,
24331     typename _OutputIterator>
24332     _OutputIterator
24333     set_union(_InputIterator1 __first1, _InputIterator1 __last1,
24334        _InputIterator2 __first2, _InputIterator2 __last2,
24335        _OutputIterator __result)
24336     {
24337       typedef typename iterator_traits<_InputIterator1>::value_type
24338  _ValueType1;
24339       typedef typename iterator_traits<_InputIterator2>::value_type
24340  _ValueType2;
24341
24342
24343      
24344      
24345      
24346
24347      
24348
24349      
24350      
24351       ;
24352       ;
24353
24354       while (__first1 != __last1 && __first2 != __last2)
24355  {
24356    if (*__first1 < *__first2)
24357      {
24358        *__result = *__first1;
24359        ++__first1;
24360      }
24361    else if (*__first2 < *__first1)
24362      {
24363        *__result = *__first2;
24364        ++__first2;
24365      }
24366    else
24367      {
24368        *__result = *__first1;
24369        ++__first1;
24370        ++__first2;
24371      }
24372    ++__result;
24373  }
24374       return std::copy(__first2, __last2, std::copy(__first1, __last1,
24375           __result));
24376     }
24377 # 4460 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24378   template<typename _InputIterator1, typename _InputIterator2,
24379     typename _OutputIterator, typename _Compare>
24380     _OutputIterator
24381     set_union(_InputIterator1 __first1, _InputIterator1 __last1,
24382        _InputIterator2 __first2, _InputIterator2 __last2,
24383        _OutputIterator __result, _Compare __comp)
24384     {
24385       typedef typename iterator_traits<_InputIterator1>::value_type
24386  _ValueType1;
24387       typedef typename iterator_traits<_InputIterator2>::value_type
24388  _ValueType2;
24389
24390
24391      
24392      
24393      
24394
24395      
24396
24397      
24398
24399      
24400
24401       ;
24402       ;
24403
24404       while (__first1 != __last1 && __first2 != __last2)
24405  {
24406    if (__comp(*__first1, *__first2))
24407      {
24408        *__result = *__first1;
24409        ++__first1;
24410      }
24411    else if (__comp(*__first2, *__first1))
24412      {
24413        *__result = *__first2;
24414        ++__first2;
24415      }
24416    else
24417      {
24418        *__result = *__first1;
24419        ++__first1;
24420        ++__first2;
24421      }
24422    ++__result;
24423  }
24424       return std::copy(__first2, __last2, std::copy(__first1, __last1,
24425           __result));
24426     }
24427 # 4526 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24428   template<typename _InputIterator1, typename _InputIterator2,
24429     typename _OutputIterator>
24430     _OutputIterator
24431     set_intersection(_InputIterator1 __first1, _InputIterator1 __last1,
24432        _InputIterator2 __first2, _InputIterator2 __last2,
24433        _OutputIterator __result)
24434     {
24435       typedef typename iterator_traits<_InputIterator1>::value_type
24436  _ValueType1;
24437       typedef typename iterator_traits<_InputIterator2>::value_type
24438  _ValueType2;
24439
24440
24441      
24442      
24443      
24444
24445      
24446      
24447       ;
24448       ;
24449
24450       while (__first1 != __last1 && __first2 != __last2)
24451  if (*__first1 < *__first2)
24452    ++__first1;
24453  else if (*__first2 < *__first1)
24454    ++__first2;
24455  else
24456    {
24457      *__result = *__first1;
24458      ++__first1;
24459      ++__first2;
24460      ++__result;
24461    }
24462       return __result;
24463     }
24464 # 4582 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24465   template<typename _InputIterator1, typename _InputIterator2,
24466     typename _OutputIterator, typename _Compare>
24467     _OutputIterator
24468     set_intersection(_InputIterator1 __first1, _InputIterator1 __last1,
24469        _InputIterator2 __first2, _InputIterator2 __last2,
24470        _OutputIterator __result, _Compare __comp)
24471     {
24472       typedef typename iterator_traits<_InputIterator1>::value_type
24473  _ValueType1;
24474       typedef typename iterator_traits<_InputIterator2>::value_type
24475  _ValueType2;
24476
24477
24478      
24479      
24480      
24481
24482      
24483
24484      
24485
24486       ;
24487       ;
24488
24489       while (__first1 != __last1 && __first2 != __last2)
24490  if (__comp(*__first1, *__first2))
24491    ++__first1;
24492  else if (__comp(*__first2, *__first1))
24493    ++__first2;
24494  else
24495    {
24496      *__result = *__first1;
24497      ++__first1;
24498      ++__first2;
24499      ++__result;
24500    }
24501       return __result;
24502     }
24503 # 4639 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24504   template<typename _InputIterator1, typename _InputIterator2,
24505     typename _OutputIterator>
24506     _OutputIterator
24507     set_difference(_InputIterator1 __first1, _InputIterator1 __last1,
24508      _InputIterator2 __first2, _InputIterator2 __last2,
24509      _OutputIterator __result)
24510     {
24511       typedef typename iterator_traits<_InputIterator1>::value_type
24512  _ValueType1;
24513       typedef typename iterator_traits<_InputIterator2>::value_type
24514  _ValueType2;
24515
24516
24517      
24518      
24519      
24520
24521      
24522      
24523       ;
24524       ;
24525
24526       while (__first1 != __last1 && __first2 != __last2)
24527  if (*__first1 < *__first2)
24528    {
24529      *__result = *__first1;
24530      ++__first1;
24531      ++__result;
24532    }
24533  else if (*__first2 < *__first1)
24534    ++__first2;
24535  else
24536    {
24537      ++__first1;
24538      ++__first2;
24539    }
24540       return std::copy(__first1, __last1, __result);
24541     }
24542 # 4699 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24543   template<typename _InputIterator1, typename _InputIterator2,
24544     typename _OutputIterator, typename _Compare>
24545     _OutputIterator
24546     set_difference(_InputIterator1 __first1, _InputIterator1 __last1,
24547      _InputIterator2 __first2, _InputIterator2 __last2,
24548      _OutputIterator __result, _Compare __comp)
24549     {
24550       typedef typename iterator_traits<_InputIterator1>::value_type
24551  _ValueType1;
24552       typedef typename iterator_traits<_InputIterator2>::value_type
24553  _ValueType2;
24554
24555
24556      
24557      
24558      
24559
24560      
24561
24562      
24563
24564       ;
24565       ;
24566
24567       while (__first1 != __last1 && __first2 != __last2)
24568  if (__comp(*__first1, *__first2))
24569    {
24570      *__result = *__first1;
24571      ++__first1;
24572      ++__result;
24573    }
24574  else if (__comp(*__first2, *__first1))
24575    ++__first2;
24576  else
24577    {
24578      ++__first1;
24579      ++__first2;
24580    }
24581       return std::copy(__first1, __last1, __result);
24582     }
24583 # 4756 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24584   template<typename _InputIterator1, typename _InputIterator2,
24585     typename _OutputIterator>
24586     _OutputIterator
24587     set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1,
24588         _InputIterator2 __first2, _InputIterator2 __last2,
24589         _OutputIterator __result)
24590     {
24591       typedef typename iterator_traits<_InputIterator1>::value_type
24592  _ValueType1;
24593       typedef typename iterator_traits<_InputIterator2>::value_type
24594  _ValueType2;
24595
24596
24597      
24598      
24599      
24600
24601      
24602
24603      
24604      
24605       ;
24606       ;
24607
24608       while (__first1 != __last1 && __first2 != __last2)
24609  if (*__first1 < *__first2)
24610    {
24611      *__result = *__first1;
24612      ++__first1;
24613      ++__result;
24614    }
24615  else if (*__first2 < *__first1)
24616    {
24617      *__result = *__first2;
24618      ++__first2;
24619      ++__result;
24620    }
24621  else
24622    {
24623      ++__first1;
24624      ++__first2;
24625    }
24626       return std::copy(__first2, __last2, std::copy(__first1,
24627           __last1, __result));
24628     }
24629 # 4821 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24630   template<typename _InputIterator1, typename _InputIterator2,
24631     typename _OutputIterator, typename _Compare>
24632     _OutputIterator
24633     set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1,
24634         _InputIterator2 __first2, _InputIterator2 __last2,
24635         _OutputIterator __result,
24636         _Compare __comp)
24637     {
24638       typedef typename iterator_traits<_InputIterator1>::value_type
24639  _ValueType1;
24640       typedef typename iterator_traits<_InputIterator2>::value_type
24641  _ValueType2;
24642
24643
24644      
24645      
24646      
24647
24648      
24649
24650      
24651
24652      
24653
24654       ;
24655       ;
24656
24657       while (__first1 != __last1 && __first2 != __last2)
24658  if (__comp(*__first1, *__first2))
24659    {
24660      *__result = *__first1;
24661      ++__first1;
24662      ++__result;
24663    }
24664  else if (__comp(*__first2, *__first1))
24665    {
24666      *__result = *__first2;
24667      ++__first2;
24668      ++__result;
24669    }
24670  else
24671    {
24672      ++__first1;
24673      ++__first2;
24674    }
24675       return std::copy(__first2, __last2, std::copy(__first1,
24676           __last1, __result));
24677     }
24678 # 4879 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24679   template<typename _ForwardIterator>
24680     _ForwardIterator
24681     max_element(_ForwardIterator __first, _ForwardIterator __last)
24682     {
24683
24684      
24685      
24686
24687       ;
24688
24689       if (__first == __last)
24690  return __first;
24691       _ForwardIterator __result = __first;
24692       while (++__first != __last)
24693  if (*__result < *__first)
24694    __result = __first;
24695       return __result;
24696     }
24697 # 4906 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24698   template<typename _ForwardIterator, typename _Compare>
24699     _ForwardIterator
24700     max_element(_ForwardIterator __first, _ForwardIterator __last,
24701   _Compare __comp)
24702     {
24703
24704      
24705      
24706
24707
24708       ;
24709
24710       if (__first == __last) return __first;
24711       _ForwardIterator __result = __first;
24712       while (++__first != __last)
24713  if (__comp(*__result, *__first)) __result = __first;
24714       return __result;
24715     }
24716
24717
24718
24719
24720
24721
24722
24723   template<typename _ForwardIterator>
24724     _ForwardIterator
24725     min_element(_ForwardIterator __first, _ForwardIterator __last)
24726     {
24727
24728      
24729      
24730
24731       ;
24732
24733       if (__first == __last)
24734  return __first;
24735       _ForwardIterator __result = __first;
24736       while (++__first != __last)
24737  if (*__first < *__result)
24738    __result = __first;
24739       return __result;
24740     }
24741 # 4958 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24742   template<typename _ForwardIterator, typename _Compare>
24743     _ForwardIterator
24744     min_element(_ForwardIterator __first, _ForwardIterator __last,
24745   _Compare __comp)
24746     {
24747
24748      
24749      
24750
24751
24752       ;
24753
24754       if (__first == __last)
24755  return __first;
24756       _ForwardIterator __result = __first;
24757       while (++__first != __last)
24758  if (__comp(*__first, *__result))
24759    __result = __first;
24760       return __result;
24761     }
24762 # 4993 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24763   template<typename _BidirectionalIterator>
24764     bool
24765     next_permutation(_BidirectionalIterator __first,
24766        _BidirectionalIterator __last)
24767     {
24768
24769      
24770
24771      
24772
24773       ;
24774
24775       if (__first == __last)
24776  return false;
24777       _BidirectionalIterator __i = __first;
24778       ++__i;
24779       if (__i == __last)
24780  return false;
24781       __i = __last;
24782       --__i;
24783
24784       for(;;)
24785  {
24786    _BidirectionalIterator __ii = __i;
24787    --__i;
24788    if (*__i < *__ii)
24789      {
24790        _BidirectionalIterator __j = __last;
24791        while (!(*__i < *--__j))
24792   {}
24793        std::iter_swap(__i, __j);
24794        std::reverse(__ii, __last);
24795        return true;
24796      }
24797    if (__i == __first)
24798      {
24799        std::reverse(__first, __last);
24800        return false;
24801      }
24802  }
24803     }
24804 # 5049 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24805   template<typename _BidirectionalIterator, typename _Compare>
24806     bool
24807     next_permutation(_BidirectionalIterator __first,
24808        _BidirectionalIterator __last, _Compare __comp)
24809     {
24810
24811      
24812
24813      
24814
24815
24816       ;
24817
24818       if (__first == __last)
24819  return false;
24820       _BidirectionalIterator __i = __first;
24821       ++__i;
24822       if (__i == __last)
24823  return false;
24824       __i = __last;
24825       --__i;
24826
24827       for(;;)
24828  {
24829    _BidirectionalIterator __ii = __i;
24830    --__i;
24831    if (__comp(*__i, *__ii))
24832      {
24833        _BidirectionalIterator __j = __last;
24834        while (!__comp(*__i, *--__j))
24835   {}
24836        std::iter_swap(__i, __j);
24837        std::reverse(__ii, __last);
24838        return true;
24839      }
24840    if (__i == __first)
24841      {
24842        std::reverse(__first, __last);
24843        return false;
24844      }
24845  }
24846     }
24847 # 5104 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24848   template<typename _BidirectionalIterator>
24849     bool
24850     prev_permutation(_BidirectionalIterator __first,
24851        _BidirectionalIterator __last)
24852     {
24853
24854      
24855
24856      
24857
24858       ;
24859
24860       if (__first == __last)
24861  return false;
24862       _BidirectionalIterator __i = __first;
24863       ++__i;
24864       if (__i == __last)
24865  return false;
24866       __i = __last;
24867       --__i;
24868
24869       for(;;)
24870  {
24871    _BidirectionalIterator __ii = __i;
24872    --__i;
24873    if (*__ii < *__i)
24874      {
24875        _BidirectionalIterator __j = __last;
24876        while (!(*--__j < *__i))
24877   {}
24878        std::iter_swap(__i, __j);
24879        std::reverse(__ii, __last);
24880        return true;
24881      }
24882    if (__i == __first)
24883      {
24884        std::reverse(__first, __last);
24885        return false;
24886      }
24887  }
24888     }
24889 # 5160 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24890   template<typename _BidirectionalIterator, typename _Compare>
24891     bool
24892     prev_permutation(_BidirectionalIterator __first,
24893        _BidirectionalIterator __last, _Compare __comp)
24894     {
24895
24896      
24897
24898      
24899
24900
24901       ;
24902
24903       if (__first == __last)
24904  return false;
24905       _BidirectionalIterator __i = __first;
24906       ++__i;
24907       if (__i == __last)
24908  return false;
24909       __i = __last;
24910       --__i;
24911
24912       for(;;)
24913  {
24914    _BidirectionalIterator __ii = __i;
24915    --__i;
24916    if (__comp(*__ii, *__i))
24917      {
24918        _BidirectionalIterator __j = __last;
24919        while (!__comp(*--__j, *__i))
24920   {}
24921        std::iter_swap(__i, __j);
24922        std::reverse(__ii, __last);
24923        return true;
24924      }
24925    if (__i == __first)
24926      {
24927        std::reverse(__first, __last);
24928        return false;
24929      }
24930  }
24931     }
24932 # 5219 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24933   template<typename _InputIterator, typename _ForwardIterator>
24934     _InputIterator
24935     find_first_of(_InputIterator __first1, _InputIterator __last1,
24936     _ForwardIterator __first2, _ForwardIterator __last2)
24937     {
24938
24939      
24940      
24941      
24942
24943
24944       ;
24945       ;
24946
24947       for ( ; __first1 != __last1; ++__first1)
24948  for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter)
24949    if (*__first1 == *__iter)
24950      return __first1;
24951       return __last1;
24952     }
24953 # 5255 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24954   template<typename _InputIterator, typename _ForwardIterator,
24955     typename _BinaryPredicate>
24956     _InputIterator
24957     find_first_of(_InputIterator __first1, _InputIterator __last1,
24958     _ForwardIterator __first2, _ForwardIterator __last2,
24959     _BinaryPredicate __comp)
24960     {
24961
24962      
24963      
24964      
24965
24966
24967       ;
24968       ;
24969
24970       for ( ; __first1 != __last1; ++__first1)
24971  for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter)
24972    if (__comp(*__first1, *__iter))
24973      return __first1;
24974       return __last1;
24975     }
24976 # 5285 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
24977   template<typename _ForwardIterator1, typename _ForwardIterator2>
24978     _ForwardIterator1
24979     __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
24980         _ForwardIterator2 __first2, _ForwardIterator2 __last2,
24981         forward_iterator_tag, forward_iterator_tag)
24982     {
24983       if (__first2 == __last2)
24984  return __last1;
24985       else
24986  {
24987    _ForwardIterator1 __result = __last1;
24988    while (1)
24989      {
24990        _ForwardIterator1 __new_result
24991   = std::search(__first1, __last1, __first2, __last2);
24992        if (__new_result == __last1)
24993   return __result;
24994        else
24995   {
24996     __result = __new_result;
24997     __first1 = __new_result;
24998     ++__first1;
24999   }
25000      }
25001  }
25002     }
25003
25004   template<typename _ForwardIterator1, typename _ForwardIterator2,
25005     typename _BinaryPredicate>
25006     _ForwardIterator1
25007     __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
25008         _ForwardIterator2 __first2, _ForwardIterator2 __last2,
25009         forward_iterator_tag, forward_iterator_tag,
25010         _BinaryPredicate __comp)
25011     {
25012       if (__first2 == __last2)
25013  return __last1;
25014       else
25015  {
25016    _ForwardIterator1 __result = __last1;
25017    while (1)
25018      {
25019        _ForwardIterator1 __new_result
25020   = std::search(__first1, __last1, __first2, __last2, __comp);
25021        if (__new_result == __last1)
25022   return __result;
25023        else
25024   {
25025     __result = __new_result;
25026     __first1 = __new_result;
25027     ++__first1;
25028   }
25029      }
25030  }
25031     }
25032
25033
25034   template<typename _BidirectionalIterator1, typename _BidirectionalIterator2>
25035     _BidirectionalIterator1
25036     __find_end(_BidirectionalIterator1 __first1,
25037         _BidirectionalIterator1 __last1,
25038         _BidirectionalIterator2 __first2,
25039         _BidirectionalIterator2 __last2,
25040         bidirectional_iterator_tag, bidirectional_iterator_tag)
25041     {
25042
25043      
25044
25045      
25046
25047
25048       typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1;
25049       typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2;
25050
25051       _RevIterator1 __rlast1(__first1);
25052       _RevIterator2 __rlast2(__first2);
25053       _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1,
25054          _RevIterator2(__last2), __rlast2);
25055
25056       if (__rresult == __rlast1)
25057  return __last1;
25058       else
25059  {
25060    _BidirectionalIterator1 __result = __rresult.base();
25061    std::advance(__result, -std::distance(__first2, __last2));
25062    return __result;
25063  }
25064     }
25065
25066   template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
25067     typename _BinaryPredicate>
25068     _BidirectionalIterator1
25069     __find_end(_BidirectionalIterator1 __first1,
25070         _BidirectionalIterator1 __last1,
25071         _BidirectionalIterator2 __first2,
25072         _BidirectionalIterator2 __last2,
25073         bidirectional_iterator_tag, bidirectional_iterator_tag,
25074         _BinaryPredicate __comp)
25075     {
25076
25077      
25078
25079      
25080
25081
25082       typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1;
25083       typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2;
25084
25085       _RevIterator1 __rlast1(__first1);
25086       _RevIterator2 __rlast2(__first2);
25087       _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1,
25088          _RevIterator2(__last2), __rlast2,
25089          __comp);
25090
25091       if (__rresult == __rlast1)
25092  return __last1;
25093       else
25094  {
25095    _BidirectionalIterator1 __result = __rresult.base();
25096    std::advance(__result, -std::distance(__first2, __last2));
25097    return __result;
25098  }
25099     }
25100 # 5435 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
25101   template<typename _ForwardIterator1, typename _ForwardIterator2>
25102     inline _ForwardIterator1
25103     find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
25104       _ForwardIterator2 __first2, _ForwardIterator2 __last2)
25105     {
25106
25107      
25108      
25109      
25110
25111
25112       ;
25113       ;
25114
25115       return std::__find_end(__first1, __last1, __first2, __last2,
25116         std::__iterator_category(__first1),
25117         std::__iterator_category(__first2));
25118     }
25119 # 5480 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/stl_algo.h" 3
25120   template<typename _ForwardIterator1, typename _ForwardIterator2,
25121     typename _BinaryPredicate>
25122     inline _ForwardIterator1
25123     find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
25124       _ForwardIterator2 __first2, _ForwardIterator2 __last2,
25125       _BinaryPredicate __comp)
25126     {
25127
25128      
25129      
25130      
25131
25132
25133       ;
25134       ;
25135
25136       return std::__find_end(__first1, __last1, __first2, __last2,
25137         std::__iterator_category(__first1),
25138         std::__iterator_category(__first2),
25139         __comp);
25140     }
25141
25142 }
25143 # 69 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/algorithm" 2 3
25144 # 58 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/string" 2 3
25145 # 1 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.tcc" 1 3
25146 # 45 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.tcc" 3
25147 #define _BASIC_STRING_TCC 1
25148
25149        
25150 # 48 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.tcc" 3
25151
25152 namespace std __attribute__ ((__visibility__ ("default"))) {
25153
25154   template<typename _Type>
25155     inline bool
25156     __is_null_pointer(_Type* __ptr)
25157     { return __ptr == 0; }
25158
25159   template<typename _Type>
25160     inline bool
25161     __is_null_pointer(_Type)
25162     { return false; }
25163
25164   template<typename _CharT, typename _Traits, typename _Alloc>
25165     const typename basic_string<_CharT, _Traits, _Alloc>::size_type
25166     basic_string<_CharT, _Traits, _Alloc>::
25167     _Rep::_S_max_size = (((npos - sizeof(_Rep_base))/sizeof(_CharT)) - 1) / 4;
25168
25169   template<typename _CharT, typename _Traits, typename _Alloc>
25170     const _CharT
25171     basic_string<_CharT, _Traits, _Alloc>::
25172     _Rep::_S_terminal = _CharT();
25173
25174   template<typename _CharT, typename _Traits, typename _Alloc>
25175     const typename basic_string<_CharT, _Traits, _Alloc>::size_type
25176     basic_string<_CharT, _Traits, _Alloc>::npos;
25177
25178
25179
25180   template<typename _CharT, typename _Traits, typename _Alloc>
25181     typename basic_string<_CharT, _Traits, _Alloc>::size_type
25182     basic_string<_CharT, _Traits, _Alloc>::_Rep::_S_empty_rep_storage[
25183     (sizeof(_Rep_base) + sizeof(_CharT) + sizeof(size_type) - 1) /
25184       sizeof(size_type)];
25185
25186
25187
25188
25189
25190   template<typename _CharT, typename _Traits, typename _Alloc>
25191     template<typename _InIterator>
25192       _CharT*
25193       basic_string<_CharT, _Traits, _Alloc>::
25194       _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
25195      input_iterator_tag)
25196       {
25197
25198  if (__beg == __end && __a == _Alloc())
25199    return _S_empty_rep()._M_refdata();
25200
25201
25202  _CharT __buf[128];
25203  size_type __len = 0;
25204  while (__beg != __end && __len < sizeof(__buf) / sizeof(_CharT))
25205    {
25206      __buf[__len++] = *__beg;
25207      ++__beg;
25208    }
25209  _Rep* __r = _Rep::_S_create(__len, size_type(0), __a);
25210  _M_copy(__r->_M_refdata(), __buf, __len);
25211  try
25212    {
25213      while (__beg != __end)
25214        {
25215   if (__len == __r->_M_capacity)
25216     {
25217
25218       _Rep* __another = _Rep::_S_create(__len + 1, __len, __a);
25219       _M_copy(__another->_M_refdata(), __r->_M_refdata(), __len);
25220       __r->_M_destroy(__a);
25221       __r = __another;
25222     }
25223   __r->_M_refdata()[__len++] = *__beg;
25224   ++__beg;
25225        }
25226    }
25227  catch(...)
25228    {
25229      __r->_M_destroy(__a);
25230      throw;
25231    }
25232  __r->_M_set_length_and_sharable(__len);
25233  return __r->_M_refdata();
25234       }
25235
25236   template<typename _CharT, typename _Traits, typename _Alloc>
25237     template <typename _InIterator>
25238       _CharT*
25239       basic_string<_CharT, _Traits, _Alloc>::
25240       _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
25241      forward_iterator_tag)
25242       {
25243
25244  if (__beg == __end && __a == _Alloc())
25245    return _S_empty_rep()._M_refdata();
25246
25247
25248  if (__builtin_expect(__is_null_pointer(__beg) && __beg != __end, 0))
25249    __throw_logic_error(("basic_string::_S_construct NULL not valid"));
25250
25251  const size_type __dnew = static_cast<size_type>(std::distance(__beg,
25252               __end));
25253
25254  _Rep* __r = _Rep::_S_create(__dnew, size_type(0), __a);
25255  try
25256    { _S_copy_chars(__r->_M_refdata(), __beg, __end); }
25257  catch(...)
25258    {
25259      __r->_M_destroy(__a);
25260      throw;
25261    }
25262  __r->_M_set_length_and_sharable(__dnew);
25263  return __r->_M_refdata();
25264       }
25265
25266   template<typename _CharT, typename _Traits, typename _Alloc>
25267     _CharT*
25268     basic_string<_CharT, _Traits, _Alloc>::
25269     _S_construct(size_type __n, _CharT __c, const _Alloc& __a)
25270     {
25271
25272       if (__n == 0 && __a == _Alloc())
25273  return _S_empty_rep()._M_refdata();
25274
25275
25276       _Rep* __r = _Rep::_S_create(__n, size_type(0), __a);
25277       if (__n)
25278  _M_assign(__r->_M_refdata(), __n, __c);
25279
25280       __r->_M_set_length_and_sharable(__n);
25281       return __r->_M_refdata();
25282     }
25283
25284   template<typename _CharT, typename _Traits, typename _Alloc>
25285     basic_string<_CharT, _Traits, _Alloc>::
25286     basic_string(const basic_string& __str)
25287     : _M_dataplus(__str._M_rep()->_M_grab(_Alloc(__str.get_allocator()),
25288        __str.get_allocator()),
25289     __str.get_allocator())
25290     { }
25291
25292   template<typename _CharT, typename _Traits, typename _Alloc>
25293     basic_string<_CharT, _Traits, _Alloc>::
25294     basic_string(const _Alloc& __a)
25295     : _M_dataplus(_S_construct(size_type(), _CharT(), __a), __a)
25296     { }
25297
25298   template<typename _CharT, typename _Traits, typename _Alloc>
25299     basic_string<_CharT, _Traits, _Alloc>::
25300     basic_string(const basic_string& __str, size_type __pos, size_type __n)
25301     : _M_dataplus(_S_construct(__str._M_data()
25302           + __str._M_check(__pos,
25303       "basic_string::basic_string"),
25304           __str._M_data() + __str._M_limit(__pos, __n)
25305           + __pos, _Alloc()), _Alloc())
25306     { }
25307
25308   template<typename _CharT, typename _Traits, typename _Alloc>
25309     basic_string<_CharT, _Traits, _Alloc>::
25310     basic_string(const basic_string& __str, size_type __pos,
25311    size_type __n, const _Alloc& __a)
25312     : _M_dataplus(_S_construct(__str._M_data()
25313           + __str._M_check(__pos,
25314       "basic_string::basic_string"),
25315           __str._M_data() + __str._M_limit(__pos, __n)
25316           + __pos, __a), __a)
25317     { }
25318
25319
25320   template<typename _CharT, typename _Traits, typename _Alloc>
25321     basic_string<_CharT, _Traits, _Alloc>::
25322     basic_string(const _CharT* __s, size_type __n, const _Alloc& __a)
25323     : _M_dataplus(_S_construct(__s, __s + __n, __a), __a)
25324     { }
25325
25326
25327   template<typename _CharT, typename _Traits, typename _Alloc>
25328     basic_string<_CharT, _Traits, _Alloc>::
25329     basic_string(const _CharT* __s, const _Alloc& __a)
25330     : _M_dataplus(_S_construct(__s, __s ? __s + traits_type::length(__s) :
25331           __s + npos, __a), __a)
25332     { }
25333
25334   template<typename _CharT, typename _Traits, typename _Alloc>
25335     basic_string<_CharT, _Traits, _Alloc>::
25336     basic_string(size_type __n, _CharT __c, const _Alloc& __a)
25337     : _M_dataplus(_S_construct(__n, __c, __a), __a)
25338     { }
25339
25340
25341   template<typename _CharT, typename _Traits, typename _Alloc>
25342     template<typename _InputIterator>
25343     basic_string<_CharT, _Traits, _Alloc>::
25344     basic_string(_InputIterator __beg, _InputIterator __end, const _Alloc& __a)
25345     : _M_dataplus(_S_construct(__beg, __end, __a), __a)
25346     { }
25347
25348   template<typename _CharT, typename _Traits, typename _Alloc>
25349     basic_string<_CharT, _Traits, _Alloc>&
25350     basic_string<_CharT, _Traits, _Alloc>::
25351     assign(const basic_string& __str)
25352     {
25353       if (_M_rep() != __str._M_rep())
25354  {
25355
25356    const allocator_type __a = this->get_allocator();
25357    _CharT* __tmp = __str._M_rep()->_M_grab(__a, __str.get_allocator());
25358    _M_rep()->_M_dispose(__a);
25359    _M_data(__tmp);
25360  }
25361       return *this;
25362     }
25363
25364   template<typename _CharT, typename _Traits, typename _Alloc>
25365     basic_string<_CharT, _Traits, _Alloc>&
25366     basic_string<_CharT, _Traits, _Alloc>::
25367     assign(const _CharT* __s, size_type __n)
25368     {
25369       ;
25370       _M_check_length(this->size(), __n, "basic_string::assign");
25371       if (_M_disjunct(__s) || _M_rep()->_M_is_shared())
25372  return _M_replace_safe(size_type(0), this->size(), __s, __n);
25373       else
25374  {
25375
25376    const size_type __pos = __s - _M_data();
25377    if (__pos >= __n)
25378      _M_copy(_M_data(), __s, __n);
25379    else if (__pos)
25380      _M_move(_M_data(), __s, __n);
25381    _M_rep()->_M_set_length_and_sharable(__n);
25382    return *this;
25383  }
25384      }
25385
25386   template<typename _CharT, typename _Traits, typename _Alloc>
25387     basic_string<_CharT, _Traits, _Alloc>&
25388     basic_string<_CharT, _Traits, _Alloc>::
25389     append(size_type __n, _CharT __c)
25390     {
25391       if (__n)
25392  {
25393    _M_check_length(size_type(0), __n, "basic_string::append");
25394    const size_type __len = __n + this->size();
25395    if (__len > this->capacity() || _M_rep()->_M_is_shared())
25396      this->reserve(__len);
25397    _M_assign(_M_data() + this->size(), __n, __c);
25398    _M_rep()->_M_set_length_and_sharable(__len);
25399  }
25400       return *this;
25401     }
25402
25403   template<typename _CharT, typename _Traits, typename _Alloc>
25404     basic_string<_CharT, _Traits, _Alloc>&
25405     basic_string<_CharT, _Traits, _Alloc>::
25406     append(const _CharT* __s, size_type __n)
25407     {
25408       ;
25409       if (__n)
25410  {
25411    _M_check_length(size_type(0), __n, "basic_string::append");
25412    const size_type __len = __n + this->size();
25413    if (__len > this->capacity() || _M_rep()->_M_is_shared())
25414      {
25415        if (_M_disjunct(__s))
25416   this->reserve(__len);
25417        else
25418   {
25419     const size_type __off = __s - _M_data();
25420     this->reserve(__len);
25421     __s = _M_data() + __off;
25422   }
25423      }
25424    _M_copy(_M_data() + this->size(), __s, __n);
25425    _M_rep()->_M_set_length_and_sharable(__len);
25426  }
25427       return *this;
25428     }
25429
25430   template<typename _CharT, typename _Traits, typename _Alloc>
25431     basic_string<_CharT, _Traits, _Alloc>&
25432     basic_string<_CharT, _Traits, _Alloc>::
25433     append(const basic_string& __str)
25434     {
25435       const size_type __size = __str.size();
25436       if (__size)
25437  {
25438    const size_type __len = __size + this->size();
25439    if (__len > this->capacity() || _M_rep()->_M_is_shared())
25440      this->reserve(__len);
25441    _M_copy(_M_data() + this->size(), __str._M_data(), __size);
25442    _M_rep()->_M_set_length_and_sharable(__len);
25443  }
25444       return *this;
25445     }
25446
25447   template<typename _CharT, typename _Traits, typename _Alloc>
25448     basic_string<_CharT, _Traits, _Alloc>&
25449     basic_string<_CharT, _Traits, _Alloc>::
25450     append(const basic_string& __str, size_type __pos, size_type __n)
25451     {
25452       __str._M_check(__pos, "basic_string::append");
25453       __n = __str._M_limit(__pos, __n);
25454       if (__n)
25455  {
25456    const size_type __len = __n + this->size();
25457    if (__len > this->capacity() || _M_rep()->_M_is_shared())
25458      this->reserve(__len);
25459    _M_copy(_M_data() + this->size(), __str._M_data() + __pos, __n);
25460    _M_rep()->_M_set_length_and_sharable(__len);
25461  }
25462       return *this;
25463     }
25464
25465    template<typename _CharT, typename _Traits, typename _Alloc>
25466      basic_string<_CharT, _Traits, _Alloc>&
25467      basic_string<_CharT, _Traits, _Alloc>::
25468      insert(size_type __pos, const _CharT* __s, size_type __n)
25469      {
25470        ;
25471        _M_check(__pos, "basic_string::insert");
25472        _M_check_length(size_type(0), __n, "basic_string::insert");
25473        if (_M_disjunct(__s) || _M_rep()->_M_is_shared())
25474          return _M_replace_safe(__pos, size_type(0), __s, __n);
25475        else
25476          {
25477
25478            const size_type __off = __s - _M_data();
25479            _M_mutate(__pos, 0, __n);
25480            __s = _M_data() + __off;
25481            _CharT* __p = _M_data() + __pos;
25482            if (__s + __n <= __p)
25483              _M_copy(__p, __s, __n);
25484            else if (__s >= __p)
25485              _M_copy(__p, __s + __n, __n);
25486            else
25487              {
25488         const size_type __nleft = __p - __s;
25489                _M_copy(__p, __s, __nleft);
25490                _M_copy(__p + __nleft, __p + __n, __n - __nleft);
25491              }
25492            return *this;
25493          }
25494      }
25495
25496    template<typename _CharT, typename _Traits, typename _Alloc>
25497      basic_string<_CharT, _Traits, _Alloc>&
25498      basic_string<_CharT, _Traits, _Alloc>::
25499      replace(size_type __pos, size_type __n1, const _CharT* __s,
25500       size_type __n2)
25501      {
25502        ;
25503        _M_check(__pos, "basic_string::replace");
25504        __n1 = _M_limit(__pos, __n1);
25505        _M_check_length(__n1, __n2, "basic_string::replace");
25506        bool __left;
25507        if (_M_disjunct(__s) || _M_rep()->_M_is_shared())
25508          return _M_replace_safe(__pos, __n1, __s, __n2);
25509        else if ((__left = __s + __n2 <= _M_data() + __pos)
25510   || _M_data() + __pos + __n1 <= __s)
25511   {
25512
25513     size_type __off = __s - _M_data();
25514     __left ? __off : (__off += __n2 - __n1);
25515     _M_mutate(__pos, __n1, __n2);
25516     _M_copy(_M_data() + __pos, _M_data() + __off, __n2);
25517     return *this;
25518   }
25519        else
25520   {
25521
25522     const basic_string __tmp(__s, __n2);
25523     return _M_replace_safe(__pos, __n1, __tmp._M_data(), __n2);
25524   }
25525      }
25526
25527   template<typename _CharT, typename _Traits, typename _Alloc>
25528     void
25529     basic_string<_CharT, _Traits, _Alloc>::_Rep::
25530     _M_destroy(const _Alloc& __a) throw ()
25531     {
25532       const size_type __size = sizeof(_Rep_base) +
25533                         (this->_M_capacity + 1) * sizeof(_CharT);
25534       _Raw_bytes_alloc(__a).deallocate(reinterpret_cast<char*>(this), __size);
25535     }
25536
25537   template<typename _CharT, typename _Traits, typename _Alloc>
25538     void
25539     basic_string<_CharT, _Traits, _Alloc>::
25540     _M_leak_hard()
25541     {
25542
25543       if (_M_rep() == &_S_empty_rep())
25544  return;
25545
25546       if (_M_rep()->_M_is_shared())
25547  _M_mutate(0, 0, 0);
25548       _M_rep()->_M_set_leaked();
25549     }
25550
25551   template<typename _CharT, typename _Traits, typename _Alloc>
25552     void
25553     basic_string<_CharT, _Traits, _Alloc>::
25554     _M_mutate(size_type __pos, size_type __len1, size_type __len2)
25555     {
25556       const size_type __old_size = this->size();
25557       const size_type __new_size = __old_size + __len2 - __len1;
25558       const size_type __how_much = __old_size - __pos - __len1;
25559
25560       if (__new_size > this->capacity() || _M_rep()->_M_is_shared())
25561  {
25562
25563    const allocator_type __a = get_allocator();
25564    _Rep* __r = _Rep::_S_create(__new_size, this->capacity(), __a);
25565
25566    if (__pos)
25567      _M_copy(__r->_M_refdata(), _M_data(), __pos);
25568    if (__how_much)
25569      _M_copy(__r->_M_refdata() + __pos + __len2,
25570       _M_data() + __pos + __len1, __how_much);
25571
25572    _M_rep()->_M_dispose(__a);
25573    _M_data(__r->_M_refdata());
25574  }
25575       else if (__how_much && __len1 != __len2)
25576  {
25577
25578    _M_move(_M_data() + __pos + __len2,
25579     _M_data() + __pos + __len1, __how_much);
25580  }
25581       _M_rep()->_M_set_length_and_sharable(__new_size);
25582     }
25583
25584   template<typename _CharT, typename _Traits, typename _Alloc>
25585     void
25586     basic_string<_CharT, _Traits, _Alloc>::
25587     reserve(size_type __res)
25588     {
25589       if (__res != this->capacity() || _M_rep()->_M_is_shared())
25590         {
25591
25592    if (__res < this->size())
25593      __res = this->size();
25594    const allocator_type __a = get_allocator();
25595    _CharT* __tmp = _M_rep()->_M_clone(__a, __res - this->size());
25596    _M_rep()->_M_dispose(__a);
25597    _M_data(__tmp);
25598         }
25599     }
25600
25601   template<typename _CharT, typename _Traits, typename _Alloc>
25602     void
25603     basic_string<_CharT, _Traits, _Alloc>::
25604     swap(basic_string& __s)
25605     {
25606       if (_M_rep()->_M_is_leaked())
25607  _M_rep()->_M_set_sharable();
25608       if (__s._M_rep()->_M_is_leaked())
25609  __s._M_rep()->_M_set_sharable();
25610       if (this->get_allocator() == __s.get_allocator())
25611  {
25612    _CharT* __tmp = _M_data();
25613    _M_data(__s._M_data());
25614    __s._M_data(__tmp);
25615  }
25616
25617       else
25618  {
25619    const basic_string __tmp1(_M_ibegin(), _M_iend(),
25620         __s.get_allocator());
25621    const basic_string __tmp2(__s._M_ibegin(), __s._M_iend(),
25622         this->get_allocator());
25623    *this = __tmp2;
25624    __s = __tmp1;
25625  }
25626     }
25627
25628   template<typename _CharT, typename _Traits, typename _Alloc>
25629     typename basic_string<_CharT, _Traits, _Alloc>::_Rep*
25630     basic_string<_CharT, _Traits, _Alloc>::_Rep::
25631     _S_create(size_type __capacity, size_type __old_capacity,
25632        const _Alloc& __alloc)
25633     {
25634
25635
25636       if (__capacity > _S_max_size)
25637  __throw_length_error(("basic_string::_S_create"));
25638 # 559 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/bits/basic_string.tcc" 3
25639       const size_type __pagesize = 4096;
25640       const size_type __malloc_header_size = 4 * sizeof(void*);
25641
25642
25643
25644
25645
25646
25647
25648       if (__capacity > __old_capacity && __capacity < 2 * __old_capacity)
25649  __capacity = 2 * __old_capacity;
25650
25651
25652
25653
25654       size_type __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
25655
25656       const size_type __adj_size = __size + __malloc_header_size;
25657       if (__adj_size > __pagesize && __capacity > __old_capacity)
25658  {
25659    const size_type __extra = __pagesize - __adj_size % __pagesize;
25660    __capacity += __extra / sizeof(_CharT);
25661
25662    if (__capacity > _S_max_size)
25663      __capacity = _S_max_size;
25664    __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
25665  }
25666
25667
25668
25669       void* __place = _Raw_bytes_alloc(__alloc).allocate(__size);
25670       _Rep *__p = new (__place) _Rep;
25671       __p->_M_capacity = __capacity;
25672
25673
25674
25675
25676
25677
25678
25679       __p->_M_set_sharable();
25680       return __p;
25681     }
25682
25683   template<typename _CharT, typename _Traits, typename _Alloc>
25684     _CharT*
25685     basic_string<_CharT, _Traits, _Alloc>::_Rep::
25686     _M_clone(const _Alloc& __alloc, size_type __res)
25687     {
25688
25689       const size_type __requested_cap = this->_M_length + __res;
25690       _Rep* __r = _Rep::_S_create(__requested_cap, this->_M_capacity,
25691       __alloc);
25692       if (this->_M_length)
25693  _M_copy(__r->_M_refdata(), _M_refdata(), this->_M_length);
25694
25695       __r->_M_set_length_and_sharable(this->_M_length);
25696       return __r->_M_refdata();
25697     }
25698
25699   template<typename _CharT, typename _Traits, typename _Alloc>
25700     void
25701     basic_string<_CharT, _Traits, _Alloc>::
25702     resize(size_type __n, _CharT __c)
25703     {
25704       const size_type __size = this->size();
25705       _M_check_length(__size, __n, "basic_string::resize");
25706       if (__size < __n)
25707  this->append(__n - __size, __c);
25708       else if (__n < __size)
25709  this->erase(__n);
25710
25711     }
25712
25713   template<typename _CharT, typename _Traits, typename _Alloc>
25714     template<typename _InputIterator>
25715       basic_string<_CharT, _Traits, _Alloc>&
25716       basic_string<_CharT, _Traits, _Alloc>::
25717       _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1,
25718      _InputIterator __k2, __false_type)
25719       {
25720  const basic_string __s(__k1, __k2);
25721  const size_type __n1 = __i2 - __i1;
25722  _M_check_length(__n1, __s.size(), "basic_string::_M_replace_dispatch");
25723  return _M_replace_safe(__i1 - _M_ibegin(), __n1, __s._M_data(),
25724           __s.size());
25725       }
25726
25727   template<typename _CharT, typename _Traits, typename _Alloc>
25728     basic_string<_CharT, _Traits, _Alloc>&
25729     basic_string<_CharT, _Traits, _Alloc>::
25730     _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2,
25731      _CharT __c)
25732     {
25733       _M_check_length(__n1, __n2, "basic_string::_M_replace_aux");
25734       _M_mutate(__pos1, __n1, __n2);
25735       if (__n2)
25736  _M_assign(_M_data() + __pos1, __n2, __c);
25737       return *this;
25738     }
25739
25740   template<typename _CharT, typename _Traits, typename _Alloc>
25741     basic_string<_CharT, _Traits, _Alloc>&
25742     basic_string<_CharT, _Traits, _Alloc>::
25743     _M_replace_safe(size_type __pos1, size_type __n1, const _CharT* __s,
25744       size_type __n2)
25745     {
25746       _M_mutate(__pos1, __n1, __n2);
25747       if (__n2)
25748  _M_copy(_M_data() + __pos1, __s, __n2);
25749       return *this;
25750     }
25751
25752   template<typename _CharT, typename _Traits, typename _Alloc>
25753     basic_string<_CharT, _Traits, _Alloc>
25754     operator+(const _CharT* __lhs,
25755        const basic_string<_CharT, _Traits, _Alloc>& __rhs)
25756     {
25757       ;
25758       typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
25759       typedef typename __string_type::size_type __size_type;
25760       const __size_type __len = _Traits::length(__lhs);
25761       __string_type __str;
25762       __str.reserve(__len + __rhs.size());
25763       __str.append(__lhs, __len);
25764       __str.append(__rhs);
25765       return __str;
25766     }
25767
25768   template<typename _CharT, typename _Traits, typename _Alloc>
25769     basic_string<_CharT, _Traits, _Alloc>
25770     operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs)
25771     {
25772       typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
25773       typedef typename __string_type::size_type __size_type;
25774       __string_type __str;
25775       const __size_type __len = __rhs.size();
25776       __str.reserve(__len + 1);
25777       __str.append(__size_type(1), __lhs);
25778       __str.append(__rhs);
25779       return __str;
25780     }
25781
25782   template<typename _CharT, typename _Traits, typename _Alloc>
25783     typename basic_string<_CharT, _Traits, _Alloc>::size_type
25784     basic_string<_CharT, _Traits, _Alloc>::
25785     copy(_CharT* __s, size_type __n, size_type __pos) const
25786     {
25787       _M_check(__pos, "basic_string::copy");
25788       __n = _M_limit(__pos, __n);
25789       ;
25790       if (__n)
25791  _M_copy(__s, _M_data() + __pos, __n);
25792
25793       return __n;
25794     }
25795
25796   template<typename _CharT, typename _Traits, typename _Alloc>
25797     typename basic_string<_CharT, _Traits, _Alloc>::size_type
25798     basic_string<_CharT, _Traits, _Alloc>::
25799     find(const _CharT* __s, size_type __pos, size_type __n) const
25800     {
25801       ;
25802       const size_type __size = this->size();
25803       const _CharT* __data = _M_data();
25804
25805       if (__n == 0)
25806  return __pos <= __size ? __pos : npos;
25807
25808       if (__n <= __size)
25809  {
25810    for (; __pos <= __size - __n; ++__pos)
25811      if (traits_type::eq(__data[__pos], __s[0])
25812   && traits_type::compare(__data + __pos + 1,
25813      __s + 1, __n - 1) == 0)
25814        return __pos;
25815  }
25816       return npos;
25817     }
25818
25819   template<typename _CharT, typename _Traits, typename _Alloc>
25820     typename basic_string<_CharT, _Traits, _Alloc>::size_type
25821     basic_string<_CharT, _Traits, _Alloc>::
25822     find(_CharT __c, size_type __pos) const
25823     {
25824       size_type __ret = npos;
25825       const size_type __size = this->size();
25826       if (__pos < __size)
25827  {
25828    const _CharT* __data = _M_data();
25829    const size_type __n = __size - __pos;
25830    const _CharT* __p = traits_type::find(__data + __pos, __n, __c);
25831    if (__p)
25832      __ret = __p - __data;
25833  }
25834       return __ret;
25835     }
25836
25837   template<typename _CharT, typename _Traits, typename _Alloc>
25838     typename basic_string<_CharT, _Traits, _Alloc>::size_type
25839     basic_string<_CharT, _Traits, _Alloc>::
25840     rfind(const _CharT* __s, size_type __pos, size_type __n) const
25841     {
25842       ;
25843       const size_type __size = this->size();
25844       if (__n <= __size)
25845  {
25846    __pos = std::min(size_type(__size - __n), __pos);
25847    const _CharT* __data = _M_data();
25848    do
25849      {
25850        if (traits_type::compare(__data + __pos, __s, __n) == 0)
25851   return __pos;
25852      }
25853    while (__pos-- > 0);
25854  }
25855       return npos;
25856     }
25857
25858   template<typename _CharT, typename _Traits, typename _Alloc>
25859     typename basic_string<_CharT, _Traits, _Alloc>::size_type
25860     basic_string<_CharT, _Traits, _Alloc>::
25861     rfind(_CharT __c, size_type __pos) const
25862     {
25863       size_type __size = this->size();
25864       if (__size)
25865  {
25866    if (--__size > __pos)
25867      __size = __pos;
25868    for (++__size; __size-- > 0; )
25869      if (traits_type::eq(_M_data()[__size], __c))
25870        return __size;
25871  }
25872       return npos;
25873     }
25874
25875   template<typename _CharT, typename _Traits, typename _Alloc>
25876     typename basic_string<_CharT, _Traits, _Alloc>::size_type
25877     basic_string<_CharT, _Traits, _Alloc>::
25878     find_first_of(const _CharT* __s, size_type __pos, size_type __n) const
25879     {
25880       ;
25881       for (; __n && __pos < this->size(); ++__pos)
25882  {
25883    const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]);
25884    if (__p)
25885      return __pos;
25886  }
25887       return npos;
25888     }
25889
25890   template<typename _CharT, typename _Traits, typename _Alloc>
25891     typename basic_string<_CharT, _Traits, _Alloc>::size_type
25892     basic_string<_CharT, _Traits, _Alloc>::
25893     find_last_of(const _CharT* __s, size_type __pos, size_type __n) const
25894     {
25895       ;
25896       size_type __size = this->size();
25897       if (__size && __n)
25898  {
25899    if (--__size > __pos)
25900      __size = __pos;
25901    do
25902      {
25903        if (traits_type::find(__s, __n, _M_data()[__size]))
25904   return __size;
25905      }
25906    while (__size-- != 0);
25907  }
25908       return npos;
25909     }
25910
25911   template<typename _CharT, typename _Traits, typename _Alloc>
25912     typename basic_string<_CharT, _Traits, _Alloc>::size_type
25913     basic_string<_CharT, _Traits, _Alloc>::
25914     find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const
25915     {
25916       ;
25917       for (; __pos < this->size(); ++__pos)
25918  if (!traits_type::find(__s, __n, _M_data()[__pos]))
25919    return __pos;
25920       return npos;
25921     }
25922
25923   template<typename _CharT, typename _Traits, typename _Alloc>
25924     typename basic_string<_CharT, _Traits, _Alloc>::size_type
25925     basic_string<_CharT, _Traits, _Alloc>::
25926     find_first_not_of(_CharT __c, size_type __pos) const
25927     {
25928       for (; __pos < this->size(); ++__pos)
25929  if (!traits_type::eq(_M_data()[__pos], __c))
25930    return __pos;
25931       return npos;
25932     }
25933
25934   template<typename _CharT, typename _Traits, typename _Alloc>
25935     typename basic_string<_CharT, _Traits, _Alloc>::size_type
25936     basic_string<_CharT, _Traits, _Alloc>::
25937     find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const
25938     {
25939       ;
25940       size_type __size = this->size();
25941       if (__size)
25942  {
25943    if (--__size > __pos)
25944      __size = __pos;
25945    do
25946      {
25947        if (!traits_type::find(__s, __n, _M_data()[__size]))
25948   return __size;
25949      }
25950    while (__size--);
25951  }
25952       return npos;
25953     }
25954
25955   template<typename _CharT, typename _Traits, typename _Alloc>
25956     typename basic_string<_CharT, _Traits, _Alloc>::size_type
25957     basic_string<_CharT, _Traits, _Alloc>::
25958     find_last_not_of(_CharT __c, size_type __pos) const
25959     {
25960       size_type __size = this->size();
25961       if (__size)
25962  {
25963    if (--__size > __pos)
25964      __size = __pos;
25965    do
25966      {
25967        if (!traits_type::eq(_M_data()[__size], __c))
25968   return __size;
25969      }
25970    while (__size--);
25971  }
25972       return npos;
25973     }
25974
25975   template<typename _CharT, typename _Traits, typename _Alloc>
25976     int
25977     basic_string<_CharT, _Traits, _Alloc>::
25978     compare(size_type __pos, size_type __n, const basic_string& __str) const
25979     {
25980       _M_check(__pos, "basic_string::compare");
25981       __n = _M_limit(__pos, __n);
25982       const size_type __osize = __str.size();
25983       const size_type __len = std::min(__n, __osize);
25984       int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len);
25985       if (!__r)
25986  __r = __n - __osize;
25987       return __r;
25988     }
25989
25990   template<typename _CharT, typename _Traits, typename _Alloc>
25991     int
25992     basic_string<_CharT, _Traits, _Alloc>::
25993     compare(size_type __pos1, size_type __n1, const basic_string& __str,
25994      size_type __pos2, size_type __n2) const
25995     {
25996       _M_check(__pos1, "basic_string::compare");
25997       __str._M_check(__pos2, "basic_string::compare");
25998       __n1 = _M_limit(__pos1, __n1);
25999       __n2 = __str._M_limit(__pos2, __n2);
26000       const size_type __len = std::min(__n1, __n2);
26001       int __r = traits_type::compare(_M_data() + __pos1,
26002          __str.data() + __pos2, __len);
26003       if (!__r)
26004  __r = __n1 - __n2;
26005       return __r;
26006     }
26007
26008   template<typename _CharT, typename _Traits, typename _Alloc>
26009     int
26010     basic_string<_CharT, _Traits, _Alloc>::
26011     compare(const _CharT* __s) const
26012     {
26013       ;
26014       const size_type __size = this->size();
26015       const size_type __osize = traits_type::length(__s);
26016       const size_type __len = std::min(__size, __osize);
26017       int __r = traits_type::compare(_M_data(), __s, __len);
26018       if (!__r)
26019  __r = __size - __osize;
26020       return __r;
26021     }
26022
26023   template<typename _CharT, typename _Traits, typename _Alloc>
26024     int
26025     basic_string <_CharT, _Traits, _Alloc>::
26026     compare(size_type __pos, size_type __n1, const _CharT* __s) const
26027     {
26028       ;
26029       _M_check(__pos, "basic_string::compare");
26030       __n1 = _M_limit(__pos, __n1);
26031       const size_type __osize = traits_type::length(__s);
26032       const size_type __len = std::min(__n1, __osize);
26033       int __r = traits_type::compare(_M_data() + __pos, __s, __len);
26034       if (!__r)
26035  __r = __n1 - __osize;
26036       return __r;
26037     }
26038
26039   template<typename _CharT, typename _Traits, typename _Alloc>
26040     int
26041     basic_string <_CharT, _Traits, _Alloc>::
26042     compare(size_type __pos, size_type __n1, const _CharT* __s,
26043      size_type __n2) const
26044     {
26045       ;
26046       _M_check(__pos, "basic_string::compare");
26047       __n1 = _M_limit(__pos, __n1);
26048       const size_type __len = std::min(__n1, __n2);
26049       int __r = traits_type::compare(_M_data() + __pos, __s, __len);
26050       if (!__r)
26051  __r = __n1 - __n2;
26052       return __r;
26053     }
26054
26055
26056
26057
26058
26059   extern template class basic_string<char>;
26060   extern template
26061     basic_istream<char>&
26062     operator>>(basic_istream<char>&, string&);
26063   extern template
26064     basic_ostream<char>&
26065     operator<<(basic_ostream<char>&, const string&);
26066   extern template
26067     basic_istream<char>&
26068     getline(basic_istream<char>&, string&, char);
26069   extern template
26070     basic_istream<char>&
26071     getline(basic_istream<char>&, string&);
26072
26073
26074   extern template class basic_string<wchar_t>;
26075   extern template
26076     basic_istream<wchar_t>&
26077     operator>>(basic_istream<wchar_t>&, wstring&);
26078   extern template
26079     basic_ostream<wchar_t>&
26080     operator<<(basic_ostream<wchar_t>&, const wstring&);
26081   extern template
26082     basic_istream<wchar_t>&
26083     getline(basic_istream<wchar_t>&, wstring&, wchar_t);
26084   extern template
26085     basic_istream<wchar_t>&
26086     getline(basic_istream<wchar_t>&, wstring&);
26087
26088
26089
26090 }
26091 # 59 "/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.3/include/g++-v4/string" 2 3
26092 # 40 "LogFactory.h" 2
26093
26094 namespace aria2 {
26095
26096 class Logger;
26097
26098 class LogFactory {
26099 private:
26100   static std::string filename;
26101   static Logger* logger;
26102 public:
26103
26104
26105
26106
26107   static Logger* getInstance();
26108
26109
26110
26111
26112   static void setLogFile(const std::string& name) {
26113     filename = name;
26114   }
26115
26116
26117
26118
26119   static void release();
26120 };
26121
26122 }
26123 # 37 "Command.cc" 2
26124 # 1 "Logger.h" 1
26125 # 36 "Logger.h"
26126 #define _D_LOGGER_H_ 
26127
26128
26129
26130 namespace aria2 {
26131
26132 class Exception;
26133
26134 class Logger {
26135 public:
26136   virtual ~Logger() {}
26137   virtual void debug(const char* msg, ...) const = 0;
26138   virtual void debug(const char* msg, Exception* ex, ...) const = 0;
26139   virtual void info(const char* msg, ...) const = 0;
26140   virtual void info(const char* msg, Exception* ex, ...) const = 0;
26141   virtual void notice(const char* msg, ...) const = 0;
26142   virtual void notice(const char* msg, Exception* ex, ...) const = 0;
26143   virtual void warn(const char* msg, ...) const = 0;
26144   virtual void warn(const char* msg, Exception* ex, ...) const = 0;
26145   virtual void error(const char* msg, ...) const = 0;
26146   virtual void error(const char* msg, Exception* ex, ...) const = 0;
26147
26148   enum LEVEL {
26149     DEBUG = 1 << 0,
26150     INFO = 1 << 1,
26151     NOTICE = 1 << 2,
26152     WARN = 1 << 3,
26153     ERROR = 1 << 4,
26154   };
26155 };
26156
26157 }
26158 # 38 "Command.cc" 2
26159
26160 namespace aria2 {
26161
26162 int32_t Command::uuidGen = 0;
26163
26164 Command::Command(int32_t cuid):uuid(uuidGen++),
26165           status(STATUS_INACTIVE),
26166           cuid(cuid),
26167           logger(LogFactory::getInstance()) {}
26168
26169 void Command::transitStatus()
26170 {
26171   switch(status) {
26172   case STATUS_REALTIME:
26173     break;
26174   default:
26175     status = STATUS_INACTIVE;
26176     }
26177 }
26178
26179 }