Advertisement
Guest User

Untitled

a guest
Apr 29th, 2014
407
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 428.18 KB | None | 0 0
  1. # 1 "tst.cpp"
  2. # 1 "<command-line>"
  3. # 1 "tst.cpp"
  4. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/iostream" 1 3
  5. # 36 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/iostream" 3
  6.        
  7. # 37 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/iostream" 3
  8.  
  9. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/c++config.h" 1 3
  10. # 184 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/c++config.h" 3
  11. namespace std
  12. {
  13.   typedef long unsigned int size_t;
  14.   typedef long int ptrdiff_t;
  15.  
  16.  
  17.  
  18.  
  19. }
  20. # 426 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/c++config.h" 3
  21. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/os_defines.h" 1 3
  22. # 427 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/c++config.h" 2 3
  23.  
  24.  
  25. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/cpu_defines.h" 1 3
  26. # 430 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/c++config.h" 2 3
  27. # 39 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/iostream" 2 3
  28. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 1 3
  29. # 36 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 3
  30.        
  31. # 37 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 3
  32.  
  33. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ios" 1 3
  34. # 36 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ios" 3
  35.        
  36. # 37 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ios" 3
  37.  
  38. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/iosfwd" 1 3
  39. # 36 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/iosfwd" 3
  40.        
  41. # 37 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/iosfwd" 3
  42.  
  43.  
  44. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stringfwd.h" 1 3
  45. # 37 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stringfwd.h" 3
  46.        
  47. # 38 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stringfwd.h" 3
  48.  
  49.  
  50. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/memoryfwd.h" 1 3
  51. # 46 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/memoryfwd.h" 3
  52.        
  53. # 47 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/memoryfwd.h" 3
  54.  
  55.  
  56.  
  57. namespace std
  58. {
  59.  
  60. # 63 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/memoryfwd.h" 3
  61.   template<typename>
  62.     class allocator;
  63.  
  64.   template<>
  65.     class allocator<void>;
  66.  
  67.  
  68.   template<typename, typename>
  69.     struct uses_allocator;
  70.  
  71.  
  72.  
  73.  
  74. }
  75. # 41 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stringfwd.h" 2 3
  76.  
  77. namespace std
  78. {
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.   template<class _CharT>
  88.     struct char_traits;
  89.  
  90.   template<typename _CharT, typename _Traits = char_traits<_CharT>,
  91.            typename _Alloc = allocator<_CharT> >
  92.     class basic_string;
  93.  
  94.   template<> struct char_traits<char>;
  95.  
  96.  
  97.   typedef basic_string<char> string;
  98.  
  99.  
  100.   template<> struct char_traits<wchar_t>;
  101.  
  102.  
  103.   typedef basic_string<wchar_t> wstring;
  104. # 86 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stringfwd.h" 3
  105.  
  106. }
  107. # 40 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/iosfwd" 2 3
  108. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/postypes.h" 1 3
  109. # 38 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/postypes.h" 3
  110.        
  111. # 39 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/postypes.h" 3
  112.  
  113. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cwchar" 1 3
  114. # 39 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cwchar" 3
  115.        
  116. # 40 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cwchar" 3
  117.  
  118.  
  119.  
  120.  
  121. # 1 "/usr/include/wchar.h" 1 3 4
  122.  
  123.  
  124.  
  125. # 1 "/usr/include/_ansi.h" 1 3 4
  126. # 15 "/usr/include/_ansi.h" 3 4
  127. # 1 "/usr/include/newlib.h" 1 3 4
  128. # 16 "/usr/include/_ansi.h" 2 3 4
  129. # 1 "/usr/include/sys/config.h" 1 3 4
  130.  
  131.  
  132.  
  133. # 1 "/usr/include/machine/ieeefp.h" 1 3 4
  134. # 5 "/usr/include/sys/config.h" 2 3 4
  135. # 1 "/usr/include/sys/features.h" 1 3 4
  136. # 25 "/usr/include/sys/features.h" 3 4
  137. extern "C" {
  138. # 227 "/usr/include/sys/features.h" 3 4
  139. }
  140. # 6 "/usr/include/sys/config.h" 2 3 4
  141. # 226 "/usr/include/sys/config.h" 3 4
  142. # 1 "/usr/include/cygwin/config.h" 1 3 4
  143. # 18 "/usr/include/cygwin/config.h" 3 4
  144. extern "C" {
  145. # 100 "/usr/include/cygwin/config.h" 3 4
  146. }
  147. # 227 "/usr/include/sys/config.h" 2 3 4
  148. # 17 "/usr/include/_ansi.h" 2 3 4
  149. # 5 "/usr/include/wchar.h" 2 3 4
  150.  
  151. # 1 "/usr/include/sys/reent.h" 1 3 4
  152. # 9 "/usr/include/sys/reent.h" 3 4
  153. extern "C" {
  154.  
  155.  
  156.  
  157.  
  158. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/stddef.h" 1 3 4
  159. # 147 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/stddef.h" 3 4
  160. typedef long int ptrdiff_t;
  161. # 212 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/stddef.h" 3 4
  162. typedef long unsigned int size_t;
  163. # 15 "/usr/include/sys/reent.h" 2 3 4
  164. # 1 "/usr/include/sys/_types.h" 1 3 4
  165. # 12 "/usr/include/sys/_types.h" 3 4
  166. # 1 "/usr/include/machine/_types.h" 1 3 4
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173. # 1 "/usr/include/machine/_default_types.h" 1 3 4
  174. # 23 "/usr/include/machine/_default_types.h" 3 4
  175. extern "C" {
  176.  
  177.  
  178.  
  179. typedef signed char __int8_t;
  180.  
  181. typedef unsigned char __uint8_t;
  182. # 41 "/usr/include/machine/_default_types.h" 3 4
  183. typedef short int __int16_t;
  184.  
  185. typedef short unsigned int __uint16_t;
  186. # 63 "/usr/include/machine/_default_types.h" 3 4
  187. typedef int __int32_t;
  188.  
  189. typedef unsigned int __uint32_t;
  190. # 89 "/usr/include/machine/_default_types.h" 3 4
  191. typedef long int __int64_t;
  192.  
  193. typedef long unsigned int __uint64_t;
  194. # 120 "/usr/include/machine/_default_types.h" 3 4
  195. typedef signed char __int_least8_t;
  196.  
  197. typedef unsigned char __uint_least8_t;
  198. # 146 "/usr/include/machine/_default_types.h" 3 4
  199. typedef short int __int_least16_t;
  200.  
  201. typedef short unsigned int __uint_least16_t;
  202. # 168 "/usr/include/machine/_default_types.h" 3 4
  203. typedef int __int_least32_t;
  204.  
  205. typedef unsigned int __uint_least32_t;
  206. # 186 "/usr/include/machine/_default_types.h" 3 4
  207. typedef long int __int_least64_t;
  208.  
  209. typedef long unsigned int __uint_least64_t;
  210. # 200 "/usr/include/machine/_default_types.h" 3 4
  211. typedef long int __intptr_t;
  212.  
  213. typedef long unsigned int __uintptr_t;
  214. # 217 "/usr/include/machine/_default_types.h" 3 4
  215. }
  216. # 8 "/usr/include/machine/_types.h" 2 3 4
  217. # 13 "/usr/include/sys/_types.h" 2 3 4
  218. # 1 "/usr/include/sys/lock.h" 1 3 4
  219. # 14 "/usr/include/sys/lock.h" 3 4
  220. typedef void *_LOCK_T;
  221. # 41 "/usr/include/sys/lock.h" 3 4
  222. extern "C"
  223. {
  224.  
  225. void __cygwin_lock_init(_LOCK_T *);
  226. void __cygwin_lock_init_recursive(_LOCK_T *);
  227. void __cygwin_lock_fini(_LOCK_T *);
  228. void __cygwin_lock_lock(_LOCK_T *);
  229. int __cygwin_lock_trylock(_LOCK_T *);
  230. void __cygwin_lock_unlock(_LOCK_T *);
  231.  
  232. }
  233. # 14 "/usr/include/sys/_types.h" 2 3 4
  234.  
  235.  
  236. typedef long _off_t;
  237.  
  238.  
  239.  
  240. typedef short __dev_t;
  241.  
  242.  
  243.  
  244. typedef unsigned short __uid_t;
  245.  
  246.  
  247. typedef unsigned short __gid_t;
  248.  
  249.  
  250.  
  251. __extension__ typedef long long _off64_t;
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259. typedef long _fpos_t;
  260.  
  261.  
  262.  
  263.  
  264.  
  265. typedef _off64_t _fpos64_t;
  266. # 55 "/usr/include/sys/_types.h" 3 4
  267. typedef long signed int _ssize_t;
  268. # 67 "/usr/include/sys/_types.h" 3 4
  269. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/stddef.h" 1 3 4
  270. # 353 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/stddef.h" 3 4
  271. typedef unsigned int wint_t;
  272. # 68 "/usr/include/sys/_types.h" 2 3 4
  273.  
  274.  
  275.  
  276. typedef struct
  277. {
  278.   int __count;
  279.   union
  280.   {
  281.     wint_t __wch;
  282.     unsigned char __wchb[4];
  283.   } __value;
  284. } _mbstate_t;
  285.  
  286.  
  287.  
  288. typedef _LOCK_T _flock_t;
  289.  
  290.  
  291.  
  292.  
  293. typedef void *_iconv_t;
  294. # 16 "/usr/include/sys/reent.h" 2 3 4
  295. # 25 "/usr/include/sys/reent.h" 3 4
  296. typedef unsigned int __ULong;
  297. # 38 "/usr/include/sys/reent.h" 3 4
  298. struct _reent;
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305. struct _Bigint
  306. {
  307.   struct _Bigint *_next;
  308.   int _k, _maxwds, _sign, _wds;
  309.   __ULong _x[1];
  310. };
  311.  
  312.  
  313. struct __tm
  314. {
  315.   int __tm_sec;
  316.   int __tm_min;
  317.   int __tm_hour;
  318.   int __tm_mday;
  319.   int __tm_mon;
  320.   int __tm_year;
  321.   int __tm_wday;
  322.   int __tm_yday;
  323.   int __tm_isdst;
  324. };
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332. struct _on_exit_args {
  333.  void * _fnargs[32];
  334.  void * _dso_handle[32];
  335.  
  336.  __ULong _fntypes;
  337.  
  338.  
  339.  __ULong _is_cxa;
  340. };
  341. # 91 "/usr/include/sys/reent.h" 3 4
  342. struct _atexit {
  343.  struct _atexit *_next;
  344.  int _ind;
  345.  
  346.  void (*_fns[32])(void);
  347.         struct _on_exit_args _on_exit_args;
  348. };
  349. # 115 "/usr/include/sys/reent.h" 3 4
  350. struct __sbuf {
  351.  unsigned char *_base;
  352.  int _size;
  353. };
  354. # 179 "/usr/include/sys/reent.h" 3 4
  355. struct __sFILE {
  356.   unsigned char *_p;
  357.   int _r;
  358.   int _w;
  359.   short _flags;
  360.   short _file;
  361.   struct __sbuf _bf;
  362.   int _lbfsize;
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.   void * _cookie;
  370.  
  371.   _ssize_t (__attribute__((__cdecl__)) * _read) (struct _reent *, void *, char *, size_t)
  372.                                           ;
  373.   _ssize_t (__attribute__((__cdecl__)) * _write) (struct _reent *, void *, const char *, size_t)
  374.  
  375.                                    ;
  376.   _fpos_t (__attribute__((__cdecl__)) * _seek) (struct _reent *, void *, _fpos_t, int);
  377.   int (__attribute__((__cdecl__)) * _close) (struct _reent *, void *);
  378.  
  379.  
  380.   struct __sbuf _ub;
  381.   unsigned char *_up;
  382.   int _ur;
  383.  
  384.  
  385.   unsigned char _ubuf[3];
  386.   unsigned char _nbuf[1];
  387.  
  388.  
  389.   struct __sbuf _lb;
  390.  
  391.  
  392.   int _blksize;
  393.   _off_t _offset;
  394.  
  395.  
  396.   struct _reent *_data;
  397.  
  398.  
  399.  
  400.   _flock_t _lock;
  401.  
  402.   _mbstate_t _mbstate;
  403.   int _flags2;
  404. };
  405. # 237 "/usr/include/sys/reent.h" 3 4
  406. struct __sFILE64 {
  407.   unsigned char *_p;
  408.   int _r;
  409.   int _w;
  410.   short _flags;
  411.   short _file;
  412.   struct __sbuf _bf;
  413.   int _lbfsize;
  414.  
  415.   struct _reent *_data;
  416.  
  417.  
  418.   void * _cookie;
  419.  
  420.   _ssize_t (__attribute__((__cdecl__)) * _read) (struct _reent *, void *, char *, size_t)
  421.                                           ;
  422.   _ssize_t (__attribute__((__cdecl__)) * _write) (struct _reent *, void *, const char *, size_t)
  423.  
  424.                                    ;
  425.   _fpos_t (__attribute__((__cdecl__)) * _seek) (struct _reent *, void *, _fpos_t, int);
  426.   int (__attribute__((__cdecl__)) * _close) (struct _reent *, void *);
  427.  
  428.  
  429.   struct __sbuf _ub;
  430.   unsigned char *_up;
  431.   int _ur;
  432.  
  433.  
  434.   unsigned char _ubuf[3];
  435.   unsigned char _nbuf[1];
  436.  
  437.  
  438.   struct __sbuf _lb;
  439.  
  440.  
  441.   int _blksize;
  442.   int _flags2;
  443.  
  444.   _off64_t _offset;
  445.   _fpos64_t (__attribute__((__cdecl__)) * _seek64) (struct _reent *, void *, _fpos64_t, int);
  446.  
  447.  
  448.   _flock_t _lock;
  449.  
  450.   _mbstate_t _mbstate;
  451. };
  452. typedef struct __sFILE64 __FILE;
  453.  
  454.  
  455.  
  456.  
  457.  
  458. struct _glue
  459. {
  460.   struct _glue *_next;
  461.   int _niobs;
  462.   __FILE *_iobs;
  463. };
  464. # 317 "/usr/include/sys/reent.h" 3 4
  465. struct _rand48 {
  466.   unsigned short _seed[3];
  467.   unsigned short _mult[3];
  468.   unsigned short _add;
  469.  
  470.  
  471.  
  472.  
  473. };
  474. # 569 "/usr/include/sys/reent.h" 3 4
  475. struct _reent
  476. {
  477.   int _errno;
  478.  
  479.  
  480.  
  481.  
  482.   __FILE *_stdin, *_stdout, *_stderr;
  483.  
  484.   int _inc;
  485.   char _emergency[25];
  486.  
  487.   int _current_category;
  488.   const char *_current_locale;
  489.  
  490.   int __sdidinit;
  491.  
  492.   void (__attribute__((__cdecl__)) * __cleanup) (struct _reent *);
  493.  
  494.  
  495.   struct _Bigint *_result;
  496.   int _result_k;
  497.   struct _Bigint *_p5s;
  498.   struct _Bigint **_freelist;
  499.  
  500.  
  501.   int _cvtlen;
  502.   char *_cvtbuf;
  503.  
  504.   union
  505.     {
  506.       struct
  507.         {
  508.           unsigned int _unused_rand;
  509.           char * _strtok_last;
  510.           char _asctime_buf[26];
  511.           struct __tm _localtime_buf;
  512.           int _gamma_signgam;
  513.           __extension__ unsigned long long _rand_next;
  514.           struct _rand48 _r48;
  515.           _mbstate_t _mblen_state;
  516.           _mbstate_t _mbtowc_state;
  517.           _mbstate_t _wctomb_state;
  518.           char _l64a_buf[8];
  519.           char _signal_buf[24];
  520.           int _getdate_err;
  521.           _mbstate_t _mbrlen_state;
  522.           _mbstate_t _mbrtowc_state;
  523.           _mbstate_t _mbsrtowcs_state;
  524.           _mbstate_t _wcrtomb_state;
  525.           _mbstate_t _wcsrtombs_state;
  526.    int _h_errno;
  527.         } _reent;
  528.  
  529.  
  530.  
  531.       struct
  532.         {
  533.  
  534.           unsigned char * _nextf[30];
  535.           unsigned int _nmalloc[30];
  536.         } _unused;
  537.     } _new;
  538.  
  539.  
  540.  
  541.   struct _atexit *_atexit;
  542.   struct _atexit _atexit0;
  543.  
  544.  
  545.  
  546.   void (**(_sig_func))(int);
  547.  
  548.  
  549.  
  550.  
  551.   struct _glue __sglue;
  552.   __FILE __sf[3];
  553. };
  554. # 762 "/usr/include/sys/reent.h" 3 4
  555. extern struct _reent *_impure_ptr ;
  556. extern struct _reent *const _global_impure_ptr ;
  557.  
  558. void _reclaim_reent (struct _reent *);
  559.  
  560.  
  561.  
  562.  
  563.  
  564.   struct _reent * __attribute__((__cdecl__)) __getreent (void);
  565. # 788 "/usr/include/sys/reent.h" 3 4
  566. }
  567. # 7 "/usr/include/wchar.h" 2 3 4
  568.  
  569.  
  570.  
  571.  
  572.  
  573. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/stddef.h" 1 3 4
  574. # 13 "/usr/include/wchar.h" 2 3 4
  575.  
  576.  
  577. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/stdarg.h" 1 3 4
  578. # 40 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/stdarg.h" 3 4
  579. typedef __builtin_va_list __gnuc_va_list;
  580. # 16 "/usr/include/wchar.h" 2 3 4
  581. # 47 "/usr/include/wchar.h" 3 4
  582. extern "C" {
  583.  
  584.  
  585. typedef __FILE FILE;
  586.  
  587.  
  588.  
  589. struct tm;
  590.  
  591.  
  592.  
  593. typedef _mbstate_t mbstate_t;
  594.  
  595.  
  596. wint_t __attribute__((__cdecl__)) btowc (int);
  597. int __attribute__((__cdecl__)) wctob (wint_t);
  598. size_t __attribute__((__cdecl__)) mbrlen (const char *__restrict, size_t, mbstate_t *__restrict);
  599. size_t __attribute__((__cdecl__)) mbrtowc (wchar_t *__restrict, const char *__restrict, size_t, mbstate_t *__restrict)
  600.                              ;
  601. size_t __attribute__((__cdecl__)) _mbrtowc_r (struct _reent *, wchar_t * , const char * , size_t, mbstate_t *)
  602.                         ;
  603. int __attribute__((__cdecl__)) mbsinit (const mbstate_t *);
  604. size_t __attribute__((__cdecl__)) mbsnrtowcs (wchar_t *__restrict, const char **__restrict, size_t, size_t, mbstate_t *__restrict)
  605.                                            ;
  606. size_t __attribute__((__cdecl__)) _mbsnrtowcs_r (struct _reent *, wchar_t * , const char ** , size_t, size_t, mbstate_t *)
  607.                                 ;
  608. size_t __attribute__((__cdecl__)) mbsrtowcs (wchar_t *__restrict, const char **__restrict, size_t, mbstate_t *__restrict)
  609.                            ;
  610. size_t __attribute__((__cdecl__)) _mbsrtowcs_r (struct _reent *, wchar_t * , const char ** , size_t, mbstate_t *);
  611. size_t __attribute__((__cdecl__)) wcrtomb (char *__restrict, wchar_t, mbstate_t *__restrict);
  612. size_t __attribute__((__cdecl__)) _wcrtomb_r (struct _reent *, char * , wchar_t, mbstate_t *);
  613. size_t __attribute__((__cdecl__)) wcsnrtombs (char *__restrict, const wchar_t **__restrict, size_t, size_t, mbstate_t *__restrict)
  614.                                            ;
  615. size_t __attribute__((__cdecl__)) _wcsnrtombs_r (struct _reent *, char * , const wchar_t ** , size_t, size_t, mbstate_t *)
  616.                                 ;
  617. size_t __attribute__((__cdecl__)) wcsrtombs (char *__restrict, const wchar_t **__restrict, size_t, mbstate_t *__restrict)
  618.                                    ;
  619. size_t __attribute__((__cdecl__)) _wcsrtombs_r (struct _reent *, char * , const wchar_t ** , size_t, mbstate_t *)
  620.                         ;
  621. int __attribute__((__cdecl__)) wcscasecmp (const wchar_t *, const wchar_t *);
  622. wchar_t *__attribute__((__cdecl__)) wcscat (wchar_t *__restrict, const wchar_t *__restrict);
  623. wchar_t *__attribute__((__cdecl__)) wcschr (const wchar_t *, wchar_t);
  624. int __attribute__((__cdecl__)) wcscmp (const wchar_t *, const wchar_t *);
  625. int __attribute__((__cdecl__)) wcscoll (const wchar_t *, const wchar_t *);
  626. wchar_t *__attribute__((__cdecl__)) wcscpy (wchar_t *__restrict, const wchar_t *__restrict);
  627. wchar_t *__attribute__((__cdecl__)) wcpcpy (wchar_t *__restrict, const wchar_t *__restrict)
  628.                                 ;
  629. wchar_t *__attribute__((__cdecl__)) wcsdup (const wchar_t *);
  630. wchar_t *__attribute__((__cdecl__)) _wcsdup_r (struct _reent *, const wchar_t * );
  631. size_t __attribute__((__cdecl__)) wcscspn (const wchar_t *, const wchar_t *);
  632. size_t __attribute__((__cdecl__)) wcsftime (wchar_t *__restrict, size_t, const wchar_t *__restrict, const struct tm *__restrict)
  633.                                                             ;
  634. size_t __attribute__((__cdecl__)) wcslcat (wchar_t *, const wchar_t *, size_t);
  635. size_t __attribute__((__cdecl__)) wcslcpy (wchar_t *, const wchar_t *, size_t);
  636. size_t __attribute__((__cdecl__)) wcslen (const wchar_t *);
  637. int __attribute__((__cdecl__)) wcsncasecmp (const wchar_t *, const wchar_t *, size_t);
  638. wchar_t *__attribute__((__cdecl__)) wcsncat (wchar_t *__restrict, const wchar_t *__restrict, size_t)
  639.                                         ;
  640. int __attribute__((__cdecl__)) wcsncmp (const wchar_t *, const wchar_t *, size_t);
  641. wchar_t *__attribute__((__cdecl__)) wcsncpy (wchar_t *__restrict, const wchar_t *__restrict, size_t)
  642.                                         ;
  643. wchar_t *__attribute__((__cdecl__)) wcpncpy (wchar_t *__restrict, const wchar_t *__restrict, size_t)
  644.                                         ;
  645. size_t __attribute__((__cdecl__)) wcsnlen (const wchar_t *, size_t);
  646. wchar_t *__attribute__((__cdecl__)) wcspbrk (const wchar_t *, const wchar_t *);
  647. wchar_t *__attribute__((__cdecl__)) wcsrchr (const wchar_t *, wchar_t);
  648. size_t __attribute__((__cdecl__)) wcsspn (const wchar_t *, const wchar_t *);
  649. wchar_t *__attribute__((__cdecl__)) wcsstr (const wchar_t *__restrict, const wchar_t *__restrict)
  650.                                 ;
  651. wchar_t *__attribute__((__cdecl__)) wcstok (wchar_t *__restrict, const wchar_t *__restrict, wchar_t **__restrict)
  652.                            ;
  653. double __attribute__((__cdecl__)) wcstod (const wchar_t *__restrict, wchar_t **__restrict);
  654. double __attribute__((__cdecl__)) _wcstod_r (struct _reent *, const wchar_t *, wchar_t **);
  655. float __attribute__((__cdecl__)) wcstof (const wchar_t *__restrict, wchar_t **__restrict);
  656. float __attribute__((__cdecl__)) _wcstof_r (struct _reent *, const wchar_t *, wchar_t **);
  657. int __attribute__((__cdecl__)) wcswidth (const wchar_t *, size_t);
  658. size_t __attribute__((__cdecl__)) wcsxfrm (wchar_t *__restrict, const wchar_t *__restrict, size_t)
  659.             ;
  660. int __attribute__((__cdecl__)) wcwidth (const wchar_t);
  661. wchar_t *__attribute__((__cdecl__)) wmemchr (const wchar_t *, wchar_t, size_t);
  662. int __attribute__((__cdecl__)) wmemcmp (const wchar_t *, const wchar_t *, size_t);
  663. wchar_t *__attribute__((__cdecl__)) wmemcpy (wchar_t *__restrict, const wchar_t *__restrict, size_t)
  664.              ;
  665. wchar_t *__attribute__((__cdecl__)) wmemmove (wchar_t *, const wchar_t *, size_t);
  666. wchar_t *__attribute__((__cdecl__)) wmemset (wchar_t *, wchar_t, size_t);
  667.  
  668. long __attribute__((__cdecl__)) wcstol (const wchar_t *__restrict, wchar_t **__restrict, int);
  669. long long __attribute__((__cdecl__)) wcstoll (const wchar_t *__restrict, wchar_t **__restrict, int)
  670.            ;
  671. unsigned long __attribute__((__cdecl__)) wcstoul (const wchar_t *__restrict, wchar_t **__restrict, int)
  672.             ;
  673. unsigned long long __attribute__((__cdecl__)) wcstoull (const wchar_t *__restrict, wchar_t **__restrict, int)
  674.                                     ;
  675. long __attribute__((__cdecl__)) _wcstol_r (struct _reent *, const wchar_t *, wchar_t **, int);
  676. long long __attribute__((__cdecl__)) _wcstoll_r (struct _reent *, const wchar_t *, wchar_t **, int);
  677. unsigned long __attribute__((__cdecl__)) _wcstoul_r (struct _reent *, const wchar_t *, wchar_t **, int);
  678. unsigned long long __attribute__((__cdecl__)) _wcstoull_r (struct _reent *, const wchar_t *, wchar_t **, int);
  679.  
  680.  
  681.  
  682.  
  683.  
  684. wint_t __attribute__((__cdecl__)) fgetwc (__FILE *);
  685. wchar_t *__attribute__((__cdecl__)) fgetws (wchar_t *__restrict, int, __FILE *__restrict);
  686. wint_t __attribute__((__cdecl__)) fputwc (wchar_t, __FILE *);
  687. int __attribute__((__cdecl__)) fputws (const wchar_t *__restrict, __FILE *__restrict);
  688. int __attribute__((__cdecl__)) fwide (__FILE *, int);
  689. wint_t __attribute__((__cdecl__)) getwc (__FILE *);
  690. wint_t __attribute__((__cdecl__)) getwchar (void);
  691. wint_t __attribute__((__cdecl__)) putwc (wchar_t, __FILE *);
  692. wint_t __attribute__((__cdecl__)) putwchar (wchar_t);
  693. wint_t __attribute__((__cdecl__)) ungetwc (wint_t wc, __FILE *);
  694.  
  695. wint_t __attribute__((__cdecl__)) _fgetwc_r (struct _reent *, __FILE *);
  696. wchar_t *__attribute__((__cdecl__)) _fgetws_r (struct _reent *, wchar_t *, int, __FILE *);
  697. wint_t __attribute__((__cdecl__)) _fputwc_r (struct _reent *, wchar_t, __FILE *);
  698. int __attribute__((__cdecl__)) _fputws_r (struct _reent *, const wchar_t *, __FILE *);
  699. int __attribute__((__cdecl__)) _fwide_r (struct _reent *, __FILE *, int);
  700. wint_t __attribute__((__cdecl__)) _getwc_r (struct _reent *, __FILE *);
  701. wint_t __attribute__((__cdecl__)) _getwchar_r (struct _reent *ptr);
  702. wint_t __attribute__((__cdecl__)) _putwc_r (struct _reent *, wchar_t, __FILE *);
  703. wint_t __attribute__((__cdecl__)) _putwchar_r (struct _reent *, wchar_t);
  704. wint_t __attribute__((__cdecl__)) _ungetwc_r (struct _reent *, wint_t wc, __FILE *);
  705.  
  706. __FILE *__attribute__((__cdecl__)) open_wmemstream (wchar_t **, size_t *);
  707. __FILE *__attribute__((__cdecl__)) _open_wmemstream_r (struct _reent *, wchar_t **, size_t *);
  708. # 182 "/usr/include/wchar.h" 3 4
  709. int __attribute__((__cdecl__)) fwprintf (__FILE *__restrict, const wchar_t *__restrict, ...);
  710. int __attribute__((__cdecl__)) swprintf (wchar_t *__restrict, size_t, const wchar_t *__restrict, ...)
  711.                                    ;
  712. int __attribute__((__cdecl__)) vfwprintf (__FILE *__restrict, const wchar_t *__restrict, __gnuc_va_list)
  713.              ;
  714. int __attribute__((__cdecl__)) vswprintf (wchar_t *__restrict, size_t, const wchar_t *__restrict, __gnuc_va_list)
  715.                                         ;
  716. int __attribute__((__cdecl__)) vwprintf (const wchar_t *__restrict, __gnuc_va_list);
  717. int __attribute__((__cdecl__)) wprintf (const wchar_t *__restrict, ...);
  718.  
  719. int __attribute__((__cdecl__)) _fwprintf_r (struct _reent *, __FILE *, const wchar_t *, ...);
  720. int __attribute__((__cdecl__)) _swprintf_r (struct _reent *, wchar_t *, size_t, const wchar_t *, ...);
  721. int __attribute__((__cdecl__)) _vfwprintf_r (struct _reent *, __FILE *, const wchar_t *, __gnuc_va_list);
  722. int __attribute__((__cdecl__)) _vswprintf_r (struct _reent *, wchar_t *, size_t, const wchar_t *, __gnuc_va_list);
  723. int __attribute__((__cdecl__)) _vwprintf_r (struct _reent *, const wchar_t *, __gnuc_va_list);
  724. int __attribute__((__cdecl__)) _wprintf_r (struct _reent *, const wchar_t *, ...);
  725.  
  726. int __attribute__((__cdecl__)) fwscanf (__FILE *__restrict, const wchar_t *__restrict, ...);
  727. int __attribute__((__cdecl__)) swscanf (const wchar_t *__restrict, const wchar_t *__restrict, ...)
  728.                                    ;
  729. int __attribute__((__cdecl__)) vfwscanf (__FILE *__restrict, const wchar_t *__restrict, __gnuc_va_list)
  730.              ;
  731. int __attribute__((__cdecl__)) vswscanf (const wchar_t *__restrict, const wchar_t *__restrict, __gnuc_va_list)
  732.              ;
  733. int __attribute__((__cdecl__)) vwscanf (const wchar_t *__restrict, __gnuc_va_list);
  734. int __attribute__((__cdecl__)) wscanf (const wchar_t *__restrict, ...);
  735.  
  736. int __attribute__((__cdecl__)) _fwscanf_r (struct _reent *, __FILE *, const wchar_t *, ...);
  737. int __attribute__((__cdecl__)) _swscanf_r (struct _reent *, const wchar_t *, const wchar_t *, ...);
  738. int __attribute__((__cdecl__)) _vfwscanf_r (struct _reent *, __FILE *, const wchar_t *, __gnuc_va_list);
  739. int __attribute__((__cdecl__)) _vswscanf_r (struct _reent *, const wchar_t *, const wchar_t *, __gnuc_va_list);
  740. int __attribute__((__cdecl__)) _vwscanf_r (struct _reent *, const wchar_t *, __gnuc_va_list);
  741. int __attribute__((__cdecl__)) _wscanf_r (struct _reent *, const wchar_t *, ...);
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748. }
  749. # 45 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cwchar" 2 3
  750. # 62 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cwchar" 3
  751. namespace std
  752. {
  753.   using ::mbstate_t;
  754. }
  755. # 135 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cwchar" 3
  756. namespace std
  757. {
  758.  
  759.  
  760.   using ::wint_t;
  761.  
  762.   using ::btowc;
  763.   using ::fgetwc;
  764.   using ::fgetws;
  765.   using ::fputwc;
  766.   using ::fputws;
  767.   using ::fwide;
  768.   using ::fwprintf;
  769.   using ::fwscanf;
  770.   using ::getwc;
  771.   using ::getwchar;
  772.   using ::mbrlen;
  773.   using ::mbrtowc;
  774.   using ::mbsinit;
  775.   using ::mbsrtowcs;
  776.   using ::putwc;
  777.   using ::putwchar;
  778.  
  779.   using ::swprintf;
  780.  
  781.   using ::swscanf;
  782.   using ::ungetwc;
  783.   using ::vfwprintf;
  784.  
  785.   using ::vfwscanf;
  786.  
  787.  
  788.   using ::vswprintf;
  789.  
  790.  
  791.   using ::vswscanf;
  792.  
  793.   using ::vwprintf;
  794.  
  795.   using ::vwscanf;
  796.  
  797.   using ::wcrtomb;
  798.   using ::wcscat;
  799.   using ::wcscmp;
  800.   using ::wcscoll;
  801.   using ::wcscpy;
  802.   using ::wcscspn;
  803.   using ::wcsftime;
  804.   using ::wcslen;
  805.   using ::wcsncat;
  806.   using ::wcsncmp;
  807.   using ::wcsncpy;
  808.   using ::wcsrtombs;
  809.   using ::wcsspn;
  810.   using ::wcstod;
  811.  
  812.   using ::wcstof;
  813.  
  814.   using ::wcstok;
  815.   using ::wcstol;
  816.   using ::wcstoul;
  817.   using ::wcsxfrm;
  818.   using ::wctob;
  819.   using ::wmemcmp;
  820.   using ::wmemcpy;
  821.   using ::wmemmove;
  822.   using ::wmemset;
  823.   using ::wprintf;
  824.   using ::wscanf;
  825.   using ::wcschr;
  826.   using ::wcspbrk;
  827.   using ::wcsrchr;
  828.   using ::wcsstr;
  829.   using ::wmemchr;
  830.  
  831.  
  832.   inline wchar_t*
  833.   wcschr(wchar_t* __p, wchar_t __c)
  834.   { return wcschr(const_cast<const wchar_t*>(__p), __c); }
  835.  
  836.   inline wchar_t*
  837.   wcspbrk(wchar_t* __s1, const wchar_t* __s2)
  838.   { return wcspbrk(const_cast<const wchar_t*>(__s1), __s2); }
  839.  
  840.   inline wchar_t*
  841.   wcsrchr(wchar_t* __p, wchar_t __c)
  842.   { return wcsrchr(const_cast<const wchar_t*>(__p), __c); }
  843.  
  844.   inline wchar_t*
  845.   wcsstr(wchar_t* __s1, const wchar_t* __s2)
  846.   { return wcsstr(const_cast<const wchar_t*>(__s1), __s2); }
  847.  
  848.   inline wchar_t*
  849.   wmemchr(wchar_t* __p, wchar_t __c, size_t __n)
  850.   { return wmemchr(const_cast<const wchar_t*>(__p), __c, __n); }
  851.  
  852.  
  853.  
  854. }
  855. # 41 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/postypes.h" 2 3
  856. # 68 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/postypes.h" 3
  857. namespace std
  858. {
  859.  
  860. # 88 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/postypes.h" 3
  861.   typedef long streamoff;
  862. # 98 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/postypes.h" 3
  863.   typedef ptrdiff_t streamsize;
  864. # 111 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/postypes.h" 3
  865.   template<typename _StateT>
  866.     class fpos
  867.     {
  868.     private:
  869.       streamoff _M_off;
  870.       _StateT _M_state;
  871.  
  872.     public:
  873.  
  874.  
  875.  
  876.  
  877.       fpos()
  878.       : _M_off(0), _M_state() { }
  879. # 133 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/postypes.h" 3
  880.       fpos(streamoff __off)
  881.       : _M_off(__off), _M_state() { }
  882.  
  883.  
  884.       operator streamoff() const { return _M_off; }
  885.  
  886.  
  887.       void
  888.       state(_StateT __st)
  889.       { _M_state = __st; }
  890.  
  891.  
  892.       _StateT
  893.       state() const
  894.       { return _M_state; }
  895.  
  896.  
  897.  
  898.  
  899.  
  900.       fpos&
  901.       operator+=(streamoff __off)
  902.       {
  903.  _M_off += __off;
  904.  return *this;
  905.       }
  906.  
  907.  
  908.  
  909.  
  910.  
  911.       fpos&
  912.       operator-=(streamoff __off)
  913.       {
  914.  _M_off -= __off;
  915.  return *this;
  916.       }
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.       fpos
  925.       operator+(streamoff __off) const
  926.       {
  927.  fpos __pos(*this);
  928.  __pos += __off;
  929.  return __pos;
  930.       }
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.       fpos
  939.       operator-(streamoff __off) const
  940.       {
  941.  fpos __pos(*this);
  942.  __pos -= __off;
  943.  return __pos;
  944.       }
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.       streamoff
  952.       operator-(const fpos& __other) const
  953.       { return _M_off - __other._M_off; }
  954.     };
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.   template<typename _StateT>
  962.     inline bool
  963.     operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
  964.     { return streamoff(__lhs) == streamoff(__rhs); }
  965.  
  966.   template<typename _StateT>
  967.     inline bool
  968.     operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
  969.     { return streamoff(__lhs) != streamoff(__rhs); }
  970.  
  971.  
  972.  
  973.  
  974.  
  975.   typedef fpos<mbstate_t> streampos;
  976.  
  977.   typedef fpos<mbstate_t> wstreampos;
  978. # 239 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/postypes.h" 3
  979.  
  980. }
  981. # 41 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/iosfwd" 2 3
  982.  
  983. namespace std
  984. {
  985.  
  986. # 74 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/iosfwd" 3
  987.   class ios_base;
  988.  
  989.   template<typename _CharT, typename _Traits = char_traits<_CharT> >
  990.     class basic_ios;
  991.  
  992.   template<typename _CharT, typename _Traits = char_traits<_CharT> >
  993.     class basic_streambuf;
  994.  
  995.   template<typename _CharT, typename _Traits = char_traits<_CharT> >
  996.     class basic_istream;
  997.  
  998.   template<typename _CharT, typename _Traits = char_traits<_CharT> >
  999.     class basic_ostream;
  1000.  
  1001.   template<typename _CharT, typename _Traits = char_traits<_CharT> >
  1002.     class basic_iostream;
  1003.  
  1004.   template<typename _CharT, typename _Traits = char_traits<_CharT>,
  1005.      typename _Alloc = allocator<_CharT> >
  1006.     class basic_stringbuf;
  1007.  
  1008.   template<typename _CharT, typename _Traits = char_traits<_CharT>,
  1009.     typename _Alloc = allocator<_CharT> >
  1010.     class basic_istringstream;
  1011.  
  1012.   template<typename _CharT, typename _Traits = char_traits<_CharT>,
  1013.     typename _Alloc = allocator<_CharT> >
  1014.     class basic_ostringstream;
  1015.  
  1016.   template<typename _CharT, typename _Traits = char_traits<_CharT>,
  1017.     typename _Alloc = allocator<_CharT> >
  1018.     class basic_stringstream;
  1019.  
  1020.   template<typename _CharT, typename _Traits = char_traits<_CharT> >
  1021.     class basic_filebuf;
  1022.  
  1023.   template<typename _CharT, typename _Traits = char_traits<_CharT> >
  1024.     class basic_ifstream;
  1025.  
  1026.   template<typename _CharT, typename _Traits = char_traits<_CharT> >
  1027.     class basic_ofstream;
  1028.  
  1029.   template<typename _CharT, typename _Traits = char_traits<_CharT> >
  1030.     class basic_fstream;
  1031.  
  1032.   template<typename _CharT, typename _Traits = char_traits<_CharT> >
  1033.     class istreambuf_iterator;
  1034.  
  1035.   template<typename _CharT, typename _Traits = char_traits<_CharT> >
  1036.     class ostreambuf_iterator;
  1037.  
  1038.  
  1039.  
  1040.   typedef basic_ios<char> ios;
  1041.  
  1042.  
  1043.   typedef basic_streambuf<char> streambuf;
  1044.  
  1045.  
  1046.   typedef basic_istream<char> istream;
  1047.  
  1048.  
  1049.   typedef basic_ostream<char> ostream;
  1050.  
  1051.  
  1052.   typedef basic_iostream<char> iostream;
  1053.  
  1054.  
  1055.   typedef basic_stringbuf<char> stringbuf;
  1056.  
  1057.  
  1058.   typedef basic_istringstream<char> istringstream;
  1059.  
  1060.  
  1061.   typedef basic_ostringstream<char> ostringstream;
  1062.  
  1063.  
  1064.   typedef basic_stringstream<char> stringstream;
  1065.  
  1066.  
  1067.   typedef basic_filebuf<char> filebuf;
  1068.  
  1069.  
  1070.   typedef basic_ifstream<char> ifstream;
  1071.  
  1072.  
  1073.   typedef basic_ofstream<char> ofstream;
  1074.  
  1075.  
  1076.   typedef basic_fstream<char> fstream;
  1077.  
  1078.  
  1079.  
  1080.   typedef basic_ios<wchar_t> wios;
  1081.  
  1082.  
  1083.   typedef basic_streambuf<wchar_t> wstreambuf;
  1084.  
  1085.  
  1086.   typedef basic_istream<wchar_t> wistream;
  1087.  
  1088.  
  1089.   typedef basic_ostream<wchar_t> wostream;
  1090.  
  1091.  
  1092.   typedef basic_iostream<wchar_t> wiostream;
  1093.  
  1094.  
  1095.   typedef basic_stringbuf<wchar_t> wstringbuf;
  1096.  
  1097.  
  1098.   typedef basic_istringstream<wchar_t> wistringstream;
  1099.  
  1100.  
  1101.   typedef basic_ostringstream<wchar_t> wostringstream;
  1102.  
  1103.  
  1104.   typedef basic_stringstream<wchar_t> wstringstream;
  1105.  
  1106.  
  1107.   typedef basic_filebuf<wchar_t> wfilebuf;
  1108.  
  1109.  
  1110.   typedef basic_ifstream<wchar_t> wifstream;
  1111.  
  1112.  
  1113.   typedef basic_ofstream<wchar_t> wofstream;
  1114.  
  1115.  
  1116.   typedef basic_fstream<wchar_t> wfstream;
  1117.  
  1118.  
  1119.  
  1120.  
  1121. }
  1122. # 39 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ios" 2 3
  1123. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/exception" 1 3
  1124. # 33 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/exception" 3
  1125.        
  1126. # 34 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/exception" 3
  1127.  
  1128. #pragma GCC visibility push(default)
  1129.  
  1130.  
  1131. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/atomic_lockfree_defines.h" 1 3
  1132. # 33 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/atomic_lockfree_defines.h" 3
  1133.        
  1134. # 34 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/atomic_lockfree_defines.h" 3
  1135. # 39 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/exception" 2 3
  1136.  
  1137. extern "C++" {
  1138.  
  1139. namespace std
  1140. {
  1141. # 60 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/exception" 3
  1142.   class exception
  1143.   {
  1144.   public:
  1145.     exception() throw() { }
  1146.     virtual ~exception() throw();
  1147.  
  1148.  
  1149.  
  1150.     virtual const char* what() const throw();
  1151.   };
  1152.  
  1153.  
  1154.  
  1155.   class bad_exception : public exception
  1156.   {
  1157.   public:
  1158.     bad_exception() throw() { }
  1159.  
  1160.  
  1161.  
  1162.     virtual ~bad_exception() throw();
  1163.  
  1164.  
  1165.     virtual const char* what() const throw();
  1166.   };
  1167.  
  1168.  
  1169.   typedef void (*terminate_handler) ();
  1170.  
  1171.  
  1172.   typedef void (*unexpected_handler) ();
  1173.  
  1174.  
  1175.   terminate_handler set_terminate(terminate_handler) throw();
  1176.  
  1177.  
  1178.  
  1179.   void terminate() throw() __attribute__ ((__noreturn__));
  1180.  
  1181.  
  1182.   unexpected_handler set_unexpected(unexpected_handler) throw();
  1183.  
  1184.  
  1185.  
  1186.   void unexpected() __attribute__ ((__noreturn__));
  1187. # 117 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/exception" 3
  1188.   bool uncaught_exception() throw() __attribute__ ((__pure__));
  1189.  
  1190.  
  1191. }
  1192.  
  1193. namespace __gnu_cxx
  1194. {
  1195.  
  1196. # 142 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/exception" 3
  1197.   void __verbose_terminate_handler();
  1198.  
  1199.  
  1200. }
  1201.  
  1202. }
  1203.  
  1204. #pragma GCC visibility pop
  1205. # 40 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ios" 2 3
  1206. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/char_traits.h" 1 3
  1207. # 37 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/char_traits.h" 3
  1208.        
  1209. # 38 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/char_traits.h" 3
  1210.  
  1211. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 1 3
  1212. # 60 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 3
  1213. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/functexcept.h" 1 3
  1214. # 40 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/functexcept.h" 3
  1215. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/exception_defines.h" 1 3
  1216. # 41 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/functexcept.h" 2 3
  1217.  
  1218. namespace std
  1219. {
  1220.  
  1221.  
  1222.  
  1223.   void
  1224.   __throw_bad_exception(void) __attribute__((__noreturn__));
  1225.  
  1226.  
  1227.   void
  1228.   __throw_bad_alloc(void) __attribute__((__noreturn__));
  1229.  
  1230.  
  1231.   void
  1232.   __throw_bad_cast(void) __attribute__((__noreturn__));
  1233.  
  1234.   void
  1235.   __throw_bad_typeid(void) __attribute__((__noreturn__));
  1236.  
  1237.  
  1238.   void
  1239.   __throw_logic_error(const char*) __attribute__((__noreturn__));
  1240.  
  1241.   void
  1242.   __throw_domain_error(const char*) __attribute__((__noreturn__));
  1243.  
  1244.   void
  1245.   __throw_invalid_argument(const char*) __attribute__((__noreturn__));
  1246.  
  1247.   void
  1248.   __throw_length_error(const char*) __attribute__((__noreturn__));
  1249.  
  1250.   void
  1251.   __throw_out_of_range(const char*) __attribute__((__noreturn__));
  1252.  
  1253.   void
  1254.   __throw_runtime_error(const char*) __attribute__((__noreturn__));
  1255.  
  1256.   void
  1257.   __throw_range_error(const char*) __attribute__((__noreturn__));
  1258.  
  1259.   void
  1260.   __throw_overflow_error(const char*) __attribute__((__noreturn__));
  1261.  
  1262.   void
  1263.   __throw_underflow_error(const char*) __attribute__((__noreturn__));
  1264.  
  1265.  
  1266.   void
  1267.   __throw_ios_failure(const char*) __attribute__((__noreturn__));
  1268.  
  1269.   void
  1270.   __throw_system_error(int) __attribute__((__noreturn__));
  1271.  
  1272.   void
  1273.   __throw_future_error(int) __attribute__((__noreturn__));
  1274.  
  1275.  
  1276.   void
  1277.   __throw_bad_function_call() __attribute__((__noreturn__));
  1278.  
  1279.  
  1280. }
  1281. # 61 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 2 3
  1282. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/cpp_type_traits.h" 1 3
  1283. # 35 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/cpp_type_traits.h" 3
  1284.        
  1285. # 36 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/cpp_type_traits.h" 3
  1286. # 68 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/cpp_type_traits.h" 3
  1287. namespace __gnu_cxx
  1288. {
  1289.  
  1290.  
  1291.   template<typename _Iterator, typename _Container>
  1292.     class __normal_iterator;
  1293.  
  1294.  
  1295. }
  1296.  
  1297. namespace std
  1298. {
  1299.  
  1300.  
  1301.   struct __true_type { };
  1302.   struct __false_type { };
  1303.  
  1304.   template<bool>
  1305.     struct __truth_type
  1306.     { typedef __false_type __type; };
  1307.  
  1308.   template<>
  1309.     struct __truth_type<true>
  1310.     { typedef __true_type __type; };
  1311.  
  1312.  
  1313.  
  1314.   template<class _Sp, class _Tp>
  1315.     struct __traitor
  1316.     {
  1317.       enum { __value = bool(_Sp::__value) || bool(_Tp::__value) };
  1318.       typedef typename __truth_type<__value>::__type __type;
  1319.     };
  1320.  
  1321.  
  1322.   template<typename, typename>
  1323.     struct __are_same
  1324.     {
  1325.       enum { __value = 0 };
  1326.       typedef __false_type __type;
  1327.     };
  1328.  
  1329.   template<typename _Tp>
  1330.     struct __are_same<_Tp, _Tp>
  1331.     {
  1332.       enum { __value = 1 };
  1333.       typedef __true_type __type;
  1334.     };
  1335.  
  1336.  
  1337.   template<typename _Tp>
  1338.     struct __is_void
  1339.     {
  1340.       enum { __value = 0 };
  1341.       typedef __false_type __type;
  1342.     };
  1343.  
  1344.   template<>
  1345.     struct __is_void<void>
  1346.     {
  1347.       enum { __value = 1 };
  1348.       typedef __true_type __type;
  1349.     };
  1350.  
  1351.  
  1352.  
  1353.  
  1354.   template<typename _Tp>
  1355.     struct __is_integer
  1356.     {
  1357.       enum { __value = 0 };
  1358.       typedef __false_type __type;
  1359.     };
  1360.  
  1361.  
  1362.  
  1363.  
  1364.   template<>
  1365.     struct __is_integer<bool>
  1366.     {
  1367.       enum { __value = 1 };
  1368.       typedef __true_type __type;
  1369.     };
  1370.  
  1371.   template<>
  1372.     struct __is_integer<char>
  1373.     {
  1374.       enum { __value = 1 };
  1375.       typedef __true_type __type;
  1376.     };
  1377.  
  1378.   template<>
  1379.     struct __is_integer<signed char>
  1380.     {
  1381.       enum { __value = 1 };
  1382.       typedef __true_type __type;
  1383.     };
  1384.  
  1385.   template<>
  1386.     struct __is_integer<unsigned char>
  1387.     {
  1388.       enum { __value = 1 };
  1389.       typedef __true_type __type;
  1390.     };
  1391.  
  1392.  
  1393.   template<>
  1394.     struct __is_integer<wchar_t>
  1395.     {
  1396.       enum { __value = 1 };
  1397.       typedef __true_type __type;
  1398.     };
  1399. # 198 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/cpp_type_traits.h" 3
  1400.   template<>
  1401.     struct __is_integer<short>
  1402.     {
  1403.       enum { __value = 1 };
  1404.       typedef __true_type __type;
  1405.     };
  1406.  
  1407.   template<>
  1408.     struct __is_integer<unsigned short>
  1409.     {
  1410.       enum { __value = 1 };
  1411.       typedef __true_type __type;
  1412.     };
  1413.  
  1414.   template<>
  1415.     struct __is_integer<int>
  1416.     {
  1417.       enum { __value = 1 };
  1418.       typedef __true_type __type;
  1419.     };
  1420.  
  1421.   template<>
  1422.     struct __is_integer<unsigned int>
  1423.     {
  1424.       enum { __value = 1 };
  1425.       typedef __true_type __type;
  1426.     };
  1427.  
  1428.   template<>
  1429.     struct __is_integer<long>
  1430.     {
  1431.       enum { __value = 1 };
  1432.       typedef __true_type __type;
  1433.     };
  1434.  
  1435.   template<>
  1436.     struct __is_integer<unsigned long>
  1437.     {
  1438.       enum { __value = 1 };
  1439.       typedef __true_type __type;
  1440.     };
  1441.  
  1442.   template<>
  1443.     struct __is_integer<long long>
  1444.     {
  1445.       enum { __value = 1 };
  1446.       typedef __true_type __type;
  1447.     };
  1448.  
  1449.   template<>
  1450.     struct __is_integer<unsigned long long>
  1451.     {
  1452.       enum { __value = 1 };
  1453.       typedef __true_type __type;
  1454.     };
  1455.  
  1456.  
  1457.  
  1458.  
  1459.   template<typename _Tp>
  1460.     struct __is_floating
  1461.     {
  1462.       enum { __value = 0 };
  1463.       typedef __false_type __type;
  1464.     };
  1465.  
  1466.  
  1467.   template<>
  1468.     struct __is_floating<float>
  1469.     {
  1470.       enum { __value = 1 };
  1471.       typedef __true_type __type;
  1472.     };
  1473.  
  1474.   template<>
  1475.     struct __is_floating<double>
  1476.     {
  1477.       enum { __value = 1 };
  1478.       typedef __true_type __type;
  1479.     };
  1480.  
  1481.   template<>
  1482.     struct __is_floating<long double>
  1483.     {
  1484.       enum { __value = 1 };
  1485.       typedef __true_type __type;
  1486.     };
  1487.  
  1488.  
  1489.  
  1490.  
  1491.   template<typename _Tp>
  1492.     struct __is_pointer
  1493.     {
  1494.       enum { __value = 0 };
  1495.       typedef __false_type __type;
  1496.     };
  1497.  
  1498.   template<typename _Tp>
  1499.     struct __is_pointer<_Tp*>
  1500.     {
  1501.       enum { __value = 1 };
  1502.       typedef __true_type __type;
  1503.     };
  1504.  
  1505.  
  1506.  
  1507.  
  1508.   template<typename _Tp>
  1509.     struct __is_normal_iterator
  1510.     {
  1511.       enum { __value = 0 };
  1512.       typedef __false_type __type;
  1513.     };
  1514.  
  1515.   template<typename _Iterator, typename _Container>
  1516.     struct __is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator,
  1517.              _Container> >
  1518.     {
  1519.       enum { __value = 1 };
  1520.       typedef __true_type __type;
  1521.     };
  1522.  
  1523.  
  1524.  
  1525.  
  1526.   template<typename _Tp>
  1527.     struct __is_arithmetic
  1528.     : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> >
  1529.     { };
  1530.  
  1531.  
  1532.  
  1533.  
  1534.   template<typename _Tp>
  1535.     struct __is_fundamental
  1536.     : public __traitor<__is_void<_Tp>, __is_arithmetic<_Tp> >
  1537.     { };
  1538.  
  1539.  
  1540.  
  1541.  
  1542.   template<typename _Tp>
  1543.     struct __is_scalar
  1544.     : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> >
  1545.     { };
  1546.  
  1547.  
  1548.  
  1549.  
  1550.   template<typename _Tp>
  1551.     struct __is_char
  1552.     {
  1553.       enum { __value = 0 };
  1554.       typedef __false_type __type;
  1555.     };
  1556.  
  1557.   template<>
  1558.     struct __is_char<char>
  1559.     {
  1560.       enum { __value = 1 };
  1561.       typedef __true_type __type;
  1562.     };
  1563.  
  1564.  
  1565.   template<>
  1566.     struct __is_char<wchar_t>
  1567.     {
  1568.       enum { __value = 1 };
  1569.       typedef __true_type __type;
  1570.     };
  1571.  
  1572.  
  1573.   template<typename _Tp>
  1574.     struct __is_byte
  1575.     {
  1576.       enum { __value = 0 };
  1577.       typedef __false_type __type;
  1578.     };
  1579.  
  1580.   template<>
  1581.     struct __is_byte<char>
  1582.     {
  1583.       enum { __value = 1 };
  1584.       typedef __true_type __type;
  1585.     };
  1586.  
  1587.   template<>
  1588.     struct __is_byte<signed char>
  1589.     {
  1590.       enum { __value = 1 };
  1591.       typedef __true_type __type;
  1592.     };
  1593.  
  1594.   template<>
  1595.     struct __is_byte<unsigned char>
  1596.     {
  1597.       enum { __value = 1 };
  1598.       typedef __true_type __type;
  1599.     };
  1600.  
  1601.  
  1602.  
  1603.  
  1604.   template<typename _Tp>
  1605.     struct __is_move_iterator
  1606.     {
  1607.       enum { __value = 0 };
  1608.       typedef __false_type __type;
  1609.     };
  1610. # 421 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/cpp_type_traits.h" 3
  1611.  
  1612. }
  1613. # 62 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 2 3
  1614. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ext/type_traits.h" 1 3
  1615. # 32 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ext/type_traits.h" 3
  1616.        
  1617. # 33 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ext/type_traits.h" 3
  1618.  
  1619.  
  1620.  
  1621.  
  1622. namespace __gnu_cxx
  1623. {
  1624.  
  1625.  
  1626.  
  1627.   template<bool, typename>
  1628.     struct __enable_if
  1629.     { };
  1630.  
  1631.   template<typename _Tp>
  1632.     struct __enable_if<true, _Tp>
  1633.     { typedef _Tp __type; };
  1634.  
  1635.  
  1636.  
  1637.   template<bool _Cond, typename _Iftrue, typename _Iffalse>
  1638.     struct __conditional_type
  1639.     { typedef _Iftrue __type; };
  1640.  
  1641.   template<typename _Iftrue, typename _Iffalse>
  1642.     struct __conditional_type<false, _Iftrue, _Iffalse>
  1643.     { typedef _Iffalse __type; };
  1644.  
  1645.  
  1646.  
  1647.   template<typename _Tp>
  1648.     struct __add_unsigned
  1649.     {
  1650.     private:
  1651.       typedef __enable_if<std::__is_integer<_Tp>::__value, _Tp> __if_type;
  1652.  
  1653.     public:
  1654.       typedef typename __if_type::__type __type;
  1655.     };
  1656.  
  1657.   template<>
  1658.     struct __add_unsigned<char>
  1659.     { typedef unsigned char __type; };
  1660.  
  1661.   template<>
  1662.     struct __add_unsigned<signed char>
  1663.     { typedef unsigned char __type; };
  1664.  
  1665.   template<>
  1666.     struct __add_unsigned<short>
  1667.     { typedef unsigned short __type; };
  1668.  
  1669.   template<>
  1670.     struct __add_unsigned<int>
  1671.     { typedef unsigned int __type; };
  1672.  
  1673.   template<>
  1674.     struct __add_unsigned<long>
  1675.     { typedef unsigned long __type; };
  1676.  
  1677.   template<>
  1678.     struct __add_unsigned<long long>
  1679.     { typedef unsigned long long __type; };
  1680.  
  1681.  
  1682.   template<>
  1683.     struct __add_unsigned<bool>;
  1684.  
  1685.   template<>
  1686.     struct __add_unsigned<wchar_t>;
  1687.  
  1688.  
  1689.  
  1690.   template<typename _Tp>
  1691.     struct __remove_unsigned
  1692.     {
  1693.     private:
  1694.       typedef __enable_if<std::__is_integer<_Tp>::__value, _Tp> __if_type;
  1695.  
  1696.     public:
  1697.       typedef typename __if_type::__type __type;
  1698.     };
  1699.  
  1700.   template<>
  1701.     struct __remove_unsigned<char>
  1702.     { typedef signed char __type; };
  1703.  
  1704.   template<>
  1705.     struct __remove_unsigned<unsigned char>
  1706.     { typedef signed char __type; };
  1707.  
  1708.   template<>
  1709.     struct __remove_unsigned<unsigned short>
  1710.     { typedef short __type; };
  1711.  
  1712.   template<>
  1713.     struct __remove_unsigned<unsigned int>
  1714.     { typedef int __type; };
  1715.  
  1716.   template<>
  1717.     struct __remove_unsigned<unsigned long>
  1718.     { typedef long __type; };
  1719.  
  1720.   template<>
  1721.     struct __remove_unsigned<unsigned long long>
  1722.     { typedef long long __type; };
  1723.  
  1724.  
  1725.   template<>
  1726.     struct __remove_unsigned<bool>;
  1727.  
  1728.   template<>
  1729.     struct __remove_unsigned<wchar_t>;
  1730.  
  1731.  
  1732.  
  1733.   template<typename _Type>
  1734.     inline bool
  1735.     __is_null_pointer(_Type* __ptr)
  1736.     { return __ptr == 0; }
  1737.  
  1738.   template<typename _Type>
  1739.     inline bool
  1740.     __is_null_pointer(_Type)
  1741.     { return false; }
  1742.  
  1743.  
  1744.  
  1745.   template<typename _Tp, bool = std::__is_integer<_Tp>::__value>
  1746.     struct __promote
  1747.     { typedef double __type; };
  1748.  
  1749.  
  1750.  
  1751.  
  1752.   template<typename _Tp>
  1753.     struct __promote<_Tp, false>
  1754.     { };
  1755.  
  1756.   template<>
  1757.     struct __promote<long double>
  1758.     { typedef long double __type; };
  1759.  
  1760.   template<>
  1761.     struct __promote<double>
  1762.     { typedef double __type; };
  1763.  
  1764.   template<>
  1765.     struct __promote<float>
  1766.     { typedef float __type; };
  1767.  
  1768.   template<typename _Tp, typename _Up,
  1769.            typename _Tp2 = typename __promote<_Tp>::__type,
  1770.            typename _Up2 = typename __promote<_Up>::__type>
  1771.     struct __promote_2
  1772.     {
  1773.       typedef __typeof__(_Tp2() + _Up2()) __type;
  1774.     };
  1775.  
  1776.   template<typename _Tp, typename _Up, typename _Vp,
  1777.            typename _Tp2 = typename __promote<_Tp>::__type,
  1778.            typename _Up2 = typename __promote<_Up>::__type,
  1779.            typename _Vp2 = typename __promote<_Vp>::__type>
  1780.     struct __promote_3
  1781.     {
  1782.       typedef __typeof__(_Tp2() + _Up2() + _Vp2()) __type;
  1783.     };
  1784.  
  1785.   template<typename _Tp, typename _Up, typename _Vp, typename _Wp,
  1786.            typename _Tp2 = typename __promote<_Tp>::__type,
  1787.            typename _Up2 = typename __promote<_Up>::__type,
  1788.            typename _Vp2 = typename __promote<_Vp>::__type,
  1789.            typename _Wp2 = typename __promote<_Wp>::__type>
  1790.     struct __promote_4
  1791.     {
  1792.       typedef __typeof__(_Tp2() + _Up2() + _Vp2() + _Wp2()) __type;
  1793.     };
  1794.  
  1795.  
  1796. }
  1797. # 63 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 2 3
  1798. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ext/numeric_traits.h" 1 3
  1799. # 32 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ext/numeric_traits.h" 3
  1800.        
  1801. # 33 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ext/numeric_traits.h" 3
  1802.  
  1803.  
  1804.  
  1805.  
  1806. namespace __gnu_cxx
  1807. {
  1808.  
  1809. # 54 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ext/numeric_traits.h" 3
  1810.   template<typename _Value>
  1811.     struct __numeric_traits_integer
  1812.     {
  1813.  
  1814.       static const _Value __min = (((_Value)(-1) < 0) ? (_Value)1 << (sizeof(_Value) * 8 - ((_Value)(-1) < 0)) : (_Value)0);
  1815.       static const _Value __max = (((_Value)(-1) < 0) ? (((((_Value)1 << ((sizeof(_Value) * 8 - ((_Value)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(_Value)0);
  1816.  
  1817.  
  1818.  
  1819.       static const bool __is_signed = ((_Value)(-1) < 0);
  1820.       static const int __digits = (sizeof(_Value) * 8 - ((_Value)(-1) < 0));
  1821.     };
  1822.  
  1823.   template<typename _Value>
  1824.     const _Value __numeric_traits_integer<_Value>::__min;
  1825.  
  1826.   template<typename _Value>
  1827.     const _Value __numeric_traits_integer<_Value>::__max;
  1828.  
  1829.   template<typename _Value>
  1830.     const bool __numeric_traits_integer<_Value>::__is_signed;
  1831.  
  1832.   template<typename _Value>
  1833.     const int __numeric_traits_integer<_Value>::__digits;
  1834. # 99 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ext/numeric_traits.h" 3
  1835.   template<typename _Value>
  1836.     struct __numeric_traits_floating
  1837.     {
  1838.  
  1839.       static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 64) * 643L / 2136);
  1840.  
  1841.  
  1842.       static const bool __is_signed = true;
  1843.       static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 18);
  1844.       static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 4932);
  1845.     };
  1846.  
  1847.   template<typename _Value>
  1848.     const int __numeric_traits_floating<_Value>::__max_digits10;
  1849.  
  1850.   template<typename _Value>
  1851.     const bool __numeric_traits_floating<_Value>::__is_signed;
  1852.  
  1853.   template<typename _Value>
  1854.     const int __numeric_traits_floating<_Value>::__digits10;
  1855.  
  1856.   template<typename _Value>
  1857.     const int __numeric_traits_floating<_Value>::__max_exponent10;
  1858.  
  1859.   template<typename _Value>
  1860.     struct __numeric_traits
  1861.     : public __conditional_type<std::__is_integer<_Value>::__value,
  1862.     __numeric_traits_integer<_Value>,
  1863.     __numeric_traits_floating<_Value> >::__type
  1864.     { };
  1865.  
  1866.  
  1867. }
  1868. # 64 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 2 3
  1869. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_pair.h" 1 3
  1870. # 59 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_pair.h" 3
  1871. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/move.h" 1 3
  1872. # 34 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/move.h" 3
  1873. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/concept_check.h" 1 3
  1874. # 33 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/concept_check.h" 3
  1875.        
  1876. # 34 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/concept_check.h" 3
  1877. # 35 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/move.h" 2 3
  1878.  
  1879. namespace std
  1880. {
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.  
  1887.  
  1888.   template<typename _Tp>
  1889.     inline _Tp*
  1890.     __addressof(_Tp& __r)
  1891.     {
  1892.       return reinterpret_cast<_Tp*>
  1893.  (&const_cast<char&>(reinterpret_cast<const volatile char&>(__r)));
  1894.     }
  1895.  
  1896.  
  1897. }
  1898. # 149 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/move.h" 3
  1899. namespace std
  1900. {
  1901.  
  1902. # 164 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/move.h" 3
  1903.   template<typename _Tp>
  1904.     inline void
  1905.     swap(_Tp& __a, _Tp& __b)
  1906.  
  1907.  
  1908.  
  1909.  
  1910.     {
  1911.  
  1912.      
  1913.  
  1914.       _Tp __tmp = (__a);
  1915.       __a = (__b);
  1916.       __b = (__tmp);
  1917.     }
  1918.  
  1919.  
  1920.  
  1921.  
  1922.   template<typename _Tp, size_t _Nm>
  1923.     inline void
  1924.     swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm])
  1925.  
  1926.  
  1927.  
  1928.     {
  1929.       for (size_t __n = 0; __n < _Nm; ++__n)
  1930.  swap(__a[__n], __b[__n]);
  1931.     }
  1932.  
  1933.  
  1934.  
  1935. }
  1936. # 60 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_pair.h" 2 3
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942. namespace std
  1943. {
  1944.  
  1945. # 95 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_pair.h" 3
  1946.   template<class _T1, class _T2>
  1947.     struct pair
  1948.     {
  1949.       typedef _T1 first_type;
  1950.       typedef _T2 second_type;
  1951.  
  1952.       _T1 first;
  1953.       _T2 second;
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.       pair()
  1960.       : first(), second() { }
  1961.  
  1962.  
  1963.       pair(const _T1& __a, const _T2& __b)
  1964.       : first(__a), second(__b) { }
  1965.  
  1966.  
  1967.  
  1968.       template<class _U1, class _U2>
  1969.  pair(const pair<_U1, _U2>& __p)
  1970.  : first(__p.first), second(__p.second) { }
  1971. # 209 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_pair.h" 3
  1972.     };
  1973.  
  1974.  
  1975.   template<class _T1, class _T2>
  1976.     inline bool
  1977.     operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
  1978.     { return __x.first == __y.first && __x.second == __y.second; }
  1979.  
  1980.  
  1981.   template<class _T1, class _T2>
  1982.     inline bool
  1983.     operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
  1984.     { return __x.first < __y.first
  1985.       || (!(__y.first < __x.first) && __x.second < __y.second); }
  1986.  
  1987.  
  1988.   template<class _T1, class _T2>
  1989.     inline bool
  1990.     operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
  1991.     { return !(__x == __y); }
  1992.  
  1993.  
  1994.   template<class _T1, class _T2>
  1995.     inline bool
  1996.     operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
  1997.     { return __y < __x; }
  1998.  
  1999.  
  2000.   template<class _T1, class _T2>
  2001.     inline bool
  2002.     operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
  2003.     { return !(__y < __x); }
  2004.  
  2005.  
  2006.   template<class _T1, class _T2>
  2007.     inline bool
  2008.     operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
  2009.     { return !(__x < __y); }
  2010. # 284 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_pair.h" 3
  2011.   template<class _T1, class _T2>
  2012.     inline pair<_T1, _T2>
  2013.     make_pair(_T1 __x, _T2 __y)
  2014.     { return pair<_T1, _T2>(__x, __y); }
  2015.  
  2016.  
  2017.  
  2018.  
  2019.  
  2020. }
  2021. # 65 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 2 3
  2022. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator_base_types.h" 1 3
  2023. # 62 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator_base_types.h" 3
  2024.        
  2025. # 63 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator_base_types.h" 3
  2026.  
  2027.  
  2028.  
  2029.  
  2030.  
  2031.  
  2032.  
  2033. namespace std
  2034. {
  2035.  
  2036. # 89 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator_base_types.h" 3
  2037.   struct input_iterator_tag { };
  2038.  
  2039.  
  2040.   struct output_iterator_tag { };
  2041.  
  2042.  
  2043.   struct forward_iterator_tag : public input_iterator_tag { };
  2044.  
  2045.  
  2046.  
  2047.   struct bidirectional_iterator_tag : public forward_iterator_tag { };
  2048.  
  2049.  
  2050.  
  2051.   struct random_access_iterator_tag : public bidirectional_iterator_tag { };
  2052. # 116 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator_base_types.h" 3
  2053.   template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t,
  2054.            typename _Pointer = _Tp*, typename _Reference = _Tp&>
  2055.     struct iterator
  2056.     {
  2057.  
  2058.       typedef _Category iterator_category;
  2059.  
  2060.       typedef _Tp value_type;
  2061.  
  2062.       typedef _Distance difference_type;
  2063.  
  2064.       typedef _Pointer pointer;
  2065.  
  2066.       typedef _Reference reference;
  2067.     };
  2068. # 162 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator_base_types.h" 3
  2069.   template<typename _Iterator>
  2070.     struct iterator_traits
  2071.     {
  2072.       typedef typename _Iterator::iterator_category iterator_category;
  2073.       typedef typename _Iterator::value_type value_type;
  2074.       typedef typename _Iterator::difference_type difference_type;
  2075.       typedef typename _Iterator::pointer pointer;
  2076.       typedef typename _Iterator::reference reference;
  2077.     };
  2078.  
  2079.  
  2080.  
  2081.   template<typename _Tp>
  2082.     struct iterator_traits<_Tp*>
  2083.     {
  2084.       typedef random_access_iterator_tag iterator_category;
  2085.       typedef _Tp value_type;
  2086.       typedef ptrdiff_t difference_type;
  2087.       typedef _Tp* pointer;
  2088.       typedef _Tp& reference;
  2089.     };
  2090.  
  2091.  
  2092.   template<typename _Tp>
  2093.     struct iterator_traits<const _Tp*>
  2094.     {
  2095.       typedef random_access_iterator_tag iterator_category;
  2096.       typedef _Tp value_type;
  2097.       typedef ptrdiff_t difference_type;
  2098.       typedef const _Tp* pointer;
  2099.       typedef const _Tp& reference;
  2100.     };
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.   template<typename _Iter>
  2107.     inline typename iterator_traits<_Iter>::iterator_category
  2108.     __iterator_category(const _Iter&)
  2109.     { return typename iterator_traits<_Iter>::iterator_category(); }
  2110.  
  2111.  
  2112.  
  2113.  
  2114.  
  2115.   template<typename _Iterator, bool _HasBase>
  2116.     struct _Iter_base
  2117.     {
  2118.       typedef _Iterator iterator_type;
  2119.       static iterator_type _S_base(_Iterator __it)
  2120.       { return __it; }
  2121.     };
  2122.  
  2123.   template<typename _Iterator>
  2124.     struct _Iter_base<_Iterator, true>
  2125.     {
  2126.       typedef typename _Iterator::iterator_type iterator_type;
  2127.       static iterator_type _S_base(_Iterator __it)
  2128.       { return __it.base(); }
  2129.     };
  2130. # 232 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator_base_types.h" 3
  2131.  
  2132. }
  2133. # 66 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 2 3
  2134. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator_base_funcs.h" 1 3
  2135. # 62 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator_base_funcs.h" 3
  2136.        
  2137. # 63 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator_base_funcs.h" 3
  2138.  
  2139.  
  2140. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/debug/debug.h" 1 3
  2141. # 46 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/debug/debug.h" 3
  2142. namespace std
  2143. {
  2144.   namespace __debug { }
  2145. }
  2146.  
  2147.  
  2148.  
  2149.  
  2150. namespace __gnu_debug
  2151. {
  2152.   using namespace std::__debug;
  2153. }
  2154. # 66 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator_base_funcs.h" 2 3
  2155.  
  2156. namespace std
  2157. {
  2158.  
  2159.  
  2160.   template<typename _InputIterator>
  2161.     inline typename iterator_traits<_InputIterator>::difference_type
  2162.     __distance(_InputIterator __first, _InputIterator __last,
  2163.                input_iterator_tag)
  2164.     {
  2165.  
  2166.      
  2167.  
  2168.       typename iterator_traits<_InputIterator>::difference_type __n = 0;
  2169.       while (__first != __last)
  2170.  {
  2171.    ++__first;
  2172.    ++__n;
  2173.  }
  2174.       return __n;
  2175.     }
  2176.  
  2177.   template<typename _RandomAccessIterator>
  2178.     inline typename iterator_traits<_RandomAccessIterator>::difference_type
  2179.     __distance(_RandomAccessIterator __first, _RandomAccessIterator __last,
  2180.                random_access_iterator_tag)
  2181.     {
  2182.  
  2183.      
  2184.  
  2185.       return __last - __first;
  2186.     }
  2187. # 112 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator_base_funcs.h" 3
  2188.   template<typename _InputIterator>
  2189.     inline typename iterator_traits<_InputIterator>::difference_type
  2190.     distance(_InputIterator __first, _InputIterator __last)
  2191.     {
  2192.  
  2193.       return std::__distance(__first, __last,
  2194.         std::__iterator_category(__first));
  2195.     }
  2196.  
  2197.   template<typename _InputIterator, typename _Distance>
  2198.     inline void
  2199.     __advance(_InputIterator& __i, _Distance __n, input_iterator_tag)
  2200.     {
  2201.  
  2202.      
  2203.       ;
  2204.       while (__n--)
  2205.  ++__i;
  2206.     }
  2207.  
  2208.   template<typename _BidirectionalIterator, typename _Distance>
  2209.     inline void
  2210.     __advance(_BidirectionalIterator& __i, _Distance __n,
  2211.        bidirectional_iterator_tag)
  2212.     {
  2213.  
  2214.      
  2215.  
  2216.       if (__n > 0)
  2217.         while (__n--)
  2218.    ++__i;
  2219.       else
  2220.         while (__n++)
  2221.    --__i;
  2222.     }
  2223.  
  2224.   template<typename _RandomAccessIterator, typename _Distance>
  2225.     inline void
  2226.     __advance(_RandomAccessIterator& __i, _Distance __n,
  2227.               random_access_iterator_tag)
  2228.     {
  2229.  
  2230.      
  2231.  
  2232.       __i += __n;
  2233.     }
  2234. # 171 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator_base_funcs.h" 3
  2235.   template<typename _InputIterator, typename _Distance>
  2236.     inline void
  2237.     advance(_InputIterator& __i, _Distance __n)
  2238.     {
  2239.  
  2240.       typename iterator_traits<_InputIterator>::difference_type __d = __n;
  2241.       std::__advance(__i, __d, std::__iterator_category(__i));
  2242.     }
  2243. # 202 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator_base_funcs.h" 3
  2244.  
  2245. }
  2246. # 67 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 2 3
  2247. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator.h" 1 3
  2248. # 67 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator.h" 3
  2249. namespace std
  2250. {
  2251.  
  2252. # 95 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator.h" 3
  2253.   template<typename _Iterator>
  2254.     class reverse_iterator
  2255.     : public iterator<typename iterator_traits<_Iterator>::iterator_category,
  2256.         typename iterator_traits<_Iterator>::value_type,
  2257.         typename iterator_traits<_Iterator>::difference_type,
  2258.         typename iterator_traits<_Iterator>::pointer,
  2259.                       typename iterator_traits<_Iterator>::reference>
  2260.     {
  2261.     protected:
  2262.       _Iterator current;
  2263.  
  2264.       typedef iterator_traits<_Iterator> __traits_type;
  2265.  
  2266.     public:
  2267.       typedef _Iterator iterator_type;
  2268.       typedef typename __traits_type::difference_type difference_type;
  2269.       typedef typename __traits_type::pointer pointer;
  2270.       typedef typename __traits_type::reference reference;
  2271.  
  2272.  
  2273.  
  2274.  
  2275.  
  2276.  
  2277.  
  2278.       reverse_iterator() : current() { }
  2279.  
  2280.  
  2281.  
  2282.  
  2283.       explicit
  2284.       reverse_iterator(iterator_type __x) : current(__x) { }
  2285.  
  2286.  
  2287.  
  2288.  
  2289.       reverse_iterator(const reverse_iterator& __x)
  2290.       : current(__x.current) { }
  2291.  
  2292.  
  2293.  
  2294.  
  2295.  
  2296.       template<typename _Iter>
  2297.         reverse_iterator(const reverse_iterator<_Iter>& __x)
  2298.  : current(__x.base()) { }
  2299.  
  2300.  
  2301.  
  2302.  
  2303.       iterator_type
  2304.       base() const
  2305.       { return current; }
  2306. # 159 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator.h" 3
  2307.       reference
  2308.       operator*() const
  2309.       {
  2310.  _Iterator __tmp = current;
  2311.  return *--__tmp;
  2312.       }
  2313.  
  2314.  
  2315.  
  2316.  
  2317.  
  2318.  
  2319.       pointer
  2320.       operator->() const
  2321.       { return &(operator*()); }
  2322.  
  2323.  
  2324.  
  2325.  
  2326.  
  2327.  
  2328.       reverse_iterator&
  2329.       operator++()
  2330.       {
  2331.  --current;
  2332.  return *this;
  2333.       }
  2334.  
  2335.  
  2336.  
  2337.  
  2338.  
  2339.  
  2340.       reverse_iterator
  2341.       operator++(int)
  2342.       {
  2343.  reverse_iterator __tmp = *this;
  2344.  --current;
  2345.  return __tmp;
  2346.       }
  2347.  
  2348.  
  2349.  
  2350.  
  2351.  
  2352.  
  2353.       reverse_iterator&
  2354.       operator--()
  2355.       {
  2356.  ++current;
  2357.  return *this;
  2358.       }
  2359.  
  2360.  
  2361.  
  2362.  
  2363.  
  2364.  
  2365.       reverse_iterator
  2366.       operator--(int)
  2367.       {
  2368.  reverse_iterator __tmp = *this;
  2369.  ++current;
  2370.  return __tmp;
  2371.       }
  2372.  
  2373.  
  2374.  
  2375.  
  2376.  
  2377.  
  2378.       reverse_iterator
  2379.       operator+(difference_type __n) const
  2380.       { return reverse_iterator(current - __n); }
  2381.  
  2382.  
  2383.  
  2384.  
  2385.  
  2386.  
  2387.  
  2388.       reverse_iterator&
  2389.       operator+=(difference_type __n)
  2390.       {
  2391.  current -= __n;
  2392.  return *this;
  2393.       }
  2394.  
  2395.  
  2396.  
  2397.  
  2398.  
  2399.  
  2400.       reverse_iterator
  2401.       operator-(difference_type __n) const
  2402.       { return reverse_iterator(current + __n); }
  2403.  
  2404.  
  2405.  
  2406.  
  2407.  
  2408.  
  2409.  
  2410.       reverse_iterator&
  2411.       operator-=(difference_type __n)
  2412.       {
  2413.  current += __n;
  2414.  return *this;
  2415.       }
  2416.  
  2417.  
  2418.  
  2419.  
  2420.  
  2421.  
  2422.       reference
  2423.       operator[](difference_type __n) const
  2424.       { return *(*this + __n); }
  2425.     };
  2426. # 289 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator.h" 3
  2427.   template<typename _Iterator>
  2428.     inline bool
  2429.     operator==(const reverse_iterator<_Iterator>& __x,
  2430.         const reverse_iterator<_Iterator>& __y)
  2431.     { return __x.base() == __y.base(); }
  2432.  
  2433.   template<typename _Iterator>
  2434.     inline bool
  2435.     operator<(const reverse_iterator<_Iterator>& __x,
  2436.        const reverse_iterator<_Iterator>& __y)
  2437.     { return __y.base() < __x.base(); }
  2438.  
  2439.   template<typename _Iterator>
  2440.     inline bool
  2441.     operator!=(const reverse_iterator<_Iterator>& __x,
  2442.         const reverse_iterator<_Iterator>& __y)
  2443.     { return !(__x == __y); }
  2444.  
  2445.   template<typename _Iterator>
  2446.     inline bool
  2447.     operator>(const reverse_iterator<_Iterator>& __x,
  2448.        const reverse_iterator<_Iterator>& __y)
  2449.     { return __y < __x; }
  2450.  
  2451.   template<typename _Iterator>
  2452.     inline bool
  2453.     operator<=(const reverse_iterator<_Iterator>& __x,
  2454.         const reverse_iterator<_Iterator>& __y)
  2455.     { return !(__y < __x); }
  2456.  
  2457.   template<typename _Iterator>
  2458.     inline bool
  2459.     operator>=(const reverse_iterator<_Iterator>& __x,
  2460.         const reverse_iterator<_Iterator>& __y)
  2461.     { return !(__x < __y); }
  2462.  
  2463.   template<typename _Iterator>
  2464.     inline typename reverse_iterator<_Iterator>::difference_type
  2465.     operator-(const reverse_iterator<_Iterator>& __x,
  2466.        const reverse_iterator<_Iterator>& __y)
  2467.     { return __y.base() - __x.base(); }
  2468.  
  2469.   template<typename _Iterator>
  2470.     inline reverse_iterator<_Iterator>
  2471.     operator+(typename reverse_iterator<_Iterator>::difference_type __n,
  2472.        const reverse_iterator<_Iterator>& __x)
  2473.     { return reverse_iterator<_Iterator>(__x.base() - __n); }
  2474.  
  2475.  
  2476.  
  2477.   template<typename _IteratorL, typename _IteratorR>
  2478.     inline bool
  2479.     operator==(const reverse_iterator<_IteratorL>& __x,
  2480.         const reverse_iterator<_IteratorR>& __y)
  2481.     { return __x.base() == __y.base(); }
  2482.  
  2483.   template<typename _IteratorL, typename _IteratorR>
  2484.     inline bool
  2485.     operator<(const reverse_iterator<_IteratorL>& __x,
  2486.        const reverse_iterator<_IteratorR>& __y)
  2487.     { return __y.base() < __x.base(); }
  2488.  
  2489.   template<typename _IteratorL, typename _IteratorR>
  2490.     inline bool
  2491.     operator!=(const reverse_iterator<_IteratorL>& __x,
  2492.         const reverse_iterator<_IteratorR>& __y)
  2493.     { return !(__x == __y); }
  2494.  
  2495.   template<typename _IteratorL, typename _IteratorR>
  2496.     inline bool
  2497.     operator>(const reverse_iterator<_IteratorL>& __x,
  2498.        const reverse_iterator<_IteratorR>& __y)
  2499.     { return __y < __x; }
  2500.  
  2501.   template<typename _IteratorL, typename _IteratorR>
  2502.     inline bool
  2503.     operator<=(const reverse_iterator<_IteratorL>& __x,
  2504.         const reverse_iterator<_IteratorR>& __y)
  2505.     { return !(__y < __x); }
  2506.  
  2507.   template<typename _IteratorL, typename _IteratorR>
  2508.     inline bool
  2509.     operator>=(const reverse_iterator<_IteratorL>& __x,
  2510.         const reverse_iterator<_IteratorR>& __y)
  2511.     { return !(__x < __y); }
  2512.  
  2513.   template<typename _IteratorL, typename _IteratorR>
  2514.  
  2515.  
  2516.  
  2517.  
  2518.  
  2519.  
  2520.  
  2521.     inline typename reverse_iterator<_IteratorL>::difference_type
  2522.     operator-(const reverse_iterator<_IteratorL>& __x,
  2523.        const reverse_iterator<_IteratorR>& __y)
  2524.  
  2525.     { return __y.base() - __x.base(); }
  2526. # 401 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator.h" 3
  2527.   template<typename _Container>
  2528.     class back_insert_iterator
  2529.     : public iterator<output_iterator_tag, void, void, void, void>
  2530.     {
  2531.     protected:
  2532.       _Container* container;
  2533.  
  2534.     public:
  2535.  
  2536.       typedef _Container container_type;
  2537.  
  2538.  
  2539.       explicit
  2540.       back_insert_iterator(_Container& __x) : container(&__x) { }
  2541. # 428 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator.h" 3
  2542.       back_insert_iterator&
  2543.       operator=(typename _Container::const_reference __value)
  2544.       {
  2545.  container->push_back(__value);
  2546.  return *this;
  2547.       }
  2548. # 451 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator.h" 3
  2549.       back_insert_iterator&
  2550.       operator*()
  2551.       { return *this; }
  2552.  
  2553.  
  2554.       back_insert_iterator&
  2555.       operator++()
  2556.       { return *this; }
  2557.  
  2558.  
  2559.       back_insert_iterator
  2560.       operator++(int)
  2561.       { return *this; }
  2562.     };
  2563. # 477 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator.h" 3
  2564.   template<typename _Container>
  2565.     inline back_insert_iterator<_Container>
  2566.     back_inserter(_Container& __x)
  2567.     { return back_insert_iterator<_Container>(__x); }
  2568. # 492 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator.h" 3
  2569.   template<typename _Container>
  2570.     class front_insert_iterator
  2571.     : public iterator<output_iterator_tag, void, void, void, void>
  2572.     {
  2573.     protected:
  2574.       _Container* container;
  2575.  
  2576.     public:
  2577.  
  2578.       typedef _Container container_type;
  2579.  
  2580.  
  2581.       explicit front_insert_iterator(_Container& __x) : container(&__x) { }
  2582. # 518 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator.h" 3
  2583.       front_insert_iterator&
  2584.       operator=(typename _Container::const_reference __value)
  2585.       {
  2586.  container->push_front(__value);
  2587.  return *this;
  2588.       }
  2589. # 541 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator.h" 3
  2590.       front_insert_iterator&
  2591.       operator*()
  2592.       { return *this; }
  2593.  
  2594.  
  2595.       front_insert_iterator&
  2596.       operator++()
  2597.       { return *this; }
  2598.  
  2599.  
  2600.       front_insert_iterator
  2601.       operator++(int)
  2602.       { return *this; }
  2603.     };
  2604. # 567 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator.h" 3
  2605.   template<typename _Container>
  2606.     inline front_insert_iterator<_Container>
  2607.     front_inserter(_Container& __x)
  2608.     { return front_insert_iterator<_Container>(__x); }
  2609. # 586 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator.h" 3
  2610.   template<typename _Container>
  2611.     class insert_iterator
  2612.     : public iterator<output_iterator_tag, void, void, void, void>
  2613.     {
  2614.     protected:
  2615.       _Container* container;
  2616.       typename _Container::iterator iter;
  2617.  
  2618.     public:
  2619.  
  2620.       typedef _Container container_type;
  2621.  
  2622.  
  2623.  
  2624.  
  2625.  
  2626.       insert_iterator(_Container& __x, typename _Container::iterator __i)
  2627.       : container(&__x), iter(__i) {}
  2628. # 629 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator.h" 3
  2629.       insert_iterator&
  2630.       operator=(typename _Container::const_reference __value)
  2631.       {
  2632.  iter = container->insert(iter, __value);
  2633.  ++iter;
  2634.  return *this;
  2635.       }
  2636. # 655 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator.h" 3
  2637.       insert_iterator&
  2638.       operator*()
  2639.       { return *this; }
  2640.  
  2641.  
  2642.       insert_iterator&
  2643.       operator++()
  2644.       { return *this; }
  2645.  
  2646.  
  2647.       insert_iterator&
  2648.       operator++(int)
  2649.       { return *this; }
  2650.     };
  2651. # 681 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator.h" 3
  2652.   template<typename _Container, typename _Iterator>
  2653.     inline insert_iterator<_Container>
  2654.     inserter(_Container& __x, _Iterator __i)
  2655.     {
  2656.       return insert_iterator<_Container>(__x,
  2657.       typename _Container::iterator(__i));
  2658.     }
  2659.  
  2660.  
  2661.  
  2662.  
  2663. }
  2664.  
  2665. namespace __gnu_cxx
  2666. {
  2667.  
  2668. # 705 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator.h" 3
  2669.   using std::iterator_traits;
  2670.   using std::iterator;
  2671.   template<typename _Iterator, typename _Container>
  2672.     class __normal_iterator
  2673.     {
  2674.     protected:
  2675.       _Iterator _M_current;
  2676.  
  2677.       typedef iterator_traits<_Iterator> __traits_type;
  2678.  
  2679.     public:
  2680.       typedef _Iterator iterator_type;
  2681.       typedef typename __traits_type::iterator_category iterator_category;
  2682.       typedef typename __traits_type::value_type value_type;
  2683.       typedef typename __traits_type::difference_type difference_type;
  2684.       typedef typename __traits_type::reference reference;
  2685.       typedef typename __traits_type::pointer pointer;
  2686.  
  2687.       __normal_iterator() : _M_current(_Iterator()) { }
  2688.  
  2689.       explicit
  2690.       __normal_iterator(const _Iterator& __i) : _M_current(__i) { }
  2691.  
  2692.  
  2693.       template<typename _Iter>
  2694.         __normal_iterator(const __normal_iterator<_Iter,
  2695.      typename __enable_if<
  2696.               (std::__are_same<_Iter, typename _Container::pointer>::__value),
  2697.         _Container>::__type>& __i)
  2698.         : _M_current(__i.base()) { }
  2699.  
  2700.  
  2701.       reference
  2702.       operator*() const
  2703.       { return *_M_current; }
  2704.  
  2705.       pointer
  2706.       operator->() const
  2707.       { return _M_current; }
  2708.  
  2709.       __normal_iterator&
  2710.       operator++()
  2711.       {
  2712.  ++_M_current;
  2713.  return *this;
  2714.       }
  2715.  
  2716.       __normal_iterator
  2717.       operator++(int)
  2718.       { return __normal_iterator(_M_current++); }
  2719.  
  2720.  
  2721.       __normal_iterator&
  2722.       operator--()
  2723.       {
  2724.  --_M_current;
  2725.  return *this;
  2726.       }
  2727.  
  2728.       __normal_iterator
  2729.       operator--(int)
  2730.       { return __normal_iterator(_M_current--); }
  2731.  
  2732.  
  2733.       reference
  2734.       operator[](const difference_type& __n) const
  2735.       { return _M_current[__n]; }
  2736.  
  2737.       __normal_iterator&
  2738.       operator+=(const difference_type& __n)
  2739.       { _M_current += __n; return *this; }
  2740.  
  2741.       __normal_iterator
  2742.       operator+(const difference_type& __n) const
  2743.       { return __normal_iterator(_M_current + __n); }
  2744.  
  2745.       __normal_iterator&
  2746.       operator-=(const difference_type& __n)
  2747.       { _M_current -= __n; return *this; }
  2748.  
  2749.       __normal_iterator
  2750.       operator-(const difference_type& __n) const
  2751.       { return __normal_iterator(_M_current - __n); }
  2752.  
  2753.       const _Iterator&
  2754.       base() const
  2755.       { return _M_current; }
  2756.     };
  2757. # 803 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_iterator.h" 3
  2758.   template<typename _IteratorL, typename _IteratorR, typename _Container>
  2759.     inline bool
  2760.     operator==(const __normal_iterator<_IteratorL, _Container>& __lhs,
  2761.         const __normal_iterator<_IteratorR, _Container>& __rhs)
  2762.     { return __lhs.base() == __rhs.base(); }
  2763.  
  2764.   template<typename _Iterator, typename _Container>
  2765.     inline bool
  2766.     operator==(const __normal_iterator<_Iterator, _Container>& __lhs,
  2767.         const __normal_iterator<_Iterator, _Container>& __rhs)
  2768.     { return __lhs.base() == __rhs.base(); }
  2769.  
  2770.   template<typename _IteratorL, typename _IteratorR, typename _Container>
  2771.     inline bool
  2772.     operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs,
  2773.         const __normal_iterator<_IteratorR, _Container>& __rhs)
  2774.     { return __lhs.base() != __rhs.base(); }
  2775.  
  2776.   template<typename _Iterator, typename _Container>
  2777.     inline bool
  2778.     operator!=(const __normal_iterator<_Iterator, _Container>& __lhs,
  2779.         const __normal_iterator<_Iterator, _Container>& __rhs)
  2780.     { return __lhs.base() != __rhs.base(); }
  2781.  
  2782.  
  2783.   template<typename _IteratorL, typename _IteratorR, typename _Container>
  2784.     inline bool
  2785.     operator<(const __normal_iterator<_IteratorL, _Container>& __lhs,
  2786.        const __normal_iterator<_IteratorR, _Container>& __rhs)
  2787.     { return __lhs.base() < __rhs.base(); }
  2788.  
  2789.   template<typename _Iterator, typename _Container>
  2790.     inline bool
  2791.     operator<(const __normal_iterator<_Iterator, _Container>& __lhs,
  2792.        const __normal_iterator<_Iterator, _Container>& __rhs)
  2793.     { return __lhs.base() < __rhs.base(); }
  2794.  
  2795.   template<typename _IteratorL, typename _IteratorR, typename _Container>
  2796.     inline bool
  2797.     operator>(const __normal_iterator<_IteratorL, _Container>& __lhs,
  2798.        const __normal_iterator<_IteratorR, _Container>& __rhs)
  2799.     { return __lhs.base() > __rhs.base(); }
  2800.  
  2801.   template<typename _Iterator, typename _Container>
  2802.     inline bool
  2803.     operator>(const __normal_iterator<_Iterator, _Container>& __lhs,
  2804.        const __normal_iterator<_Iterator, _Container>& __rhs)
  2805.     { return __lhs.base() > __rhs.base(); }
  2806.  
  2807.   template<typename _IteratorL, typename _IteratorR, typename _Container>
  2808.     inline bool
  2809.     operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs,
  2810.         const __normal_iterator<_IteratorR, _Container>& __rhs)
  2811.     { return __lhs.base() <= __rhs.base(); }
  2812.  
  2813.   template<typename _Iterator, typename _Container>
  2814.     inline bool
  2815.     operator<=(const __normal_iterator<_Iterator, _Container>& __lhs,
  2816.         const __normal_iterator<_Iterator, _Container>& __rhs)
  2817.     { return __lhs.base() <= __rhs.base(); }
  2818.  
  2819.   template<typename _IteratorL, typename _IteratorR, typename _Container>
  2820.     inline bool
  2821.     operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs,
  2822.         const __normal_iterator<_IteratorR, _Container>& __rhs)
  2823.     { return __lhs.base() >= __rhs.base(); }
  2824.  
  2825.   template<typename _Iterator, typename _Container>
  2826.     inline bool
  2827.     operator>=(const __normal_iterator<_Iterator, _Container>& __lhs,
  2828.         const __normal_iterator<_Iterator, _Container>& __rhs)
  2829.     { return __lhs.base() >= __rhs.base(); }
  2830.  
  2831.  
  2832.  
  2833.  
  2834.  
  2835.   template<typename _IteratorL, typename _IteratorR, typename _Container>
  2836.  
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842.  
  2843.     inline typename __normal_iterator<_IteratorL, _Container>::difference_type
  2844.     operator-(const __normal_iterator<_IteratorL, _Container>& __lhs,
  2845.        const __normal_iterator<_IteratorR, _Container>& __rhs)
  2846.  
  2847.     { return __lhs.base() - __rhs.base(); }
  2848.  
  2849.   template<typename _Iterator, typename _Container>
  2850.     inline typename __normal_iterator<_Iterator, _Container>::difference_type
  2851.     operator-(const __normal_iterator<_Iterator, _Container>& __lhs,
  2852.        const __normal_iterator<_Iterator, _Container>& __rhs)
  2853.     { return __lhs.base() - __rhs.base(); }
  2854.  
  2855.   template<typename _Iterator, typename _Container>
  2856.     inline __normal_iterator<_Iterator, _Container>
  2857.     operator+(typename __normal_iterator<_Iterator, _Container>::difference_type
  2858.        __n, const __normal_iterator<_Iterator, _Container>& __i)
  2859.     { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); }
  2860.  
  2861.  
  2862. }
  2863. # 68 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 2 3
  2864.  
  2865.  
  2866.  
  2867.  
  2868. namespace std
  2869. {
  2870.  
  2871.  
  2872.  
  2873.  
  2874.  
  2875.  
  2876.   template<bool _BoolType>
  2877.     struct __iter_swap
  2878.     {
  2879.       template<typename _ForwardIterator1, typename _ForwardIterator2>
  2880.         static void
  2881.         iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
  2882.         {
  2883.           typedef typename iterator_traits<_ForwardIterator1>::value_type
  2884.             _ValueType1;
  2885.           _ValueType1 __tmp = (*__a);
  2886.           *__a = (*__b);
  2887.           *__b = (__tmp);
  2888.  }
  2889.     };
  2890.  
  2891.   template<>
  2892.     struct __iter_swap<true>
  2893.     {
  2894.       template<typename _ForwardIterator1, typename _ForwardIterator2>
  2895.         static void
  2896.         iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
  2897.         {
  2898.           swap(*__a, *__b);
  2899.         }
  2900.     };
  2901. # 117 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 3
  2902.   template<typename _ForwardIterator1, typename _ForwardIterator2>
  2903.     inline void
  2904.     iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
  2905.     {
  2906.  
  2907.      
  2908.  
  2909.      
  2910.  
  2911.  
  2912.  
  2913.       typedef typename iterator_traits<_ForwardIterator1>::value_type
  2914.  _ValueType1;
  2915.       typedef typename iterator_traits<_ForwardIterator2>::value_type
  2916.  _ValueType2;
  2917.  
  2918.      
  2919.  
  2920.      
  2921.  
  2922.  
  2923.       typedef typename iterator_traits<_ForwardIterator1>::reference
  2924.  _ReferenceType1;
  2925.       typedef typename iterator_traits<_ForwardIterator2>::reference
  2926.  _ReferenceType2;
  2927.       std::__iter_swap<__are_same<_ValueType1, _ValueType2>::__value
  2928.  && __are_same<_ValueType1&, _ReferenceType1>::__value
  2929.  && __are_same<_ValueType2&, _ReferenceType2>::__value>::
  2930.  iter_swap(__a, __b);
  2931.  
  2932.  
  2933.  
  2934.     }
  2935. # 163 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 3
  2936.   template<typename _ForwardIterator1, typename _ForwardIterator2>
  2937.     _ForwardIterator2
  2938.     swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
  2939.   _ForwardIterator2 __first2)
  2940.     {
  2941.  
  2942.      
  2943.  
  2944.      
  2945.  
  2946.       ;
  2947.  
  2948.       for (; __first1 != __last1; ++__first1, ++__first2)
  2949.  std::iter_swap(__first1, __first2);
  2950.       return __first2;
  2951.     }
  2952. # 191 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 3
  2953.   template<typename _Tp>
  2954.     inline const _Tp&
  2955.     min(const _Tp& __a, const _Tp& __b)
  2956.     {
  2957.  
  2958.      
  2959.  
  2960.       if (__b < __a)
  2961.  return __b;
  2962.       return __a;
  2963.     }
  2964. # 214 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 3
  2965.   template<typename _Tp>
  2966.     inline const _Tp&
  2967.     max(const _Tp& __a, const _Tp& __b)
  2968.     {
  2969.  
  2970.      
  2971.  
  2972.       if (__a < __b)
  2973.  return __b;
  2974.       return __a;
  2975.     }
  2976. # 237 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 3
  2977.   template<typename _Tp, typename _Compare>
  2978.     inline const _Tp&
  2979.     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
  2980.     {
  2981.  
  2982.       if (__comp(__b, __a))
  2983.  return __b;
  2984.       return __a;
  2985.     }
  2986. # 258 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 3
  2987.   template<typename _Tp, typename _Compare>
  2988.     inline const _Tp&
  2989.     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
  2990.     {
  2991.  
  2992.       if (__comp(__a, __b))
  2993.  return __b;
  2994.       return __a;
  2995.     }
  2996.  
  2997.  
  2998.  
  2999.   template<typename _Iterator>
  3000.     struct _Niter_base
  3001.     : _Iter_base<_Iterator, __is_normal_iterator<_Iterator>::__value>
  3002.     { };
  3003.  
  3004.   template<typename _Iterator>
  3005.     inline typename _Niter_base<_Iterator>::iterator_type
  3006.     __niter_base(_Iterator __it)
  3007.     { return std::_Niter_base<_Iterator>::_S_base(__it); }
  3008.  
  3009.  
  3010.   template<typename _Iterator>
  3011.     struct _Miter_base
  3012.     : _Iter_base<_Iterator, __is_move_iterator<_Iterator>::__value>
  3013.     { };
  3014.  
  3015.   template<typename _Iterator>
  3016.     inline typename _Miter_base<_Iterator>::iterator_type
  3017.     __miter_base(_Iterator __it)
  3018.     { return std::_Miter_base<_Iterator>::_S_base(__it); }
  3019.  
  3020.  
  3021.  
  3022.  
  3023.  
  3024.  
  3025.  
  3026.   template<bool, bool, typename>
  3027.     struct __copy_move
  3028.     {
  3029.       template<typename _II, typename _OI>
  3030.         static _OI
  3031.         __copy_m(_II __first, _II __last, _OI __result)
  3032.         {
  3033.    for (; __first != __last; ++__result, ++__first)
  3034.      *__result = *__first;
  3035.    return __result;
  3036.  }
  3037.     };
  3038. # 325 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 3
  3039.   template<>
  3040.     struct __copy_move<false, false, random_access_iterator_tag>
  3041.     {
  3042.       template<typename _II, typename _OI>
  3043.         static _OI
  3044.         __copy_m(_II __first, _II __last, _OI __result)
  3045.         {
  3046.    typedef typename iterator_traits<_II>::difference_type _Distance;
  3047.    for(_Distance __n = __last - __first; __n > 0; --__n)
  3048.      {
  3049.        *__result = *__first;
  3050.        ++__first;
  3051.        ++__result;
  3052.      }
  3053.    return __result;
  3054.  }
  3055.     };
  3056. # 363 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 3
  3057.   template<bool _IsMove>
  3058.     struct __copy_move<_IsMove, true, random_access_iterator_tag>
  3059.     {
  3060.       template<typename _Tp>
  3061.         static _Tp*
  3062.         __copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result)
  3063.         {
  3064.    const ptrdiff_t _Num = __last - __first;
  3065.    if (_Num)
  3066.      __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
  3067.    return __result + _Num;
  3068.  }
  3069.     };
  3070.  
  3071.   template<bool _IsMove, typename _II, typename _OI>
  3072.     inline _OI
  3073.     __copy_move_a(_II __first, _II __last, _OI __result)
  3074.     {
  3075.       typedef typename iterator_traits<_II>::value_type _ValueTypeI;
  3076.       typedef typename iterator_traits<_OI>::value_type _ValueTypeO;
  3077.       typedef typename iterator_traits<_II>::iterator_category _Category;
  3078.       const bool __simple = (__is_trivial(_ValueTypeI)
  3079.                       && __is_pointer<_II>::__value
  3080.                       && __is_pointer<_OI>::__value
  3081.         && __are_same<_ValueTypeI, _ValueTypeO>::__value);
  3082.  
  3083.       return std::__copy_move<_IsMove, __simple,
  3084.                        _Category>::__copy_m(__first, __last, __result);
  3085.     }
  3086.  
  3087.  
  3088.  
  3089.   template<typename _CharT>
  3090.     struct char_traits;
  3091.  
  3092.   template<typename _CharT, typename _Traits>
  3093.     class istreambuf_iterator;
  3094.  
  3095.   template<typename _CharT, typename _Traits>
  3096.     class ostreambuf_iterator;
  3097.  
  3098.   template<bool _IsMove, typename _CharT>
  3099.     typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
  3100.       ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type
  3101.     __copy_move_a2(_CharT*, _CharT*,
  3102.      ostreambuf_iterator<_CharT, char_traits<_CharT> >);
  3103.  
  3104.   template<bool _IsMove, typename _CharT>
  3105.     typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
  3106.       ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type
  3107.     __copy_move_a2(const _CharT*, const _CharT*,
  3108.      ostreambuf_iterator<_CharT, char_traits<_CharT> >);
  3109.  
  3110.   template<bool _IsMove, typename _CharT>
  3111.     typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
  3112.         _CharT*>::__type
  3113.     __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >,
  3114.      istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*);
  3115.  
  3116.   template<bool _IsMove, typename _II, typename _OI>
  3117.     inline _OI
  3118.     __copy_move_a2(_II __first, _II __last, _OI __result)
  3119.     {
  3120.       return _OI(std::__copy_move_a<_IsMove>(std::__niter_base(__first),
  3121.           std::__niter_base(__last),
  3122.           std::__niter_base(__result)));
  3123.     }
  3124. # 448 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 3
  3125.   template<typename _II, typename _OI>
  3126.     inline _OI
  3127.     copy(_II __first, _II __last, _OI __result)
  3128.     {
  3129.  
  3130.      
  3131.      
  3132.  
  3133.       ;
  3134.  
  3135.       return (std::__copy_move_a2<__is_move_iterator<_II>::__value>
  3136.        (std::__miter_base(__first), std::__miter_base(__last),
  3137.         __result));
  3138.     }
  3139. # 500 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 3
  3140.   template<bool, bool, typename>
  3141.     struct __copy_move_backward
  3142.     {
  3143.       template<typename _BI1, typename _BI2>
  3144.         static _BI2
  3145.         __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result)
  3146.         {
  3147.    while (__first != __last)
  3148.      *--__result = *--__last;
  3149.    return __result;
  3150.  }
  3151.     };
  3152. # 528 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 3
  3153.   template<>
  3154.     struct __copy_move_backward<false, false, random_access_iterator_tag>
  3155.     {
  3156.       template<typename _BI1, typename _BI2>
  3157.         static _BI2
  3158.         __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result)
  3159.         {
  3160.    typename iterator_traits<_BI1>::difference_type __n;
  3161.    for (__n = __last - __first; __n > 0; --__n)
  3162.      *--__result = *--__last;
  3163.    return __result;
  3164.  }
  3165.     };
  3166. # 558 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 3
  3167.   template<bool _IsMove>
  3168.     struct __copy_move_backward<_IsMove, true, random_access_iterator_tag>
  3169.     {
  3170.       template<typename _Tp>
  3171.         static _Tp*
  3172.         __copy_move_b(const _Tp* __first, const _Tp* __last, _Tp* __result)
  3173.         {
  3174.    const ptrdiff_t _Num = __last - __first;
  3175.    if (_Num)
  3176.      __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num);
  3177.    return __result - _Num;
  3178.  }
  3179.     };
  3180.  
  3181.   template<bool _IsMove, typename _BI1, typename _BI2>
  3182.     inline _BI2
  3183.     __copy_move_backward_a(_BI1 __first, _BI1 __last, _BI2 __result)
  3184.     {
  3185.       typedef typename iterator_traits<_BI1>::value_type _ValueType1;
  3186.       typedef typename iterator_traits<_BI2>::value_type _ValueType2;
  3187.       typedef typename iterator_traits<_BI1>::iterator_category _Category;
  3188.       const bool __simple = (__is_trivial(_ValueType1)
  3189.                       && __is_pointer<_BI1>::__value
  3190.                       && __is_pointer<_BI2>::__value
  3191.         && __are_same<_ValueType1, _ValueType2>::__value);
  3192.  
  3193.       return std::__copy_move_backward<_IsMove, __simple,
  3194.                                 _Category>::__copy_move_b(__first,
  3195.          __last,
  3196.          __result);
  3197.     }
  3198.  
  3199.   template<bool _IsMove, typename _BI1, typename _BI2>
  3200.     inline _BI2
  3201.     __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result)
  3202.     {
  3203.       return _BI2(std::__copy_move_backward_a<_IsMove>
  3204.     (std::__niter_base(__first), std::__niter_base(__last),
  3205.      std::__niter_base(__result)));
  3206.     }
  3207. # 617 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 3
  3208.   template<typename _BI1, typename _BI2>
  3209.     inline _BI2
  3210.     copy_backward(_BI1 __first, _BI1 __last, _BI2 __result)
  3211.     {
  3212.  
  3213.      
  3214.      
  3215.      
  3216.  
  3217.  
  3218.       ;
  3219.  
  3220.       return (std::__copy_move_backward_a2<__is_move_iterator<_BI1>::__value>
  3221.        (std::__miter_base(__first), std::__miter_base(__last),
  3222.         __result));
  3223.     }
  3224. # 675 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 3
  3225.   template<typename _ForwardIterator, typename _Tp>
  3226.     inline typename
  3227.     __gnu_cxx::__enable_if<!__is_scalar<_Tp>::__value, void>::__type
  3228.     __fill_a(_ForwardIterator __first, _ForwardIterator __last,
  3229.        const _Tp& __value)
  3230.     {
  3231.       for (; __first != __last; ++__first)
  3232.  *__first = __value;
  3233.     }
  3234.  
  3235.   template<typename _ForwardIterator, typename _Tp>
  3236.     inline typename
  3237.     __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type
  3238.     __fill_a(_ForwardIterator __first, _ForwardIterator __last,
  3239.       const _Tp& __value)
  3240.     {
  3241.       const _Tp __tmp = __value;
  3242.       for (; __first != __last; ++__first)
  3243.  *__first = __tmp;
  3244.     }
  3245.  
  3246.  
  3247.   template<typename _Tp>
  3248.     inline typename
  3249.     __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type
  3250.     __fill_a(_Tp* __first, _Tp* __last, const _Tp& __c)
  3251.     {
  3252.       const _Tp __tmp = __c;
  3253.       __builtin_memset(__first, static_cast<unsigned char>(__tmp),
  3254.          __last - __first);
  3255.     }
  3256. # 719 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 3
  3257.   template<typename _ForwardIterator, typename _Tp>
  3258.     inline void
  3259.     fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value)
  3260.     {
  3261.  
  3262.      
  3263.  
  3264.       ;
  3265.  
  3266.       std::__fill_a(std::__niter_base(__first), std::__niter_base(__last),
  3267.       __value);
  3268.     }
  3269.  
  3270.   template<typename _OutputIterator, typename _Size, typename _Tp>
  3271.     inline typename
  3272.     __gnu_cxx::__enable_if<!__is_scalar<_Tp>::__value, _OutputIterator>::__type
  3273.     __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value)
  3274.     {
  3275.       for (__decltype(__n + 0) __niter = __n;
  3276.     __niter > 0; --__niter, ++__first)
  3277.  *__first = __value;
  3278.       return __first;
  3279.     }
  3280.  
  3281.   template<typename _OutputIterator, typename _Size, typename _Tp>
  3282.     inline typename
  3283.     __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type
  3284.     __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value)
  3285.     {
  3286.       const _Tp __tmp = __value;
  3287.       for (__decltype(__n + 0) __niter = __n;
  3288.     __niter > 0; --__niter, ++__first)
  3289.  *__first = __tmp;
  3290.       return __first;
  3291.     }
  3292.  
  3293.   template<typename _Size, typename _Tp>
  3294.     inline typename
  3295.     __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, _Tp*>::__type
  3296.     __fill_n_a(_Tp* __first, _Size __n, const _Tp& __c)
  3297.     {
  3298.       std::__fill_a(__first, __first + __n, __c);
  3299.       return __first + __n;
  3300.     }
  3301. # 779 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 3
  3302.   template<typename _OI, typename _Size, typename _Tp>
  3303.     inline _OI
  3304.     fill_n(_OI __first, _Size __n, const _Tp& __value)
  3305.     {
  3306.  
  3307.      
  3308.  
  3309.       return _OI(std::__fill_n_a(std::__niter_base(__first), __n, __value));
  3310.     }
  3311.  
  3312.   template<bool _BoolType>
  3313.     struct __equal
  3314.     {
  3315.       template<typename _II1, typename _II2>
  3316.         static bool
  3317.         equal(_II1 __first1, _II1 __last1, _II2 __first2)
  3318.         {
  3319.    for (; __first1 != __last1; ++__first1, ++__first2)
  3320.      if (!(*__first1 == *__first2))
  3321.        return false;
  3322.    return true;
  3323.  }
  3324.     };
  3325.  
  3326.   template<>
  3327.     struct __equal<true>
  3328.     {
  3329.       template<typename _Tp>
  3330.         static bool
  3331.         equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2)
  3332.         {
  3333.    return !__builtin_memcmp(__first1, __first2, sizeof(_Tp)
  3334.        * (__last1 - __first1));
  3335.  }
  3336.     };
  3337.  
  3338.   template<typename _II1, typename _II2>
  3339.     inline bool
  3340.     __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2)
  3341.     {
  3342.       typedef typename iterator_traits<_II1>::value_type _ValueType1;
  3343.       typedef typename iterator_traits<_II2>::value_type _ValueType2;
  3344.       const bool __simple = ((__is_integer<_ValueType1>::__value
  3345.          || __is_pointer<_ValueType1>::__value)
  3346.                       && __is_pointer<_II1>::__value
  3347.                       && __is_pointer<_II2>::__value
  3348.         && __are_same<_ValueType1, _ValueType2>::__value);
  3349.  
  3350.       return std::__equal<__simple>::equal(__first1, __last1, __first2);
  3351.     }
  3352.  
  3353.  
  3354.   template<typename, typename>
  3355.     struct __lc_rai
  3356.     {
  3357.       template<typename _II1, typename _II2>
  3358.         static _II1
  3359.         __newlast1(_II1, _II1 __last1, _II2, _II2)
  3360.         { return __last1; }
  3361.  
  3362.       template<typename _II>
  3363.         static bool
  3364.         __cnd2(_II __first, _II __last)
  3365.         { return __first != __last; }
  3366.     };
  3367.  
  3368.   template<>
  3369.     struct __lc_rai<random_access_iterator_tag, random_access_iterator_tag>
  3370.     {
  3371.       template<typename _RAI1, typename _RAI2>
  3372.         static _RAI1
  3373.         __newlast1(_RAI1 __first1, _RAI1 __last1,
  3374.      _RAI2 __first2, _RAI2 __last2)
  3375.         {
  3376.    const typename iterator_traits<_RAI1>::difference_type
  3377.      __diff1 = __last1 - __first1;
  3378.    const typename iterator_traits<_RAI2>::difference_type
  3379.      __diff2 = __last2 - __first2;
  3380.    return __diff2 < __diff1 ? __first1 + __diff2 : __last1;
  3381.  }
  3382.  
  3383.       template<typename _RAI>
  3384.         static bool
  3385.         __cnd2(_RAI, _RAI)
  3386.         { return true; }
  3387.     };
  3388.  
  3389.   template<bool _BoolType>
  3390.     struct __lexicographical_compare
  3391.     {
  3392.       template<typename _II1, typename _II2>
  3393.         static bool __lc(_II1, _II1, _II2, _II2);
  3394.     };
  3395.  
  3396.   template<bool _BoolType>
  3397.     template<typename _II1, typename _II2>
  3398.       bool
  3399.       __lexicographical_compare<_BoolType>::
  3400.       __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2)
  3401.       {
  3402.  typedef typename iterator_traits<_II1>::iterator_category _Category1;
  3403.  typedef typename iterator_traits<_II2>::iterator_category _Category2;
  3404.  typedef std::__lc_rai<_Category1, _Category2> __rai_type;
  3405.  
  3406.  __last1 = __rai_type::__newlast1(__first1, __last1,
  3407.       __first2, __last2);
  3408.  for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2);
  3409.       ++__first1, ++__first2)
  3410.    {
  3411.      if (*__first1 < *__first2)
  3412.        return true;
  3413.      if (*__first2 < *__first1)
  3414.        return false;
  3415.    }
  3416.  return __first1 == __last1 && __first2 != __last2;
  3417.       }
  3418.  
  3419.   template<>
  3420.     struct __lexicographical_compare<true>
  3421.     {
  3422.       template<typename _Tp, typename _Up>
  3423.         static bool
  3424.         __lc(const _Tp* __first1, const _Tp* __last1,
  3425.       const _Up* __first2, const _Up* __last2)
  3426.  {
  3427.    const size_t __len1 = __last1 - __first1;
  3428.    const size_t __len2 = __last2 - __first2;
  3429.    const int __result = __builtin_memcmp(__first1, __first2,
  3430.       std::min(__len1, __len2));
  3431.    return __result != 0 ? __result < 0 : __len1 < __len2;
  3432.  }
  3433.     };
  3434.  
  3435.   template<typename _II1, typename _II2>
  3436.     inline bool
  3437.     __lexicographical_compare_aux(_II1 __first1, _II1 __last1,
  3438.       _II2 __first2, _II2 __last2)
  3439.     {
  3440.       typedef typename iterator_traits<_II1>::value_type _ValueType1;
  3441.       typedef typename iterator_traits<_II2>::value_type _ValueType2;
  3442.       const bool __simple =
  3443.  (__is_byte<_ValueType1>::__value && __is_byte<_ValueType2>::__value
  3444.   && !__gnu_cxx::__numeric_traits<_ValueType1>::__is_signed
  3445.   && !__gnu_cxx::__numeric_traits<_ValueType2>::__is_signed
  3446.   && __is_pointer<_II1>::__value
  3447.   && __is_pointer<_II2>::__value);
  3448.  
  3449.       return std::__lexicographical_compare<__simple>::__lc(__first1, __last1,
  3450.            __first2, __last2);
  3451.     }
  3452. # 941 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 3
  3453.   template<typename _ForwardIterator, typename _Tp>
  3454.     _ForwardIterator
  3455.     lower_bound(_ForwardIterator __first, _ForwardIterator __last,
  3456.   const _Tp& __val)
  3457.     {
  3458.  
  3459.  
  3460.  
  3461.  
  3462.       typedef typename iterator_traits<_ForwardIterator>::difference_type
  3463.  _DistanceType;
  3464.  
  3465.  
  3466.      
  3467.      
  3468.       ;
  3469.  
  3470.       _DistanceType __len = std::distance(__first, __last);
  3471.  
  3472.       while (__len > 0)
  3473.  {
  3474.    _DistanceType __half = __len >> 1;
  3475.    _ForwardIterator __middle = __first;
  3476.    std::advance(__middle, __half);
  3477.    if (*__middle < __val)
  3478.      {
  3479.        __first = __middle;
  3480.        ++__first;
  3481.        __len = __len - __half - 1;
  3482.      }
  3483.    else
  3484.      __len = __half;
  3485.  }
  3486.       return __first;
  3487.     }
  3488.  
  3489.  
  3490.  
  3491.   inline int
  3492.   __lg(int __n)
  3493.   { return sizeof(int) * 8 - 1 - __builtin_clz(__n); }
  3494.  
  3495.   inline unsigned
  3496.   __lg(unsigned __n)
  3497.   { return sizeof(int) * 8 - 1 - __builtin_clz(__n); }
  3498.  
  3499.   inline long
  3500.   __lg(long __n)
  3501.   { return sizeof(long) * 8 - 1 - __builtin_clzl(__n); }
  3502.  
  3503.   inline unsigned long
  3504.   __lg(unsigned long __n)
  3505.   { return sizeof(long) * 8 - 1 - __builtin_clzl(__n); }
  3506.  
  3507.   inline long long
  3508.   __lg(long long __n)
  3509.   { return sizeof(long long) * 8 - 1 - __builtin_clzll(__n); }
  3510.  
  3511.   inline unsigned long long
  3512.   __lg(unsigned long long __n)
  3513.   { return sizeof(long long) * 8 - 1 - __builtin_clzll(__n); }
  3514.  
  3515.  
  3516.  
  3517.  
  3518. # 1019 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 3
  3519.   template<typename _II1, typename _II2>
  3520.     inline bool
  3521.     equal(_II1 __first1, _II1 __last1, _II2 __first2)
  3522.     {
  3523.  
  3524.      
  3525.      
  3526.      
  3527.  
  3528.  
  3529.       ;
  3530.  
  3531.       return std::__equal_aux(std::__niter_base(__first1),
  3532.          std::__niter_base(__last1),
  3533.          std::__niter_base(__first2));
  3534.     }
  3535. # 1051 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 3
  3536.   template<typename _IIter1, typename _IIter2, typename _BinaryPredicate>
  3537.     inline bool
  3538.     equal(_IIter1 __first1, _IIter1 __last1,
  3539.    _IIter2 __first2, _BinaryPredicate __binary_pred)
  3540.     {
  3541.  
  3542.      
  3543.      
  3544.       ;
  3545.  
  3546.       for (; __first1 != __last1; ++__first1, ++__first2)
  3547.  if (!bool(__binary_pred(*__first1, *__first2)))
  3548.    return false;
  3549.       return true;
  3550.     }
  3551. # 1082 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 3
  3552.   template<typename _II1, typename _II2>
  3553.     inline bool
  3554.     lexicographical_compare(_II1 __first1, _II1 __last1,
  3555.        _II2 __first2, _II2 __last2)
  3556.     {
  3557.  
  3558.  
  3559.  
  3560.  
  3561.  
  3562.      
  3563.      
  3564.      
  3565.      
  3566.       ;
  3567.       ;
  3568.  
  3569.       return std::__lexicographical_compare_aux(std::__niter_base(__first1),
  3570.       std::__niter_base(__last1),
  3571.       std::__niter_base(__first2),
  3572.       std::__niter_base(__last2));
  3573.     }
  3574. # 1118 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 3
  3575.   template<typename _II1, typename _II2, typename _Compare>
  3576.     bool
  3577.     lexicographical_compare(_II1 __first1, _II1 __last1,
  3578.        _II2 __first2, _II2 __last2, _Compare __comp)
  3579.     {
  3580.       typedef typename iterator_traits<_II1>::iterator_category _Category1;
  3581.       typedef typename iterator_traits<_II2>::iterator_category _Category2;
  3582.       typedef std::__lc_rai<_Category1, _Category2> __rai_type;
  3583.  
  3584.  
  3585.      
  3586.      
  3587.       ;
  3588.       ;
  3589.  
  3590.       __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2);
  3591.       for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2);
  3592.     ++__first1, ++__first2)
  3593.  {
  3594.    if (__comp(*__first1, *__first2))
  3595.      return true;
  3596.    if (__comp(*__first2, *__first1))
  3597.      return false;
  3598.  }
  3599.       return __first1 == __last1 && __first2 != __last2;
  3600.     }
  3601. # 1158 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 3
  3602.   template<typename _InputIterator1, typename _InputIterator2>
  3603.     pair<_InputIterator1, _InputIterator2>
  3604.     mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
  3605.       _InputIterator2 __first2)
  3606.     {
  3607.  
  3608.      
  3609.      
  3610.      
  3611.  
  3612.  
  3613.       ;
  3614.  
  3615.       while (__first1 != __last1 && *__first1 == *__first2)
  3616.         {
  3617.    ++__first1;
  3618.    ++__first2;
  3619.         }
  3620.       return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
  3621.     }
  3622. # 1195 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_algobase.h" 3
  3623.   template<typename _InputIterator1, typename _InputIterator2,
  3624.     typename _BinaryPredicate>
  3625.     pair<_InputIterator1, _InputIterator2>
  3626.     mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
  3627.       _InputIterator2 __first2, _BinaryPredicate __binary_pred)
  3628.     {
  3629.  
  3630.      
  3631.      
  3632.       ;
  3633.  
  3634.       while (__first1 != __last1 && bool(__binary_pred(*__first1, *__first2)))
  3635.         {
  3636.    ++__first1;
  3637.    ++__first2;
  3638.         }
  3639.       return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
  3640.     }
  3641.  
  3642.  
  3643. }
  3644. # 40 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/char_traits.h" 2 3
  3645.  
  3646. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cwchar" 1 3
  3647. # 39 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cwchar" 3
  3648.        
  3649. # 40 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cwchar" 3
  3650. # 42 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/char_traits.h" 2 3
  3651.  
  3652. namespace __gnu_cxx
  3653. {
  3654.  
  3655. # 57 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/char_traits.h" 3
  3656.   template<typename _CharT>
  3657.     struct _Char_types
  3658.     {
  3659.       typedef unsigned long int_type;
  3660.       typedef std::streampos pos_type;
  3661.       typedef std::streamoff off_type;
  3662.       typedef std::mbstate_t state_type;
  3663.     };
  3664. # 82 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/char_traits.h" 3
  3665.   template<typename _CharT>
  3666.     struct char_traits
  3667.     {
  3668.       typedef _CharT char_type;
  3669.       typedef typename _Char_types<_CharT>::int_type int_type;
  3670.       typedef typename _Char_types<_CharT>::pos_type pos_type;
  3671.       typedef typename _Char_types<_CharT>::off_type off_type;
  3672.       typedef typename _Char_types<_CharT>::state_type state_type;
  3673.  
  3674.       static void
  3675.       assign(char_type& __c1, const char_type& __c2)
  3676.       { __c1 = __c2; }
  3677.  
  3678.       static bool
  3679.       eq(const char_type& __c1, const char_type& __c2)
  3680.       { return __c1 == __c2; }
  3681.  
  3682.       static bool
  3683.       lt(const char_type& __c1, const char_type& __c2)
  3684.       { return __c1 < __c2; }
  3685.  
  3686.       static int
  3687.       compare(const char_type* __s1, const char_type* __s2, std::size_t __n);
  3688.  
  3689.       static std::size_t
  3690.       length(const char_type* __s);
  3691.  
  3692.       static const char_type*
  3693.       find(const char_type* __s, std::size_t __n, const char_type& __a);
  3694.  
  3695.       static char_type*
  3696.       move(char_type* __s1, const char_type* __s2, std::size_t __n);
  3697.  
  3698.       static char_type*
  3699.       copy(char_type* __s1, const char_type* __s2, std::size_t __n);
  3700.  
  3701.       static char_type*
  3702.       assign(char_type* __s, std::size_t __n, char_type __a);
  3703.  
  3704.       static char_type
  3705.       to_char_type(const int_type& __c)
  3706.       { return static_cast<char_type>(__c); }
  3707.  
  3708.       static int_type
  3709.       to_int_type(const char_type& __c)
  3710.       { return static_cast<int_type>(__c); }
  3711.  
  3712.       static bool
  3713.       eq_int_type(const int_type& __c1, const int_type& __c2)
  3714.       { return __c1 == __c2; }
  3715.  
  3716.       static int_type
  3717.       eof()
  3718.       { return static_cast<int_type>(-1); }
  3719.  
  3720.       static int_type
  3721.       not_eof(const int_type& __c)
  3722.       { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); }
  3723.     };
  3724.  
  3725.   template<typename _CharT>
  3726.     int
  3727.     char_traits<_CharT>::
  3728.     compare(const char_type* __s1, const char_type* __s2, std::size_t __n)
  3729.     {
  3730.       for (std::size_t __i = 0; __i < __n; ++__i)
  3731.  if (lt(__s1[__i], __s2[__i]))
  3732.    return -1;
  3733.  else if (lt(__s2[__i], __s1[__i]))
  3734.    return 1;
  3735.       return 0;
  3736.     }
  3737.  
  3738.   template<typename _CharT>
  3739.     std::size_t
  3740.     char_traits<_CharT>::
  3741.     length(const char_type* __p)
  3742.     {
  3743.       std::size_t __i = 0;
  3744.       while (!eq(__p[__i], char_type()))
  3745.         ++__i;
  3746.       return __i;
  3747.     }
  3748.  
  3749.   template<typename _CharT>
  3750.     const typename char_traits<_CharT>::char_type*
  3751.     char_traits<_CharT>::
  3752.     find(const char_type* __s, std::size_t __n, const char_type& __a)
  3753.     {
  3754.       for (std::size_t __i = 0; __i < __n; ++__i)
  3755.         if (eq(__s[__i], __a))
  3756.           return __s + __i;
  3757.       return 0;
  3758.     }
  3759.  
  3760.   template<typename _CharT>
  3761.     typename char_traits<_CharT>::char_type*
  3762.     char_traits<_CharT>::
  3763.     move(char_type* __s1, const char_type* __s2, std::size_t __n)
  3764.     {
  3765.       return static_cast<_CharT*>(__builtin_memmove(__s1, __s2,
  3766.           __n * sizeof(char_type)));
  3767.     }
  3768.  
  3769.   template<typename _CharT>
  3770.     typename char_traits<_CharT>::char_type*
  3771.     char_traits<_CharT>::
  3772.     copy(char_type* __s1, const char_type* __s2, std::size_t __n)
  3773.     {
  3774.  
  3775.       std::copy(__s2, __s2 + __n, __s1);
  3776.       return __s1;
  3777.     }
  3778.  
  3779.   template<typename _CharT>
  3780.     typename char_traits<_CharT>::char_type*
  3781.     char_traits<_CharT>::
  3782.     assign(char_type* __s, std::size_t __n, char_type __a)
  3783.     {
  3784.  
  3785.       std::fill_n(__s, __n, __a);
  3786.       return __s;
  3787.     }
  3788.  
  3789.  
  3790. }
  3791.  
  3792. namespace std
  3793. {
  3794.  
  3795. # 226 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/char_traits.h" 3
  3796.   template<class _CharT>
  3797.     struct char_traits : public __gnu_cxx::char_traits<_CharT>
  3798.     { };
  3799.  
  3800.  
  3801.  
  3802.   template<>
  3803.     struct char_traits<char>
  3804.     {
  3805.       typedef char char_type;
  3806.       typedef int int_type;
  3807.       typedef streampos pos_type;
  3808.       typedef streamoff off_type;
  3809.       typedef mbstate_t state_type;
  3810.  
  3811.       static void
  3812.       assign(char_type& __c1, const char_type& __c2)
  3813.       { __c1 = __c2; }
  3814.  
  3815.       static bool
  3816.       eq(const char_type& __c1, const char_type& __c2)
  3817.       { return __c1 == __c2; }
  3818.  
  3819.       static bool
  3820.       lt(const char_type& __c1, const char_type& __c2)
  3821.       { return __c1 < __c2; }
  3822.  
  3823.       static int
  3824.       compare(const char_type* __s1, const char_type* __s2, size_t __n)
  3825.       { return __builtin_memcmp(__s1, __s2, __n); }
  3826.  
  3827.       static size_t
  3828.       length(const char_type* __s)
  3829.       { return __builtin_strlen(__s); }
  3830.  
  3831.       static const char_type*
  3832.       find(const char_type* __s, size_t __n, const char_type& __a)
  3833.       { return static_cast<const char_type*>(__builtin_memchr(__s, __a, __n)); }
  3834.  
  3835.       static char_type*
  3836.       move(char_type* __s1, const char_type* __s2, size_t __n)
  3837.       { return static_cast<char_type*>(__builtin_memmove(__s1, __s2, __n)); }
  3838.  
  3839.       static char_type*
  3840.       copy(char_type* __s1, const char_type* __s2, size_t __n)
  3841.       { return static_cast<char_type*>(__builtin_memcpy(__s1, __s2, __n)); }
  3842.  
  3843.       static char_type*
  3844.       assign(char_type* __s, size_t __n, char_type __a)
  3845.       { return static_cast<char_type*>(__builtin_memset(__s, __a, __n)); }
  3846.  
  3847.       static char_type
  3848.       to_char_type(const int_type& __c)
  3849.       { return static_cast<char_type>(__c); }
  3850.  
  3851.  
  3852.  
  3853.       static int_type
  3854.       to_int_type(const char_type& __c)
  3855.       { return static_cast<int_type>(static_cast<unsigned char>(__c)); }
  3856.  
  3857.       static bool
  3858.       eq_int_type(const int_type& __c1, const int_type& __c2)
  3859.       { return __c1 == __c2; }
  3860.  
  3861.       static int_type
  3862.       eof()
  3863.       { return static_cast<int_type>(-1); }
  3864.  
  3865.       static int_type
  3866.       not_eof(const int_type& __c)
  3867.       { return (__c == eof()) ? 0 : __c; }
  3868.   };
  3869.  
  3870.  
  3871.  
  3872.  
  3873.   template<>
  3874.     struct char_traits<wchar_t>
  3875.     {
  3876.       typedef wchar_t char_type;
  3877.       typedef wint_t int_type;
  3878.       typedef streamoff off_type;
  3879.       typedef wstreampos pos_type;
  3880.       typedef mbstate_t state_type;
  3881.  
  3882.       static void
  3883.       assign(char_type& __c1, const char_type& __c2)
  3884.       { __c1 = __c2; }
  3885.  
  3886.       static bool
  3887.       eq(const char_type& __c1, const char_type& __c2)
  3888.       { return __c1 == __c2; }
  3889.  
  3890.       static bool
  3891.       lt(const char_type& __c1, const char_type& __c2)
  3892.       { return __c1 < __c2; }
  3893.  
  3894.       static int
  3895.       compare(const char_type* __s1, const char_type* __s2, size_t __n)
  3896.       { return wmemcmp(__s1, __s2, __n); }
  3897.  
  3898.       static size_t
  3899.       length(const char_type* __s)
  3900.       { return wcslen(__s); }
  3901.  
  3902.       static const char_type*
  3903.       find(const char_type* __s, size_t __n, const char_type& __a)
  3904.       { return wmemchr(__s, __a, __n); }
  3905.  
  3906.       static char_type*
  3907.       move(char_type* __s1, const char_type* __s2, size_t __n)
  3908.       { return wmemmove(__s1, __s2, __n); }
  3909.  
  3910.       static char_type*
  3911.       copy(char_type* __s1, const char_type* __s2, size_t __n)
  3912.       { return wmemcpy(__s1, __s2, __n); }
  3913.  
  3914.       static char_type*
  3915.       assign(char_type* __s, size_t __n, char_type __a)
  3916.       { return wmemset(__s, __a, __n); }
  3917.  
  3918.       static char_type
  3919.       to_char_type(const int_type& __c)
  3920.       { return char_type(__c); }
  3921.  
  3922.       static int_type
  3923.       to_int_type(const char_type& __c)
  3924.       { return int_type(__c); }
  3925.  
  3926.       static bool
  3927.       eq_int_type(const int_type& __c1, const int_type& __c2)
  3928.       { return __c1 == __c2; }
  3929.  
  3930.       static int_type
  3931.       eof()
  3932.       { return static_cast<int_type>(((wint_t)-1)); }
  3933.  
  3934.       static int_type
  3935.       not_eof(const int_type& __c)
  3936.       { return eq_int_type(__c, eof()) ? 0 : __c; }
  3937.   };
  3938.  
  3939.  
  3940.  
  3941. }
  3942. # 41 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ios" 2 3
  3943. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/localefwd.h" 1 3
  3944. # 37 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/localefwd.h" 3
  3945.        
  3946. # 38 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/localefwd.h" 3
  3947.  
  3948.  
  3949. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/c++locale.h" 1 3
  3950. # 39 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/c++locale.h" 3
  3951.        
  3952. # 40 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/c++locale.h" 3
  3953.  
  3954. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/clocale" 1 3
  3955. # 39 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/clocale" 3
  3956.        
  3957. # 40 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/clocale" 3
  3958.  
  3959.  
  3960. # 1 "/usr/include/locale.h" 1 3 4
  3961. # 10 "/usr/include/locale.h" 3 4
  3962. # 1 "/usr/include/_ansi.h" 1 3 4
  3963. # 11 "/usr/include/locale.h" 2 3 4
  3964.  
  3965.  
  3966. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/stddef.h" 1 3 4
  3967. # 14 "/usr/include/locale.h" 2 3 4
  3968. # 23 "/usr/include/locale.h" 3 4
  3969. extern "C" {
  3970.  
  3971. struct lconv
  3972. {
  3973.   char *decimal_point;
  3974.   char *thousands_sep;
  3975.   char *grouping;
  3976.   char *int_curr_symbol;
  3977.   char *currency_symbol;
  3978.   char *mon_decimal_point;
  3979.   char *mon_thousands_sep;
  3980.   char *mon_grouping;
  3981.   char *positive_sign;
  3982.   char *negative_sign;
  3983.   char int_frac_digits;
  3984.   char frac_digits;
  3985.   char p_cs_precedes;
  3986.   char p_sep_by_space;
  3987.   char n_cs_precedes;
  3988.   char n_sep_by_space;
  3989.   char p_sign_posn;
  3990.   char n_sign_posn;
  3991.   char int_n_cs_precedes;
  3992.   char int_n_sep_by_space;
  3993.   char int_n_sign_posn;
  3994.   char int_p_cs_precedes;
  3995.   char int_p_sep_by_space;
  3996.   char int_p_sign_posn;
  3997. };
  3998.  
  3999.  
  4000. char *__attribute__((__cdecl__)) setlocale (int category, const char *locale);
  4001. struct lconv *__attribute__((__cdecl__)) localeconv (void);
  4002.  
  4003.  
  4004. struct _reent;
  4005. char *__attribute__((__cdecl__)) _setlocale_r (struct _reent *, int category, const char *locale);
  4006. struct lconv *__attribute__((__cdecl__)) _localeconv_r (struct _reent *);
  4007.  
  4008. }
  4009. # 43 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/clocale" 2 3
  4010. # 51 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/clocale" 3
  4011. namespace std
  4012. {
  4013.   using ::lconv;
  4014.   using ::setlocale;
  4015.   using ::localeconv;
  4016. }
  4017. # 42 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/c++locale.h" 2 3
  4018.  
  4019.  
  4020.  
  4021. namespace std
  4022. {
  4023.  
  4024.  
  4025.   typedef int* __c_locale;
  4026.  
  4027.  
  4028.  
  4029.  
  4030.  
  4031.   inline int
  4032.   __convert_from_v(const __c_locale&, char* __out,
  4033.      const int __size __attribute__((__unused__)),
  4034.      const char* __fmt, ...)
  4035.   {
  4036.     char* __old = std::setlocale(4, 0);
  4037.     char* __sav = 0;
  4038.     if (__builtin_strcmp(__old, "C"))
  4039.       {
  4040.  const size_t __len = __builtin_strlen(__old) + 1;
  4041.  __sav = new char[__len];
  4042.  __builtin_memcpy(__sav, __old, __len);
  4043.  std::setlocale(4, "C");
  4044.       }
  4045.  
  4046.     __builtin_va_list __args;
  4047.     __builtin_va_start(__args, __fmt);
  4048.  
  4049.  
  4050.  
  4051.  
  4052.     const int __ret = __builtin_vsprintf(__out, __fmt, __args);
  4053.  
  4054.  
  4055.     __builtin_va_end(__args);
  4056.  
  4057.     if (__sav)
  4058.       {
  4059.  std::setlocale(4, __sav);
  4060.  delete [] __sav;
  4061.       }
  4062.     return __ret;
  4063.   }
  4064.  
  4065.  
  4066. }
  4067. # 41 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/localefwd.h" 2 3
  4068.  
  4069. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cctype" 1 3
  4070. # 39 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cctype" 3
  4071.        
  4072. # 40 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cctype" 3
  4073.  
  4074.  
  4075. # 1 "/usr/include/ctype.h" 1 3 4
  4076.  
  4077.  
  4078.  
  4079.  
  4080.  
  4081. extern "C" {
  4082.  
  4083. int __attribute__((__cdecl__)) isalnum (int __c);
  4084. int __attribute__((__cdecl__)) isalpha (int __c);
  4085. int __attribute__((__cdecl__)) iscntrl (int __c);
  4086. int __attribute__((__cdecl__)) isdigit (int __c);
  4087. int __attribute__((__cdecl__)) isgraph (int __c);
  4088. int __attribute__((__cdecl__)) islower (int __c);
  4089. int __attribute__((__cdecl__)) isprint (int __c);
  4090. int __attribute__((__cdecl__)) ispunct (int __c);
  4091. int __attribute__((__cdecl__)) isspace (int __c);
  4092. int __attribute__((__cdecl__)) isupper (int __c);
  4093. int __attribute__((__cdecl__)) isxdigit (int __c);
  4094. int __attribute__((__cdecl__)) tolower (int __c);
  4095. int __attribute__((__cdecl__)) toupper (int __c);
  4096.  
  4097.  
  4098. int __attribute__((__cdecl__)) isblank (int __c);
  4099.  
  4100.  
  4101.  
  4102. int __attribute__((__cdecl__)) isascii (int __c);
  4103. int __attribute__((__cdecl__)) toascii (int __c);
  4104. # 45 "/usr/include/ctype.h" 3 4
  4105. extern __attribute__((dllimport)) char *__ctype_ptr__;
  4106. # 109 "/usr/include/ctype.h" 3 4
  4107. extern __attribute__((dllimport)) const char _ctype_[];
  4108.  
  4109. }
  4110. # 43 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cctype" 2 3
  4111. # 62 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cctype" 3
  4112. namespace std
  4113. {
  4114.   using ::isalnum;
  4115.   using ::isalpha;
  4116.   using ::iscntrl;
  4117.   using ::isdigit;
  4118.   using ::isgraph;
  4119.   using ::islower;
  4120.   using ::isprint;
  4121.   using ::ispunct;
  4122.   using ::isspace;
  4123.   using ::isupper;
  4124.   using ::isxdigit;
  4125.   using ::tolower;
  4126.   using ::toupper;
  4127. }
  4128. # 43 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/localefwd.h" 2 3
  4129.  
  4130. namespace std
  4131. {
  4132.  
  4133. # 55 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/localefwd.h" 3
  4134.   class locale;
  4135.  
  4136.   template<typename _Facet>
  4137.     bool
  4138.     has_facet(const locale&) throw();
  4139.  
  4140.   template<typename _Facet>
  4141.     const _Facet&
  4142.     use_facet(const locale&);
  4143.  
  4144.  
  4145.   template<typename _CharT>
  4146.     bool
  4147.     isspace(_CharT, const locale&);
  4148.  
  4149.   template<typename _CharT>
  4150.     bool
  4151.     isprint(_CharT, const locale&);
  4152.  
  4153.   template<typename _CharT>
  4154.     bool
  4155.     iscntrl(_CharT, const locale&);
  4156.  
  4157.   template<typename _CharT>
  4158.     bool
  4159.     isupper(_CharT, const locale&);
  4160.  
  4161.   template<typename _CharT>
  4162.     bool
  4163.     islower(_CharT, const locale&);
  4164.  
  4165.   template<typename _CharT>
  4166.     bool
  4167.     isalpha(_CharT, const locale&);
  4168.  
  4169.   template<typename _CharT>
  4170.     bool
  4171.     isdigit(_CharT, const locale&);
  4172.  
  4173.   template<typename _CharT>
  4174.     bool
  4175.     ispunct(_CharT, const locale&);
  4176.  
  4177.   template<typename _CharT>
  4178.     bool
  4179.     isxdigit(_CharT, const locale&);
  4180.  
  4181.   template<typename _CharT>
  4182.     bool
  4183.     isalnum(_CharT, const locale&);
  4184.  
  4185.   template<typename _CharT>
  4186.     bool
  4187.     isgraph(_CharT, const locale&);
  4188.  
  4189.   template<typename _CharT>
  4190.     _CharT
  4191.     toupper(_CharT, const locale&);
  4192.  
  4193.   template<typename _CharT>
  4194.     _CharT
  4195.     tolower(_CharT, const locale&);
  4196.  
  4197.  
  4198.   class ctype_base;
  4199.   template<typename _CharT>
  4200.     class ctype;
  4201.   template<> class ctype<char>;
  4202.  
  4203.   template<> class ctype<wchar_t>;
  4204.  
  4205.   template<typename _CharT>
  4206.     class ctype_byname;
  4207.  
  4208.  
  4209.   class codecvt_base;
  4210.   template<typename _InternT, typename _ExternT, typename _StateT>
  4211.     class codecvt;
  4212.   template<> class codecvt<char, char, mbstate_t>;
  4213.  
  4214.   template<> class codecvt<wchar_t, char, mbstate_t>;
  4215.  
  4216.   template<typename _InternT, typename _ExternT, typename _StateT>
  4217.     class codecvt_byname;
  4218.  
  4219.  
  4220.  
  4221.   template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
  4222.     class num_get;
  4223.   template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
  4224.     class num_put;
  4225.  
  4226.   template<typename _CharT> class numpunct;
  4227.   template<typename _CharT> class numpunct_byname;
  4228.  
  4229.  
  4230.   template<typename _CharT>
  4231.     class collate;
  4232.   template<typename _CharT> class
  4233.     collate_byname;
  4234.  
  4235.  
  4236.   class time_base;
  4237.   template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
  4238.     class time_get;
  4239.   template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
  4240.     class time_get_byname;
  4241.   template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
  4242.     class time_put;
  4243.   template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
  4244.     class time_put_byname;
  4245.  
  4246.  
  4247.   class money_base;
  4248.  
  4249.   template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
  4250.     class money_get;
  4251.   template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
  4252.     class money_put;
  4253.  
  4254.   template<typename _CharT, bool _Intl = false>
  4255.     class moneypunct;
  4256.   template<typename _CharT, bool _Intl = false>
  4257.     class moneypunct_byname;
  4258.  
  4259.  
  4260.   class messages_base;
  4261.   template<typename _CharT>
  4262.     class messages;
  4263.   template<typename _CharT>
  4264.     class messages_byname;
  4265.  
  4266.  
  4267. }
  4268. # 42 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ios" 2 3
  4269. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ios_base.h" 1 3
  4270. # 37 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ios_base.h" 3
  4271.        
  4272. # 38 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ios_base.h" 3
  4273.  
  4274. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ext/atomicity.h" 1 3
  4275. # 32 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ext/atomicity.h" 3
  4276.        
  4277. # 33 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ext/atomicity.h" 3
  4278.  
  4279.  
  4280. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/gthr.h" 1 3
  4281. # 30 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/gthr.h" 3
  4282. #pragma GCC visibility push(default)
  4283. # 148 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/gthr.h" 3
  4284. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/gthr-default.h" 1 3
  4285. # 35 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/gthr-default.h" 3
  4286. # 1 "/usr/include/pthread.h" 1 3 4
  4287. # 14 "/usr/include/pthread.h" 3 4
  4288. # 1 "/usr/include/sys/types.h" 1 3 4
  4289. # 69 "/usr/include/sys/types.h" 3 4
  4290. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/stddef.h" 1 3 4
  4291. # 70 "/usr/include/sys/types.h" 2 3 4
  4292. # 1 "/usr/include/machine/types.h" 1 3 4
  4293. # 19 "/usr/include/machine/types.h" 3 4
  4294. typedef long int __off_t;
  4295. typedef int __pid_t;
  4296.  
  4297. __extension__ typedef long long int __loff_t;
  4298. # 71 "/usr/include/sys/types.h" 2 3 4
  4299. # 93 "/usr/include/sys/types.h" 3 4
  4300. typedef unsigned char u_char;
  4301.  
  4302.  
  4303.  
  4304. typedef unsigned short u_short;
  4305.  
  4306.  
  4307.  
  4308. typedef unsigned int u_int;
  4309.  
  4310.  
  4311.  
  4312. typedef unsigned long u_long;
  4313.  
  4314.  
  4315.  
  4316.  
  4317.  
  4318. typedef unsigned short ushort;
  4319. typedef unsigned int uint;
  4320. typedef unsigned long ulong;
  4321.  
  4322.  
  4323.  
  4324. typedef unsigned long clock_t;
  4325.  
  4326.  
  4327.  
  4328.  
  4329. typedef long time_t;
  4330.  
  4331.  
  4332.  
  4333.  
  4334.  
  4335.  
  4336.  
  4337. struct timespec {
  4338.   time_t tv_sec;
  4339.   long tv_nsec;
  4340. };
  4341.  
  4342.  
  4343. struct itimerspec {
  4344.   struct timespec it_interval;
  4345.   struct timespec it_value;
  4346. };
  4347.  
  4348.  
  4349. typedef long daddr_t;
  4350.  
  4351.  
  4352.  
  4353. typedef char * caddr_t;
  4354. # 193 "/usr/include/sys/types.h" 3 4
  4355. typedef int pid_t;
  4356. # 203 "/usr/include/sys/types.h" 3 4
  4357. typedef _ssize_t ssize_t;
  4358. # 222 "/usr/include/sys/types.h" 3 4
  4359. typedef unsigned short nlink_t;
  4360. # 244 "/usr/include/sys/types.h" 3 4
  4361. typedef long fd_mask;
  4362.  
  4363.  
  4364.  
  4365.  
  4366.  
  4367.  
  4368.  
  4369. typedef struct _types_fd_set {
  4370.  fd_mask fds_bits[(((64)+(((sizeof (fd_mask) * 8))-1))/((sizeof (fd_mask) * 8)))];
  4371. } _types_fd_set;
  4372. # 275 "/usr/include/sys/types.h" 3 4
  4373. typedef unsigned long clockid_t;
  4374.  
  4375.  
  4376.  
  4377.  
  4378. typedef unsigned long timer_t;
  4379.  
  4380.  
  4381.  
  4382. typedef unsigned long useconds_t;
  4383. typedef long suseconds_t;
  4384. # 481 "/usr/include/sys/types.h" 3 4
  4385. # 1 "/usr/include/cygwin/types.h" 1 3 4
  4386. # 16 "/usr/include/cygwin/types.h" 3 4
  4387. extern "C"
  4388. {
  4389.  
  4390.  
  4391. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/stdint.h" 1 3 4
  4392. # 9 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/stdint.h" 3 4
  4393. # 1 "/usr/include/stdint.h" 1 3 4
  4394. # 14 "/usr/include/stdint.h" 3 4
  4395. # 1 "/usr/include/bits/wordsize.h" 1 3 4
  4396. # 15 "/usr/include/stdint.h" 2 3 4
  4397.  
  4398.  
  4399.  
  4400.  
  4401.  
  4402. typedef signed char int8_t;
  4403. typedef short int16_t;
  4404. typedef int int32_t;
  4405.  
  4406. typedef long int64_t;
  4407.  
  4408.  
  4409.  
  4410.  
  4411.  
  4412. typedef unsigned char uint8_t;
  4413. typedef unsigned short uint16_t;
  4414.  
  4415.  
  4416. typedef unsigned int uint32_t;
  4417.  
  4418.  
  4419. typedef unsigned long uint64_t;
  4420.  
  4421.  
  4422.  
  4423.  
  4424.  
  4425.  
  4426. typedef signed char int_least8_t;
  4427. typedef short int_least16_t;
  4428. typedef int int_least32_t;
  4429.  
  4430. typedef long int_least64_t;
  4431.  
  4432.  
  4433.  
  4434.  
  4435. typedef unsigned char uint_least8_t;
  4436. typedef unsigned short uint_least16_t;
  4437. typedef unsigned int uint_least32_t;
  4438.  
  4439. typedef unsigned long uint_least64_t;
  4440.  
  4441.  
  4442.  
  4443.  
  4444.  
  4445.  
  4446. typedef signed char int_fast8_t;
  4447.  
  4448. typedef long int_fast16_t;
  4449. typedef long int_fast32_t;
  4450. typedef long int_fast64_t;
  4451.  
  4452.  
  4453.  
  4454.  
  4455.  
  4456.  
  4457. typedef unsigned char uint_fast8_t;
  4458.  
  4459. typedef unsigned long uint_fast16_t;
  4460. typedef unsigned long uint_fast32_t;
  4461. typedef unsigned long uint_fast64_t;
  4462. # 91 "/usr/include/stdint.h" 3 4
  4463. typedef long intptr_t;
  4464.  
  4465.  
  4466.  
  4467.  
  4468.  
  4469. typedef unsigned long uintptr_t;
  4470.  
  4471.  
  4472.  
  4473.  
  4474.  
  4475.  
  4476.  
  4477. typedef long intmax_t;
  4478. typedef unsigned long uintmax_t;
  4479. # 10 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/stdint.h" 2 3 4
  4480. # 21 "/usr/include/cygwin/types.h" 2 3 4
  4481. # 1 "/usr/include/endian.h" 1 3 4
  4482. # 15 "/usr/include/endian.h" 3 4
  4483. # 1 "/usr/include/bits/endian.h" 1 3 4
  4484. # 16 "/usr/include/endian.h" 2 3 4
  4485. # 32 "/usr/include/endian.h" 3 4
  4486. # 1 "/usr/include/byteswap.h" 1 3 4
  4487. # 15 "/usr/include/byteswap.h" 3 4
  4488. extern "C" {
  4489.  
  4490.  
  4491. static __inline unsigned short
  4492. bswap_16 (unsigned short __x)
  4493. {
  4494.   return (__x >> 8) | (__x << 8);
  4495. }
  4496.  
  4497. static __inline unsigned int
  4498. bswap_32 (unsigned int __x)
  4499. {
  4500.   return (bswap_16 (__x & 0xffff) << 16) | (bswap_16 (__x >> 16));
  4501. }
  4502.  
  4503. static __inline unsigned long long
  4504. bswap_64 (unsigned long long __x)
  4505. {
  4506.   return (((unsigned long long) bswap_32 (__x & 0xffffffffull)) << 32) | (bswap_32 (__x >> 32));
  4507. }
  4508.  
  4509.  
  4510. }
  4511. # 33 "/usr/include/endian.h" 2 3 4
  4512. # 22 "/usr/include/cygwin/types.h" 2 3 4
  4513.  
  4514.  
  4515.  
  4516.  
  4517. typedef struct timespec timespec_t;
  4518.  
  4519.  
  4520.  
  4521.  
  4522. typedef struct timespec timestruc_t;
  4523.  
  4524.  
  4525.  
  4526.  
  4527.  
  4528.  
  4529. typedef _off_t off_t;
  4530.  
  4531.  
  4532.  
  4533.  
  4534.  
  4535. typedef __loff_t loff_t;
  4536.  
  4537.  
  4538.  
  4539. typedef __int16_t __dev16_t;
  4540. typedef __uint32_t dev_t;
  4541.  
  4542.  
  4543.  
  4544.  
  4545. typedef __int32_t blksize_t;
  4546.  
  4547.  
  4548.  
  4549.  
  4550. typedef __int32_t __blkcnt32_t;
  4551. typedef __int64_t blkcnt_t;
  4552.  
  4553.  
  4554.  
  4555.  
  4556.  
  4557. typedef unsigned long fsblkcnt_t;
  4558.  
  4559.  
  4560.  
  4561.  
  4562.  
  4563. typedef unsigned long fsfilcnt_t;
  4564.  
  4565.  
  4566.  
  4567.  
  4568. typedef unsigned short __uid16_t;
  4569. typedef __uint32_t uid_t;
  4570.  
  4571.  
  4572.  
  4573.  
  4574. typedef unsigned short __gid16_t;
  4575. typedef __uint32_t gid_t;
  4576.  
  4577.  
  4578.  
  4579.  
  4580.  
  4581.  
  4582.  
  4583. typedef __uint64_t ino_t;
  4584.  
  4585.  
  4586.  
  4587.  
  4588.  
  4589. typedef __uint32_t id_t;
  4590. # 112 "/usr/include/cygwin/types.h" 3 4
  4591. struct flock {
  4592.  short l_type;
  4593.  short l_whence;
  4594.  off_t l_start;
  4595.  off_t l_len;
  4596.  pid_t l_pid;
  4597. };
  4598.  
  4599.  
  4600.  
  4601. typedef long long key_t;
  4602.  
  4603.  
  4604.  
  4605.  
  4606.  
  4607.  
  4608.  
  4609. typedef unsigned long vm_offset_t;
  4610.  
  4611.  
  4612.  
  4613.  
  4614. typedef unsigned long vm_size_t;
  4615.  
  4616.  
  4617.  
  4618.  
  4619. typedef void *vm_object_t;
  4620.  
  4621.  
  4622.  
  4623.  
  4624. typedef unsigned char u_int8_t;
  4625.  
  4626.  
  4627.  
  4628. typedef __uint16_t u_int16_t;
  4629.  
  4630.  
  4631.  
  4632. typedef __uint32_t u_int32_t;
  4633.  
  4634.  
  4635.  
  4636. typedef __uint64_t u_int64_t;
  4637.  
  4638.  
  4639.  
  4640.  
  4641. typedef __int32_t register_t;
  4642.  
  4643.  
  4644.  
  4645.  
  4646. typedef char *addr_t;
  4647.  
  4648.  
  4649.  
  4650.  
  4651. typedef unsigned mode_t;
  4652.  
  4653.  
  4654.  
  4655.  
  4656.  
  4657. typedef struct __pthread_t {char __dummy;} *pthread_t;
  4658. typedef struct __pthread_mutex_t {char __dummy;} *pthread_mutex_t;
  4659.  
  4660. typedef struct __pthread_key_t {char __dummy;} *pthread_key_t;
  4661. typedef struct __pthread_attr_t {char __dummy;} *pthread_attr_t;
  4662. typedef struct __pthread_mutexattr_t {char __dummy;} *pthread_mutexattr_t;
  4663. typedef struct __pthread_condattr_t {char __dummy;} *pthread_condattr_t;
  4664. typedef struct __pthread_cond_t {char __dummy;} *pthread_cond_t;
  4665.  
  4666.  
  4667. typedef struct
  4668. {
  4669.   pthread_mutex_t mutex;
  4670.   int state;
  4671. }
  4672. pthread_once_t;
  4673. typedef struct __pthread_spinlock_t {char __dummy;} *pthread_spinlock_t;
  4674. typedef struct __pthread_rwlock_t {char __dummy;} *pthread_rwlock_t;
  4675. typedef struct __pthread_rwlockattr_t {char __dummy;} *pthread_rwlockattr_t;
  4676. # 219 "/usr/include/cygwin/types.h" 3 4
  4677. # 1 "/usr/include/sys/sysmacros.h" 1 3 4
  4678. # 14 "/usr/include/sys/sysmacros.h" 3 4
  4679. # 1 "/usr/include/sys/types.h" 1 3 4
  4680. # 15 "/usr/include/sys/sysmacros.h" 2 3 4
  4681.  
  4682. extern __inline__ __attribute__ ((__always_inline__)) int gnu_dev_major(dev_t);
  4683. extern __inline__ __attribute__ ((__always_inline__)) int gnu_dev_minor(dev_t);
  4684. extern __inline__ __attribute__ ((__always_inline__)) dev_t gnu_dev_makedev(int, int);
  4685.  
  4686. extern __inline__ __attribute__ ((__always_inline__)) int
  4687. gnu_dev_major(dev_t dev)
  4688. {
  4689.  return (int)(((dev) >> 16) & 0xffff);
  4690. }
  4691.  
  4692. extern __inline__ __attribute__ ((__always_inline__)) int
  4693. gnu_dev_minor(dev_t dev)
  4694. {
  4695.  return (int)((dev) & 0xffff);
  4696. }
  4697.  
  4698. extern __inline__ __attribute__ ((__always_inline__)) dev_t
  4699. gnu_dev_makedev(int maj, int min)
  4700. {
  4701.  return (((maj) << 16) | ((min) & 0xffff));
  4702. }
  4703. # 220 "/usr/include/cygwin/types.h" 2 3 4
  4704.  
  4705.  
  4706. }
  4707. # 482 "/usr/include/sys/types.h" 2 3 4
  4708. # 15 "/usr/include/pthread.h" 2 3 4
  4709. # 1 "/usr/include/signal.h" 1 3 4
  4710.  
  4711.  
  4712.  
  4713.  
  4714. # 1 "/usr/include/sys/signal.h" 1 3 4
  4715.  
  4716.  
  4717.  
  4718.  
  4719.  
  4720. extern "C" {
  4721. # 108 "/usr/include/sys/signal.h" 3 4
  4722. # 1 "/usr/include/cygwin/signal.h" 1 3 4
  4723. # 18 "/usr/include/cygwin/signal.h" 3 4
  4724. extern "C" {
  4725.  
  4726.  
  4727.  
  4728.  
  4729. struct _uc_fpxreg {
  4730.   __uint16_t significand[4];
  4731.   __uint16_t exponent;
  4732.   __uint16_t padding[3];
  4733. };
  4734.  
  4735. struct _uc_xmmreg {
  4736.   __uint32_t element[4];
  4737. };
  4738.  
  4739. struct _fpstate
  4740. {
  4741.   __uint16_t cwd;
  4742.   __uint16_t swd;
  4743.   __uint16_t ftw;
  4744.   __uint16_t fop;
  4745.   __uint64_t rip;
  4746.   __uint64_t rdp;
  4747.   __uint32_t mxcsr;
  4748.   __uint32_t mxcr_mask;
  4749.   struct _uc_fpxreg st[8];
  4750.   struct _uc_xmmreg xmm[16];
  4751.   __uint32_t padding[24];
  4752. };
  4753.  
  4754. struct ucontext
  4755. {
  4756.   __uint64_t p1home;
  4757.   __uint64_t p2home;
  4758.   __uint64_t p3home;
  4759.   __uint64_t p4home;
  4760.   __uint64_t p5home;
  4761.   __uint64_t p6home;
  4762.   __uint32_t cr2;
  4763.   __uint32_t mxcsr;
  4764.   __uint16_t cs;
  4765.   __uint16_t ds;
  4766.   __uint16_t es;
  4767.   __uint16_t fs;
  4768.   __uint16_t gs;
  4769.   __uint16_t ss;
  4770.   __uint32_t eflags;
  4771.   __uint64_t dr0;
  4772.   __uint64_t dr1;
  4773.   __uint64_t dr2;
  4774.   __uint64_t dr3;
  4775.   __uint64_t dr6;
  4776.   __uint64_t dr7;
  4777.   __uint64_t rax;
  4778.   __uint64_t rcx;
  4779.   __uint64_t rdx;
  4780.   __uint64_t rbx;
  4781.   __uint64_t rsp;
  4782.   __uint64_t rbp;
  4783.   __uint64_t rsi;
  4784.   __uint64_t rdi;
  4785.   __uint64_t r8;
  4786.   __uint64_t r9;
  4787.   __uint64_t r10;
  4788.   __uint64_t r11;
  4789.   __uint64_t r12;
  4790.   __uint64_t r13;
  4791.   __uint64_t r14;
  4792.   __uint64_t r15;
  4793.   __uint64_t rip;
  4794.   struct _fpstate fpregs;
  4795.   __uint64_t vcx;
  4796.   __uint64_t dbc;
  4797.   __uint64_t btr;
  4798.   __uint64_t bfr;
  4799.   __uint64_t etr;
  4800.   __uint64_t efr;
  4801.   __uint8_t _internal;
  4802.   __uint64_t oldmask;
  4803. };
  4804. # 154 "/usr/include/cygwin/signal.h" 3 4
  4805. typedef union sigval
  4806. {
  4807.   int sival_int;
  4808.   void *sival_ptr;
  4809. } sigval_t;
  4810.  
  4811. typedef struct sigevent
  4812. {
  4813.   sigval_t sigev_value;
  4814.   int sigev_signo;
  4815.   int sigev_notify;
  4816.   void (*sigev_notify_function) (sigval_t);
  4817.   pthread_attr_t *sigev_notify_attributes;
  4818. } sigevent_t;
  4819.  
  4820. #pragma pack(push,4)
  4821. struct _sigcommune
  4822. {
  4823.   __uint32_t _si_code;
  4824.   void *_si_read_handle;
  4825.   void *_si_write_handle;
  4826.   void *_si_process_handle;
  4827.   __extension__ union
  4828.   {
  4829.     int _si_fd;
  4830.     void *_si_pipe_fhandler;
  4831.     char *_si_str;
  4832.   };
  4833. };
  4834. # 197 "/usr/include/cygwin/signal.h" 3 4
  4835. typedef struct
  4836. {
  4837.   int si_signo;
  4838.   int si_code;
  4839.   pid_t si_pid;
  4840.   uid_t si_uid;
  4841.   int si_errno;
  4842.  
  4843.   __extension__ union
  4844.   {
  4845.     __uint32_t __pad[32];
  4846.     struct _sigcommune _si_commune;
  4847.     __extension__ struct
  4848.     {
  4849.       __extension__ union
  4850.       {
  4851.  sigval_t si_sigval;
  4852.  sigval_t si_value;
  4853.       };
  4854.       __extension__ struct
  4855.       {
  4856.  timer_t si_tid;
  4857.  unsigned int si_overrun;
  4858.       };
  4859.     };
  4860.  
  4861.     __extension__ struct
  4862.     {
  4863.       int si_status;
  4864.       clock_t si_utime;
  4865.       clock_t si_stime;
  4866.     };
  4867.  
  4868.     void *si_addr;
  4869. # 241 "/usr/include/cygwin/signal.h" 3 4
  4870.   };
  4871. } siginfo_t;
  4872. #pragma pack(pop)
  4873.  
  4874. enum
  4875. {
  4876.   SI_USER = 0,
  4877.   SI_ASYNCIO = 2,
  4878.  
  4879.   SI_MESGQ,
  4880.  
  4881.   SI_TIMER,
  4882.   SI_QUEUE,
  4883.  
  4884.   SI_KERNEL,
  4885.  
  4886.   ILL_ILLOPC,
  4887.   ILL_ILLOPN,
  4888.   ILL_ILLADR,
  4889.   ILL_ILLTRP,
  4890.   ILL_PRVOPC,
  4891.   ILL_PRVREG,
  4892.   ILL_COPROC,
  4893.   ILL_BADSTK,
  4894.  
  4895.   FPE_INTDIV,
  4896.   FPE_INTOVF,
  4897.   FPE_FLTDIV,
  4898.   FPE_FLTOVF,
  4899.   FPE_FLTUND,
  4900.   FPE_FLTRES,
  4901.   FPE_FLTINV,
  4902.   FPE_FLTSUB,
  4903.  
  4904.   SEGV_MAPERR,
  4905.   SEGV_ACCERR,
  4906.  
  4907.   BUS_ADRALN,
  4908.   BUS_ADRERR,
  4909.   BUS_OBJERR,
  4910.  
  4911.   CLD_EXITED,
  4912.   CLD_KILLED,
  4913.   CLD_DUMPED,
  4914.   CLD_TRAPPED,
  4915.   CLD_STOPPED,
  4916.   CLD_CONTINUED
  4917. };
  4918.  
  4919. enum
  4920. {
  4921.   SIGEV_SIGNAL = 0,
  4922.  
  4923.  
  4924.   SIGEV_NONE,
  4925.  
  4926.  
  4927.   SIGEV_THREAD
  4928.  
  4929. };
  4930.  
  4931.  
  4932. typedef __uint64_t sigset_t;
  4933.  
  4934.  
  4935.  
  4936.  
  4937.  
  4938.  
  4939. typedef void (*_sig_func_ptr)(int);
  4940.  
  4941. struct sigaction
  4942. {
  4943.   __extension__ union
  4944.   {
  4945.     _sig_func_ptr sa_handler;
  4946.     void (*sa_sigaction) ( int, siginfo_t *, void * );
  4947.   };
  4948.   sigset_t sa_mask;
  4949.   int sa_flags;
  4950. };
  4951. # 386 "/usr/include/cygwin/signal.h" 3 4
  4952. void psiginfo (const siginfo_t *, const char *);
  4953. int sigwait (const sigset_t *, int *);
  4954. int sigwaitinfo (const sigset_t *, siginfo_t *);
  4955. int sighold (int);
  4956. int sigignore (int);
  4957. int sigrelse (int);
  4958. _sig_func_ptr sigset (int, _sig_func_ptr);
  4959.  
  4960. int sigqueue(pid_t, int, const union sigval);
  4961. int siginterrupt (int, int);
  4962.  
  4963.  
  4964.  
  4965.  
  4966. extern const char __attribute__((dllimport)) *sys_sigabbrev[];
  4967. extern const char __attribute__((dllimport)) *sys_siglist[];
  4968.  
  4969.  
  4970.  
  4971. }
  4972. # 109 "/usr/include/sys/signal.h" 2 3 4
  4973. # 135 "/usr/include/sys/signal.h" 3 4
  4974. int __attribute__((__cdecl__)) sigprocmask (int how, const sigset_t *set, sigset_t *oset);
  4975.  
  4976.  
  4977. int __attribute__((__cdecl__)) pthread_sigmask (int how, const sigset_t *set, sigset_t *oset);
  4978. # 152 "/usr/include/sys/signal.h" 3 4
  4979. int __attribute__((__cdecl__)) kill (pid_t, int);
  4980. int __attribute__((__cdecl__)) killpg (pid_t, int);
  4981. int __attribute__((__cdecl__)) sigaction (int, const struct sigaction *, struct sigaction *);
  4982. int __attribute__((__cdecl__)) sigaddset (sigset_t *, const int);
  4983. int __attribute__((__cdecl__)) sigdelset (sigset_t *, const int);
  4984. int __attribute__((__cdecl__)) sigismember (const sigset_t *, int);
  4985. int __attribute__((__cdecl__)) sigfillset (sigset_t *);
  4986. int __attribute__((__cdecl__)) sigemptyset (sigset_t *);
  4987. int __attribute__((__cdecl__)) sigpending (sigset_t *);
  4988. int __attribute__((__cdecl__)) sigsuspend (const sigset_t *);
  4989. int __attribute__((__cdecl__)) sigpause (int);
  4990.  
  4991.  
  4992.  
  4993.  
  4994.  
  4995.  
  4996.  
  4997. int __attribute__((__cdecl__)) pthread_kill (pthread_t thread, int sig);
  4998.  
  4999.  
  5000.  
  5001.  
  5002.  
  5003.  
  5004.  
  5005. int __attribute__((__cdecl__)) sigwaitinfo (const sigset_t *set, siginfo_t *info);
  5006. int __attribute__((__cdecl__)) sigtimedwait (const sigset_t *set, siginfo_t *info, const struct timespec *timeout)
  5007.  
  5008.  ;
  5009. int __attribute__((__cdecl__)) sigwait (const sigset_t *set, int *sig);
  5010.  
  5011.  
  5012. int __attribute__((__cdecl__)) sigqueue (pid_t pid, int signo, const union sigval value);
  5013. # 309 "/usr/include/sys/signal.h" 3 4
  5014. }
  5015. # 6 "/usr/include/signal.h" 2 3 4
  5016.  
  5017. extern "C" {
  5018.  
  5019. typedef int sig_atomic_t;
  5020.  
  5021. typedef _sig_func_ptr sig_t;
  5022. typedef _sig_func_ptr sighandler_t;
  5023.  
  5024.  
  5025.  
  5026.  
  5027.  
  5028.  
  5029. struct _reent;
  5030.  
  5031. _sig_func_ptr __attribute__((__cdecl__)) _signal_r (struct _reent *, int, _sig_func_ptr);
  5032. int __attribute__((__cdecl__)) _raise_r (struct _reent *, int);
  5033.  
  5034.  
  5035. _sig_func_ptr __attribute__((__cdecl__)) signal (int, _sig_func_ptr);
  5036. int __attribute__((__cdecl__)) raise (int);
  5037. void __attribute__((__cdecl__)) psignal (int, const char *);
  5038.  
  5039.  
  5040. }
  5041. # 16 "/usr/include/pthread.h" 2 3 4
  5042. # 1 "/usr/include/sched.h" 1 3 4
  5043. # 24 "/usr/include/sched.h" 3 4
  5044. # 1 "/usr/include/sys/sched.h" 1 3 4
  5045. # 25 "/usr/include/sys/sched.h" 3 4
  5046. extern "C" {
  5047. # 46 "/usr/include/sys/sched.h" 3 4
  5048. struct sched_param {
  5049.   int sched_priority;
  5050. # 59 "/usr/include/sys/sched.h" 3 4
  5051. };
  5052.  
  5053.  
  5054. }
  5055. # 25 "/usr/include/sched.h" 2 3 4
  5056.  
  5057.  
  5058. extern "C" {
  5059.  
  5060.  
  5061.  
  5062.  
  5063.  
  5064.  
  5065. int sched_setparam(
  5066.   pid_t __pid,
  5067.   const struct sched_param *__param
  5068. );
  5069.  
  5070.  
  5071.  
  5072.  
  5073. int sched_getparam(
  5074.   pid_t __pid,
  5075.   struct sched_param *__param
  5076. );
  5077.  
  5078.  
  5079.  
  5080.  
  5081.  
  5082. int sched_setscheduler(
  5083.   pid_t __pid,
  5084.   int __policy,
  5085.   const struct sched_param *__param
  5086. );
  5087.  
  5088.  
  5089.  
  5090.  
  5091. int sched_getscheduler(
  5092.   pid_t __pid
  5093. );
  5094.  
  5095.  
  5096.  
  5097.  
  5098. int sched_get_priority_max(
  5099.   int __policy
  5100. );
  5101.  
  5102. int sched_get_priority_min(
  5103.   int __policy
  5104. );
  5105.  
  5106.  
  5107.  
  5108.  
  5109. int sched_rr_get_interval(
  5110.   pid_t __pid,
  5111.   struct timespec *__interval
  5112. );
  5113.  
  5114.  
  5115.  
  5116.  
  5117.  
  5118.  
  5119.  
  5120. int sched_yield( void );
  5121.  
  5122.  
  5123.  
  5124.  
  5125. }
  5126. # 17 "/usr/include/pthread.h" 2 3 4
  5127. # 1 "/usr/include/time.h" 1 3 4
  5128. # 15 "/usr/include/time.h" 3 4
  5129. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/stddef.h" 1 3 4
  5130. # 16 "/usr/include/time.h" 2 3 4
  5131.  
  5132.  
  5133. # 1 "/usr/include/machine/time.h" 1 3 4
  5134. # 19 "/usr/include/time.h" 2 3 4
  5135. # 29 "/usr/include/time.h" 3 4
  5136. extern "C" {
  5137.  
  5138. struct tm
  5139. {
  5140.   int tm_sec;
  5141.   int tm_min;
  5142.   int tm_hour;
  5143.   int tm_mday;
  5144.   int tm_mon;
  5145.   int tm_year;
  5146.   int tm_wday;
  5147.   int tm_yday;
  5148.   int tm_isdst;
  5149.  
  5150.   long tm_gmtoff;
  5151.  
  5152.  
  5153.   const char *tm_zone;
  5154.  
  5155. };
  5156.  
  5157. clock_t __attribute__((__cdecl__)) clock (void);
  5158. double __attribute__((__cdecl__)) difftime (time_t _time2, time_t _time1);
  5159. time_t __attribute__((__cdecl__)) mktime (struct tm *_timeptr);
  5160. time_t __attribute__((__cdecl__)) time (time_t *_timer);
  5161.  
  5162. char *__attribute__((__cdecl__)) asctime (const struct tm *_tblock);
  5163. char *__attribute__((__cdecl__)) ctime (const time_t *_time);
  5164. struct tm *__attribute__((__cdecl__)) gmtime (const time_t *_timer);
  5165. struct tm *__attribute__((__cdecl__)) localtime (const time_t *_timer);
  5166.  
  5167. size_t __attribute__((__cdecl__)) strftime (char *__restrict _s, size_t _maxsize, const char *__restrict _fmt, const struct tm *__restrict _t)
  5168.  
  5169.                                         ;
  5170.  
  5171. char *__attribute__((__cdecl__)) asctime_r (const struct tm *__restrict, char *__restrict)
  5172.                        ;
  5173. char *__attribute__((__cdecl__)) ctime_r (const time_t *, char *);
  5174. struct tm *__attribute__((__cdecl__)) gmtime_r (const time_t *__restrict, struct tm *__restrict)
  5175.                             ;
  5176. struct tm *__attribute__((__cdecl__)) localtime_r (const time_t *__restrict, struct tm *__restrict)
  5177.                             ;
  5178.  
  5179. }
  5180.  
  5181.  
  5182. extern "C" {
  5183.  
  5184.  
  5185.  
  5186. char *__attribute__((__cdecl__)) strptime (const char *__restrict, const char *__restrict, struct tm *__restrict)
  5187.  
  5188.                             ;
  5189. void __attribute__((__cdecl__)) tzset (void);
  5190. void __attribute__((__cdecl__)) _tzset_r (struct _reent *);
  5191.  
  5192. typedef struct __tzrule_struct
  5193. {
  5194.   char ch;
  5195.   int m;
  5196.   int n;
  5197.   int d;
  5198.   int s;
  5199.   time_t change;
  5200.   long offset;
  5201. } __tzrule_type;
  5202.  
  5203. typedef struct __tzinfo_struct
  5204. {
  5205.   int __tznorth;
  5206.   int __tzyear;
  5207.   __tzrule_type __tzrule[2];
  5208. } __tzinfo_type;
  5209.  
  5210. __tzinfo_type *__attribute__((__cdecl__)) __gettzinfo (void);
  5211. # 129 "/usr/include/time.h" 3 4
  5212. extern __attribute__((dllimport)) long _timezone;
  5213. extern __attribute__((dllimport)) int _daylight;
  5214. extern __attribute__((dllimport)) char *_tzname[2];
  5215. # 140 "/usr/include/time.h" 3 4
  5216. }
  5217.  
  5218.  
  5219.  
  5220.  
  5221.  
  5222. # 1 "/usr/include/cygwin/time.h" 1 3 4
  5223. # 14 "/usr/include/cygwin/time.h" 3 4
  5224. extern "C"
  5225. {
  5226.  
  5227.  
  5228.  
  5229. int __attribute__((__cdecl__)) clock_setres (clockid_t, struct timespec *);
  5230.  
  5231.  
  5232. time_t __attribute__((__cdecl__)) timelocal (struct tm *);
  5233. time_t __attribute__((__cdecl__)) timegm (struct tm *);
  5234.  
  5235.  
  5236.  
  5237.  
  5238.  
  5239. extern int daylight __asm__ ( "_daylight");
  5240.  
  5241.  
  5242. extern long timezone __asm__ ( "_timezone");
  5243.  
  5244.  
  5245.  
  5246.  
  5247.  
  5248. }
  5249. # 147 "/usr/include/time.h" 2 3 4
  5250.  
  5251.  
  5252.  
  5253.  
  5254.  
  5255.  
  5256.  
  5257. extern "C" {
  5258.  
  5259.  
  5260.  
  5261.  
  5262. int __attribute__((__cdecl__)) clock_settime (clockid_t clock_id, const struct timespec *tp);
  5263. int __attribute__((__cdecl__)) clock_gettime (clockid_t clock_id, struct timespec *tp);
  5264. int __attribute__((__cdecl__)) clock_getres (clockid_t clock_id, struct timespec *res);
  5265.  
  5266.  
  5267.  
  5268. int __attribute__((__cdecl__)) timer_create (clockid_t clock_id, struct sigevent *__restrict evp, timer_t *__restrict timerid)
  5269.  
  5270.  
  5271.                               ;
  5272.  
  5273.  
  5274.  
  5275. int __attribute__((__cdecl__)) timer_delete (timer_t timerid);
  5276.  
  5277.  
  5278.  
  5279. int __attribute__((__cdecl__)) timer_settime (timer_t timerid, int flags, const struct itimerspec *__restrict value, struct itimerspec *__restrict ovalue)
  5280.  
  5281.  
  5282.                                        ;
  5283. int __attribute__((__cdecl__)) timer_gettime (timer_t timerid, struct itimerspec *value);
  5284. int __attribute__((__cdecl__)) timer_getoverrun (timer_t timerid);
  5285.  
  5286.  
  5287.  
  5288. int __attribute__((__cdecl__)) nanosleep (const struct timespec *rqtp, struct timespec *rmtp);
  5289.  
  5290.  
  5291. }
  5292.  
  5293.  
  5294.  
  5295.  
  5296.  
  5297.  
  5298. extern "C" {
  5299.  
  5300.  
  5301. int __attribute__((__cdecl__)) clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp)
  5302.  
  5303.                           ;
  5304.  
  5305.  
  5306. }
  5307.  
  5308.  
  5309.  
  5310.  
  5311.  
  5312. extern "C" {
  5313. # 273 "/usr/include/time.h" 3 4
  5314. int __attribute__((__cdecl__)) clock_getcpuclockid (pid_t pid, clockid_t *clock_id);
  5315.  
  5316.  
  5317.  
  5318.  
  5319.  
  5320.  
  5321.  
  5322. int __attribute__((__cdecl__)) clock_setenable_attr (clockid_t clock_id, int attr);
  5323. int __attribute__((__cdecl__)) clock_getenable_attr (clockid_t clock_id, int *attr);
  5324.  
  5325.  
  5326.  
  5327.  
  5328. }
  5329. # 18 "/usr/include/pthread.h" 2 3 4
  5330.  
  5331.  
  5332.  
  5333.  
  5334.  
  5335. extern "C"
  5336. {
  5337. # 67 "/usr/include/pthread.h" 3 4
  5338. int pthread_atfork (void (*)(void), void (*)(void), void (*)(void));
  5339.  
  5340.  
  5341. int pthread_attr_destroy (pthread_attr_t *);
  5342. int pthread_attr_getdetachstate (const pthread_attr_t *, int *);
  5343. int pthread_attr_getguardsize (const pthread_attr_t *, size_t *);
  5344. int pthread_attr_getinheritsched (const pthread_attr_t *, int *);
  5345. int pthread_attr_getschedparam (const pthread_attr_t *, struct sched_param *);
  5346. int pthread_attr_getschedpolicy (const pthread_attr_t *, int *);
  5347. int pthread_attr_getscope (const pthread_attr_t *, int *);
  5348. int pthread_attr_getstack (const pthread_attr_t *, void **, size_t *);
  5349. int pthread_attr_getstackaddr (const pthread_attr_t *, void **);
  5350. int pthread_attr_init (pthread_attr_t *);
  5351. int pthread_attr_setdetachstate (pthread_attr_t *, int);
  5352. int pthread_attr_setguardsize (pthread_attr_t *, size_t);
  5353. int pthread_attr_setinheritsched (pthread_attr_t *, int);
  5354. int pthread_attr_setschedparam (pthread_attr_t *, const struct sched_param *);
  5355. int pthread_attr_setschedpolicy (pthread_attr_t *, int);
  5356. int pthread_attr_setscope (pthread_attr_t *, int);
  5357.  
  5358.  
  5359.  
  5360.  
  5361.  
  5362.  
  5363. int pthread_attr_setstack (pthread_attr_t *, void *, size_t);
  5364. int pthread_attr_setstackaddr (pthread_attr_t *, void *);
  5365.  
  5366.  
  5367.  
  5368. int pthread_attr_getstacksize (const pthread_attr_t *, size_t *);
  5369. int pthread_attr_setstacksize (pthread_attr_t *, size_t);
  5370.  
  5371.  
  5372. int pthread_cancel (pthread_t);
  5373.  
  5374.  
  5375.  
  5376.  
  5377.  
  5378. typedef void (*__cleanup_routine_type) (void *);
  5379. typedef struct _pthread_cleanup_handler
  5380. {
  5381.   __cleanup_routine_type function;
  5382.   void *arg;
  5383.   struct _pthread_cleanup_handler *next;
  5384. } __pthread_cleanup_handler;
  5385.  
  5386. void _pthread_cleanup_push (__pthread_cleanup_handler *handler);
  5387. void _pthread_cleanup_pop (int execute);
  5388.  
  5389.  
  5390.  
  5391.  
  5392.  
  5393.  
  5394.  
  5395. int pthread_cond_broadcast (pthread_cond_t *);
  5396. int pthread_cond_destroy (pthread_cond_t *);
  5397. int pthread_cond_init (pthread_cond_t *, const pthread_condattr_t *);
  5398. int pthread_cond_signal (pthread_cond_t *);
  5399. int pthread_cond_timedwait (pthread_cond_t *,
  5400.        pthread_mutex_t *, const struct timespec *);
  5401. int pthread_cond_wait (pthread_cond_t *, pthread_mutex_t *);
  5402. int pthread_condattr_destroy (pthread_condattr_t *);
  5403. int pthread_condattr_getclock (const pthread_condattr_t *, clockid_t *);
  5404. int pthread_condattr_getpshared (const pthread_condattr_t *, int *);
  5405. int pthread_condattr_init (pthread_condattr_t *);
  5406. int pthread_condattr_setclock (pthread_condattr_t *, clockid_t);
  5407. int pthread_condattr_setpshared (pthread_condattr_t *, int);
  5408.  
  5409. int pthread_create (pthread_t *, const pthread_attr_t *,
  5410.       void *(*)(void *), void *);
  5411. int pthread_detach (pthread_t);
  5412. int pthread_equal (pthread_t, pthread_t);
  5413. void pthread_exit (void *) __attribute__ ((noreturn));
  5414. int pthread_getcpuclockid (pthread_t, clockid_t *);
  5415. int pthread_getschedparam (pthread_t, int *, struct sched_param *);
  5416. void *pthread_getspecific (pthread_key_t);
  5417. int pthread_join (pthread_t, void **);
  5418. int pthread_key_create (pthread_key_t *, void (*)(void *));
  5419. int pthread_key_delete (pthread_key_t);
  5420.  
  5421.  
  5422. int pthread_mutex_destroy (pthread_mutex_t *);
  5423. int pthread_mutex_getprioceiling (const pthread_mutex_t *, int *);
  5424. int pthread_mutex_init (pthread_mutex_t *, const pthread_mutexattr_t *);
  5425. int pthread_mutex_lock (pthread_mutex_t *);
  5426. int pthread_mutex_setprioceiling (pthread_mutex_t *, int, int *);
  5427. int pthread_mutex_trylock (pthread_mutex_t *);
  5428. int pthread_mutex_unlock (pthread_mutex_t *);
  5429. int pthread_mutexattr_destroy (pthread_mutexattr_t *);
  5430. int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t *, int *);
  5431. int pthread_mutexattr_getprotocol (const pthread_mutexattr_t *, int *);
  5432. int pthread_mutexattr_getpshared (const pthread_mutexattr_t *, int *);
  5433. int pthread_mutexattr_gettype (const pthread_mutexattr_t *, int *);
  5434. int pthread_mutexattr_init (pthread_mutexattr_t *);
  5435. int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *, int);
  5436. int pthread_mutexattr_setprotocol (pthread_mutexattr_t *, int);
  5437. int pthread_mutexattr_setpshared (pthread_mutexattr_t *, int);
  5438. int pthread_mutexattr_settype (pthread_mutexattr_t *, int);
  5439.  
  5440.  
  5441. int pthread_spin_destroy (pthread_spinlock_t *);
  5442. int pthread_spin_init (pthread_spinlock_t *, int);
  5443. int pthread_spin_lock (pthread_spinlock_t *);
  5444. int pthread_spin_trylock (pthread_spinlock_t *);
  5445. int pthread_spin_unlock (pthread_spinlock_t *);
  5446.  
  5447.  
  5448. int pthread_rwlock_destroy (pthread_rwlock_t *rwlock);
  5449. int pthread_rwlock_init (pthread_rwlock_t *rwlock, const pthread_rwlockattr_t *attr);
  5450. int pthread_rwlock_rdlock (pthread_rwlock_t *rwlock);
  5451. int pthread_rwlock_tryrdlock (pthread_rwlock_t *rwlock);
  5452. int pthread_rwlock_wrlock (pthread_rwlock_t *rwlock);
  5453. int pthread_rwlock_trywrlock (pthread_rwlock_t *rwlock);
  5454. int pthread_rwlock_unlock (pthread_rwlock_t *rwlock);
  5455. int pthread_rwlockattr_init (pthread_rwlockattr_t *rwlockattr);
  5456. int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *attr,
  5457.        int *pshared);
  5458. int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *attr, int pshared);
  5459. int pthread_rwlockattr_destroy (pthread_rwlockattr_t *rwlockattr);
  5460.  
  5461. int pthread_once (pthread_once_t *, void (*)(void));
  5462.  
  5463.  
  5464. int pthread_getconcurrency (void);
  5465. int pthread_setconcurrency (int);
  5466.  
  5467.  
  5468. pthread_t pthread_self (void);
  5469. int pthread_setcancelstate (int, int *);
  5470. int pthread_setcanceltype (int, int *);
  5471. int pthread_setschedparam (pthread_t, int, const struct sched_param *);
  5472. int pthread_setschedprio (pthread_t, int);
  5473. int pthread_setspecific (pthread_key_t, const void *);
  5474. void pthread_testcancel (void);
  5475.  
  5476.  
  5477.  
  5478. int pthread_getattr_np (pthread_t, pthread_attr_t *);
  5479. int pthread_sigqueue (pthread_t *, int, const union sigval);
  5480. int pthread_suspend (pthread_t);
  5481. int pthread_continue (pthread_t);
  5482. int pthread_yield (void);
  5483.  
  5484.  
  5485. }
  5486. # 36 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/gthr-default.h" 2 3
  5487. # 47 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/gthr-default.h" 3
  5488. typedef pthread_t __gthread_t;
  5489. typedef pthread_key_t __gthread_key_t;
  5490. typedef pthread_once_t __gthread_once_t;
  5491. typedef pthread_mutex_t __gthread_mutex_t;
  5492. typedef pthread_mutex_t __gthread_recursive_mutex_t;
  5493. typedef pthread_cond_t __gthread_cond_t;
  5494. typedef struct timespec __gthread_time_t;
  5495. # 101 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/gthr-default.h" 3
  5496.  
  5497.  
  5498.  
  5499.  
  5500.  
  5501.  
  5502.  
  5503.  
  5504.  
  5505.  
  5506.  
  5507.  
  5508.  
  5509.  
  5510.  
  5511.  
  5512.  
  5513.  
  5514.  
  5515.  
  5516.  
  5517.  
  5518.  
  5519.  
  5520.  
  5521.  
  5522.  
  5523.  
  5524.  
  5525.  
  5526.  
  5527.  
  5528.  
  5529.  
  5530.  
  5531. # 298 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/gthr-default.h" 3
  5532. static inline int
  5533. __gthread_active_p (void)
  5534. {
  5535.   return 1;
  5536. }
  5537. # 658 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/gthr-default.h" 3
  5538. static inline int
  5539. __gthread_create (__gthread_t *__threadid, void *(*__func) (void*),
  5540.     void *__args)
  5541. {
  5542.   return pthread_create (__threadid, __null, __func, __args);
  5543. }
  5544.  
  5545. static inline int
  5546. __gthread_join (__gthread_t __threadid, void **__value_ptr)
  5547. {
  5548.   return pthread_join (__threadid, __value_ptr);
  5549. }
  5550.  
  5551. static inline int
  5552. __gthread_detach (__gthread_t __threadid)
  5553. {
  5554.   return pthread_detach (__threadid);
  5555. }
  5556.  
  5557. static inline int
  5558. __gthread_equal (__gthread_t __t1, __gthread_t __t2)
  5559. {
  5560.   return pthread_equal (__t1, __t2);
  5561. }
  5562.  
  5563. static inline __gthread_t
  5564. __gthread_self (void)
  5565. {
  5566.   return pthread_self ();
  5567. }
  5568.  
  5569. static inline int
  5570. __gthread_yield (void)
  5571. {
  5572.   return sched_yield ();
  5573. }
  5574.  
  5575. static inline int
  5576. __gthread_once (__gthread_once_t *__once, void (*__func) (void))
  5577. {
  5578.   if (__gthread_active_p ())
  5579.     return pthread_once (__once, __func);
  5580.   else
  5581.     return -1;
  5582. }
  5583.  
  5584. static inline int
  5585. __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *))
  5586. {
  5587.   return pthread_key_create (__key, __dtor);
  5588. }
  5589.  
  5590. static inline int
  5591. __gthread_key_delete (__gthread_key_t __key)
  5592. {
  5593.   return pthread_key_delete (__key);
  5594. }
  5595.  
  5596. static inline void *
  5597. __gthread_getspecific (__gthread_key_t __key)
  5598. {
  5599.   return pthread_getspecific (__key);
  5600. }
  5601.  
  5602. static inline int
  5603. __gthread_setspecific (__gthread_key_t __key, const void *__ptr)
  5604. {
  5605.   return pthread_setspecific (__key, __ptr);
  5606. }
  5607.  
  5608. static inline void
  5609. __gthread_mutex_init_function (__gthread_mutex_t *__mutex)
  5610. {
  5611.   if (__gthread_active_p ())
  5612.     pthread_mutex_init (__mutex, __null);
  5613. }
  5614.  
  5615. static inline int
  5616. __gthread_mutex_destroy (__gthread_mutex_t *__mutex)
  5617. {
  5618.   if (__gthread_active_p ())
  5619.     return pthread_mutex_destroy (__mutex);
  5620.   else
  5621.     return 0;
  5622. }
  5623.  
  5624. static inline int
  5625. __gthread_mutex_lock (__gthread_mutex_t *__mutex)
  5626. {
  5627.   if (__gthread_active_p ())
  5628.     return pthread_mutex_lock (__mutex);
  5629.   else
  5630.     return 0;
  5631. }
  5632.  
  5633. static inline int
  5634. __gthread_mutex_trylock (__gthread_mutex_t *__mutex)
  5635. {
  5636.   if (__gthread_active_p ())
  5637.     return pthread_mutex_trylock (__mutex);
  5638.   else
  5639.     return 0;
  5640. }
  5641. # 774 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/gthr-default.h" 3
  5642. static inline int
  5643. __gthread_mutex_unlock (__gthread_mutex_t *__mutex)
  5644. {
  5645.   if (__gthread_active_p ())
  5646.     return pthread_mutex_unlock (__mutex);
  5647.   else
  5648.     return 0;
  5649. }
  5650. # 807 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/gthr-default.h" 3
  5651. static inline int
  5652. __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
  5653. {
  5654.   return __gthread_mutex_lock (__mutex);
  5655. }
  5656.  
  5657. static inline int
  5658. __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
  5659. {
  5660.   return __gthread_mutex_trylock (__mutex);
  5661. }
  5662. # 828 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/gthr-default.h" 3
  5663. static inline int
  5664. __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
  5665. {
  5666.   return __gthread_mutex_unlock (__mutex);
  5667. }
  5668.  
  5669. static inline int
  5670. __gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex)
  5671. {
  5672.   return __gthread_mutex_destroy (__mutex);
  5673. }
  5674. # 849 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/gthr-default.h" 3
  5675. static inline int
  5676. __gthread_cond_broadcast (__gthread_cond_t *__cond)
  5677. {
  5678.   return pthread_cond_broadcast (__cond);
  5679. }
  5680.  
  5681. static inline int
  5682. __gthread_cond_signal (__gthread_cond_t *__cond)
  5683. {
  5684.   return pthread_cond_signal (__cond);
  5685. }
  5686.  
  5687. static inline int
  5688. __gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex)
  5689. {
  5690.   return pthread_cond_wait (__cond, __mutex);
  5691. }
  5692.  
  5693. static inline int
  5694. __gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex,
  5695.      const __gthread_time_t *__abs_timeout)
  5696. {
  5697.   return pthread_cond_timedwait (__cond, __mutex, __abs_timeout);
  5698. }
  5699.  
  5700. static inline int
  5701. __gthread_cond_wait_recursive (__gthread_cond_t *__cond,
  5702.           __gthread_recursive_mutex_t *__mutex)
  5703. {
  5704.   return __gthread_cond_wait (__cond, __mutex);
  5705. }
  5706.  
  5707. static inline int
  5708. __gthread_cond_destroy (__gthread_cond_t* __cond)
  5709. {
  5710.   return pthread_cond_destroy (__cond);
  5711. }
  5712. # 149 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/gthr.h" 2 3
  5713.  
  5714.  
  5715. #pragma GCC visibility pop
  5716. # 36 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ext/atomicity.h" 2 3
  5717. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/atomic_word.h" 1 3
  5718. # 32 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/atomic_word.h" 3
  5719. typedef int _Atomic_word;
  5720. # 37 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ext/atomicity.h" 2 3
  5721.  
  5722. namespace __gnu_cxx
  5723. {
  5724.  
  5725.  
  5726.  
  5727.  
  5728.  
  5729.  
  5730.  
  5731.   static inline _Atomic_word
  5732.   __exchange_and_add(volatile _Atomic_word* __mem, int __val)
  5733.   { return __atomic_fetch_add(__mem, __val, 4); }
  5734.  
  5735.   static inline void
  5736.   __atomic_add(volatile _Atomic_word* __mem, int __val)
  5737.   { __atomic_fetch_add(__mem, __val, 4); }
  5738. # 64 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ext/atomicity.h" 3
  5739.   static inline _Atomic_word
  5740.   __exchange_and_add_single(_Atomic_word* __mem, int __val)
  5741.   {
  5742.     _Atomic_word __result = *__mem;
  5743.     *__mem += __val;
  5744.     return __result;
  5745.   }
  5746.  
  5747.   static inline void
  5748.   __atomic_add_single(_Atomic_word* __mem, int __val)
  5749.   { *__mem += __val; }
  5750.  
  5751.   static inline _Atomic_word
  5752.   __attribute__ ((__unused__))
  5753.   __exchange_and_add_dispatch(_Atomic_word* __mem, int __val)
  5754.   {
  5755.  
  5756.     if (__gthread_active_p())
  5757.       return __exchange_and_add(__mem, __val);
  5758.     else
  5759.       return __exchange_and_add_single(__mem, __val);
  5760.  
  5761.  
  5762.  
  5763.   }
  5764.  
  5765.   static inline void
  5766.   __attribute__ ((__unused__))
  5767.   __atomic_add_dispatch(_Atomic_word* __mem, int __val)
  5768.   {
  5769.  
  5770.     if (__gthread_active_p())
  5771.       __atomic_add(__mem, __val);
  5772.     else
  5773.       __atomic_add_single(__mem, __val);
  5774.  
  5775.  
  5776.  
  5777.   }
  5778.  
  5779.  
  5780. }
  5781. # 40 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ios_base.h" 2 3
  5782.  
  5783. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 1 3
  5784. # 37 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  5785.        
  5786. # 38 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  5787.  
  5788.  
  5789. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/string" 1 3
  5790. # 36 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/string" 3
  5791.        
  5792. # 37 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/string" 3
  5793.  
  5794.  
  5795.  
  5796.  
  5797. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/allocator.h" 1 3
  5798. # 46 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/allocator.h" 3
  5799. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/c++allocator.h" 1 3
  5800. # 33 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/c++allocator.h" 3
  5801. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ext/new_allocator.h" 1 3
  5802. # 33 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ext/new_allocator.h" 3
  5803. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/new" 1 3
  5804. # 37 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/new" 3
  5805.        
  5806. # 38 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/new" 3
  5807.  
  5808.  
  5809.  
  5810.  
  5811. #pragma GCC visibility push(default)
  5812.  
  5813. extern "C++" {
  5814.  
  5815. namespace std
  5816. {
  5817.  
  5818.  
  5819.  
  5820.  
  5821.  
  5822.  
  5823.   class bad_alloc : public exception
  5824.   {
  5825.   public:
  5826.     bad_alloc() throw() { }
  5827.  
  5828.  
  5829.  
  5830.     virtual ~bad_alloc() throw();
  5831.  
  5832.  
  5833.     virtual const char* what() const throw();
  5834.   };
  5835.  
  5836.   struct nothrow_t { };
  5837.  
  5838.   extern const nothrow_t nothrow;
  5839.  
  5840.  
  5841.  
  5842.   typedef void (*new_handler)();
  5843.  
  5844.  
  5845.  
  5846.   new_handler set_new_handler(new_handler) throw();
  5847. }
  5848. # 91 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/new" 3
  5849. void* operator new(std::size_t) throw(std::bad_alloc)
  5850.   __attribute__((__externally_visible__));
  5851. void* operator new[](std::size_t) throw(std::bad_alloc)
  5852.   __attribute__((__externally_visible__));
  5853. void operator delete(void*) throw()
  5854.   __attribute__((__externally_visible__));
  5855. void operator delete[](void*) throw()
  5856.   __attribute__((__externally_visible__));
  5857. void* operator new(std::size_t, const std::nothrow_t&) throw()
  5858.   __attribute__((__externally_visible__));
  5859. void* operator new[](std::size_t, const std::nothrow_t&) throw()
  5860.   __attribute__((__externally_visible__));
  5861. void operator delete(void*, const std::nothrow_t&) throw()
  5862.   __attribute__((__externally_visible__));
  5863. void operator delete[](void*, const std::nothrow_t&) throw()
  5864.   __attribute__((__externally_visible__));
  5865.  
  5866.  
  5867. inline void* operator new(std::size_t, void* __p) throw()
  5868. { return __p; }
  5869. inline void* operator new[](std::size_t, void* __p) throw()
  5870. { return __p; }
  5871.  
  5872.  
  5873. inline void operator delete (void*, void*) throw() { }
  5874. inline void operator delete[](void*, void*) throw() { }
  5875.  
  5876. }
  5877.  
  5878. #pragma GCC visibility pop
  5879. # 34 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ext/new_allocator.h" 2 3
  5880.  
  5881.  
  5882.  
  5883.  
  5884.  
  5885.  
  5886. namespace __gnu_cxx
  5887. {
  5888.  
  5889.  
  5890.   using std::size_t;
  5891.   using std::ptrdiff_t;
  5892. # 57 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ext/new_allocator.h" 3
  5893.   template<typename _Tp>
  5894.     class new_allocator
  5895.     {
  5896.     public:
  5897.       typedef size_t size_type;
  5898.       typedef ptrdiff_t difference_type;
  5899.       typedef _Tp* pointer;
  5900.       typedef const _Tp* const_pointer;
  5901.       typedef _Tp& reference;
  5902.       typedef const _Tp& const_reference;
  5903.       typedef _Tp value_type;
  5904.  
  5905.       template<typename _Tp1>
  5906.         struct rebind
  5907.         { typedef new_allocator<_Tp1> other; };
  5908.  
  5909.  
  5910.  
  5911.  
  5912.  
  5913.  
  5914.  
  5915.       new_allocator() throw() { }
  5916.  
  5917.       new_allocator(const new_allocator&) throw() { }
  5918.  
  5919.       template<typename _Tp1>
  5920.         new_allocator(const new_allocator<_Tp1>&) throw() { }
  5921.  
  5922.       ~new_allocator() throw() { }
  5923.  
  5924.       pointer
  5925.       address(reference __x) const
  5926.       { return std::__addressof(__x); }
  5927.  
  5928.       const_pointer
  5929.       address(const_reference __x) const
  5930.       { return std::__addressof(__x); }
  5931.  
  5932.  
  5933.  
  5934.       pointer
  5935.       allocate(size_type __n, const void* = 0)
  5936.       {
  5937.  if (__n > this->max_size())
  5938.    std::__throw_bad_alloc();
  5939.  
  5940.  return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
  5941.       }
  5942.  
  5943.  
  5944.       void
  5945.       deallocate(pointer __p, size_type)
  5946.       { ::operator delete(__p); }
  5947.  
  5948.       size_type
  5949.       max_size() const throw()
  5950.       { return size_t(-1) / sizeof(_Tp); }
  5951. # 128 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ext/new_allocator.h" 3
  5952.       void
  5953.       construct(pointer __p, const _Tp& __val)
  5954.       { ::new((void *)__p) _Tp(__val); }
  5955.  
  5956.       void
  5957.       destroy(pointer __p) { __p->~_Tp(); }
  5958.  
  5959.     };
  5960.  
  5961.   template<typename _Tp>
  5962.     inline bool
  5963.     operator==(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
  5964.     { return true; }
  5965.  
  5966.   template<typename _Tp>
  5967.     inline bool
  5968.     operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
  5969.     { return false; }
  5970.  
  5971.  
  5972. }
  5973. # 34 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/c++allocator.h" 2 3
  5974. # 47 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/allocator.h" 2 3
  5975.  
  5976.  
  5977.  
  5978.  
  5979.  
  5980. namespace std
  5981. {
  5982.  
  5983.  
  5984.  
  5985.  
  5986.  
  5987.  
  5988.  
  5989.  
  5990.   template<>
  5991.     class allocator<void>
  5992.     {
  5993.     public:
  5994.       typedef size_t size_type;
  5995.       typedef ptrdiff_t difference_type;
  5996.       typedef void* pointer;
  5997.       typedef const void* const_pointer;
  5998.       typedef void value_type;
  5999.  
  6000.       template<typename _Tp1>
  6001.         struct rebind
  6002.         { typedef allocator<_Tp1> other; };
  6003.  
  6004.  
  6005.  
  6006.  
  6007.  
  6008.  
  6009.     };
  6010. # 91 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/allocator.h" 3
  6011.   template<typename _Tp>
  6012.     class allocator: public __gnu_cxx::new_allocator<_Tp>
  6013.     {
  6014.    public:
  6015.       typedef size_t size_type;
  6016.       typedef ptrdiff_t difference_type;
  6017.       typedef _Tp* pointer;
  6018.       typedef const _Tp* const_pointer;
  6019.       typedef _Tp& reference;
  6020.       typedef const _Tp& const_reference;
  6021.       typedef _Tp value_type;
  6022.  
  6023.       template<typename _Tp1>
  6024.         struct rebind
  6025.         { typedef allocator<_Tp1> other; };
  6026.  
  6027.  
  6028.  
  6029.  
  6030.  
  6031.  
  6032.  
  6033.       allocator() throw() { }
  6034.  
  6035.       allocator(const allocator& __a) throw()
  6036.       : __gnu_cxx::new_allocator<_Tp>(__a) { }
  6037.  
  6038.       template<typename _Tp1>
  6039.         allocator(const allocator<_Tp1>&) throw() { }
  6040.  
  6041.       ~allocator() throw() { }
  6042.  
  6043.  
  6044.     };
  6045.  
  6046.   template<typename _T1, typename _T2>
  6047.     inline bool
  6048.     operator==(const allocator<_T1>&, const allocator<_T2>&)
  6049.     { return true; }
  6050.  
  6051.   template<typename _Tp>
  6052.     inline bool
  6053.     operator==(const allocator<_Tp>&, const allocator<_Tp>&)
  6054.     { return true; }
  6055.  
  6056.   template<typename _T1, typename _T2>
  6057.     inline bool
  6058.     operator!=(const allocator<_T1>&, const allocator<_T2>&)
  6059.     { return false; }
  6060.  
  6061.   template<typename _Tp>
  6062.     inline bool
  6063.     operator!=(const allocator<_Tp>&, const allocator<_Tp>&)
  6064.     { return false; }
  6065.  
  6066.  
  6067.  
  6068.  
  6069.  
  6070.  
  6071.   extern template class allocator<char>;
  6072.   extern template class allocator<wchar_t>;
  6073.  
  6074.  
  6075.  
  6076.  
  6077.  
  6078.  
  6079.   template<typename _Alloc, bool = __is_empty(_Alloc)>
  6080.     struct __alloc_swap
  6081.     { static void _S_do_it(_Alloc&, _Alloc&) { } };
  6082.  
  6083.   template<typename _Alloc>
  6084.     struct __alloc_swap<_Alloc, false>
  6085.     {
  6086.       static void
  6087.       _S_do_it(_Alloc& __one, _Alloc& __two)
  6088.       {
  6089.  
  6090.  if (__one != __two)
  6091.    swap(__one, __two);
  6092.       }
  6093.     };
  6094.  
  6095.  
  6096.   template<typename _Alloc, bool = __is_empty(_Alloc)>
  6097.     struct __alloc_neq
  6098.     {
  6099.       static bool
  6100.       _S_do_it(const _Alloc&, const _Alloc&)
  6101.       { return false; }
  6102.     };
  6103.  
  6104.   template<typename _Alloc>
  6105.     struct __alloc_neq<_Alloc, false>
  6106.     {
  6107.       static bool
  6108.       _S_do_it(const _Alloc& __one, const _Alloc& __two)
  6109.       { return __one != __two; }
  6110.     };
  6111. # 218 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/allocator.h" 3
  6112.  
  6113. }
  6114. # 42 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/string" 2 3
  6115.  
  6116.  
  6117. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ostream_insert.h" 1 3
  6118. # 33 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ostream_insert.h" 3
  6119.        
  6120. # 34 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ostream_insert.h" 3
  6121.  
  6122.  
  6123. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/cxxabi_forced.h" 1 3
  6124. # 34 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/cxxabi_forced.h" 3
  6125.        
  6126. # 35 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/cxxabi_forced.h" 3
  6127.  
  6128. #pragma GCC visibility push(default)
  6129.  
  6130.  
  6131. namespace __cxxabiv1
  6132. {
  6133.  
  6134.  
  6135.  
  6136.  
  6137.  
  6138.  
  6139.  
  6140.   class __forced_unwind
  6141.   {
  6142.     virtual ~__forced_unwind() throw();
  6143.  
  6144.  
  6145.     virtual void __pure_dummy() = 0;
  6146.   };
  6147. }
  6148.  
  6149.  
  6150. #pragma GCC visibility pop
  6151. # 37 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ostream_insert.h" 2 3
  6152.  
  6153. namespace std
  6154. {
  6155.  
  6156.  
  6157.   template<typename _CharT, typename _Traits>
  6158.     inline void
  6159.     __ostream_write(basic_ostream<_CharT, _Traits>& __out,
  6160.       const _CharT* __s, streamsize __n)
  6161.     {
  6162.       typedef basic_ostream<_CharT, _Traits> __ostream_type;
  6163.       typedef typename __ostream_type::ios_base __ios_base;
  6164.  
  6165.       const streamsize __put = __out.rdbuf()->sputn(__s, __n);
  6166.       if (__put != __n)
  6167.  __out.setstate(__ios_base::badbit);
  6168.     }
  6169.  
  6170.   template<typename _CharT, typename _Traits>
  6171.     inline void
  6172.     __ostream_fill(basic_ostream<_CharT, _Traits>& __out, streamsize __n)
  6173.     {
  6174.       typedef basic_ostream<_CharT, _Traits> __ostream_type;
  6175.       typedef typename __ostream_type::ios_base __ios_base;
  6176.  
  6177.       const _CharT __c = __out.fill();
  6178.       for (; __n > 0; --__n)
  6179.  {
  6180.    const typename _Traits::int_type __put = __out.rdbuf()->sputc(__c);
  6181.    if (_Traits::eq_int_type(__put, _Traits::eof()))
  6182.      {
  6183.        __out.setstate(__ios_base::badbit);
  6184.        break;
  6185.      }
  6186.  }
  6187.     }
  6188.  
  6189.   template<typename _CharT, typename _Traits>
  6190.     basic_ostream<_CharT, _Traits>&
  6191.     __ostream_insert(basic_ostream<_CharT, _Traits>& __out,
  6192.        const _CharT* __s, streamsize __n)
  6193.     {
  6194.       typedef basic_ostream<_CharT, _Traits> __ostream_type;
  6195.       typedef typename __ostream_type::ios_base __ios_base;
  6196.  
  6197.       typename __ostream_type::sentry __cerb(__out);
  6198.       if (__cerb)
  6199.  {
  6200.    try
  6201.      {
  6202.        const streamsize __w = __out.width();
  6203.        if (__w > __n)
  6204.   {
  6205.     const bool __left = ((__out.flags()
  6206.      & __ios_base::adjustfield)
  6207.            == __ios_base::left);
  6208.     if (!__left)
  6209.       __ostream_fill(__out, __w - __n);
  6210.     if (__out.good())
  6211.       __ostream_write(__out, __s, __n);
  6212.     if (__left && __out.good())
  6213.       __ostream_fill(__out, __w - __n);
  6214.   }
  6215.        else
  6216.   __ostream_write(__out, __s, __n);
  6217.        __out.width(0);
  6218.      }
  6219.    catch(__cxxabiv1::__forced_unwind&)
  6220.      {
  6221.        __out._M_setstate(__ios_base::badbit);
  6222.        throw;
  6223.      }
  6224.    catch(...)
  6225.      { __out._M_setstate(__ios_base::badbit); }
  6226.  }
  6227.       return __out;
  6228.     }
  6229.  
  6230.  
  6231.  
  6232.  
  6233.   extern template ostream& __ostream_insert(ostream&, const char*, streamsize);
  6234.  
  6235.  
  6236.   extern template wostream& __ostream_insert(wostream&, const wchar_t*,
  6237.           streamsize);
  6238.  
  6239.  
  6240.  
  6241.  
  6242. }
  6243. # 45 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/string" 2 3
  6244.  
  6245.  
  6246.  
  6247. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_function.h" 1 3
  6248. # 59 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_function.h" 3
  6249. namespace std
  6250. {
  6251.  
  6252. # 100 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_function.h" 3
  6253.   template<typename _Arg, typename _Result>
  6254.     struct unary_function
  6255.     {
  6256.  
  6257.       typedef _Arg argument_type;
  6258.  
  6259.  
  6260.       typedef _Result result_type;
  6261.     };
  6262.  
  6263.  
  6264.  
  6265.  
  6266.   template<typename _Arg1, typename _Arg2, typename _Result>
  6267.     struct binary_function
  6268.     {
  6269.  
  6270.       typedef _Arg1 first_argument_type;
  6271.  
  6272.  
  6273.       typedef _Arg2 second_argument_type;
  6274.  
  6275.  
  6276.       typedef _Result result_type;
  6277.     };
  6278. # 139 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_function.h" 3
  6279.   template<typename _Tp>
  6280.     struct plus : public binary_function<_Tp, _Tp, _Tp>
  6281.     {
  6282.       _Tp
  6283.       operator()(const _Tp& __x, const _Tp& __y) const
  6284.       { return __x + __y; }
  6285.     };
  6286.  
  6287.  
  6288.   template<typename _Tp>
  6289.     struct minus : public binary_function<_Tp, _Tp, _Tp>
  6290.     {
  6291.       _Tp
  6292.       operator()(const _Tp& __x, const _Tp& __y) const
  6293.       { return __x - __y; }
  6294.     };
  6295.  
  6296.  
  6297.   template<typename _Tp>
  6298.     struct multiplies : public binary_function<_Tp, _Tp, _Tp>
  6299.     {
  6300.       _Tp
  6301.       operator()(const _Tp& __x, const _Tp& __y) const
  6302.       { return __x * __y; }
  6303.     };
  6304.  
  6305.  
  6306.   template<typename _Tp>
  6307.     struct divides : public binary_function<_Tp, _Tp, _Tp>
  6308.     {
  6309.       _Tp
  6310.       operator()(const _Tp& __x, const _Tp& __y) const
  6311.       { return __x / __y; }
  6312.     };
  6313.  
  6314.  
  6315.   template<typename _Tp>
  6316.     struct modulus : public binary_function<_Tp, _Tp, _Tp>
  6317.     {
  6318.       _Tp
  6319.       operator()(const _Tp& __x, const _Tp& __y) const
  6320.       { return __x % __y; }
  6321.     };
  6322.  
  6323.  
  6324.   template<typename _Tp>
  6325.     struct negate : public unary_function<_Tp, _Tp>
  6326.     {
  6327.       _Tp
  6328.       operator()(const _Tp& __x) const
  6329.       { return -__x; }
  6330.     };
  6331. # 203 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_function.h" 3
  6332.   template<typename _Tp>
  6333.     struct equal_to : public binary_function<_Tp, _Tp, bool>
  6334.     {
  6335.       bool
  6336.       operator()(const _Tp& __x, const _Tp& __y) const
  6337.       { return __x == __y; }
  6338.     };
  6339.  
  6340.  
  6341.   template<typename _Tp>
  6342.     struct not_equal_to : public binary_function<_Tp, _Tp, bool>
  6343.     {
  6344.       bool
  6345.       operator()(const _Tp& __x, const _Tp& __y) const
  6346.       { return __x != __y; }
  6347.     };
  6348.  
  6349.  
  6350.   template<typename _Tp>
  6351.     struct greater : public binary_function<_Tp, _Tp, bool>
  6352.     {
  6353.       bool
  6354.       operator()(const _Tp& __x, const _Tp& __y) const
  6355.       { return __x > __y; }
  6356.     };
  6357.  
  6358.  
  6359.   template<typename _Tp>
  6360.     struct less : public binary_function<_Tp, _Tp, bool>
  6361.     {
  6362.       bool
  6363.       operator()(const _Tp& __x, const _Tp& __y) const
  6364.       { return __x < __y; }
  6365.     };
  6366.  
  6367.  
  6368.   template<typename _Tp>
  6369.     struct greater_equal : public binary_function<_Tp, _Tp, bool>
  6370.     {
  6371.       bool
  6372.       operator()(const _Tp& __x, const _Tp& __y) const
  6373.       { return __x >= __y; }
  6374.     };
  6375.  
  6376.  
  6377.   template<typename _Tp>
  6378.     struct less_equal : public binary_function<_Tp, _Tp, bool>
  6379.     {
  6380.       bool
  6381.       operator()(const _Tp& __x, const _Tp& __y) const
  6382.       { return __x <= __y; }
  6383.     };
  6384. # 267 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_function.h" 3
  6385.   template<typename _Tp>
  6386.     struct logical_and : public binary_function<_Tp, _Tp, bool>
  6387.     {
  6388.       bool
  6389.       operator()(const _Tp& __x, const _Tp& __y) const
  6390.       { return __x && __y; }
  6391.     };
  6392.  
  6393.  
  6394.   template<typename _Tp>
  6395.     struct logical_or : public binary_function<_Tp, _Tp, bool>
  6396.     {
  6397.       bool
  6398.       operator()(const _Tp& __x, const _Tp& __y) const
  6399.       { return __x || __y; }
  6400.     };
  6401.  
  6402.  
  6403.   template<typename _Tp>
  6404.     struct logical_not : public unary_function<_Tp, bool>
  6405.     {
  6406.       bool
  6407.       operator()(const _Tp& __x) const
  6408.       { return !__x; }
  6409.     };
  6410.  
  6411.  
  6412.  
  6413.  
  6414.   template<typename _Tp>
  6415.     struct bit_and : public binary_function<_Tp, _Tp, _Tp>
  6416.     {
  6417.       _Tp
  6418.       operator()(const _Tp& __x, const _Tp& __y) const
  6419.       { return __x & __y; }
  6420.     };
  6421.  
  6422.   template<typename _Tp>
  6423.     struct bit_or : public binary_function<_Tp, _Tp, _Tp>
  6424.     {
  6425.       _Tp
  6426.       operator()(const _Tp& __x, const _Tp& __y) const
  6427.       { return __x | __y; }
  6428.     };
  6429.  
  6430.   template<typename _Tp>
  6431.     struct bit_xor : public binary_function<_Tp, _Tp, _Tp>
  6432.     {
  6433.       _Tp
  6434.       operator()(const _Tp& __x, const _Tp& __y) const
  6435.       { return __x ^ __y; }
  6436.     };
  6437. # 350 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_function.h" 3
  6438.   template<typename _Predicate>
  6439.     class unary_negate
  6440.     : public unary_function<typename _Predicate::argument_type, bool>
  6441.     {
  6442.     protected:
  6443.       _Predicate _M_pred;
  6444.  
  6445.     public:
  6446.       explicit
  6447.       unary_negate(const _Predicate& __x) : _M_pred(__x) { }
  6448.  
  6449.       bool
  6450.       operator()(const typename _Predicate::argument_type& __x) const
  6451.       { return !_M_pred(__x); }
  6452.     };
  6453.  
  6454.  
  6455.   template<typename _Predicate>
  6456.     inline unary_negate<_Predicate>
  6457.     not1(const _Predicate& __pred)
  6458.     { return unary_negate<_Predicate>(__pred); }
  6459.  
  6460.  
  6461.   template<typename _Predicate>
  6462.     class binary_negate
  6463.     : public binary_function<typename _Predicate::first_argument_type,
  6464.         typename _Predicate::second_argument_type, bool>
  6465.     {
  6466.     protected:
  6467.       _Predicate _M_pred;
  6468.  
  6469.     public:
  6470.       explicit
  6471.       binary_negate(const _Predicate& __x) : _M_pred(__x) { }
  6472.  
  6473.       bool
  6474.       operator()(const typename _Predicate::first_argument_type& __x,
  6475.    const typename _Predicate::second_argument_type& __y) const
  6476.       { return !_M_pred(__x, __y); }
  6477.     };
  6478.  
  6479.  
  6480.   template<typename _Predicate>
  6481.     inline binary_negate<_Predicate>
  6482.     not2(const _Predicate& __pred)
  6483.     { return binary_negate<_Predicate>(__pred); }
  6484. # 421 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_function.h" 3
  6485.   template<typename _Arg, typename _Result>
  6486.     class pointer_to_unary_function : public unary_function<_Arg, _Result>
  6487.     {
  6488.     protected:
  6489.       _Result (*_M_ptr)(_Arg);
  6490.  
  6491.     public:
  6492.       pointer_to_unary_function() { }
  6493.  
  6494.       explicit
  6495.       pointer_to_unary_function(_Result (*__x)(_Arg))
  6496.       : _M_ptr(__x) { }
  6497.  
  6498.       _Result
  6499.       operator()(_Arg __x) const
  6500.       { return _M_ptr(__x); }
  6501.     };
  6502.  
  6503.  
  6504.   template<typename _Arg, typename _Result>
  6505.     inline pointer_to_unary_function<_Arg, _Result>
  6506.     ptr_fun(_Result (*__x)(_Arg))
  6507.     { return pointer_to_unary_function<_Arg, _Result>(__x); }
  6508.  
  6509.  
  6510.   template<typename _Arg1, typename _Arg2, typename _Result>
  6511.     class pointer_to_binary_function
  6512.     : public binary_function<_Arg1, _Arg2, _Result>
  6513.     {
  6514.     protected:
  6515.       _Result (*_M_ptr)(_Arg1, _Arg2);
  6516.  
  6517.     public:
  6518.       pointer_to_binary_function() { }
  6519.  
  6520.       explicit
  6521.       pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2))
  6522.       : _M_ptr(__x) { }
  6523.  
  6524.       _Result
  6525.       operator()(_Arg1 __x, _Arg2 __y) const
  6526.       { return _M_ptr(__x, __y); }
  6527.     };
  6528.  
  6529.  
  6530.   template<typename _Arg1, typename _Arg2, typename _Result>
  6531.     inline pointer_to_binary_function<_Arg1, _Arg2, _Result>
  6532.     ptr_fun(_Result (*__x)(_Arg1, _Arg2))
  6533.     { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); }
  6534.  
  6535.  
  6536.   template<typename _Tp>
  6537.     struct _Identity
  6538.     : public unary_function<_Tp,_Tp>
  6539.     {
  6540.       _Tp&
  6541.       operator()(_Tp& __x) const
  6542.       { return __x; }
  6543.  
  6544.       const _Tp&
  6545.       operator()(const _Tp& __x) const
  6546.       { return __x; }
  6547.     };
  6548.  
  6549.   template<typename _Pair>
  6550.     struct _Select1st
  6551.     : public unary_function<_Pair, typename _Pair::first_type>
  6552.     {
  6553.       typename _Pair::first_type&
  6554.       operator()(_Pair& __x) const
  6555.       { return __x.first; }
  6556.  
  6557.       const typename _Pair::first_type&
  6558.       operator()(const _Pair& __x) const
  6559.       { return __x.first; }
  6560. # 508 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_function.h" 3
  6561.     };
  6562.  
  6563.   template<typename _Pair>
  6564.     struct _Select2nd
  6565.     : public unary_function<_Pair, typename _Pair::second_type>
  6566.     {
  6567.       typename _Pair::second_type&
  6568.       operator()(_Pair& __x) const
  6569.       { return __x.second; }
  6570.  
  6571.       const typename _Pair::second_type&
  6572.       operator()(const _Pair& __x) const
  6573.       { return __x.second; }
  6574.     };
  6575. # 541 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_function.h" 3
  6576.   template<typename _Ret, typename _Tp>
  6577.     class mem_fun_t : public unary_function<_Tp*, _Ret>
  6578.     {
  6579.     public:
  6580.       explicit
  6581.       mem_fun_t(_Ret (_Tp::*__pf)())
  6582.       : _M_f(__pf) { }
  6583.  
  6584.       _Ret
  6585.       operator()(_Tp* __p) const
  6586.       { return (__p->*_M_f)(); }
  6587.  
  6588.     private:
  6589.       _Ret (_Tp::*_M_f)();
  6590.     };
  6591.  
  6592.  
  6593.  
  6594.   template<typename _Ret, typename _Tp>
  6595.     class const_mem_fun_t : public unary_function<const _Tp*, _Ret>
  6596.     {
  6597.     public:
  6598.       explicit
  6599.       const_mem_fun_t(_Ret (_Tp::*__pf)() const)
  6600.       : _M_f(__pf) { }
  6601.  
  6602.       _Ret
  6603.       operator()(const _Tp* __p) const
  6604.       { return (__p->*_M_f)(); }
  6605.  
  6606.     private:
  6607.       _Ret (_Tp::*_M_f)() const;
  6608.     };
  6609.  
  6610.  
  6611.  
  6612.   template<typename _Ret, typename _Tp>
  6613.     class mem_fun_ref_t : public unary_function<_Tp, _Ret>
  6614.     {
  6615.     public:
  6616.       explicit
  6617.       mem_fun_ref_t(_Ret (_Tp::*__pf)())
  6618.       : _M_f(__pf) { }
  6619.  
  6620.       _Ret
  6621.       operator()(_Tp& __r) const
  6622.       { return (__r.*_M_f)(); }
  6623.  
  6624.     private:
  6625.       _Ret (_Tp::*_M_f)();
  6626.   };
  6627.  
  6628.  
  6629.  
  6630.   template<typename _Ret, typename _Tp>
  6631.     class const_mem_fun_ref_t : public unary_function<_Tp, _Ret>
  6632.     {
  6633.     public:
  6634.       explicit
  6635.       const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const)
  6636.       : _M_f(__pf) { }
  6637.  
  6638.       _Ret
  6639.       operator()(const _Tp& __r) const
  6640.       { return (__r.*_M_f)(); }
  6641.  
  6642.     private:
  6643.       _Ret (_Tp::*_M_f)() const;
  6644.     };
  6645.  
  6646.  
  6647.  
  6648.   template<typename _Ret, typename _Tp, typename _Arg>
  6649.     class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret>
  6650.     {
  6651.     public:
  6652.       explicit
  6653.       mem_fun1_t(_Ret (_Tp::*__pf)(_Arg))
  6654.       : _M_f(__pf) { }
  6655.  
  6656.       _Ret
  6657.       operator()(_Tp* __p, _Arg __x) const
  6658.       { return (__p->*_M_f)(__x); }
  6659.  
  6660.     private:
  6661.       _Ret (_Tp::*_M_f)(_Arg);
  6662.     };
  6663.  
  6664.  
  6665.  
  6666.   template<typename _Ret, typename _Tp, typename _Arg>
  6667.     class const_mem_fun1_t : public binary_function<const _Tp*, _Arg, _Ret>
  6668.     {
  6669.     public:
  6670.       explicit
  6671.       const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const)
  6672.       : _M_f(__pf) { }
  6673.  
  6674.       _Ret
  6675.       operator()(const _Tp* __p, _Arg __x) const
  6676.       { return (__p->*_M_f)(__x); }
  6677.  
  6678.     private:
  6679.       _Ret (_Tp::*_M_f)(_Arg) const;
  6680.     };
  6681.  
  6682.  
  6683.  
  6684.   template<typename _Ret, typename _Tp, typename _Arg>
  6685.     class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret>
  6686.     {
  6687.     public:
  6688.       explicit
  6689.       mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg))
  6690.       : _M_f(__pf) { }
  6691.  
  6692.       _Ret
  6693.       operator()(_Tp& __r, _Arg __x) const
  6694.       { return (__r.*_M_f)(__x); }
  6695.  
  6696.     private:
  6697.       _Ret (_Tp::*_M_f)(_Arg);
  6698.     };
  6699.  
  6700.  
  6701.  
  6702.   template<typename _Ret, typename _Tp, typename _Arg>
  6703.     class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret>
  6704.     {
  6705.     public:
  6706.       explicit
  6707.       const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const)
  6708.       : _M_f(__pf) { }
  6709.  
  6710.       _Ret
  6711.       operator()(const _Tp& __r, _Arg __x) const
  6712.       { return (__r.*_M_f)(__x); }
  6713.  
  6714.     private:
  6715.       _Ret (_Tp::*_M_f)(_Arg) const;
  6716.     };
  6717.  
  6718.  
  6719.  
  6720.   template<typename _Ret, typename _Tp>
  6721.     inline mem_fun_t<_Ret, _Tp>
  6722.     mem_fun(_Ret (_Tp::*__f)())
  6723.     { return mem_fun_t<_Ret, _Tp>(__f); }
  6724.  
  6725.   template<typename _Ret, typename _Tp>
  6726.     inline const_mem_fun_t<_Ret, _Tp>
  6727.     mem_fun(_Ret (_Tp::*__f)() const)
  6728.     { return const_mem_fun_t<_Ret, _Tp>(__f); }
  6729.  
  6730.   template<typename _Ret, typename _Tp>
  6731.     inline mem_fun_ref_t<_Ret, _Tp>
  6732.     mem_fun_ref(_Ret (_Tp::*__f)())
  6733.     { return mem_fun_ref_t<_Ret, _Tp>(__f); }
  6734.  
  6735.   template<typename _Ret, typename _Tp>
  6736.     inline const_mem_fun_ref_t<_Ret, _Tp>
  6737.     mem_fun_ref(_Ret (_Tp::*__f)() const)
  6738.     { return const_mem_fun_ref_t<_Ret, _Tp>(__f); }
  6739.  
  6740.   template<typename _Ret, typename _Tp, typename _Arg>
  6741.     inline mem_fun1_t<_Ret, _Tp, _Arg>
  6742.     mem_fun(_Ret (_Tp::*__f)(_Arg))
  6743.     { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); }
  6744.  
  6745.   template<typename _Ret, typename _Tp, typename _Arg>
  6746.     inline const_mem_fun1_t<_Ret, _Tp, _Arg>
  6747.     mem_fun(_Ret (_Tp::*__f)(_Arg) const)
  6748.     { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); }
  6749.  
  6750.   template<typename _Ret, typename _Tp, typename _Arg>
  6751.     inline mem_fun1_ref_t<_Ret, _Tp, _Arg>
  6752.     mem_fun_ref(_Ret (_Tp::*__f)(_Arg))
  6753.     { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
  6754.  
  6755.   template<typename _Ret, typename _Tp, typename _Arg>
  6756.     inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg>
  6757.     mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const)
  6758.     { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
  6759.  
  6760.  
  6761.  
  6762.  
  6763. }
  6764.  
  6765.  
  6766. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/backward/binders.h" 1 3
  6767. # 59 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/backward/binders.h" 3
  6768. namespace std
  6769. {
  6770.  
  6771. # 103 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/backward/binders.h" 3
  6772.   template<typename _Operation>
  6773.     class binder1st
  6774.     : public unary_function<typename _Operation::second_argument_type,
  6775.        typename _Operation::result_type>
  6776.     {
  6777.     protected:
  6778.       _Operation op;
  6779.       typename _Operation::first_argument_type value;
  6780.  
  6781.     public:
  6782.       binder1st(const _Operation& __x,
  6783.   const typename _Operation::first_argument_type& __y)
  6784.       : op(__x), value(__y) { }
  6785.  
  6786.       typename _Operation::result_type
  6787.       operator()(const typename _Operation::second_argument_type& __x) const
  6788.       { return op(value, __x); }
  6789.  
  6790.  
  6791.  
  6792.       typename _Operation::result_type
  6793.       operator()(typename _Operation::second_argument_type& __x) const
  6794.       { return op(value, __x); }
  6795.     } ;
  6796.  
  6797.  
  6798.   template<typename _Operation, typename _Tp>
  6799.     inline binder1st<_Operation>
  6800.     bind1st(const _Operation& __fn, const _Tp& __x)
  6801.     {
  6802.       typedef typename _Operation::first_argument_type _Arg1_type;
  6803.       return binder1st<_Operation>(__fn, _Arg1_type(__x));
  6804.     }
  6805.  
  6806.  
  6807.   template<typename _Operation>
  6808.     class binder2nd
  6809.     : public unary_function<typename _Operation::first_argument_type,
  6810.        typename _Operation::result_type>
  6811.     {
  6812.     protected:
  6813.       _Operation op;
  6814.       typename _Operation::second_argument_type value;
  6815.  
  6816.     public:
  6817.       binder2nd(const _Operation& __x,
  6818.   const typename _Operation::second_argument_type& __y)
  6819.       : op(__x), value(__y) { }
  6820.  
  6821.       typename _Operation::result_type
  6822.       operator()(const typename _Operation::first_argument_type& __x) const
  6823.       { return op(__x, value); }
  6824.  
  6825.  
  6826.  
  6827.       typename _Operation::result_type
  6828.       operator()(typename _Operation::first_argument_type& __x) const
  6829.       { return op(__x, value); }
  6830.     } ;
  6831.  
  6832.  
  6833.   template<typename _Operation, typename _Tp>
  6834.     inline binder2nd<_Operation>
  6835.     bind2nd(const _Operation& __fn, const _Tp& __x)
  6836.     {
  6837.       typedef typename _Operation::second_argument_type _Arg2_type;
  6838.       return binder2nd<_Operation>(__fn, _Arg2_type(__x));
  6839.     }
  6840.  
  6841.  
  6842.  
  6843. }
  6844. # 732 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/stl_function.h" 2 3
  6845. # 49 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/string" 2 3
  6846.  
  6847.  
  6848. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/range_access.h" 1 3
  6849. # 33 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/range_access.h" 3
  6850.        
  6851. # 34 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/range_access.h" 3
  6852. # 52 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/string" 2 3
  6853. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 1 3
  6854. # 37 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  6855.        
  6856. # 38 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  6857.  
  6858.  
  6859.  
  6860.  
  6861.  
  6862.  
  6863.  
  6864. namespace std
  6865. {
  6866.  
  6867. # 111 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  6868.   template<typename _CharT, typename _Traits, typename _Alloc>
  6869.     class basic_string
  6870.     {
  6871.       typedef typename _Alloc::template rebind<_CharT>::other _CharT_alloc_type;
  6872.  
  6873.  
  6874.     public:
  6875.       typedef _Traits traits_type;
  6876.       typedef typename _Traits::char_type value_type;
  6877.       typedef _Alloc allocator_type;
  6878.       typedef typename _CharT_alloc_type::size_type size_type;
  6879.       typedef typename _CharT_alloc_type::difference_type difference_type;
  6880.       typedef typename _CharT_alloc_type::reference reference;
  6881.       typedef typename _CharT_alloc_type::const_reference const_reference;
  6882.       typedef typename _CharT_alloc_type::pointer pointer;
  6883.       typedef typename _CharT_alloc_type::const_pointer const_pointer;
  6884.       typedef __gnu_cxx::__normal_iterator<pointer, basic_string> iterator;
  6885.       typedef __gnu_cxx::__normal_iterator<const_pointer, basic_string>
  6886.                                                             const_iterator;
  6887.       typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
  6888.       typedef std::reverse_iterator<iterator> reverse_iterator;
  6889.  
  6890.     private:
  6891. # 148 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  6892.       struct _Rep_base
  6893.       {
  6894.  size_type _M_length;
  6895.  size_type _M_capacity;
  6896.  _Atomic_word _M_refcount;
  6897.       };
  6898.  
  6899.       struct _Rep : _Rep_base
  6900.       {
  6901.  
  6902.  typedef typename _Alloc::template rebind<char>::other _Raw_bytes_alloc;
  6903. # 173 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  6904.  static const size_type _S_max_size;
  6905.  static const _CharT _S_terminal;
  6906.  
  6907.  
  6908.  
  6909.         static size_type _S_empty_rep_storage[];
  6910.  
  6911.         static _Rep&
  6912.         _S_empty_rep()
  6913.         {
  6914.  
  6915.  
  6916.  
  6917.    void* __p = reinterpret_cast<void*>(&_S_empty_rep_storage);
  6918.    return *reinterpret_cast<_Rep*>(__p);
  6919.  }
  6920.  
  6921.         bool
  6922.  _M_is_leaked() const
  6923.         { return this->_M_refcount < 0; }
  6924.  
  6925.         bool
  6926.  _M_is_shared() const
  6927.         { return this->_M_refcount > 0; }
  6928.  
  6929.         void
  6930.  _M_set_leaked()
  6931.         { this->_M_refcount = -1; }
  6932.  
  6933.         void
  6934.  _M_set_sharable()
  6935.         { this->_M_refcount = 0; }
  6936.  
  6937.  void
  6938.  _M_set_length_and_sharable(size_type __n)
  6939.  {
  6940.  
  6941.    if (__builtin_expect(this != &_S_empty_rep(), false))
  6942.  
  6943.      {
  6944.        this->_M_set_sharable();
  6945.        this->_M_length = __n;
  6946.        traits_type::assign(this->_M_refdata()[__n], _S_terminal);
  6947.  
  6948.  
  6949.      }
  6950.  }
  6951.  
  6952.  _CharT*
  6953.  _M_refdata() throw()
  6954.  { return reinterpret_cast<_CharT*>(this + 1); }
  6955.  
  6956.  _CharT*
  6957.  _M_grab(const _Alloc& __alloc1, const _Alloc& __alloc2)
  6958.  {
  6959.    return (!_M_is_leaked() && __alloc1 == __alloc2)
  6960.            ? _M_refcopy() : _M_clone(__alloc1);
  6961.  }
  6962.  
  6963.  
  6964.  static _Rep*
  6965.  _S_create(size_type, size_type, const _Alloc&);
  6966.  
  6967.  void
  6968.  _M_dispose(const _Alloc& __a)
  6969.  {
  6970.  
  6971.    if (__builtin_expect(this != &_S_empty_rep(), false))
  6972.  
  6973.      {
  6974.  
  6975.        ;
  6976.        if (__gnu_cxx::__exchange_and_add_dispatch(&this->_M_refcount,
  6977.         -1) <= 0)
  6978.   {
  6979.     ;
  6980.     _M_destroy(__a);
  6981.   }
  6982.      }
  6983.  }
  6984.  
  6985.  void
  6986.  _M_destroy(const _Alloc&) throw();
  6987.  
  6988.  _CharT*
  6989.  _M_refcopy() throw()
  6990.  {
  6991.  
  6992.    if (__builtin_expect(this != &_S_empty_rep(), false))
  6993.  
  6994.             __gnu_cxx::__atomic_add_dispatch(&this->_M_refcount, 1);
  6995.    return _M_refdata();
  6996.  }
  6997.  
  6998.  _CharT*
  6999.  _M_clone(const _Alloc&, size_type __res = 0);
  7000.       };
  7001.  
  7002.  
  7003.       struct _Alloc_hider : _Alloc
  7004.       {
  7005.  _Alloc_hider(_CharT* __dat, const _Alloc& __a)
  7006.  : _Alloc(__a), _M_p(__dat) { }
  7007.  
  7008.  _CharT* _M_p;
  7009.       };
  7010.  
  7011.     public:
  7012.  
  7013.  
  7014.  
  7015.  
  7016.       static const size_type npos = static_cast<size_type>(-1);
  7017.  
  7018.     private:
  7019.  
  7020.       mutable _Alloc_hider _M_dataplus;
  7021.  
  7022.       _CharT*
  7023.       _M_data() const
  7024.       { return _M_dataplus._M_p; }
  7025.  
  7026.       _CharT*
  7027.       _M_data(_CharT* __p)
  7028.       { return (_M_dataplus._M_p = __p); }
  7029.  
  7030.       _Rep*
  7031.       _M_rep() const
  7032.       { return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); }
  7033.  
  7034.  
  7035.  
  7036.       iterator
  7037.       _M_ibegin() const
  7038.       { return iterator(_M_data()); }
  7039.  
  7040.       iterator
  7041.       _M_iend() const
  7042.       { return iterator(_M_data() + this->size()); }
  7043.  
  7044.       void
  7045.       _M_leak()
  7046.       {
  7047.  if (!_M_rep()->_M_is_leaked())
  7048.    _M_leak_hard();
  7049.       }
  7050.  
  7051.       size_type
  7052.       _M_check(size_type __pos, const char* __s) const
  7053.       {
  7054.  if (__pos > this->size())
  7055.    __throw_out_of_range((__s));
  7056.  return __pos;
  7057.       }
  7058.  
  7059.       void
  7060.       _M_check_length(size_type __n1, size_type __n2, const char* __s) const
  7061.       {
  7062.  if (this->max_size() - (this->size() - __n1) < __n2)
  7063.    __throw_length_error((__s));
  7064.       }
  7065.  
  7066.  
  7067.       size_type
  7068.       _M_limit(size_type __pos, size_type __off) const
  7069.       {
  7070.  const bool __testoff = __off < this->size() - __pos;
  7071.  return __testoff ? __off : this->size() - __pos;
  7072.       }
  7073.  
  7074.  
  7075.       bool
  7076.       _M_disjunct(const _CharT* __s) const
  7077.       {
  7078.  return (less<const _CharT*>()(__s, _M_data())
  7079.   || less<const _CharT*>()(_M_data() + this->size(), __s));
  7080.       }
  7081.  
  7082.  
  7083.  
  7084.       static void
  7085.       _M_copy(_CharT* __d, const _CharT* __s, size_type __n)
  7086.       {
  7087.  if (__n == 1)
  7088.    traits_type::assign(*__d, *__s);
  7089.  else
  7090.    traits_type::copy(__d, __s, __n);
  7091.       }
  7092.  
  7093.       static void
  7094.       _M_move(_CharT* __d, const _CharT* __s, size_type __n)
  7095.       {
  7096.  if (__n == 1)
  7097.    traits_type::assign(*__d, *__s);
  7098.  else
  7099.    traits_type::move(__d, __s, __n);
  7100.       }
  7101.  
  7102.       static void
  7103.       _M_assign(_CharT* __d, size_type __n, _CharT __c)
  7104.       {
  7105.  if (__n == 1)
  7106.    traits_type::assign(*__d, __c);
  7107.  else
  7108.    traits_type::assign(__d, __n, __c);
  7109.       }
  7110.  
  7111.  
  7112.  
  7113.       template<class _Iterator>
  7114.         static void
  7115.         _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2)
  7116.         {
  7117.    for (; __k1 != __k2; ++__k1, ++__p)
  7118.      traits_type::assign(*__p, *__k1);
  7119.  }
  7120.  
  7121.       static void
  7122.       _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2)
  7123.       { _S_copy_chars(__p, __k1.base(), __k2.base()); }
  7124.  
  7125.       static void
  7126.       _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2)
  7127.       { _S_copy_chars(__p, __k1.base(), __k2.base()); }
  7128.  
  7129.       static void
  7130.       _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2)
  7131.       { _M_copy(__p, __k1, __k2 - __k1); }
  7132.  
  7133.       static void
  7134.       _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2)
  7135.       { _M_copy(__p, __k1, __k2 - __k1); }
  7136.  
  7137.       static int
  7138.       _S_compare(size_type __n1, size_type __n2)
  7139.       {
  7140.  const difference_type __d = difference_type(__n1 - __n2);
  7141.  
  7142.  if (__d > __gnu_cxx::__numeric_traits<int>::__max)
  7143.    return __gnu_cxx::__numeric_traits<int>::__max;
  7144.  else if (__d < __gnu_cxx::__numeric_traits<int>::__min)
  7145.    return __gnu_cxx::__numeric_traits<int>::__min;
  7146.  else
  7147.    return int(__d);
  7148.       }
  7149.  
  7150.       void
  7151.       _M_mutate(size_type __pos, size_type __len1, size_type __len2);
  7152.  
  7153.       void
  7154.       _M_leak_hard();
  7155.  
  7156.       static _Rep&
  7157.       _S_empty_rep()
  7158.       { return _Rep::_S_empty_rep(); }
  7159.  
  7160.     public:
  7161.  
  7162.  
  7163.  
  7164.  
  7165.  
  7166.  
  7167.  
  7168.       basic_string()
  7169.  
  7170.       : _M_dataplus(_S_empty_rep()._M_refdata(), _Alloc()) { }
  7171.  
  7172.  
  7173.  
  7174.  
  7175.  
  7176.  
  7177.  
  7178.       explicit
  7179.       basic_string(const _Alloc& __a);
  7180.  
  7181.  
  7182.  
  7183.  
  7184.  
  7185.  
  7186.       basic_string(const basic_string& __str);
  7187.  
  7188.  
  7189.  
  7190.  
  7191.  
  7192.  
  7193.       basic_string(const basic_string& __str, size_type __pos,
  7194.      size_type __n = npos);
  7195.  
  7196.  
  7197.  
  7198.  
  7199.  
  7200.  
  7201.  
  7202.       basic_string(const basic_string& __str, size_type __pos,
  7203.      size_type __n, const _Alloc& __a);
  7204. # 483 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7205.       basic_string(const _CharT* __s, size_type __n,
  7206.      const _Alloc& __a = _Alloc());
  7207.  
  7208.  
  7209.  
  7210.  
  7211.  
  7212.       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc());
  7213.  
  7214.  
  7215.  
  7216.  
  7217.  
  7218.  
  7219.       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc());
  7220. # 531 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7221.       template<class _InputIterator>
  7222.         basic_string(_InputIterator __beg, _InputIterator __end,
  7223.        const _Alloc& __a = _Alloc());
  7224.  
  7225.  
  7226.  
  7227.  
  7228.       ~basic_string()
  7229.       { _M_rep()->_M_dispose(this->get_allocator()); }
  7230.  
  7231.  
  7232.  
  7233.  
  7234.  
  7235.       basic_string&
  7236.       operator=(const basic_string& __str)
  7237.       { return this->assign(__str); }
  7238.  
  7239.  
  7240.  
  7241.  
  7242.  
  7243.       basic_string&
  7244.       operator=(const _CharT* __s)
  7245.       { return this->assign(__s); }
  7246. # 564 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7247.       basic_string&
  7248.       operator=(_CharT __c)
  7249.       {
  7250.  this->assign(1, __c);
  7251.  return *this;
  7252.       }
  7253. # 604 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7254.       iterator
  7255.       begin()
  7256.       {
  7257.  _M_leak();
  7258.  return iterator(_M_data());
  7259.       }
  7260.  
  7261.  
  7262.  
  7263.  
  7264.  
  7265.       const_iterator
  7266.       begin() const
  7267.       { return const_iterator(_M_data()); }
  7268.  
  7269.  
  7270.  
  7271.  
  7272.  
  7273.       iterator
  7274.       end()
  7275.       {
  7276.  _M_leak();
  7277.  return iterator(_M_data() + this->size());
  7278.       }
  7279.  
  7280.  
  7281.  
  7282.  
  7283.  
  7284.       const_iterator
  7285.       end() const
  7286.       { return const_iterator(_M_data() + this->size()); }
  7287.  
  7288.  
  7289.  
  7290.  
  7291.  
  7292.  
  7293.       reverse_iterator
  7294.       rbegin()
  7295.       { return reverse_iterator(this->end()); }
  7296.  
  7297.  
  7298.  
  7299.  
  7300.  
  7301.  
  7302.       const_reverse_iterator
  7303.       rbegin() const
  7304.       { return const_reverse_iterator(this->end()); }
  7305.  
  7306.  
  7307.  
  7308.  
  7309.  
  7310.  
  7311.       reverse_iterator
  7312.       rend()
  7313.       { return reverse_iterator(this->begin()); }
  7314.  
  7315.  
  7316.  
  7317.  
  7318.  
  7319.  
  7320.       const_reverse_iterator
  7321.       rend() const
  7322.       { return const_reverse_iterator(this->begin()); }
  7323. # 710 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7324.     public:
  7325.  
  7326.  
  7327.  
  7328.       size_type
  7329.       size() const
  7330.       { return _M_rep()->_M_length; }
  7331.  
  7332.  
  7333.  
  7334.       size_type
  7335.       length() const
  7336.       { return _M_rep()->_M_length; }
  7337.  
  7338.  
  7339.       size_type
  7340.       max_size() const
  7341.       { return _Rep::_S_max_size; }
  7342. # 739 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7343.       void
  7344.       resize(size_type __n, _CharT __c);
  7345. # 752 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7346.       void
  7347.       resize(size_type __n)
  7348.       { this->resize(__n, _CharT()); }
  7349. # 775 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7350.       size_type
  7351.       capacity() const
  7352.       { return _M_rep()->_M_capacity; }
  7353. # 796 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7354.       void
  7355.       reserve(size_type __res_arg = 0);
  7356.  
  7357.  
  7358.  
  7359.  
  7360.       void
  7361.       clear()
  7362.       { _M_mutate(0, this->size(), 0); }
  7363.  
  7364.  
  7365.  
  7366.  
  7367.  
  7368.       bool
  7369.       empty() const
  7370.       { return this->size() == 0; }
  7371. # 825 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7372.       const_reference
  7373.       operator[] (size_type __pos) const
  7374.       {
  7375.  ;
  7376.  return _M_data()[__pos];
  7377.       }
  7378. # 842 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7379.       reference
  7380.       operator[](size_type __pos)
  7381.       {
  7382.  
  7383.  ;
  7384.  
  7385.  ;
  7386.  _M_leak();
  7387.  return _M_data()[__pos];
  7388.       }
  7389. # 863 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7390.       const_reference
  7391.       at(size_type __n) const
  7392.       {
  7393.  if (__n >= this->size())
  7394.    __throw_out_of_range(("basic_string::at"));
  7395.  return _M_data()[__n];
  7396.       }
  7397. # 882 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7398.       reference
  7399.       at(size_type __n)
  7400.       {
  7401.  if (__n >= size())
  7402.    __throw_out_of_range(("basic_string::at"));
  7403.  _M_leak();
  7404.  return _M_data()[__n];
  7405.       }
  7406. # 931 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7407.       basic_string&
  7408.       operator+=(const basic_string& __str)
  7409.       { return this->append(__str); }
  7410.  
  7411.  
  7412.  
  7413.  
  7414.  
  7415.  
  7416.       basic_string&
  7417.       operator+=(const _CharT* __s)
  7418.       { return this->append(__s); }
  7419.  
  7420.  
  7421.  
  7422.  
  7423.  
  7424.  
  7425.       basic_string&
  7426.       operator+=(_CharT __c)
  7427.       {
  7428.  this->push_back(__c);
  7429.  return *this;
  7430.       }
  7431. # 972 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7432.       basic_string&
  7433.       append(const basic_string& __str);
  7434. # 988 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7435.       basic_string&
  7436.       append(const basic_string& __str, size_type __pos, size_type __n);
  7437.  
  7438.  
  7439.  
  7440.  
  7441.  
  7442.  
  7443.  
  7444.       basic_string&
  7445.       append(const _CharT* __s, size_type __n);
  7446.  
  7447.  
  7448.  
  7449.  
  7450.  
  7451.  
  7452.       basic_string&
  7453.       append(const _CharT* __s)
  7454.       {
  7455.  ;
  7456.  return this->append(__s, traits_type::length(__s));
  7457.       }
  7458. # 1020 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7459.       basic_string&
  7460.       append(size_type __n, _CharT __c);
  7461. # 1042 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7462.       template<class _InputIterator>
  7463.         basic_string&
  7464.         append(_InputIterator __first, _InputIterator __last)
  7465.         { return this->replace(_M_iend(), _M_iend(), __first, __last); }
  7466.  
  7467.  
  7468.  
  7469.  
  7470.  
  7471.       void
  7472.       push_back(_CharT __c)
  7473.       {
  7474.  const size_type __len = 1 + this->size();
  7475.  if (__len > this->capacity() || _M_rep()->_M_is_shared())
  7476.    this->reserve(__len);
  7477.  traits_type::assign(_M_data()[this->size()], __c);
  7478.  _M_rep()->_M_set_length_and_sharable(__len);
  7479.       }
  7480.  
  7481.  
  7482.  
  7483.  
  7484.  
  7485.  
  7486.       basic_string&
  7487.       assign(const basic_string& __str);
  7488. # 1099 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7489.       basic_string&
  7490.       assign(const basic_string& __str, size_type __pos, size_type __n)
  7491.       { return this->assign(__str._M_data()
  7492.        + __str._M_check(__pos, "basic_string::assign"),
  7493.        __str._M_limit(__pos, __n)); }
  7494. # 1115 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7495.       basic_string&
  7496.       assign(const _CharT* __s, size_type __n);
  7497. # 1127 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7498.       basic_string&
  7499.       assign(const _CharT* __s)
  7500.       {
  7501.  ;
  7502.  return this->assign(__s, traits_type::length(__s));
  7503.       }
  7504. # 1143 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7505.       basic_string&
  7506.       assign(size_type __n, _CharT __c)
  7507.       { return _M_replace_aux(size_type(0), this->size(), __n, __c); }
  7508. # 1155 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7509.       template<class _InputIterator>
  7510.         basic_string&
  7511.         assign(_InputIterator __first, _InputIterator __last)
  7512.         { return this->replace(_M_ibegin(), _M_iend(), __first, __last); }
  7513. # 1184 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7514.       void
  7515.       insert(iterator __p, size_type __n, _CharT __c)
  7516.       { this->replace(__p, __p, __n, __c); }
  7517. # 1200 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7518.       template<class _InputIterator>
  7519.         void
  7520.         insert(iterator __p, _InputIterator __beg, _InputIterator __end)
  7521.         { this->replace(__p, __p, __beg, __end); }
  7522. # 1232 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7523.       basic_string&
  7524.       insert(size_type __pos1, const basic_string& __str)
  7525.       { return this->insert(__pos1, __str, size_type(0), __str.size()); }
  7526. # 1254 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7527.       basic_string&
  7528.       insert(size_type __pos1, const basic_string& __str,
  7529.       size_type __pos2, size_type __n)
  7530.       { return this->insert(__pos1, __str._M_data()
  7531.        + __str._M_check(__pos2, "basic_string::insert"),
  7532.        __str._M_limit(__pos2, __n)); }
  7533. # 1277 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7534.       basic_string&
  7535.       insert(size_type __pos, const _CharT* __s, size_type __n);
  7536. # 1295 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7537.       basic_string&
  7538.       insert(size_type __pos, const _CharT* __s)
  7539.       {
  7540.  ;
  7541.  return this->insert(__pos, __s, traits_type::length(__s));
  7542.       }
  7543. # 1318 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7544.       basic_string&
  7545.       insert(size_type __pos, size_type __n, _CharT __c)
  7546.       { return _M_replace_aux(_M_check(__pos, "basic_string::insert"),
  7547.          size_type(0), __n, __c); }
  7548. # 1336 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7549.       iterator
  7550.       insert(iterator __p, _CharT __c)
  7551.       {
  7552.  ;
  7553.  const size_type __pos = __p - _M_ibegin();
  7554.  _M_replace_aux(__pos, size_type(0), size_type(1), __c);
  7555.  _M_rep()->_M_set_leaked();
  7556.  return iterator(_M_data() + __pos);
  7557.       }
  7558. # 1361 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7559.       basic_string&
  7560.       erase(size_type __pos = 0, size_type __n = npos)
  7561.       {
  7562.  _M_mutate(_M_check(__pos, "basic_string::erase"),
  7563.     _M_limit(__pos, __n), size_type(0));
  7564.  return *this;
  7565.       }
  7566. # 1377 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7567.       iterator
  7568.       erase(iterator __position)
  7569.       {
  7570.  
  7571.                                ;
  7572.  const size_type __pos = __position - _M_ibegin();
  7573.  _M_mutate(__pos, size_type(1), size_type(0));
  7574.  _M_rep()->_M_set_leaked();
  7575.  return iterator(_M_data() + __pos);
  7576.       }
  7577. # 1397 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7578.       iterator
  7579.       erase(iterator __first, iterator __last);
  7580. # 1428 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7581.       basic_string&
  7582.       replace(size_type __pos, size_type __n, const basic_string& __str)
  7583.       { return this->replace(__pos, __n, __str._M_data(), __str.size()); }
  7584. # 1450 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7585.       basic_string&
  7586.       replace(size_type __pos1, size_type __n1, const basic_string& __str,
  7587.        size_type __pos2, size_type __n2)
  7588.       { return this->replace(__pos1, __n1, __str._M_data()
  7589.         + __str._M_check(__pos2, "basic_string::replace"),
  7590.         __str._M_limit(__pos2, __n2)); }
  7591. # 1475 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7592.       basic_string&
  7593.       replace(size_type __pos, size_type __n1, const _CharT* __s,
  7594.        size_type __n2);
  7595. # 1495 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7596.       basic_string&
  7597.       replace(size_type __pos, size_type __n1, const _CharT* __s)
  7598.       {
  7599.  ;
  7600.  return this->replace(__pos, __n1, __s, traits_type::length(__s));
  7601.       }
  7602. # 1519 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7603.       basic_string&
  7604.       replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c)
  7605.       { return _M_replace_aux(_M_check(__pos, "basic_string::replace"),
  7606.          _M_limit(__pos, __n1), __n2, __c); }
  7607. # 1537 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7608.       basic_string&
  7609.       replace(iterator __i1, iterator __i2, const basic_string& __str)
  7610.       { return this->replace(__i1, __i2, __str._M_data(), __str.size()); }
  7611. # 1556 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7612.       basic_string&
  7613.       replace(iterator __i1, iterator __i2, const _CharT* __s, size_type __n)
  7614.       {
  7615.  
  7616.                           ;
  7617.  return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __s, __n);
  7618.       }
  7619. # 1577 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7620.       basic_string&
  7621.       replace(iterator __i1, iterator __i2, const _CharT* __s)
  7622.       {
  7623.  ;
  7624.  return this->replace(__i1, __i2, __s, traits_type::length(__s));
  7625.       }
  7626. # 1598 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7627.       basic_string&
  7628.       replace(iterator __i1, iterator __i2, size_type __n, _CharT __c)
  7629.       {
  7630.  
  7631.                           ;
  7632.  return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __c);
  7633.       }
  7634. # 1621 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7635.       template<class _InputIterator>
  7636.         basic_string&
  7637.         replace(iterator __i1, iterator __i2,
  7638.   _InputIterator __k1, _InputIterator __k2)
  7639.         {
  7640.  
  7641.                             ;
  7642.    ;
  7643.    typedef typename std::__is_integer<_InputIterator>::__type _Integral;
  7644.    return _M_replace_dispatch(__i1, __i2, __k1, __k2, _Integral());
  7645.  }
  7646.  
  7647.  
  7648.  
  7649.       basic_string&
  7650.       replace(iterator __i1, iterator __i2, _CharT* __k1, _CharT* __k2)
  7651.       {
  7652.  
  7653.                           ;
  7654.  ;
  7655.  return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
  7656.         __k1, __k2 - __k1);
  7657.       }
  7658.  
  7659.       basic_string&
  7660.       replace(iterator __i1, iterator __i2,
  7661.        const _CharT* __k1, const _CharT* __k2)
  7662.       {
  7663.  
  7664.                           ;
  7665.  ;
  7666.  return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
  7667.         __k1, __k2 - __k1);
  7668.       }
  7669.  
  7670.       basic_string&
  7671.       replace(iterator __i1, iterator __i2, iterator __k1, iterator __k2)
  7672.       {
  7673.  
  7674.                           ;
  7675.  ;
  7676.  return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
  7677.         __k1.base(), __k2 - __k1);
  7678.       }
  7679.  
  7680.       basic_string&
  7681.       replace(iterator __i1, iterator __i2,
  7682.        const_iterator __k1, const_iterator __k2)
  7683.       {
  7684.  
  7685.                           ;
  7686.  ;
  7687.  return this->replace(__i1 - _M_ibegin(), __i2 - __i1,
  7688.         __k1.base(), __k2 - __k1);
  7689.       }
  7690. # 1697 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7691.     private:
  7692.       template<class _Integer>
  7693.  basic_string&
  7694.  _M_replace_dispatch(iterator __i1, iterator __i2, _Integer __n,
  7695.        _Integer __val, __true_type)
  7696.         { return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __val); }
  7697.  
  7698.       template<class _InputIterator>
  7699.  basic_string&
  7700.  _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1,
  7701.        _InputIterator __k2, __false_type);
  7702.  
  7703.       basic_string&
  7704.       _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2,
  7705.        _CharT __c);
  7706.  
  7707.       basic_string&
  7708.       _M_replace_safe(size_type __pos1, size_type __n1, const _CharT* __s,
  7709.         size_type __n2);
  7710.  
  7711.  
  7712.  
  7713.       template<class _InIterator>
  7714.         static _CharT*
  7715.         _S_construct_aux(_InIterator __beg, _InIterator __end,
  7716.     const _Alloc& __a, __false_type)
  7717.  {
  7718.           typedef typename iterator_traits<_InIterator>::iterator_category _Tag;
  7719.           return _S_construct(__beg, __end, __a, _Tag());
  7720.  }
  7721.  
  7722.  
  7723.  
  7724.       template<class _Integer>
  7725.         static _CharT*
  7726.         _S_construct_aux(_Integer __beg, _Integer __end,
  7727.     const _Alloc& __a, __true_type)
  7728.         { return _S_construct_aux_2(static_cast<size_type>(__beg),
  7729.         __end, __a); }
  7730.  
  7731.       static _CharT*
  7732.       _S_construct_aux_2(size_type __req, _CharT __c, const _Alloc& __a)
  7733.       { return _S_construct(__req, __c, __a); }
  7734.  
  7735.       template<class _InIterator>
  7736.         static _CharT*
  7737.         _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a)
  7738.  {
  7739.    typedef typename std::__is_integer<_InIterator>::__type _Integral;
  7740.    return _S_construct_aux(__beg, __end, __a, _Integral());
  7741.         }
  7742.  
  7743.  
  7744.       template<class _InIterator>
  7745.         static _CharT*
  7746.          _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
  7747.         input_iterator_tag);
  7748.  
  7749.  
  7750.  
  7751.       template<class _FwdIterator>
  7752.         static _CharT*
  7753.         _S_construct(_FwdIterator __beg, _FwdIterator __end, const _Alloc& __a,
  7754.        forward_iterator_tag);
  7755.  
  7756.       static _CharT*
  7757.       _S_construct(size_type __req, _CharT __c, const _Alloc& __a);
  7758.  
  7759.     public:
  7760. # 1779 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7761.       size_type
  7762.       copy(_CharT* __s, size_type __n, size_type __pos = 0) const;
  7763. # 1789 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7764.       void
  7765.       swap(basic_string& __s);
  7766. # 1799 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7767.       const _CharT*
  7768.       c_str() const
  7769.       { return _M_data(); }
  7770.  
  7771.  
  7772.  
  7773.  
  7774.  
  7775.  
  7776.  
  7777.       const _CharT*
  7778.       data() const
  7779.       { return _M_data(); }
  7780.  
  7781.  
  7782.  
  7783.  
  7784.       allocator_type
  7785.       get_allocator() const
  7786.       { return _M_dataplus; }
  7787. # 1832 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7788.       size_type
  7789.       find(const _CharT* __s, size_type __pos, size_type __n) const;
  7790. # 1845 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7791.       size_type
  7792.       find(const basic_string& __str, size_type __pos = 0) const
  7793.  
  7794.       { return this->find(__str.data(), __pos, __str.size()); }
  7795. # 1860 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7796.       size_type
  7797.       find(const _CharT* __s, size_type __pos = 0) const
  7798.       {
  7799.  ;
  7800.  return this->find(__s, __pos, traits_type::length(__s));
  7801.       }
  7802. # 1877 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7803.       size_type
  7804.       find(_CharT __c, size_type __pos = 0) const ;
  7805. # 1890 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7806.       size_type
  7807.       rfind(const basic_string& __str, size_type __pos = npos) const
  7808.  
  7809.       { return this->rfind(__str.data(), __pos, __str.size()); }
  7810. # 1907 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7811.       size_type
  7812.       rfind(const _CharT* __s, size_type __pos, size_type __n) const;
  7813. # 1920 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7814.       size_type
  7815.       rfind(const _CharT* __s, size_type __pos = npos) const
  7816.       {
  7817.  ;
  7818.  return this->rfind(__s, __pos, traits_type::length(__s));
  7819.       }
  7820. # 1937 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7821.       size_type
  7822.       rfind(_CharT __c, size_type __pos = npos) const ;
  7823. # 1951 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7824.       size_type
  7825.       find_first_of(const basic_string& __str, size_type __pos = 0) const
  7826.  
  7827.       { return this->find_first_of(__str.data(), __pos, __str.size()); }
  7828. # 1968 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7829.       size_type
  7830.       find_first_of(const _CharT* __s, size_type __pos, size_type __n) const;
  7831. # 1981 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7832.       size_type
  7833.       find_first_of(const _CharT* __s, size_type __pos = 0) const
  7834.       {
  7835.  ;
  7836.  return this->find_first_of(__s, __pos, traits_type::length(__s));
  7837.       }
  7838. # 2000 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7839.       size_type
  7840.       find_first_of(_CharT __c, size_type __pos = 0) const
  7841.       { return this->find(__c, __pos); }
  7842. # 2015 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7843.       size_type
  7844.       find_last_of(const basic_string& __str, size_type __pos = npos) const
  7845.  
  7846.       { return this->find_last_of(__str.data(), __pos, __str.size()); }
  7847. # 2032 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7848.       size_type
  7849.       find_last_of(const _CharT* __s, size_type __pos, size_type __n) const;
  7850. # 2045 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7851.       size_type
  7852.       find_last_of(const _CharT* __s, size_type __pos = npos) const
  7853.       {
  7854.  ;
  7855.  return this->find_last_of(__s, __pos, traits_type::length(__s));
  7856.       }
  7857. # 2064 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7858.       size_type
  7859.       find_last_of(_CharT __c, size_type __pos = npos) const
  7860.       { return this->rfind(__c, __pos); }
  7861. # 2078 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7862.       size_type
  7863.       find_first_not_of(const basic_string& __str, size_type __pos = 0) const
  7864.  
  7865.       { return this->find_first_not_of(__str.data(), __pos, __str.size()); }
  7866. # 2095 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7867.       size_type
  7868.       find_first_not_of(const _CharT* __s, size_type __pos,
  7869.    size_type __n) const;
  7870. # 2109 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7871.       size_type
  7872.       find_first_not_of(const _CharT* __s, size_type __pos = 0) const
  7873.       {
  7874.  ;
  7875.  return this->find_first_not_of(__s, __pos, traits_type::length(__s));
  7876.       }
  7877. # 2126 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7878.       size_type
  7879.       find_first_not_of(_CharT __c, size_type __pos = 0) const
  7880.  ;
  7881. # 2141 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7882.       size_type
  7883.       find_last_not_of(const basic_string& __str, size_type __pos = npos) const
  7884.  
  7885.       { return this->find_last_not_of(__str.data(), __pos, __str.size()); }
  7886. # 2158 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7887.       size_type
  7888.       find_last_not_of(const _CharT* __s, size_type __pos,
  7889.          size_type __n) const;
  7890. # 2172 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7891.       size_type
  7892.       find_last_not_of(const _CharT* __s, size_type __pos = npos) const
  7893.       {
  7894.  ;
  7895.  return this->find_last_not_of(__s, __pos, traits_type::length(__s));
  7896.       }
  7897. # 2189 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7898.       size_type
  7899.       find_last_not_of(_CharT __c, size_type __pos = npos) const
  7900.  ;
  7901. # 2205 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7902.       basic_string
  7903.       substr(size_type __pos = 0, size_type __n = npos) const
  7904.       { return basic_string(*this,
  7905.        _M_check(__pos, "basic_string::substr"), __n); }
  7906. # 2224 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7907.       int
  7908.       compare(const basic_string& __str) const
  7909.       {
  7910.  const size_type __size = this->size();
  7911.  const size_type __osize = __str.size();
  7912.  const size_type __len = std::min(__size, __osize);
  7913.  
  7914.  int __r = traits_type::compare(_M_data(), __str.data(), __len);
  7915.  if (!__r)
  7916.    __r = _S_compare(__size, __osize);
  7917.  return __r;
  7918.       }
  7919. # 2256 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7920.       int
  7921.       compare(size_type __pos, size_type __n, const basic_string& __str) const;
  7922. # 2282 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7923.       int
  7924.       compare(size_type __pos1, size_type __n1, const basic_string& __str,
  7925.        size_type __pos2, size_type __n2) const;
  7926. # 2300 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7927.       int
  7928.       compare(const _CharT* __s) const;
  7929. # 2324 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7930.       int
  7931.       compare(size_type __pos, size_type __n1, const _CharT* __s) const;
  7932. # 2351 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7933.       int
  7934.       compare(size_type __pos, size_type __n1, const _CharT* __s,
  7935.        size_type __n2) const;
  7936.   };
  7937. # 2363 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  7938.   template<typename _CharT, typename _Traits, typename _Alloc>
  7939.     basic_string<_CharT, _Traits, _Alloc>
  7940.     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
  7941.        const basic_string<_CharT, _Traits, _Alloc>& __rhs)
  7942.     {
  7943.       basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
  7944.       __str.append(__rhs);
  7945.       return __str;
  7946.     }
  7947.  
  7948.  
  7949.  
  7950.  
  7951.  
  7952.  
  7953.  
  7954.   template<typename _CharT, typename _Traits, typename _Alloc>
  7955.     basic_string<_CharT,_Traits,_Alloc>
  7956.     operator+(const _CharT* __lhs,
  7957.        const basic_string<_CharT,_Traits,_Alloc>& __rhs);
  7958.  
  7959.  
  7960.  
  7961.  
  7962.  
  7963.  
  7964.  
  7965.   template<typename _CharT, typename _Traits, typename _Alloc>
  7966.     basic_string<_CharT,_Traits,_Alloc>
  7967.     operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs);
  7968.  
  7969.  
  7970.  
  7971.  
  7972.  
  7973.  
  7974.  
  7975.   template<typename _CharT, typename _Traits, typename _Alloc>
  7976.     inline basic_string<_CharT, _Traits, _Alloc>
  7977.     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
  7978.       const _CharT* __rhs)
  7979.     {
  7980.       basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
  7981.       __str.append(__rhs);
  7982.       return __str;
  7983.     }
  7984.  
  7985.  
  7986.  
  7987.  
  7988.  
  7989.  
  7990.  
  7991.   template<typename _CharT, typename _Traits, typename _Alloc>
  7992.     inline basic_string<_CharT, _Traits, _Alloc>
  7993.     operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs)
  7994.     {
  7995.       typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
  7996.       typedef typename __string_type::size_type __size_type;
  7997.       __string_type __str(__lhs);
  7998.       __str.append(__size_type(1), __rhs);
  7999.       return __str;
  8000.     }
  8001. # 2484 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  8002.   template<typename _CharT, typename _Traits, typename _Alloc>
  8003.     inline bool
  8004.     operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
  8005.         const basic_string<_CharT, _Traits, _Alloc>& __rhs)
  8006.     { return __lhs.compare(__rhs) == 0; }
  8007.  
  8008.   template<typename _CharT>
  8009.     inline
  8010.     typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, bool>::__type
  8011.     operator==(const basic_string<_CharT>& __lhs,
  8012.         const basic_string<_CharT>& __rhs)
  8013.     { return (__lhs.size() == __rhs.size()
  8014.        && !std::char_traits<_CharT>::compare(__lhs.data(), __rhs.data(),
  8015.           __lhs.size())); }
  8016.  
  8017.  
  8018.  
  8019.  
  8020.  
  8021.  
  8022.  
  8023.   template<typename _CharT, typename _Traits, typename _Alloc>
  8024.     inline bool
  8025.     operator==(const _CharT* __lhs,
  8026.         const basic_string<_CharT, _Traits, _Alloc>& __rhs)
  8027.     { return __rhs.compare(__lhs) == 0; }
  8028.  
  8029.  
  8030.  
  8031.  
  8032.  
  8033.  
  8034.  
  8035.   template<typename _CharT, typename _Traits, typename _Alloc>
  8036.     inline bool
  8037.     operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
  8038.         const _CharT* __rhs)
  8039.     { return __lhs.compare(__rhs) == 0; }
  8040. # 2530 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  8041.   template<typename _CharT, typename _Traits, typename _Alloc>
  8042.     inline bool
  8043.     operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
  8044.         const basic_string<_CharT, _Traits, _Alloc>& __rhs)
  8045.     { return !(__lhs == __rhs); }
  8046.  
  8047.  
  8048.  
  8049.  
  8050.  
  8051.  
  8052.  
  8053.   template<typename _CharT, typename _Traits, typename _Alloc>
  8054.     inline bool
  8055.     operator!=(const _CharT* __lhs,
  8056.         const basic_string<_CharT, _Traits, _Alloc>& __rhs)
  8057.     { return !(__lhs == __rhs); }
  8058.  
  8059.  
  8060.  
  8061.  
  8062.  
  8063.  
  8064.  
  8065.   template<typename _CharT, typename _Traits, typename _Alloc>
  8066.     inline bool
  8067.     operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
  8068.         const _CharT* __rhs)
  8069.     { return !(__lhs == __rhs); }
  8070. # 2567 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  8071.   template<typename _CharT, typename _Traits, typename _Alloc>
  8072.     inline bool
  8073.     operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
  8074.        const basic_string<_CharT, _Traits, _Alloc>& __rhs)
  8075.     { return __lhs.compare(__rhs) < 0; }
  8076.  
  8077.  
  8078.  
  8079.  
  8080.  
  8081.  
  8082.  
  8083.   template<typename _CharT, typename _Traits, typename _Alloc>
  8084.     inline bool
  8085.     operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
  8086.        const _CharT* __rhs)
  8087.     { return __lhs.compare(__rhs) < 0; }
  8088.  
  8089.  
  8090.  
  8091.  
  8092.  
  8093.  
  8094.  
  8095.   template<typename _CharT, typename _Traits, typename _Alloc>
  8096.     inline bool
  8097.     operator<(const _CharT* __lhs,
  8098.        const basic_string<_CharT, _Traits, _Alloc>& __rhs)
  8099.     { return __rhs.compare(__lhs) > 0; }
  8100. # 2604 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  8101.   template<typename _CharT, typename _Traits, typename _Alloc>
  8102.     inline bool
  8103.     operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
  8104.        const basic_string<_CharT, _Traits, _Alloc>& __rhs)
  8105.     { return __lhs.compare(__rhs) > 0; }
  8106.  
  8107.  
  8108.  
  8109.  
  8110.  
  8111.  
  8112.  
  8113.   template<typename _CharT, typename _Traits, typename _Alloc>
  8114.     inline bool
  8115.     operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
  8116.        const _CharT* __rhs)
  8117.     { return __lhs.compare(__rhs) > 0; }
  8118.  
  8119.  
  8120.  
  8121.  
  8122.  
  8123.  
  8124.  
  8125.   template<typename _CharT, typename _Traits, typename _Alloc>
  8126.     inline bool
  8127.     operator>(const _CharT* __lhs,
  8128.        const basic_string<_CharT, _Traits, _Alloc>& __rhs)
  8129.     { return __rhs.compare(__lhs) < 0; }
  8130. # 2641 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  8131.   template<typename _CharT, typename _Traits, typename _Alloc>
  8132.     inline bool
  8133.     operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
  8134.         const basic_string<_CharT, _Traits, _Alloc>& __rhs)
  8135.     { return __lhs.compare(__rhs) <= 0; }
  8136.  
  8137.  
  8138.  
  8139.  
  8140.  
  8141.  
  8142.  
  8143.   template<typename _CharT, typename _Traits, typename _Alloc>
  8144.     inline bool
  8145.     operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
  8146.         const _CharT* __rhs)
  8147.     { return __lhs.compare(__rhs) <= 0; }
  8148.  
  8149.  
  8150.  
  8151.  
  8152.  
  8153.  
  8154.  
  8155.   template<typename _CharT, typename _Traits, typename _Alloc>
  8156.     inline bool
  8157.     operator<=(const _CharT* __lhs,
  8158.         const basic_string<_CharT, _Traits, _Alloc>& __rhs)
  8159.     { return __rhs.compare(__lhs) >= 0; }
  8160. # 2678 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  8161.   template<typename _CharT, typename _Traits, typename _Alloc>
  8162.     inline bool
  8163.     operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
  8164.         const basic_string<_CharT, _Traits, _Alloc>& __rhs)
  8165.     { return __lhs.compare(__rhs) >= 0; }
  8166.  
  8167.  
  8168.  
  8169.  
  8170.  
  8171.  
  8172.  
  8173.   template<typename _CharT, typename _Traits, typename _Alloc>
  8174.     inline bool
  8175.     operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
  8176.         const _CharT* __rhs)
  8177.     { return __lhs.compare(__rhs) >= 0; }
  8178.  
  8179.  
  8180.  
  8181.  
  8182.  
  8183.  
  8184.  
  8185.   template<typename _CharT, typename _Traits, typename _Alloc>
  8186.     inline bool
  8187.     operator>=(const _CharT* __lhs,
  8188.       const basic_string<_CharT, _Traits, _Alloc>& __rhs)
  8189.     { return __rhs.compare(__lhs) <= 0; }
  8190. # 2715 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  8191.   template<typename _CharT, typename _Traits, typename _Alloc>
  8192.     inline void
  8193.     swap(basic_string<_CharT, _Traits, _Alloc>& __lhs,
  8194.   basic_string<_CharT, _Traits, _Alloc>& __rhs)
  8195.     { __lhs.swap(__rhs); }
  8196. # 2733 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  8197.   template<typename _CharT, typename _Traits, typename _Alloc>
  8198.     basic_istream<_CharT, _Traits>&
  8199.     operator>>(basic_istream<_CharT, _Traits>& __is,
  8200.         basic_string<_CharT, _Traits, _Alloc>& __str);
  8201.  
  8202.   template<>
  8203.     basic_istream<char>&
  8204.     operator>>(basic_istream<char>& __is, basic_string<char>& __str);
  8205. # 2751 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  8206.   template<typename _CharT, typename _Traits, typename _Alloc>
  8207.     inline basic_ostream<_CharT, _Traits>&
  8208.     operator<<(basic_ostream<_CharT, _Traits>& __os,
  8209.         const basic_string<_CharT, _Traits, _Alloc>& __str)
  8210.     {
  8211.  
  8212.  
  8213.       return __ostream_insert(__os, __str.data(), __str.size());
  8214.     }
  8215. # 2774 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  8216.   template<typename _CharT, typename _Traits, typename _Alloc>
  8217.     basic_istream<_CharT, _Traits>&
  8218.     getline(basic_istream<_CharT, _Traits>& __is,
  8219.      basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim);
  8220. # 2791 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.h" 3
  8221.   template<typename _CharT, typename _Traits, typename _Alloc>
  8222.     inline basic_istream<_CharT, _Traits>&
  8223.     getline(basic_istream<_CharT, _Traits>& __is,
  8224.      basic_string<_CharT, _Traits, _Alloc>& __str)
  8225.     { return getline(__is, __str, __is.widen('\n')); }
  8226.  
  8227.   template<>
  8228.     basic_istream<char>&
  8229.     getline(basic_istream<char>& __in, basic_string<char>& __str,
  8230.      char __delim);
  8231.  
  8232.  
  8233.   template<>
  8234.     basic_istream<wchar_t>&
  8235.     getline(basic_istream<wchar_t>& __in, basic_string<wchar_t>& __str,
  8236.      wchar_t __delim);
  8237.  
  8238.  
  8239.  
  8240. }
  8241. # 53 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/string" 2 3
  8242. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.tcc" 1 3
  8243. # 40 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.tcc" 3
  8244.        
  8245. # 41 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.tcc" 3
  8246.  
  8247.  
  8248.  
  8249. namespace std
  8250. {
  8251.  
  8252.  
  8253.   template<typename _CharT, typename _Traits, typename _Alloc>
  8254.     const typename basic_string<_CharT, _Traits, _Alloc>::size_type
  8255.     basic_string<_CharT, _Traits, _Alloc>::
  8256.     _Rep::_S_max_size = (((npos - sizeof(_Rep_base))/sizeof(_CharT)) - 1) / 4;
  8257.  
  8258.   template<typename _CharT, typename _Traits, typename _Alloc>
  8259.     const _CharT
  8260.     basic_string<_CharT, _Traits, _Alloc>::
  8261.     _Rep::_S_terminal = _CharT();
  8262.  
  8263.   template<typename _CharT, typename _Traits, typename _Alloc>
  8264.     const typename basic_string<_CharT, _Traits, _Alloc>::size_type
  8265.     basic_string<_CharT, _Traits, _Alloc>::npos;
  8266.  
  8267.  
  8268.  
  8269.   template<typename _CharT, typename _Traits, typename _Alloc>
  8270.     typename basic_string<_CharT, _Traits, _Alloc>::size_type
  8271.     basic_string<_CharT, _Traits, _Alloc>::_Rep::_S_empty_rep_storage[
  8272.     (sizeof(_Rep_base) + sizeof(_CharT) + sizeof(size_type) - 1) /
  8273.       sizeof(size_type)];
  8274.  
  8275.  
  8276.  
  8277.  
  8278.  
  8279.   template<typename _CharT, typename _Traits, typename _Alloc>
  8280.     template<typename _InIterator>
  8281.       _CharT*
  8282.       basic_string<_CharT, _Traits, _Alloc>::
  8283.       _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
  8284.      input_iterator_tag)
  8285.       {
  8286.  
  8287.  if (__beg == __end && __a == _Alloc())
  8288.    return _S_empty_rep()._M_refdata();
  8289.  
  8290.  
  8291.  _CharT __buf[128];
  8292.  size_type __len = 0;
  8293.  while (__beg != __end && __len < sizeof(__buf) / sizeof(_CharT))
  8294.    {
  8295.      __buf[__len++] = *__beg;
  8296.      ++__beg;
  8297.    }
  8298.  _Rep* __r = _Rep::_S_create(__len, size_type(0), __a);
  8299.  _M_copy(__r->_M_refdata(), __buf, __len);
  8300.  try
  8301.    {
  8302.      while (__beg != __end)
  8303.        {
  8304.   if (__len == __r->_M_capacity)
  8305.     {
  8306.  
  8307.       _Rep* __another = _Rep::_S_create(__len + 1, __len, __a);
  8308.       _M_copy(__another->_M_refdata(), __r->_M_refdata(), __len);
  8309.       __r->_M_destroy(__a);
  8310.       __r = __another;
  8311.     }
  8312.   __r->_M_refdata()[__len++] = *__beg;
  8313.   ++__beg;
  8314.        }
  8315.    }
  8316.  catch(...)
  8317.    {
  8318.      __r->_M_destroy(__a);
  8319.      throw;
  8320.    }
  8321.  __r->_M_set_length_and_sharable(__len);
  8322.  return __r->_M_refdata();
  8323.       }
  8324.  
  8325.   template<typename _CharT, typename _Traits, typename _Alloc>
  8326.     template <typename _InIterator>
  8327.       _CharT*
  8328.       basic_string<_CharT, _Traits, _Alloc>::
  8329.       _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a,
  8330.      forward_iterator_tag)
  8331.       {
  8332.  
  8333.  if (__beg == __end && __a == _Alloc())
  8334.    return _S_empty_rep()._M_refdata();
  8335.  
  8336.  
  8337.  if (__gnu_cxx::__is_null_pointer(__beg) && __beg != __end)
  8338.    __throw_logic_error(("basic_string::_S_construct null not valid"));
  8339.  
  8340.  const size_type __dnew = static_cast<size_type>(std::distance(__beg,
  8341.               __end));
  8342.  
  8343.  _Rep* __r = _Rep::_S_create(__dnew, size_type(0), __a);
  8344.  try
  8345.    { _S_copy_chars(__r->_M_refdata(), __beg, __end); }
  8346.  catch(...)
  8347.    {
  8348.      __r->_M_destroy(__a);
  8349.      throw;
  8350.    }
  8351.  __r->_M_set_length_and_sharable(__dnew);
  8352.  return __r->_M_refdata();
  8353.       }
  8354.  
  8355.   template<typename _CharT, typename _Traits, typename _Alloc>
  8356.     _CharT*
  8357.     basic_string<_CharT, _Traits, _Alloc>::
  8358.     _S_construct(size_type __n, _CharT __c, const _Alloc& __a)
  8359.     {
  8360.  
  8361.       if (__n == 0 && __a == _Alloc())
  8362.  return _S_empty_rep()._M_refdata();
  8363.  
  8364.  
  8365.       _Rep* __r = _Rep::_S_create(__n, size_type(0), __a);
  8366.       if (__n)
  8367.  _M_assign(__r->_M_refdata(), __n, __c);
  8368.  
  8369.       __r->_M_set_length_and_sharable(__n);
  8370.       return __r->_M_refdata();
  8371.     }
  8372.  
  8373.   template<typename _CharT, typename _Traits, typename _Alloc>
  8374.     basic_string<_CharT, _Traits, _Alloc>::
  8375.     basic_string(const basic_string& __str)
  8376.     : _M_dataplus(__str._M_rep()->_M_grab(_Alloc(__str.get_allocator()),
  8377.        __str.get_allocator()),
  8378.     __str.get_allocator())
  8379.     { }
  8380.  
  8381.   template<typename _CharT, typename _Traits, typename _Alloc>
  8382.     basic_string<_CharT, _Traits, _Alloc>::
  8383.     basic_string(const _Alloc& __a)
  8384.     : _M_dataplus(_S_construct(size_type(), _CharT(), __a), __a)
  8385.     { }
  8386.  
  8387.   template<typename _CharT, typename _Traits, typename _Alloc>
  8388.     basic_string<_CharT, _Traits, _Alloc>::
  8389.     basic_string(const basic_string& __str, size_type __pos, size_type __n)
  8390.     : _M_dataplus(_S_construct(__str._M_data()
  8391.           + __str._M_check(__pos,
  8392.       "basic_string::basic_string"),
  8393.           __str._M_data() + __str._M_limit(__pos, __n)
  8394.           + __pos, _Alloc()), _Alloc())
  8395.     { }
  8396.  
  8397.   template<typename _CharT, typename _Traits, typename _Alloc>
  8398.     basic_string<_CharT, _Traits, _Alloc>::
  8399.     basic_string(const basic_string& __str, size_type __pos,
  8400.    size_type __n, const _Alloc& __a)
  8401.     : _M_dataplus(_S_construct(__str._M_data()
  8402.           + __str._M_check(__pos,
  8403.       "basic_string::basic_string"),
  8404.           __str._M_data() + __str._M_limit(__pos, __n)
  8405.           + __pos, __a), __a)
  8406.     { }
  8407.  
  8408.  
  8409.   template<typename _CharT, typename _Traits, typename _Alloc>
  8410.     basic_string<_CharT, _Traits, _Alloc>::
  8411.     basic_string(const _CharT* __s, size_type __n, const _Alloc& __a)
  8412.     : _M_dataplus(_S_construct(__s, __s + __n, __a), __a)
  8413.     { }
  8414.  
  8415.  
  8416.   template<typename _CharT, typename _Traits, typename _Alloc>
  8417.     basic_string<_CharT, _Traits, _Alloc>::
  8418.     basic_string(const _CharT* __s, const _Alloc& __a)
  8419.     : _M_dataplus(_S_construct(__s, __s ? __s + traits_type::length(__s) :
  8420.           __s + npos, __a), __a)
  8421.     { }
  8422.  
  8423.   template<typename _CharT, typename _Traits, typename _Alloc>
  8424.     basic_string<_CharT, _Traits, _Alloc>::
  8425.     basic_string(size_type __n, _CharT __c, const _Alloc& __a)
  8426.     : _M_dataplus(_S_construct(__n, __c, __a), __a)
  8427.     { }
  8428.  
  8429.  
  8430.   template<typename _CharT, typename _Traits, typename _Alloc>
  8431.     template<typename _InputIterator>
  8432.     basic_string<_CharT, _Traits, _Alloc>::
  8433.     basic_string(_InputIterator __beg, _InputIterator __end, const _Alloc& __a)
  8434.     : _M_dataplus(_S_construct(__beg, __end, __a), __a)
  8435.     { }
  8436. # 240 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.tcc" 3
  8437.   template<typename _CharT, typename _Traits, typename _Alloc>
  8438.     basic_string<_CharT, _Traits, _Alloc>&
  8439.     basic_string<_CharT, _Traits, _Alloc>::
  8440.     assign(const basic_string& __str)
  8441.     {
  8442.       if (_M_rep() != __str._M_rep())
  8443.  {
  8444.  
  8445.    const allocator_type __a = this->get_allocator();
  8446.    _CharT* __tmp = __str._M_rep()->_M_grab(__a, __str.get_allocator());
  8447.    _M_rep()->_M_dispose(__a);
  8448.    _M_data(__tmp);
  8449.  }
  8450.       return *this;
  8451.     }
  8452.  
  8453.   template<typename _CharT, typename _Traits, typename _Alloc>
  8454.     basic_string<_CharT, _Traits, _Alloc>&
  8455.     basic_string<_CharT, _Traits, _Alloc>::
  8456.     assign(const _CharT* __s, size_type __n)
  8457.     {
  8458.       ;
  8459.       _M_check_length(this->size(), __n, "basic_string::assign");
  8460.       if (_M_disjunct(__s) || _M_rep()->_M_is_shared())
  8461.  return _M_replace_safe(size_type(0), this->size(), __s, __n);
  8462.       else
  8463.  {
  8464.  
  8465.    const size_type __pos = __s - _M_data();
  8466.    if (__pos >= __n)
  8467.      _M_copy(_M_data(), __s, __n);
  8468.    else if (__pos)
  8469.      _M_move(_M_data(), __s, __n);
  8470.    _M_rep()->_M_set_length_and_sharable(__n);
  8471.    return *this;
  8472.  }
  8473.      }
  8474.  
  8475.   template<typename _CharT, typename _Traits, typename _Alloc>
  8476.     basic_string<_CharT, _Traits, _Alloc>&
  8477.     basic_string<_CharT, _Traits, _Alloc>::
  8478.     append(size_type __n, _CharT __c)
  8479.     {
  8480.       if (__n)
  8481.  {
  8482.    _M_check_length(size_type(0), __n, "basic_string::append");
  8483.    const size_type __len = __n + this->size();
  8484.    if (__len > this->capacity() || _M_rep()->_M_is_shared())
  8485.      this->reserve(__len);
  8486.    _M_assign(_M_data() + this->size(), __n, __c);
  8487.    _M_rep()->_M_set_length_and_sharable(__len);
  8488.  }
  8489.       return *this;
  8490.     }
  8491.  
  8492.   template<typename _CharT, typename _Traits, typename _Alloc>
  8493.     basic_string<_CharT, _Traits, _Alloc>&
  8494.     basic_string<_CharT, _Traits, _Alloc>::
  8495.     append(const _CharT* __s, size_type __n)
  8496.     {
  8497.       ;
  8498.       if (__n)
  8499.  {
  8500.    _M_check_length(size_type(0), __n, "basic_string::append");
  8501.    const size_type __len = __n + this->size();
  8502.    if (__len > this->capacity() || _M_rep()->_M_is_shared())
  8503.      {
  8504.        if (_M_disjunct(__s))
  8505.   this->reserve(__len);
  8506.        else
  8507.   {
  8508.     const size_type __off = __s - _M_data();
  8509.     this->reserve(__len);
  8510.     __s = _M_data() + __off;
  8511.   }
  8512.      }
  8513.    _M_copy(_M_data() + this->size(), __s, __n);
  8514.    _M_rep()->_M_set_length_and_sharable(__len);
  8515.  }
  8516.       return *this;
  8517.     }
  8518.  
  8519.   template<typename _CharT, typename _Traits, typename _Alloc>
  8520.     basic_string<_CharT, _Traits, _Alloc>&
  8521.     basic_string<_CharT, _Traits, _Alloc>::
  8522.     append(const basic_string& __str)
  8523.     {
  8524.       const size_type __size = __str.size();
  8525.       if (__size)
  8526.  {
  8527.    const size_type __len = __size + this->size();
  8528.    if (__len > this->capacity() || _M_rep()->_M_is_shared())
  8529.      this->reserve(__len);
  8530.    _M_copy(_M_data() + this->size(), __str._M_data(), __size);
  8531.    _M_rep()->_M_set_length_and_sharable(__len);
  8532.  }
  8533.       return *this;
  8534.     }
  8535.  
  8536.   template<typename _CharT, typename _Traits, typename _Alloc>
  8537.     basic_string<_CharT, _Traits, _Alloc>&
  8538.     basic_string<_CharT, _Traits, _Alloc>::
  8539.     append(const basic_string& __str, size_type __pos, size_type __n)
  8540.     {
  8541.       __str._M_check(__pos, "basic_string::append");
  8542.       __n = __str._M_limit(__pos, __n);
  8543.       if (__n)
  8544.  {
  8545.    const size_type __len = __n + this->size();
  8546.    if (__len > this->capacity() || _M_rep()->_M_is_shared())
  8547.      this->reserve(__len);
  8548.    _M_copy(_M_data() + this->size(), __str._M_data() + __pos, __n);
  8549.    _M_rep()->_M_set_length_and_sharable(__len);
  8550.  }
  8551.       return *this;
  8552.     }
  8553.  
  8554.    template<typename _CharT, typename _Traits, typename _Alloc>
  8555.      basic_string<_CharT, _Traits, _Alloc>&
  8556.      basic_string<_CharT, _Traits, _Alloc>::
  8557.      insert(size_type __pos, const _CharT* __s, size_type __n)
  8558.      {
  8559.        ;
  8560.        _M_check(__pos, "basic_string::insert");
  8561.        _M_check_length(size_type(0), __n, "basic_string::insert");
  8562.        if (_M_disjunct(__s) || _M_rep()->_M_is_shared())
  8563.          return _M_replace_safe(__pos, size_type(0), __s, __n);
  8564.        else
  8565.          {
  8566.  
  8567.            const size_type __off = __s - _M_data();
  8568.            _M_mutate(__pos, 0, __n);
  8569.            __s = _M_data() + __off;
  8570.            _CharT* __p = _M_data() + __pos;
  8571.            if (__s + __n <= __p)
  8572.              _M_copy(__p, __s, __n);
  8573.            else if (__s >= __p)
  8574.              _M_copy(__p, __s + __n, __n);
  8575.            else
  8576.              {
  8577.         const size_type __nleft = __p - __s;
  8578.                _M_copy(__p, __s, __nleft);
  8579.                _M_copy(__p + __nleft, __p + __n, __n - __nleft);
  8580.              }
  8581.            return *this;
  8582.          }
  8583.      }
  8584.  
  8585.    template<typename _CharT, typename _Traits, typename _Alloc>
  8586.      typename basic_string<_CharT, _Traits, _Alloc>::iterator
  8587.      basic_string<_CharT, _Traits, _Alloc>::
  8588.      erase(iterator __first, iterator __last)
  8589.      {
  8590.      
  8591.                            ;
  8592.  
  8593.  
  8594.  
  8595.  
  8596.        const size_type __size = __last - __first;
  8597.        if (__size)
  8598.   {
  8599.     const size_type __pos = __first - _M_ibegin();
  8600.     _M_mutate(__pos, __size, size_type(0));
  8601.     _M_rep()->_M_set_leaked();
  8602.     return iterator(_M_data() + __pos);
  8603.   }
  8604.        else
  8605.   return __first;
  8606.      }
  8607.  
  8608.    template<typename _CharT, typename _Traits, typename _Alloc>
  8609.      basic_string<_CharT, _Traits, _Alloc>&
  8610.      basic_string<_CharT, _Traits, _Alloc>::
  8611.      replace(size_type __pos, size_type __n1, const _CharT* __s,
  8612.       size_type __n2)
  8613.      {
  8614.        ;
  8615.        _M_check(__pos, "basic_string::replace");
  8616.        __n1 = _M_limit(__pos, __n1);
  8617.        _M_check_length(__n1, __n2, "basic_string::replace");
  8618.        bool __left;
  8619.        if (_M_disjunct(__s) || _M_rep()->_M_is_shared())
  8620.          return _M_replace_safe(__pos, __n1, __s, __n2);
  8621.        else if ((__left = __s + __n2 <= _M_data() + __pos)
  8622.   || _M_data() + __pos + __n1 <= __s)
  8623.   {
  8624.  
  8625.     size_type __off = __s - _M_data();
  8626.     __left ? __off : (__off += __n2 - __n1);
  8627.     _M_mutate(__pos, __n1, __n2);
  8628.     _M_copy(_M_data() + __pos, _M_data() + __off, __n2);
  8629.     return *this;
  8630.   }
  8631.        else
  8632.   {
  8633.  
  8634.     const basic_string __tmp(__s, __n2);
  8635.     return _M_replace_safe(__pos, __n1, __tmp._M_data(), __n2);
  8636.   }
  8637.      }
  8638.  
  8639.   template<typename _CharT, typename _Traits, typename _Alloc>
  8640.     void
  8641.     basic_string<_CharT, _Traits, _Alloc>::_Rep::
  8642.     _M_destroy(const _Alloc& __a) throw ()
  8643.     {
  8644.       const size_type __size = sizeof(_Rep_base) +
  8645.                         (this->_M_capacity + 1) * sizeof(_CharT);
  8646.       _Raw_bytes_alloc(__a).deallocate(reinterpret_cast<char*>(this), __size);
  8647.     }
  8648.  
  8649.   template<typename _CharT, typename _Traits, typename _Alloc>
  8650.     void
  8651.     basic_string<_CharT, _Traits, _Alloc>::
  8652.     _M_leak_hard()
  8653.     {
  8654.  
  8655.       if (_M_rep() == &_S_empty_rep())
  8656.  return;
  8657.  
  8658.       if (_M_rep()->_M_is_shared())
  8659.  _M_mutate(0, 0, 0);
  8660.       _M_rep()->_M_set_leaked();
  8661.     }
  8662.  
  8663.   template<typename _CharT, typename _Traits, typename _Alloc>
  8664.     void
  8665.     basic_string<_CharT, _Traits, _Alloc>::
  8666.     _M_mutate(size_type __pos, size_type __len1, size_type __len2)
  8667.     {
  8668.       const size_type __old_size = this->size();
  8669.       const size_type __new_size = __old_size + __len2 - __len1;
  8670.       const size_type __how_much = __old_size - __pos - __len1;
  8671.  
  8672.       if (__new_size > this->capacity() || _M_rep()->_M_is_shared())
  8673.  {
  8674.  
  8675.    const allocator_type __a = get_allocator();
  8676.    _Rep* __r = _Rep::_S_create(__new_size, this->capacity(), __a);
  8677.  
  8678.    if (__pos)
  8679.      _M_copy(__r->_M_refdata(), _M_data(), __pos);
  8680.    if (__how_much)
  8681.      _M_copy(__r->_M_refdata() + __pos + __len2,
  8682.       _M_data() + __pos + __len1, __how_much);
  8683.  
  8684.    _M_rep()->_M_dispose(__a);
  8685.    _M_data(__r->_M_refdata());
  8686.  }
  8687.       else if (__how_much && __len1 != __len2)
  8688.  {
  8689.  
  8690.    _M_move(_M_data() + __pos + __len2,
  8691.     _M_data() + __pos + __len1, __how_much);
  8692.  }
  8693.       _M_rep()->_M_set_length_and_sharable(__new_size);
  8694.     }
  8695.  
  8696.   template<typename _CharT, typename _Traits, typename _Alloc>
  8697.     void
  8698.     basic_string<_CharT, _Traits, _Alloc>::
  8699.     reserve(size_type __res)
  8700.     {
  8701.       if (__res != this->capacity() || _M_rep()->_M_is_shared())
  8702.         {
  8703.  
  8704.    if (__res < this->size())
  8705.      __res = this->size();
  8706.    const allocator_type __a = get_allocator();
  8707.    _CharT* __tmp = _M_rep()->_M_clone(__a, __res - this->size());
  8708.    _M_rep()->_M_dispose(__a);
  8709.    _M_data(__tmp);
  8710.         }
  8711.     }
  8712.  
  8713.   template<typename _CharT, typename _Traits, typename _Alloc>
  8714.     void
  8715.     basic_string<_CharT, _Traits, _Alloc>::
  8716.     swap(basic_string& __s)
  8717.     {
  8718.       if (_M_rep()->_M_is_leaked())
  8719.  _M_rep()->_M_set_sharable();
  8720.       if (__s._M_rep()->_M_is_leaked())
  8721.  __s._M_rep()->_M_set_sharable();
  8722.       if (this->get_allocator() == __s.get_allocator())
  8723.  {
  8724.    _CharT* __tmp = _M_data();
  8725.    _M_data(__s._M_data());
  8726.    __s._M_data(__tmp);
  8727.  }
  8728.  
  8729.       else
  8730.  {
  8731.    const basic_string __tmp1(_M_ibegin(), _M_iend(),
  8732.         __s.get_allocator());
  8733.    const basic_string __tmp2(__s._M_ibegin(), __s._M_iend(),
  8734.         this->get_allocator());
  8735.    *this = __tmp2;
  8736.    __s = __tmp1;
  8737.  }
  8738.     }
  8739.  
  8740.   template<typename _CharT, typename _Traits, typename _Alloc>
  8741.     typename basic_string<_CharT, _Traits, _Alloc>::_Rep*
  8742.     basic_string<_CharT, _Traits, _Alloc>::_Rep::
  8743.     _S_create(size_type __capacity, size_type __old_capacity,
  8744.        const _Alloc& __alloc)
  8745.     {
  8746.  
  8747.  
  8748.       if (__capacity > _S_max_size)
  8749.  __throw_length_error(("basic_string::_S_create"));
  8750. # 577 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_string.tcc" 3
  8751.       const size_type __pagesize = 4096;
  8752.       const size_type __malloc_header_size = 4 * sizeof(void*);
  8753.  
  8754.  
  8755.  
  8756.  
  8757.  
  8758.  
  8759.  
  8760.       if (__capacity > __old_capacity && __capacity < 2 * __old_capacity)
  8761.  __capacity = 2 * __old_capacity;
  8762.  
  8763.  
  8764.  
  8765.  
  8766.       size_type __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
  8767.  
  8768.       const size_type __adj_size = __size + __malloc_header_size;
  8769.       if (__adj_size > __pagesize && __capacity > __old_capacity)
  8770.  {
  8771.    const size_type __extra = __pagesize - __adj_size % __pagesize;
  8772.    __capacity += __extra / sizeof(_CharT);
  8773.  
  8774.    if (__capacity > _S_max_size)
  8775.      __capacity = _S_max_size;
  8776.    __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
  8777.  }
  8778.  
  8779.  
  8780.  
  8781.       void* __place = _Raw_bytes_alloc(__alloc).allocate(__size);
  8782.       _Rep *__p = new (__place) _Rep;
  8783.       __p->_M_capacity = __capacity;
  8784.  
  8785.  
  8786.  
  8787.  
  8788.  
  8789.  
  8790.  
  8791.       __p->_M_set_sharable();
  8792.       return __p;
  8793.     }
  8794.  
  8795.   template<typename _CharT, typename _Traits, typename _Alloc>
  8796.     _CharT*
  8797.     basic_string<_CharT, _Traits, _Alloc>::_Rep::
  8798.     _M_clone(const _Alloc& __alloc, size_type __res)
  8799.     {
  8800.  
  8801.       const size_type __requested_cap = this->_M_length + __res;
  8802.       _Rep* __r = _Rep::_S_create(__requested_cap, this->_M_capacity,
  8803.       __alloc);
  8804.       if (this->_M_length)
  8805.  _M_copy(__r->_M_refdata(), _M_refdata(), this->_M_length);
  8806.  
  8807.       __r->_M_set_length_and_sharable(this->_M_length);
  8808.       return __r->_M_refdata();
  8809.     }
  8810.  
  8811.   template<typename _CharT, typename _Traits, typename _Alloc>
  8812.     void
  8813.     basic_string<_CharT, _Traits, _Alloc>::
  8814.     resize(size_type __n, _CharT __c)
  8815.     {
  8816.       const size_type __size = this->size();
  8817.       _M_check_length(__size, __n, "basic_string::resize");
  8818.       if (__size < __n)
  8819.  this->append(__n - __size, __c);
  8820.       else if (__n < __size)
  8821.  this->erase(__n);
  8822.  
  8823.     }
  8824.  
  8825.   template<typename _CharT, typename _Traits, typename _Alloc>
  8826.     template<typename _InputIterator>
  8827.       basic_string<_CharT, _Traits, _Alloc>&
  8828.       basic_string<_CharT, _Traits, _Alloc>::
  8829.       _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1,
  8830.      _InputIterator __k2, __false_type)
  8831.       {
  8832.  const basic_string __s(__k1, __k2);
  8833.  const size_type __n1 = __i2 - __i1;
  8834.  _M_check_length(__n1, __s.size(), "basic_string::_M_replace_dispatch");
  8835.  return _M_replace_safe(__i1 - _M_ibegin(), __n1, __s._M_data(),
  8836.           __s.size());
  8837.       }
  8838.  
  8839.   template<typename _CharT, typename _Traits, typename _Alloc>
  8840.     basic_string<_CharT, _Traits, _Alloc>&
  8841.     basic_string<_CharT, _Traits, _Alloc>::
  8842.     _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2,
  8843.      _CharT __c)
  8844.     {
  8845.       _M_check_length(__n1, __n2, "basic_string::_M_replace_aux");
  8846.       _M_mutate(__pos1, __n1, __n2);
  8847.       if (__n2)
  8848.  _M_assign(_M_data() + __pos1, __n2, __c);
  8849.       return *this;
  8850.     }
  8851.  
  8852.   template<typename _CharT, typename _Traits, typename _Alloc>
  8853.     basic_string<_CharT, _Traits, _Alloc>&
  8854.     basic_string<_CharT, _Traits, _Alloc>::
  8855.     _M_replace_safe(size_type __pos1, size_type __n1, const _CharT* __s,
  8856.       size_type __n2)
  8857.     {
  8858.       _M_mutate(__pos1, __n1, __n2);
  8859.       if (__n2)
  8860.  _M_copy(_M_data() + __pos1, __s, __n2);
  8861.       return *this;
  8862.     }
  8863.  
  8864.   template<typename _CharT, typename _Traits, typename _Alloc>
  8865.     basic_string<_CharT, _Traits, _Alloc>
  8866.     operator+(const _CharT* __lhs,
  8867.        const basic_string<_CharT, _Traits, _Alloc>& __rhs)
  8868.     {
  8869.       ;
  8870.       typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
  8871.       typedef typename __string_type::size_type __size_type;
  8872.       const __size_type __len = _Traits::length(__lhs);
  8873.       __string_type __str;
  8874.       __str.reserve(__len + __rhs.size());
  8875.       __str.append(__lhs, __len);
  8876.       __str.append(__rhs);
  8877.       return __str;
  8878.     }
  8879.  
  8880.   template<typename _CharT, typename _Traits, typename _Alloc>
  8881.     basic_string<_CharT, _Traits, _Alloc>
  8882.     operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs)
  8883.     {
  8884.       typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
  8885.       typedef typename __string_type::size_type __size_type;
  8886.       __string_type __str;
  8887.       const __size_type __len = __rhs.size();
  8888.       __str.reserve(__len + 1);
  8889.       __str.append(__size_type(1), __lhs);
  8890.       __str.append(__rhs);
  8891.       return __str;
  8892.     }
  8893.  
  8894.   template<typename _CharT, typename _Traits, typename _Alloc>
  8895.     typename basic_string<_CharT, _Traits, _Alloc>::size_type
  8896.     basic_string<_CharT, _Traits, _Alloc>::
  8897.     copy(_CharT* __s, size_type __n, size_type __pos) const
  8898.     {
  8899.       _M_check(__pos, "basic_string::copy");
  8900.       __n = _M_limit(__pos, __n);
  8901.       ;
  8902.       if (__n)
  8903.  _M_copy(__s, _M_data() + __pos, __n);
  8904.  
  8905.       return __n;
  8906.     }
  8907.  
  8908.   template<typename _CharT, typename _Traits, typename _Alloc>
  8909.     typename basic_string<_CharT, _Traits, _Alloc>::size_type
  8910.     basic_string<_CharT, _Traits, _Alloc>::
  8911.     find(const _CharT* __s, size_type __pos, size_type __n) const
  8912.     {
  8913.       ;
  8914.       const size_type __size = this->size();
  8915.       const _CharT* __data = _M_data();
  8916.  
  8917.       if (__n == 0)
  8918.  return __pos <= __size ? __pos : npos;
  8919.  
  8920.       if (__n <= __size)
  8921.  {
  8922.    for (; __pos <= __size - __n; ++__pos)
  8923.      if (traits_type::eq(__data[__pos], __s[0])
  8924.   && traits_type::compare(__data + __pos + 1,
  8925.      __s + 1, __n - 1) == 0)
  8926.        return __pos;
  8927.  }
  8928.       return npos;
  8929.     }
  8930.  
  8931.   template<typename _CharT, typename _Traits, typename _Alloc>
  8932.     typename basic_string<_CharT, _Traits, _Alloc>::size_type
  8933.     basic_string<_CharT, _Traits, _Alloc>::
  8934.     find(_CharT __c, size_type __pos) const
  8935.     {
  8936.       size_type __ret = npos;
  8937.       const size_type __size = this->size();
  8938.       if (__pos < __size)
  8939.  {
  8940.    const _CharT* __data = _M_data();
  8941.    const size_type __n = __size - __pos;
  8942.    const _CharT* __p = traits_type::find(__data + __pos, __n, __c);
  8943.    if (__p)
  8944.      __ret = __p - __data;
  8945.  }
  8946.       return __ret;
  8947.     }
  8948.  
  8949.   template<typename _CharT, typename _Traits, typename _Alloc>
  8950.     typename basic_string<_CharT, _Traits, _Alloc>::size_type
  8951.     basic_string<_CharT, _Traits, _Alloc>::
  8952.     rfind(const _CharT* __s, size_type __pos, size_type __n) const
  8953.     {
  8954.       ;
  8955.       const size_type __size = this->size();
  8956.       if (__n <= __size)
  8957.  {
  8958.    __pos = std::min(size_type(__size - __n), __pos);
  8959.    const _CharT* __data = _M_data();
  8960.    do
  8961.      {
  8962.        if (traits_type::compare(__data + __pos, __s, __n) == 0)
  8963.   return __pos;
  8964.      }
  8965.    while (__pos-- > 0);
  8966.  }
  8967.       return npos;
  8968.     }
  8969.  
  8970.   template<typename _CharT, typename _Traits, typename _Alloc>
  8971.     typename basic_string<_CharT, _Traits, _Alloc>::size_type
  8972.     basic_string<_CharT, _Traits, _Alloc>::
  8973.     rfind(_CharT __c, size_type __pos) const
  8974.     {
  8975.       size_type __size = this->size();
  8976.       if (__size)
  8977.  {
  8978.    if (--__size > __pos)
  8979.      __size = __pos;
  8980.    for (++__size; __size-- > 0; )
  8981.      if (traits_type::eq(_M_data()[__size], __c))
  8982.        return __size;
  8983.  }
  8984.       return npos;
  8985.     }
  8986.  
  8987.   template<typename _CharT, typename _Traits, typename _Alloc>
  8988.     typename basic_string<_CharT, _Traits, _Alloc>::size_type
  8989.     basic_string<_CharT, _Traits, _Alloc>::
  8990.     find_first_of(const _CharT* __s, size_type __pos, size_type __n) const
  8991.     {
  8992.       ;
  8993.       for (; __n && __pos < this->size(); ++__pos)
  8994.  {
  8995.    const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]);
  8996.    if (__p)
  8997.      return __pos;
  8998.  }
  8999.       return npos;
  9000.     }
  9001.  
  9002.   template<typename _CharT, typename _Traits, typename _Alloc>
  9003.     typename basic_string<_CharT, _Traits, _Alloc>::size_type
  9004.     basic_string<_CharT, _Traits, _Alloc>::
  9005.     find_last_of(const _CharT* __s, size_type __pos, size_type __n) const
  9006.     {
  9007.       ;
  9008.       size_type __size = this->size();
  9009.       if (__size && __n)
  9010.  {
  9011.    if (--__size > __pos)
  9012.      __size = __pos;
  9013.    do
  9014.      {
  9015.        if (traits_type::find(__s, __n, _M_data()[__size]))
  9016.   return __size;
  9017.      }
  9018.    while (__size-- != 0);
  9019.  }
  9020.       return npos;
  9021.     }
  9022.  
  9023.   template<typename _CharT, typename _Traits, typename _Alloc>
  9024.     typename basic_string<_CharT, _Traits, _Alloc>::size_type
  9025.     basic_string<_CharT, _Traits, _Alloc>::
  9026.     find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const
  9027.     {
  9028.       ;
  9029.       for (; __pos < this->size(); ++__pos)
  9030.  if (!traits_type::find(__s, __n, _M_data()[__pos]))
  9031.    return __pos;
  9032.       return npos;
  9033.     }
  9034.  
  9035.   template<typename _CharT, typename _Traits, typename _Alloc>
  9036.     typename basic_string<_CharT, _Traits, _Alloc>::size_type
  9037.     basic_string<_CharT, _Traits, _Alloc>::
  9038.     find_first_not_of(_CharT __c, size_type __pos) const
  9039.     {
  9040.       for (; __pos < this->size(); ++__pos)
  9041.  if (!traits_type::eq(_M_data()[__pos], __c))
  9042.    return __pos;
  9043.       return npos;
  9044.     }
  9045.  
  9046.   template<typename _CharT, typename _Traits, typename _Alloc>
  9047.     typename basic_string<_CharT, _Traits, _Alloc>::size_type
  9048.     basic_string<_CharT, _Traits, _Alloc>::
  9049.     find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const
  9050.     {
  9051.       ;
  9052.       size_type __size = this->size();
  9053.       if (__size)
  9054.  {
  9055.    if (--__size > __pos)
  9056.      __size = __pos;
  9057.    do
  9058.      {
  9059.        if (!traits_type::find(__s, __n, _M_data()[__size]))
  9060.   return __size;
  9061.      }
  9062.    while (__size--);
  9063.  }
  9064.       return npos;
  9065.     }
  9066.  
  9067.   template<typename _CharT, typename _Traits, typename _Alloc>
  9068.     typename basic_string<_CharT, _Traits, _Alloc>::size_type
  9069.     basic_string<_CharT, _Traits, _Alloc>::
  9070.     find_last_not_of(_CharT __c, size_type __pos) const
  9071.     {
  9072.       size_type __size = this->size();
  9073.       if (__size)
  9074.  {
  9075.    if (--__size > __pos)
  9076.      __size = __pos;
  9077.    do
  9078.      {
  9079.        if (!traits_type::eq(_M_data()[__size], __c))
  9080.   return __size;
  9081.      }
  9082.    while (__size--);
  9083.  }
  9084.       return npos;
  9085.     }
  9086.  
  9087.   template<typename _CharT, typename _Traits, typename _Alloc>
  9088.     int
  9089.     basic_string<_CharT, _Traits, _Alloc>::
  9090.     compare(size_type __pos, size_type __n, const basic_string& __str) const
  9091.     {
  9092.       _M_check(__pos, "basic_string::compare");
  9093.       __n = _M_limit(__pos, __n);
  9094.       const size_type __osize = __str.size();
  9095.       const size_type __len = std::min(__n, __osize);
  9096.       int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len);
  9097.       if (!__r)
  9098.  __r = _S_compare(__n, __osize);
  9099.       return __r;
  9100.     }
  9101.  
  9102.   template<typename _CharT, typename _Traits, typename _Alloc>
  9103.     int
  9104.     basic_string<_CharT, _Traits, _Alloc>::
  9105.     compare(size_type __pos1, size_type __n1, const basic_string& __str,
  9106.      size_type __pos2, size_type __n2) const
  9107.     {
  9108.       _M_check(__pos1, "basic_string::compare");
  9109.       __str._M_check(__pos2, "basic_string::compare");
  9110.       __n1 = _M_limit(__pos1, __n1);
  9111.       __n2 = __str._M_limit(__pos2, __n2);
  9112.       const size_type __len = std::min(__n1, __n2);
  9113.       int __r = traits_type::compare(_M_data() + __pos1,
  9114.          __str.data() + __pos2, __len);
  9115.       if (!__r)
  9116.  __r = _S_compare(__n1, __n2);
  9117.       return __r;
  9118.     }
  9119.  
  9120.   template<typename _CharT, typename _Traits, typename _Alloc>
  9121.     int
  9122.     basic_string<_CharT, _Traits, _Alloc>::
  9123.     compare(const _CharT* __s) const
  9124.     {
  9125.       ;
  9126.       const size_type __size = this->size();
  9127.       const size_type __osize = traits_type::length(__s);
  9128.       const size_type __len = std::min(__size, __osize);
  9129.       int __r = traits_type::compare(_M_data(), __s, __len);
  9130.       if (!__r)
  9131.  __r = _S_compare(__size, __osize);
  9132.       return __r;
  9133.     }
  9134.  
  9135.   template<typename _CharT, typename _Traits, typename _Alloc>
  9136.     int
  9137.     basic_string <_CharT, _Traits, _Alloc>::
  9138.     compare(size_type __pos, size_type __n1, const _CharT* __s) const
  9139.     {
  9140.       ;
  9141.       _M_check(__pos, "basic_string::compare");
  9142.       __n1 = _M_limit(__pos, __n1);
  9143.       const size_type __osize = traits_type::length(__s);
  9144.       const size_type __len = std::min(__n1, __osize);
  9145.       int __r = traits_type::compare(_M_data() + __pos, __s, __len);
  9146.       if (!__r)
  9147.  __r = _S_compare(__n1, __osize);
  9148.       return __r;
  9149.     }
  9150.  
  9151.   template<typename _CharT, typename _Traits, typename _Alloc>
  9152.     int
  9153.     basic_string <_CharT, _Traits, _Alloc>::
  9154.     compare(size_type __pos, size_type __n1, const _CharT* __s,
  9155.      size_type __n2) const
  9156.     {
  9157.       ;
  9158.       _M_check(__pos, "basic_string::compare");
  9159.       __n1 = _M_limit(__pos, __n1);
  9160.       const size_type __len = std::min(__n1, __n2);
  9161.       int __r = traits_type::compare(_M_data() + __pos, __s, __len);
  9162.       if (!__r)
  9163.  __r = _S_compare(__n1, __n2);
  9164.       return __r;
  9165.     }
  9166.  
  9167.  
  9168.   template<typename _CharT, typename _Traits, typename _Alloc>
  9169.     basic_istream<_CharT, _Traits>&
  9170.     operator>>(basic_istream<_CharT, _Traits>& __in,
  9171.         basic_string<_CharT, _Traits, _Alloc>& __str)
  9172.     {
  9173.       typedef basic_istream<_CharT, _Traits> __istream_type;
  9174.       typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
  9175.       typedef typename __istream_type::ios_base __ios_base;
  9176.       typedef typename __istream_type::int_type __int_type;
  9177.       typedef typename __string_type::size_type __size_type;
  9178.       typedef ctype<_CharT> __ctype_type;
  9179.       typedef typename __ctype_type::ctype_base __ctype_base;
  9180.  
  9181.       __size_type __extracted = 0;
  9182.       typename __ios_base::iostate __err = __ios_base::goodbit;
  9183.       typename __istream_type::sentry __cerb(__in, false);
  9184.       if (__cerb)
  9185.  {
  9186.    try
  9187.      {
  9188.  
  9189.        __str.erase();
  9190.        _CharT __buf[128];
  9191.        __size_type __len = 0;
  9192.        const streamsize __w = __in.width();
  9193.        const __size_type __n = __w > 0 ? static_cast<__size_type>(__w)
  9194.                                 : __str.max_size();
  9195.        const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc());
  9196.        const __int_type __eof = _Traits::eof();
  9197.        __int_type __c = __in.rdbuf()->sgetc();
  9198.  
  9199.        while (__extracted < __n
  9200.        && !_Traits::eq_int_type(__c, __eof)
  9201.        && !__ct.is(__ctype_base::space,
  9202.      _Traits::to_char_type(__c)))
  9203.   {
  9204.     if (__len == sizeof(__buf) / sizeof(_CharT))
  9205.       {
  9206.         __str.append(__buf, sizeof(__buf) / sizeof(_CharT));
  9207.         __len = 0;
  9208.       }
  9209.     __buf[__len++] = _Traits::to_char_type(__c);
  9210.     ++__extracted;
  9211.     __c = __in.rdbuf()->snextc();
  9212.   }
  9213.        __str.append(__buf, __len);
  9214.  
  9215.        if (_Traits::eq_int_type(__c, __eof))
  9216.   __err |= __ios_base::eofbit;
  9217.        __in.width(0);
  9218.      }
  9219.    catch(__cxxabiv1::__forced_unwind&)
  9220.      {
  9221.        __in._M_setstate(__ios_base::badbit);
  9222.        throw;
  9223.      }
  9224.    catch(...)
  9225.      {
  9226.  
  9227.  
  9228.  
  9229.        __in._M_setstate(__ios_base::badbit);
  9230.      }
  9231.  }
  9232.  
  9233.       if (!__extracted)
  9234.  __err |= __ios_base::failbit;
  9235.       if (__err)
  9236.  __in.setstate(__err);
  9237.       return __in;
  9238.     }
  9239.  
  9240.   template<typename _CharT, typename _Traits, typename _Alloc>
  9241.     basic_istream<_CharT, _Traits>&
  9242.     getline(basic_istream<_CharT, _Traits>& __in,
  9243.      basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim)
  9244.     {
  9245.       typedef basic_istream<_CharT, _Traits> __istream_type;
  9246.       typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
  9247.       typedef typename __istream_type::ios_base __ios_base;
  9248.       typedef typename __istream_type::int_type __int_type;
  9249.       typedef typename __string_type::size_type __size_type;
  9250.  
  9251.       __size_type __extracted = 0;
  9252.       const __size_type __n = __str.max_size();
  9253.       typename __ios_base::iostate __err = __ios_base::goodbit;
  9254.       typename __istream_type::sentry __cerb(__in, true);
  9255.       if (__cerb)
  9256.  {
  9257.    try
  9258.      {
  9259.        __str.erase();
  9260.        const __int_type __idelim = _Traits::to_int_type(__delim);
  9261.        const __int_type __eof = _Traits::eof();
  9262.        __int_type __c = __in.rdbuf()->sgetc();
  9263.  
  9264.        while (__extracted < __n
  9265.        && !_Traits::eq_int_type(__c, __eof)
  9266.        && !_Traits::eq_int_type(__c, __idelim))
  9267.   {
  9268.     __str += _Traits::to_char_type(__c);
  9269.     ++__extracted;
  9270.     __c = __in.rdbuf()->snextc();
  9271.   }
  9272.  
  9273.        if (_Traits::eq_int_type(__c, __eof))
  9274.   __err |= __ios_base::eofbit;
  9275.        else if (_Traits::eq_int_type(__c, __idelim))
  9276.   {
  9277.     ++__extracted;
  9278.     __in.rdbuf()->sbumpc();
  9279.   }
  9280.        else
  9281.   __err |= __ios_base::failbit;
  9282.      }
  9283.    catch(__cxxabiv1::__forced_unwind&)
  9284.      {
  9285.        __in._M_setstate(__ios_base::badbit);
  9286.        throw;
  9287.      }
  9288.    catch(...)
  9289.      {
  9290.  
  9291.  
  9292.  
  9293.        __in._M_setstate(__ios_base::badbit);
  9294.      }
  9295.  }
  9296.       if (!__extracted)
  9297.  __err |= __ios_base::failbit;
  9298.       if (__err)
  9299.  __in.setstate(__err);
  9300.       return __in;
  9301.     }
  9302.  
  9303.  
  9304.  
  9305.  
  9306.   extern template class basic_string<char>;
  9307.   extern template
  9308.     basic_istream<char>&
  9309.     operator>>(basic_istream<char>&, string&);
  9310.   extern template
  9311.     basic_ostream<char>&
  9312.     operator<<(basic_ostream<char>&, const string&);
  9313.   extern template
  9314.     basic_istream<char>&
  9315.     getline(basic_istream<char>&, string&, char);
  9316.   extern template
  9317.     basic_istream<char>&
  9318.     getline(basic_istream<char>&, string&);
  9319.  
  9320.  
  9321.   extern template class basic_string<wchar_t>;
  9322.   extern template
  9323.     basic_istream<wchar_t>&
  9324.     operator>>(basic_istream<wchar_t>&, wstring&);
  9325.   extern template
  9326.     basic_ostream<wchar_t>&
  9327.     operator<<(basic_ostream<wchar_t>&, const wstring&);
  9328.   extern template
  9329.     basic_istream<wchar_t>&
  9330.     getline(basic_istream<wchar_t>&, wstring&, wchar_t);
  9331.   extern template
  9332.     basic_istream<wchar_t>&
  9333.     getline(basic_istream<wchar_t>&, wstring&);
  9334.  
  9335.  
  9336.  
  9337.  
  9338. }
  9339. # 54 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/string" 2 3
  9340. # 41 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 2 3
  9341.  
  9342.  
  9343. namespace std
  9344. {
  9345.  
  9346. # 62 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9347.   class locale
  9348.   {
  9349.   public:
  9350.  
  9351.  
  9352.     typedef int category;
  9353.  
  9354.  
  9355.     class facet;
  9356.     class id;
  9357.     class _Impl;
  9358.  
  9359.     friend class facet;
  9360.     friend class _Impl;
  9361.  
  9362.     template<typename _Facet>
  9363.       friend bool
  9364.       has_facet(const locale&) throw();
  9365.  
  9366.     template<typename _Facet>
  9367.       friend const _Facet&
  9368.       use_facet(const locale&);
  9369.  
  9370.     template<typename _Cache>
  9371.       friend struct __use_cache;
  9372. # 98 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9373.     static const category none = 0;
  9374.     static const category ctype = 1L << 0;
  9375.     static const category numeric = 1L << 1;
  9376.     static const category collate = 1L << 2;
  9377.     static const category time = 1L << 3;
  9378.     static const category monetary = 1L << 4;
  9379.     static const category messages = 1L << 5;
  9380.     static const category all = (ctype | numeric | collate |
  9381.         time | monetary | messages);
  9382. # 117 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9383.     locale() throw();
  9384. # 126 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9385.     locale(const locale& __other) throw();
  9386. # 136 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9387.     explicit
  9388.     locale(const char* __s);
  9389. # 151 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9390.     locale(const locale& __base, const char* __s, category __cat);
  9391. # 164 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9392.     locale(const locale& __base, const locale& __add, category __cat);
  9393. # 177 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9394.     template<typename _Facet>
  9395.       locale(const locale& __other, _Facet* __f);
  9396.  
  9397.  
  9398.     ~locale() throw();
  9399. # 191 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9400.     const locale&
  9401.     operator=(const locale& __other) throw();
  9402. # 206 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9403.     template<typename _Facet>
  9404.       locale
  9405.       combine(const locale& __other) const;
  9406.  
  9407.  
  9408.  
  9409.  
  9410.  
  9411.  
  9412.     string
  9413.     name() const;
  9414. # 225 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9415.     bool
  9416.     operator==(const locale& __other) const throw();
  9417.  
  9418.  
  9419.  
  9420.  
  9421.  
  9422.  
  9423.  
  9424.     bool
  9425.     operator!=(const locale& __other) const throw()
  9426.     { return !(this->operator==(__other)); }
  9427. # 253 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9428.     template<typename _Char, typename _Traits, typename _Alloc>
  9429.       bool
  9430.       operator()(const basic_string<_Char, _Traits, _Alloc>& __s1,
  9431.    const basic_string<_Char, _Traits, _Alloc>& __s2) const;
  9432. # 269 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9433.     static locale
  9434.     global(const locale& __loc);
  9435.  
  9436.  
  9437.  
  9438.  
  9439.     static const locale&
  9440.     classic();
  9441.  
  9442.   private:
  9443.  
  9444.     _Impl* _M_impl;
  9445.  
  9446.  
  9447.     static _Impl* _S_classic;
  9448.  
  9449.  
  9450.     static _Impl* _S_global;
  9451.  
  9452.  
  9453.  
  9454.  
  9455.  
  9456.     static const char* const* const _S_categories;
  9457. # 304 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9458.     enum { _S_categories_size = 6 + 0 };
  9459.  
  9460.  
  9461.     static __gthread_once_t _S_once;
  9462.  
  9463.  
  9464.     explicit
  9465.     locale(_Impl*) throw();
  9466.  
  9467.     static void
  9468.     _S_initialize();
  9469.  
  9470.     static void
  9471.     _S_initialize_once() throw();
  9472.  
  9473.     static category
  9474.     _S_normalize_category(category);
  9475.  
  9476.     void
  9477.     _M_coalesce(const locale& __base, const locale& __add, category __cat);
  9478.   };
  9479. # 338 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9480.   class locale::facet
  9481.   {
  9482.   private:
  9483.     friend class locale;
  9484.     friend class locale::_Impl;
  9485.  
  9486.     mutable _Atomic_word _M_refcount;
  9487.  
  9488.  
  9489.     static __c_locale _S_c_locale;
  9490.  
  9491.  
  9492.     static const char _S_c_name[2];
  9493.  
  9494.  
  9495.     static __gthread_once_t _S_once;
  9496.  
  9497.  
  9498.     static void
  9499.     _S_initialize_once();
  9500.  
  9501.   protected:
  9502. # 369 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9503.     explicit
  9504.     facet(size_t __refs = 0) throw() : _M_refcount(__refs ? 1 : 0)
  9505.     { }
  9506.  
  9507.  
  9508.     virtual
  9509.     ~facet();
  9510.  
  9511.     static void
  9512.     _S_create_c_locale(__c_locale& __cloc, const char* __s,
  9513.          __c_locale __old = 0);
  9514.  
  9515.     static __c_locale
  9516.     _S_clone_c_locale(__c_locale& __cloc) throw();
  9517.  
  9518.     static void
  9519.     _S_destroy_c_locale(__c_locale& __cloc);
  9520.  
  9521.     static __c_locale
  9522.     _S_lc_ctype_c_locale(__c_locale __cloc, const char* __s);
  9523.  
  9524.  
  9525.  
  9526.     static __c_locale
  9527.     _S_get_c_locale();
  9528.  
  9529.     __attribute__ ((__const__)) static const char*
  9530.     _S_get_c_name() throw();
  9531.  
  9532.   private:
  9533.     void
  9534.     _M_add_reference() const throw()
  9535.     { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); }
  9536.  
  9537.     void
  9538.     _M_remove_reference() const throw()
  9539.     {
  9540.  
  9541.       ;
  9542.       if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1)
  9543.  {
  9544.           ;
  9545.    try
  9546.      { delete this; }
  9547.    catch(...)
  9548.      { }
  9549.  }
  9550.     }
  9551.  
  9552.     facet(const facet&);
  9553.  
  9554.     facet&
  9555.     operator=(const facet&);
  9556.   };
  9557. # 436 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9558.   class locale::id
  9559.   {
  9560.   private:
  9561.     friend class locale;
  9562.     friend class locale::_Impl;
  9563.  
  9564.     template<typename _Facet>
  9565.       friend const _Facet&
  9566.       use_facet(const locale&);
  9567.  
  9568.     template<typename _Facet>
  9569.       friend bool
  9570.       has_facet(const locale&) throw();
  9571.  
  9572.  
  9573.  
  9574.  
  9575.     mutable size_t _M_index;
  9576.  
  9577.  
  9578.     static _Atomic_word _S_refcount;
  9579.  
  9580.     void
  9581.     operator=(const id&);
  9582.  
  9583.     id(const id&);
  9584.  
  9585.   public:
  9586.  
  9587.  
  9588.  
  9589.     id() { }
  9590.  
  9591.     size_t
  9592.     _M_id() const throw();
  9593.   };
  9594.  
  9595.  
  9596.  
  9597.   class locale::_Impl
  9598.   {
  9599.   public:
  9600.  
  9601.     friend class locale;
  9602.     friend class locale::facet;
  9603.  
  9604.     template<typename _Facet>
  9605.       friend bool
  9606.       has_facet(const locale&) throw();
  9607.  
  9608.     template<typename _Facet>
  9609.       friend const _Facet&
  9610.       use_facet(const locale&);
  9611.  
  9612.     template<typename _Cache>
  9613.       friend struct __use_cache;
  9614.  
  9615.   private:
  9616.  
  9617.     _Atomic_word _M_refcount;
  9618.     const facet** _M_facets;
  9619.     size_t _M_facets_size;
  9620.     const facet** _M_caches;
  9621.     char** _M_names;
  9622.     static const locale::id* const _S_id_ctype[];
  9623.     static const locale::id* const _S_id_numeric[];
  9624.     static const locale::id* const _S_id_collate[];
  9625.     static const locale::id* const _S_id_time[];
  9626.     static const locale::id* const _S_id_monetary[];
  9627.     static const locale::id* const _S_id_messages[];
  9628.     static const locale::id* const* const _S_facet_categories[];
  9629.  
  9630.     void
  9631.     _M_add_reference() throw()
  9632.     { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); }
  9633.  
  9634.     void
  9635.     _M_remove_reference() throw()
  9636.     {
  9637.  
  9638.       ;
  9639.       if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1)
  9640.  {
  9641.           ;
  9642.    try
  9643.      { delete this; }
  9644.    catch(...)
  9645.      { }
  9646.  }
  9647.     }
  9648.  
  9649.     _Impl(const _Impl&, size_t);
  9650.     _Impl(const char*, size_t);
  9651.     _Impl(size_t) throw();
  9652.  
  9653.    ~_Impl() throw();
  9654.  
  9655.     _Impl(const _Impl&);
  9656.  
  9657.     void
  9658.     operator=(const _Impl&);
  9659.  
  9660.     bool
  9661.     _M_check_same_name()
  9662.     {
  9663.       bool __ret = true;
  9664.       if (_M_names[1])
  9665.  
  9666.  for (size_t __i = 0; __ret && __i < _S_categories_size - 1; ++__i)
  9667.    __ret = __builtin_strcmp(_M_names[__i], _M_names[__i + 1]) == 0;
  9668.       return __ret;
  9669.     }
  9670.  
  9671.     void
  9672.     _M_replace_categories(const _Impl*, category);
  9673.  
  9674.     void
  9675.     _M_replace_category(const _Impl*, const locale::id* const*);
  9676.  
  9677.     void
  9678.     _M_replace_facet(const _Impl*, const locale::id*);
  9679.  
  9680.     void
  9681.     _M_install_facet(const locale::id*, const facet*);
  9682.  
  9683.     template<typename _Facet>
  9684.       void
  9685.       _M_init_facet(_Facet* __facet)
  9686.       { _M_install_facet(&_Facet::id, __facet); }
  9687.  
  9688.     void
  9689.     _M_install_cache(const facet*, size_t);
  9690.   };
  9691. # 583 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9692.   template<typename _CharT>
  9693.     class collate : public locale::facet
  9694.     {
  9695.     public:
  9696.  
  9697.  
  9698.  
  9699.       typedef _CharT char_type;
  9700.       typedef basic_string<_CharT> string_type;
  9701.  
  9702.  
  9703.     protected:
  9704.  
  9705.  
  9706.       __c_locale _M_c_locale_collate;
  9707.  
  9708.     public:
  9709.  
  9710.       static locale::id id;
  9711. # 610 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9712.       explicit
  9713.       collate(size_t __refs = 0)
  9714.       : facet(__refs), _M_c_locale_collate(_S_get_c_locale())
  9715.       { }
  9716. # 624 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9717.       explicit
  9718.       collate(__c_locale __cloc, size_t __refs = 0)
  9719.       : facet(__refs), _M_c_locale_collate(_S_clone_c_locale(__cloc))
  9720.       { }
  9721. # 641 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9722.       int
  9723.       compare(const _CharT* __lo1, const _CharT* __hi1,
  9724.        const _CharT* __lo2, const _CharT* __hi2) const
  9725.       { return this->do_compare(__lo1, __hi1, __lo2, __hi2); }
  9726. # 660 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9727.       string_type
  9728.       transform(const _CharT* __lo, const _CharT* __hi) const
  9729.       { return this->do_transform(__lo, __hi); }
  9730. # 674 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9731.       long
  9732.       hash(const _CharT* __lo, const _CharT* __hi) const
  9733.       { return this->do_hash(__lo, __hi); }
  9734.  
  9735.  
  9736.       int
  9737.       _M_compare(const _CharT*, const _CharT*) const throw();
  9738.  
  9739.       size_t
  9740.       _M_transform(_CharT*, const _CharT*, size_t) const throw();
  9741.  
  9742.   protected:
  9743.  
  9744.       virtual
  9745.       ~collate()
  9746.       { _S_destroy_c_locale(_M_c_locale_collate); }
  9747. # 703 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9748.       virtual int
  9749.       do_compare(const _CharT* __lo1, const _CharT* __hi1,
  9750.    const _CharT* __lo2, const _CharT* __hi2) const;
  9751. # 717 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9752.       virtual string_type
  9753.       do_transform(const _CharT* __lo, const _CharT* __hi) const;
  9754. # 730 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 3
  9755.       virtual long
  9756.       do_hash(const _CharT* __lo, const _CharT* __hi) const;
  9757.     };
  9758.  
  9759.   template<typename _CharT>
  9760.     locale::id collate<_CharT>::id;
  9761.  
  9762.  
  9763.   template<>
  9764.     int
  9765.     collate<char>::_M_compare(const char*, const char*) const throw();
  9766.  
  9767.   template<>
  9768.     size_t
  9769.     collate<char>::_M_transform(char*, const char*, size_t) const throw();
  9770.  
  9771.  
  9772.   template<>
  9773.     int
  9774.     collate<wchar_t>::_M_compare(const wchar_t*, const wchar_t*) const throw();
  9775.  
  9776.   template<>
  9777.     size_t
  9778.     collate<wchar_t>::_M_transform(wchar_t*, const wchar_t*, size_t) const throw();
  9779.  
  9780.  
  9781.  
  9782.   template<typename _CharT>
  9783.     class collate_byname : public collate<_CharT>
  9784.     {
  9785.     public:
  9786.  
  9787.  
  9788.       typedef _CharT char_type;
  9789.       typedef basic_string<_CharT> string_type;
  9790.  
  9791.  
  9792.       explicit
  9793.       collate_byname(const char* __s, size_t __refs = 0)
  9794.       : collate<_CharT>(__refs)
  9795.       {
  9796.  if (__builtin_strcmp(__s, "C") != 0
  9797.      && __builtin_strcmp(__s, "POSIX") != 0)
  9798.    {
  9799.      this->_S_destroy_c_locale(this->_M_c_locale_collate);
  9800.      this->_S_create_c_locale(this->_M_c_locale_collate, __s);
  9801.    }
  9802.       }
  9803.  
  9804.     protected:
  9805.       virtual
  9806.       ~collate_byname() { }
  9807.     };
  9808.  
  9809.  
  9810. }
  9811.  
  9812. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.tcc" 1 3
  9813. # 37 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.tcc" 3
  9814.        
  9815. # 38 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.tcc" 3
  9816.  
  9817. namespace std
  9818. {
  9819.  
  9820.  
  9821.   template<typename _Facet>
  9822.     locale::
  9823.     locale(const locale& __other, _Facet* __f)
  9824.     {
  9825.       _M_impl = new _Impl(*__other._M_impl, 1);
  9826.  
  9827.       try
  9828.  { _M_impl->_M_install_facet(&_Facet::id, __f); }
  9829.       catch(...)
  9830.  {
  9831.    _M_impl->_M_remove_reference();
  9832.    throw;
  9833.  }
  9834.       delete [] _M_impl->_M_names[0];
  9835.       _M_impl->_M_names[0] = 0;
  9836.     }
  9837.  
  9838.   template<typename _Facet>
  9839.     locale
  9840.     locale::
  9841.     combine(const locale& __other) const
  9842.     {
  9843.       _Impl* __tmp = new _Impl(*_M_impl, 1);
  9844.       try
  9845.  {
  9846.    __tmp->_M_replace_facet(__other._M_impl, &_Facet::id);
  9847.  }
  9848.       catch(...)
  9849.  {
  9850.    __tmp->_M_remove_reference();
  9851.    throw;
  9852.  }
  9853.       return locale(__tmp);
  9854.     }
  9855.  
  9856.   template<typename _CharT, typename _Traits, typename _Alloc>
  9857.     bool
  9858.     locale::
  9859.     operator()(const basic_string<_CharT, _Traits, _Alloc>& __s1,
  9860.         const basic_string<_CharT, _Traits, _Alloc>& __s2) const
  9861.     {
  9862.       typedef std::collate<_CharT> __collate_type;
  9863.       const __collate_type& __collate = use_facet<__collate_type>(*this);
  9864.       return (__collate.compare(__s1.data(), __s1.data() + __s1.length(),
  9865.     __s2.data(), __s2.data() + __s2.length()) < 0);
  9866.     }
  9867. # 102 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.tcc" 3
  9868.   template<typename _Facet>
  9869.     bool
  9870.     has_facet(const locale& __loc) throw()
  9871.     {
  9872.       const size_t __i = _Facet::id._M_id();
  9873.       const locale::facet** __facets = __loc._M_impl->_M_facets;
  9874.       return (__i < __loc._M_impl->_M_facets_size
  9875.  
  9876.        && dynamic_cast<const _Facet*>(__facets[__i]));
  9877.  
  9878.  
  9879.  
  9880.     }
  9881. # 130 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.tcc" 3
  9882.   template<typename _Facet>
  9883.     const _Facet&
  9884.     use_facet(const locale& __loc)
  9885.     {
  9886.       const size_t __i = _Facet::id._M_id();
  9887.       const locale::facet** __facets = __loc._M_impl->_M_facets;
  9888.       if (__i >= __loc._M_impl->_M_facets_size || !__facets[__i])
  9889.         __throw_bad_cast();
  9890.  
  9891.       return dynamic_cast<const _Facet&>(*__facets[__i]);
  9892.  
  9893.  
  9894.  
  9895.     }
  9896.  
  9897.  
  9898.  
  9899.   template<typename _CharT>
  9900.     int
  9901.     collate<_CharT>::_M_compare(const _CharT*, const _CharT*) const throw ()
  9902.     { return 0; }
  9903.  
  9904.  
  9905.   template<typename _CharT>
  9906.     size_t
  9907.     collate<_CharT>::_M_transform(_CharT*, const _CharT*, size_t) const throw ()
  9908.     { return 0; }
  9909.  
  9910.   template<typename _CharT>
  9911.     int
  9912.     collate<_CharT>::
  9913.     do_compare(const _CharT* __lo1, const _CharT* __hi1,
  9914.         const _CharT* __lo2, const _CharT* __hi2) const
  9915.     {
  9916.  
  9917.  
  9918.       const string_type __one(__lo1, __hi1);
  9919.       const string_type __two(__lo2, __hi2);
  9920.  
  9921.       const _CharT* __p = __one.c_str();
  9922.       const _CharT* __pend = __one.data() + __one.length();
  9923.       const _CharT* __q = __two.c_str();
  9924.       const _CharT* __qend = __two.data() + __two.length();
  9925.  
  9926.  
  9927.  
  9928.  
  9929.       for (;;)
  9930.  {
  9931.    const int __res = _M_compare(__p, __q);
  9932.    if (__res)
  9933.      return __res;
  9934.  
  9935.    __p += char_traits<_CharT>::length(__p);
  9936.    __q += char_traits<_CharT>::length(__q);
  9937.    if (__p == __pend && __q == __qend)
  9938.      return 0;
  9939.    else if (__p == __pend)
  9940.      return -1;
  9941.    else if (__q == __qend)
  9942.      return 1;
  9943.  
  9944.    __p++;
  9945.    __q++;
  9946.  }
  9947.     }
  9948.  
  9949.   template<typename _CharT>
  9950.     typename collate<_CharT>::string_type
  9951.     collate<_CharT>::
  9952.     do_transform(const _CharT* __lo, const _CharT* __hi) const
  9953.     {
  9954.       string_type __ret;
  9955.  
  9956.  
  9957.       const string_type __str(__lo, __hi);
  9958.  
  9959.       const _CharT* __p = __str.c_str();
  9960.       const _CharT* __pend = __str.data() + __str.length();
  9961.  
  9962.       size_t __len = (__hi - __lo) * 2;
  9963.  
  9964.       _CharT* __c = new _CharT[__len];
  9965.  
  9966.       try
  9967.  {
  9968.  
  9969.  
  9970.  
  9971.    for (;;)
  9972.      {
  9973.  
  9974.        size_t __res = _M_transform(__c, __p, __len);
  9975.  
  9976.  
  9977.        if (__res >= __len)
  9978.   {
  9979.     __len = __res + 1;
  9980.     delete [] __c, __c = 0;
  9981.     __c = new _CharT[__len];
  9982.     __res = _M_transform(__c, __p, __len);
  9983.   }
  9984.  
  9985.        __ret.append(__c, __res);
  9986.        __p += char_traits<_CharT>::length(__p);
  9987.        if (__p == __pend)
  9988.   break;
  9989.  
  9990.        __p++;
  9991.        __ret.push_back(_CharT());
  9992.      }
  9993.  }
  9994.       catch(...)
  9995.  {
  9996.    delete [] __c;
  9997.    throw;
  9998.  }
  9999.  
  10000.       delete [] __c;
  10001.  
  10002.       return __ret;
  10003.     }
  10004.  
  10005.   template<typename _CharT>
  10006.     long
  10007.     collate<_CharT>::
  10008.     do_hash(const _CharT* __lo, const _CharT* __hi) const
  10009.     {
  10010.       unsigned long __val = 0;
  10011.       for (; __lo < __hi; ++__lo)
  10012.  __val =
  10013.    *__lo + ((__val << 7)
  10014.      | (__val >> (__gnu_cxx::__numeric_traits<unsigned long>::
  10015.     __digits - 7)));
  10016.       return static_cast<long>(__val);
  10017.     }
  10018.  
  10019.  
  10020.  
  10021.  
  10022.   extern template class collate<char>;
  10023.   extern template class collate_byname<char>;
  10024.  
  10025.   extern template
  10026.     const collate<char>&
  10027.     use_facet<collate<char> >(const locale&);
  10028.  
  10029.   extern template
  10030.     bool
  10031.     has_facet<collate<char> >(const locale&);
  10032.  
  10033.  
  10034.   extern template class collate<wchar_t>;
  10035.   extern template class collate_byname<wchar_t>;
  10036.  
  10037.   extern template
  10038.     const collate<wchar_t>&
  10039.     use_facet<collate<wchar_t> >(const locale&);
  10040.  
  10041.   extern template
  10042.     bool
  10043.     has_facet<collate<wchar_t> >(const locale&);
  10044.  
  10045.  
  10046.  
  10047.  
  10048. }
  10049. # 788 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_classes.h" 2 3
  10050. # 42 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ios_base.h" 2 3
  10051.  
  10052. namespace std
  10053. {
  10054.  
  10055.  
  10056.  
  10057.  
  10058.  
  10059.  
  10060.   enum _Ios_Fmtflags
  10061.     {
  10062.       _S_boolalpha = 1L << 0,
  10063.       _S_dec = 1L << 1,
  10064.       _S_fixed = 1L << 2,
  10065.       _S_hex = 1L << 3,
  10066.       _S_internal = 1L << 4,
  10067.       _S_left = 1L << 5,
  10068.       _S_oct = 1L << 6,
  10069.       _S_right = 1L << 7,
  10070.       _S_scientific = 1L << 8,
  10071.       _S_showbase = 1L << 9,
  10072.       _S_showpoint = 1L << 10,
  10073.       _S_showpos = 1L << 11,
  10074.       _S_skipws = 1L << 12,
  10075.       _S_unitbuf = 1L << 13,
  10076.       _S_uppercase = 1L << 14,
  10077.       _S_adjustfield = _S_left | _S_right | _S_internal,
  10078.       _S_basefield = _S_dec | _S_oct | _S_hex,
  10079.       _S_floatfield = _S_scientific | _S_fixed,
  10080.       _S_ios_fmtflags_end = 1L << 16
  10081.     };
  10082.  
  10083.   inline _Ios_Fmtflags
  10084.   operator&(_Ios_Fmtflags __a, _Ios_Fmtflags __b)
  10085.   { return _Ios_Fmtflags(static_cast<int>(__a) & static_cast<int>(__b)); }
  10086.  
  10087.   inline _Ios_Fmtflags
  10088.   operator|(_Ios_Fmtflags __a, _Ios_Fmtflags __b)
  10089.   { return _Ios_Fmtflags(static_cast<int>(__a) | static_cast<int>(__b)); }
  10090.  
  10091.   inline _Ios_Fmtflags
  10092.   operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b)
  10093.   { return _Ios_Fmtflags(static_cast<int>(__a) ^ static_cast<int>(__b)); }
  10094.  
  10095.   inline _Ios_Fmtflags
  10096.   operator~(_Ios_Fmtflags __a)
  10097.   { return _Ios_Fmtflags(~static_cast<int>(__a)); }
  10098.  
  10099.   inline const _Ios_Fmtflags&
  10100.   operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)
  10101.   { return __a = __a | __b; }
  10102.  
  10103.   inline const _Ios_Fmtflags&
  10104.   operator&=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)
  10105.   { return __a = __a & __b; }
  10106.  
  10107.   inline const _Ios_Fmtflags&
  10108.   operator^=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)
  10109.   { return __a = __a ^ __b; }
  10110.  
  10111.  
  10112.   enum _Ios_Openmode
  10113.     {
  10114.       _S_app = 1L << 0,
  10115.       _S_ate = 1L << 1,
  10116.       _S_bin = 1L << 2,
  10117.       _S_in = 1L << 3,
  10118.       _S_out = 1L << 4,
  10119.       _S_trunc = 1L << 5,
  10120.       _S_ios_openmode_end = 1L << 16
  10121.     };
  10122.  
  10123.   inline _Ios_Openmode
  10124.   operator&(_Ios_Openmode __a, _Ios_Openmode __b)
  10125.   { return _Ios_Openmode(static_cast<int>(__a) & static_cast<int>(__b)); }
  10126.  
  10127.   inline _Ios_Openmode
  10128.   operator|(_Ios_Openmode __a, _Ios_Openmode __b)
  10129.   { return _Ios_Openmode(static_cast<int>(__a) | static_cast<int>(__b)); }
  10130.  
  10131.   inline _Ios_Openmode
  10132.   operator^(_Ios_Openmode __a, _Ios_Openmode __b)
  10133.   { return _Ios_Openmode(static_cast<int>(__a) ^ static_cast<int>(__b)); }
  10134.  
  10135.   inline _Ios_Openmode
  10136.   operator~(_Ios_Openmode __a)
  10137.   { return _Ios_Openmode(~static_cast<int>(__a)); }
  10138.  
  10139.   inline const _Ios_Openmode&
  10140.   operator|=(_Ios_Openmode& __a, _Ios_Openmode __b)
  10141.   { return __a = __a | __b; }
  10142.  
  10143.   inline const _Ios_Openmode&
  10144.   operator&=(_Ios_Openmode& __a, _Ios_Openmode __b)
  10145.   { return __a = __a & __b; }
  10146.  
  10147.   inline const _Ios_Openmode&
  10148.   operator^=(_Ios_Openmode& __a, _Ios_Openmode __b)
  10149.   { return __a = __a ^ __b; }
  10150.  
  10151.  
  10152.   enum _Ios_Iostate
  10153.     {
  10154.       _S_goodbit = 0,
  10155.       _S_badbit = 1L << 0,
  10156.       _S_eofbit = 1L << 1,
  10157.       _S_failbit = 1L << 2,
  10158.       _S_ios_iostate_end = 1L << 16
  10159.     };
  10160.  
  10161.   inline _Ios_Iostate
  10162.   operator&(_Ios_Iostate __a, _Ios_Iostate __b)
  10163.   { return _Ios_Iostate(static_cast<int>(__a) & static_cast<int>(__b)); }
  10164.  
  10165.   inline _Ios_Iostate
  10166.   operator|(_Ios_Iostate __a, _Ios_Iostate __b)
  10167.   { return _Ios_Iostate(static_cast<int>(__a) | static_cast<int>(__b)); }
  10168.  
  10169.   inline _Ios_Iostate
  10170.   operator^(_Ios_Iostate __a, _Ios_Iostate __b)
  10171.   { return _Ios_Iostate(static_cast<int>(__a) ^ static_cast<int>(__b)); }
  10172.  
  10173.   inline _Ios_Iostate
  10174.   operator~(_Ios_Iostate __a)
  10175.   { return _Ios_Iostate(~static_cast<int>(__a)); }
  10176.  
  10177.   inline const _Ios_Iostate&
  10178.   operator|=(_Ios_Iostate& __a, _Ios_Iostate __b)
  10179.   { return __a = __a | __b; }
  10180.  
  10181.   inline const _Ios_Iostate&
  10182.   operator&=(_Ios_Iostate& __a, _Ios_Iostate __b)
  10183.   { return __a = __a & __b; }
  10184.  
  10185.   inline const _Ios_Iostate&
  10186.   operator^=(_Ios_Iostate& __a, _Ios_Iostate __b)
  10187.   { return __a = __a ^ __b; }
  10188.  
  10189.  
  10190.   enum _Ios_Seekdir
  10191.     {
  10192.       _S_beg = 0,
  10193.       _S_cur = 1,
  10194.       _S_end = 2,
  10195.       _S_ios_seekdir_end = 1L << 16
  10196.     };
  10197. # 199 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ios_base.h" 3
  10198.   class ios_base
  10199.   {
  10200.   public:
  10201.  
  10202.  
  10203.  
  10204.  
  10205.  
  10206.  
  10207.  
  10208.     class failure : public exception
  10209.     {
  10210.     public:
  10211.  
  10212.  
  10213.       explicit
  10214.       failure(const string& __str) throw();
  10215.  
  10216.  
  10217.  
  10218.       virtual
  10219.       ~failure() throw();
  10220.  
  10221.       virtual const char*
  10222.       what() const throw();
  10223.  
  10224.     private:
  10225.       string _M_msg;
  10226.     };
  10227. # 255 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ios_base.h" 3
  10228.     typedef _Ios_Fmtflags fmtflags;
  10229.  
  10230.  
  10231.     static const fmtflags boolalpha = _S_boolalpha;
  10232.  
  10233.  
  10234.     static const fmtflags dec = _S_dec;
  10235.  
  10236.  
  10237.     static const fmtflags fixed = _S_fixed;
  10238.  
  10239.  
  10240.     static const fmtflags hex = _S_hex;
  10241.  
  10242.  
  10243.  
  10244.  
  10245.     static const fmtflags internal = _S_internal;
  10246.  
  10247.  
  10248.  
  10249.     static const fmtflags left = _S_left;
  10250.  
  10251.  
  10252.     static const fmtflags oct = _S_oct;
  10253.  
  10254.  
  10255.  
  10256.     static const fmtflags right = _S_right;
  10257.  
  10258.  
  10259.     static const fmtflags scientific = _S_scientific;
  10260.  
  10261.  
  10262.  
  10263.     static const fmtflags showbase = _S_showbase;
  10264.  
  10265.  
  10266.  
  10267.     static const fmtflags showpoint = _S_showpoint;
  10268.  
  10269.  
  10270.     static const fmtflags showpos = _S_showpos;
  10271.  
  10272.  
  10273.     static const fmtflags skipws = _S_skipws;
  10274.  
  10275.  
  10276.     static const fmtflags unitbuf = _S_unitbuf;
  10277.  
  10278.  
  10279.  
  10280.     static const fmtflags uppercase = _S_uppercase;
  10281.  
  10282.  
  10283.     static const fmtflags adjustfield = _S_adjustfield;
  10284.  
  10285.  
  10286.     static const fmtflags basefield = _S_basefield;
  10287.  
  10288.  
  10289.     static const fmtflags floatfield = _S_floatfield;
  10290. # 330 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ios_base.h" 3
  10291.     typedef _Ios_Iostate iostate;
  10292.  
  10293.  
  10294.  
  10295.     static const iostate badbit = _S_badbit;
  10296.  
  10297.  
  10298.     static const iostate eofbit = _S_eofbit;
  10299.  
  10300.  
  10301.  
  10302.  
  10303.     static const iostate failbit = _S_failbit;
  10304.  
  10305.  
  10306.     static const iostate goodbit = _S_goodbit;
  10307. # 361 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ios_base.h" 3
  10308.     typedef _Ios_Openmode openmode;
  10309.  
  10310.  
  10311.     static const openmode app = _S_app;
  10312.  
  10313.  
  10314.     static const openmode ate = _S_ate;
  10315.  
  10316.  
  10317.  
  10318.  
  10319.     static const openmode binary = _S_bin;
  10320.  
  10321.  
  10322.     static const openmode in = _S_in;
  10323.  
  10324.  
  10325.     static const openmode out = _S_out;
  10326.  
  10327.  
  10328.     static const openmode trunc = _S_trunc;
  10329. # 393 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ios_base.h" 3
  10330.     typedef _Ios_Seekdir seekdir;
  10331.  
  10332.  
  10333.     static const seekdir beg = _S_beg;
  10334.  
  10335.  
  10336.     static const seekdir cur = _S_cur;
  10337.  
  10338.  
  10339.     static const seekdir end = _S_end;
  10340.  
  10341.  
  10342.     typedef int io_state;
  10343.     typedef int open_mode;
  10344.     typedef int seek_dir;
  10345.  
  10346.     typedef std::streampos streampos;
  10347.     typedef std::streamoff streamoff;
  10348. # 419 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ios_base.h" 3
  10349.     enum event
  10350.     {
  10351.       erase_event,
  10352.       imbue_event,
  10353.       copyfmt_event
  10354.     };
  10355. # 436 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ios_base.h" 3
  10356.     typedef void (*event_callback) (event __e, ios_base& __b, int __i);
  10357. # 448 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ios_base.h" 3
  10358.     void
  10359.     register_callback(event_callback __fn, int __index);
  10360.  
  10361.   protected:
  10362.     streamsize _M_precision;
  10363.     streamsize _M_width;
  10364.     fmtflags _M_flags;
  10365.     iostate _M_exception;
  10366.     iostate _M_streambuf_state;
  10367.  
  10368.  
  10369.  
  10370.     struct _Callback_list
  10371.     {
  10372.  
  10373.       _Callback_list* _M_next;
  10374.       ios_base::event_callback _M_fn;
  10375.       int _M_index;
  10376.       _Atomic_word _M_refcount;
  10377.  
  10378.       _Callback_list(ios_base::event_callback __fn, int __index,
  10379.        _Callback_list* __cb)
  10380.       : _M_next(__cb), _M_fn(__fn), _M_index(__index), _M_refcount(0) { }
  10381.  
  10382.       void
  10383.       _M_add_reference() { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); }
  10384.  
  10385.  
  10386.       int
  10387.       _M_remove_reference()
  10388.       {
  10389.  
  10390.         ;
  10391.         int __res = __gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1);
  10392.         if (__res == 0)
  10393.           {
  10394.             ;
  10395.           }
  10396.         return __res;
  10397.       }
  10398.     };
  10399.  
  10400.      _Callback_list* _M_callbacks;
  10401.  
  10402.     void
  10403.     _M_call_callbacks(event __ev) throw();
  10404.  
  10405.     void
  10406.     _M_dispose_callbacks(void) throw();
  10407.  
  10408.  
  10409.     struct _Words
  10410.     {
  10411.       void* _M_pword;
  10412.       long _M_iword;
  10413.       _Words() : _M_pword(0), _M_iword(0) { }
  10414.     };
  10415.  
  10416.  
  10417.     _Words _M_word_zero;
  10418.  
  10419.  
  10420.  
  10421.     enum { _S_local_word_size = 8 };
  10422.     _Words _M_local_word[_S_local_word_size];
  10423.  
  10424.  
  10425.     int _M_word_size;
  10426.     _Words* _M_word;
  10427.  
  10428.     _Words&
  10429.     _M_grow_words(int __index, bool __iword);
  10430.  
  10431.  
  10432.     locale _M_ios_locale;
  10433.  
  10434.     void
  10435.     _M_init() throw();
  10436.  
  10437.   public:
  10438.  
  10439.  
  10440.  
  10441.  
  10442.  
  10443.     class Init
  10444.     {
  10445.       friend class ios_base;
  10446.     public:
  10447.       Init();
  10448.       ~Init();
  10449.  
  10450.     private:
  10451.       static _Atomic_word _S_refcount;
  10452.       static bool _S_synced_with_stdio;
  10453.     };
  10454.  
  10455.  
  10456.  
  10457.  
  10458.  
  10459.  
  10460.     fmtflags
  10461.     flags() const
  10462.     { return _M_flags; }
  10463. # 561 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ios_base.h" 3
  10464.     fmtflags
  10465.     flags(fmtflags __fmtfl)
  10466.     {
  10467.       fmtflags __old = _M_flags;
  10468.       _M_flags = __fmtfl;
  10469.       return __old;
  10470.     }
  10471. # 577 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ios_base.h" 3
  10472.     fmtflags
  10473.     setf(fmtflags __fmtfl)
  10474.     {
  10475.       fmtflags __old = _M_flags;
  10476.       _M_flags |= __fmtfl;
  10477.       return __old;
  10478.     }
  10479. # 594 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ios_base.h" 3
  10480.     fmtflags
  10481.     setf(fmtflags __fmtfl, fmtflags __mask)
  10482.     {
  10483.       fmtflags __old = _M_flags;
  10484.       _M_flags &= ~__mask;
  10485.       _M_flags |= (__fmtfl & __mask);
  10486.       return __old;
  10487.     }
  10488.  
  10489.  
  10490.  
  10491.  
  10492.  
  10493.  
  10494.  
  10495.     void
  10496.     unsetf(fmtflags __mask)
  10497.     { _M_flags &= ~__mask; }
  10498. # 620 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ios_base.h" 3
  10499.     streamsize
  10500.     precision() const
  10501.     { return _M_precision; }
  10502.  
  10503.  
  10504.  
  10505.  
  10506.  
  10507.  
  10508.     streamsize
  10509.     precision(streamsize __prec)
  10510.     {
  10511.       streamsize __old = _M_precision;
  10512.       _M_precision = __prec;
  10513.       return __old;
  10514.     }
  10515.  
  10516.  
  10517.  
  10518.  
  10519.  
  10520.  
  10521.  
  10522.     streamsize
  10523.     width() const
  10524.     { return _M_width; }
  10525.  
  10526.  
  10527.  
  10528.  
  10529.  
  10530.  
  10531.     streamsize
  10532.     width(streamsize __wide)
  10533.     {
  10534.       streamsize __old = _M_width;
  10535.       _M_width = __wide;
  10536.       return __old;
  10537.     }
  10538. # 671 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ios_base.h" 3
  10539.     static bool
  10540.     sync_with_stdio(bool __sync = true);
  10541. # 683 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ios_base.h" 3
  10542.     locale
  10543.     imbue(const locale& __loc) throw();
  10544. # 694 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ios_base.h" 3
  10545.     locale
  10546.     getloc() const
  10547.     { return _M_ios_locale; }
  10548. # 705 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ios_base.h" 3
  10549.     const locale&
  10550.     _M_getloc() const
  10551.     { return _M_ios_locale; }
  10552. # 724 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ios_base.h" 3
  10553.     static int
  10554.     xalloc() throw();
  10555. # 740 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ios_base.h" 3
  10556.     long&
  10557.     iword(int __ix)
  10558.     {
  10559.       _Words& __word = (__ix < _M_word_size)
  10560.    ? _M_word[__ix] : _M_grow_words(__ix, true);
  10561.       return __word._M_iword;
  10562.     }
  10563. # 761 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ios_base.h" 3
  10564.     void*&
  10565.     pword(int __ix)
  10566.     {
  10567.       _Words& __word = (__ix < _M_word_size)
  10568.    ? _M_word[__ix] : _M_grow_words(__ix, false);
  10569.       return __word._M_pword;
  10570.     }
  10571. # 778 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ios_base.h" 3
  10572.     virtual ~ios_base();
  10573.  
  10574.   protected:
  10575.     ios_base() throw ();
  10576.  
  10577.  
  10578.  
  10579.   private:
  10580.     ios_base(const ios_base&);
  10581.  
  10582.     ios_base&
  10583.     operator=(const ios_base&);
  10584.   };
  10585.  
  10586.  
  10587.  
  10588.   inline ios_base&
  10589.   boolalpha(ios_base& __base)
  10590.   {
  10591.     __base.setf(ios_base::boolalpha);
  10592.     return __base;
  10593.   }
  10594.  
  10595.  
  10596.   inline ios_base&
  10597.   noboolalpha(ios_base& __base)
  10598.   {
  10599.     __base.unsetf(ios_base::boolalpha);
  10600.     return __base;
  10601.   }
  10602.  
  10603.  
  10604.   inline ios_base&
  10605.   showbase(ios_base& __base)
  10606.   {
  10607.     __base.setf(ios_base::showbase);
  10608.     return __base;
  10609.   }
  10610.  
  10611.  
  10612.   inline ios_base&
  10613.   noshowbase(ios_base& __base)
  10614.   {
  10615.     __base.unsetf(ios_base::showbase);
  10616.     return __base;
  10617.   }
  10618.  
  10619.  
  10620.   inline ios_base&
  10621.   showpoint(ios_base& __base)
  10622.   {
  10623.     __base.setf(ios_base::showpoint);
  10624.     return __base;
  10625.   }
  10626.  
  10627.  
  10628.   inline ios_base&
  10629.   noshowpoint(ios_base& __base)
  10630.   {
  10631.     __base.unsetf(ios_base::showpoint);
  10632.     return __base;
  10633.   }
  10634.  
  10635.  
  10636.   inline ios_base&
  10637.   showpos(ios_base& __base)
  10638.   {
  10639.     __base.setf(ios_base::showpos);
  10640.     return __base;
  10641.   }
  10642.  
  10643.  
  10644.   inline ios_base&
  10645.   noshowpos(ios_base& __base)
  10646.   {
  10647.     __base.unsetf(ios_base::showpos);
  10648.     return __base;
  10649.   }
  10650.  
  10651.  
  10652.   inline ios_base&
  10653.   skipws(ios_base& __base)
  10654.   {
  10655.     __base.setf(ios_base::skipws);
  10656.     return __base;
  10657.   }
  10658.  
  10659.  
  10660.   inline ios_base&
  10661.   noskipws(ios_base& __base)
  10662.   {
  10663.     __base.unsetf(ios_base::skipws);
  10664.     return __base;
  10665.   }
  10666.  
  10667.  
  10668.   inline ios_base&
  10669.   uppercase(ios_base& __base)
  10670.   {
  10671.     __base.setf(ios_base::uppercase);
  10672.     return __base;
  10673.   }
  10674.  
  10675.  
  10676.   inline ios_base&
  10677.   nouppercase(ios_base& __base)
  10678.   {
  10679.     __base.unsetf(ios_base::uppercase);
  10680.     return __base;
  10681.   }
  10682.  
  10683.  
  10684.   inline ios_base&
  10685.   unitbuf(ios_base& __base)
  10686.   {
  10687.      __base.setf(ios_base::unitbuf);
  10688.      return __base;
  10689.   }
  10690.  
  10691.  
  10692.   inline ios_base&
  10693.   nounitbuf(ios_base& __base)
  10694.   {
  10695.      __base.unsetf(ios_base::unitbuf);
  10696.      return __base;
  10697.   }
  10698.  
  10699.  
  10700.  
  10701.   inline ios_base&
  10702.   internal(ios_base& __base)
  10703.   {
  10704.      __base.setf(ios_base::internal, ios_base::adjustfield);
  10705.      return __base;
  10706.   }
  10707.  
  10708.  
  10709.   inline ios_base&
  10710.   left(ios_base& __base)
  10711.   {
  10712.     __base.setf(ios_base::left, ios_base::adjustfield);
  10713.     return __base;
  10714.   }
  10715.  
  10716.  
  10717.   inline ios_base&
  10718.   right(ios_base& __base)
  10719.   {
  10720.     __base.setf(ios_base::right, ios_base::adjustfield);
  10721.     return __base;
  10722.   }
  10723.  
  10724.  
  10725.  
  10726.   inline ios_base&
  10727.   dec(ios_base& __base)
  10728.   {
  10729.     __base.setf(ios_base::dec, ios_base::basefield);
  10730.     return __base;
  10731.   }
  10732.  
  10733.  
  10734.   inline ios_base&
  10735.   hex(ios_base& __base)
  10736.   {
  10737.     __base.setf(ios_base::hex, ios_base::basefield);
  10738.     return __base;
  10739.   }
  10740.  
  10741.  
  10742.   inline ios_base&
  10743.   oct(ios_base& __base)
  10744.   {
  10745.     __base.setf(ios_base::oct, ios_base::basefield);
  10746.     return __base;
  10747.   }
  10748.  
  10749.  
  10750.  
  10751.   inline ios_base&
  10752.   fixed(ios_base& __base)
  10753.   {
  10754.     __base.setf(ios_base::fixed, ios_base::floatfield);
  10755.     return __base;
  10756.   }
  10757.  
  10758.  
  10759.   inline ios_base&
  10760.   scientific(ios_base& __base)
  10761.   {
  10762.     __base.setf(ios_base::scientific, ios_base::floatfield);
  10763.     return __base;
  10764.   }
  10765.  
  10766.  
  10767. }
  10768. # 43 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ios" 2 3
  10769. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 1 3
  10770. # 36 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  10771.        
  10772. # 37 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  10773. # 45 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  10774. namespace std
  10775. {
  10776.  
  10777.  
  10778.   template<typename _CharT, typename _Traits>
  10779.     streamsize
  10780.     __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>*,
  10781.      basic_streambuf<_CharT, _Traits>*, bool&);
  10782. # 119 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  10783.   template<typename _CharT, typename _Traits>
  10784.     class basic_streambuf
  10785.     {
  10786.     public:
  10787.  
  10788.  
  10789.  
  10790.  
  10791.  
  10792.  
  10793.       typedef _CharT char_type;
  10794.       typedef _Traits traits_type;
  10795.       typedef typename traits_type::int_type int_type;
  10796.       typedef typename traits_type::pos_type pos_type;
  10797.       typedef typename traits_type::off_type off_type;
  10798.  
  10799.  
  10800.  
  10801.  
  10802.       typedef basic_streambuf<char_type, traits_type> __streambuf_type;
  10803.  
  10804.  
  10805.       friend class basic_ios<char_type, traits_type>;
  10806.       friend class basic_istream<char_type, traits_type>;
  10807.       friend class basic_ostream<char_type, traits_type>;
  10808.       friend class istreambuf_iterator<char_type, traits_type>;
  10809.       friend class ostreambuf_iterator<char_type, traits_type>;
  10810.  
  10811.       friend streamsize
  10812.       __copy_streambufs_eof<>(basic_streambuf*, basic_streambuf*, bool&);
  10813.  
  10814.       template<bool _IsMove, typename _CharT2>
  10815.         friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
  10816.             _CharT2*>::__type
  10817.         __copy_move_a2(istreambuf_iterator<_CharT2>,
  10818.          istreambuf_iterator<_CharT2>, _CharT2*);
  10819.  
  10820.       template<typename _CharT2>
  10821.         friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
  10822.       istreambuf_iterator<_CharT2> >::__type
  10823.         find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>,
  10824.       const _CharT2&);
  10825.  
  10826.       template<typename _CharT2, typename _Traits2>
  10827.         friend basic_istream<_CharT2, _Traits2>&
  10828.         operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2*);
  10829.  
  10830.       template<typename _CharT2, typename _Traits2, typename _Alloc>
  10831.         friend basic_istream<_CharT2, _Traits2>&
  10832.         operator>>(basic_istream<_CharT2, _Traits2>&,
  10833.      basic_string<_CharT2, _Traits2, _Alloc>&);
  10834.  
  10835.       template<typename _CharT2, typename _Traits2, typename _Alloc>
  10836.         friend basic_istream<_CharT2, _Traits2>&
  10837.         getline(basic_istream<_CharT2, _Traits2>&,
  10838.   basic_string<_CharT2, _Traits2, _Alloc>&, _CharT2);
  10839.  
  10840.     protected:
  10841.  
  10842.  
  10843.  
  10844.  
  10845.  
  10846.  
  10847.  
  10848.       char_type* _M_in_beg;
  10849.       char_type* _M_in_cur;
  10850.       char_type* _M_in_end;
  10851.       char_type* _M_out_beg;
  10852.       char_type* _M_out_cur;
  10853.       char_type* _M_out_end;
  10854.  
  10855.  
  10856.       locale _M_buf_locale;
  10857.  
  10858.   public:
  10859.  
  10860.       virtual
  10861.       ~basic_streambuf()
  10862.       { }
  10863. # 208 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  10864.       locale
  10865.       pubimbue(const locale& __loc)
  10866.       {
  10867.  locale __tmp(this->getloc());
  10868.  this->imbue(__loc);
  10869.  _M_buf_locale = __loc;
  10870.  return __tmp;
  10871.       }
  10872. # 225 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  10873.       locale
  10874.       getloc() const
  10875.       { return _M_buf_locale; }
  10876. # 238 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  10877.       basic_streambuf*
  10878.       pubsetbuf(char_type* __s, streamsize __n)
  10879.       { return this->setbuf(__s, __n); }
  10880. # 250 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  10881.       pos_type
  10882.       pubseekoff(off_type __off, ios_base::seekdir __way,
  10883.    ios_base::openmode __mode = ios_base::in | ios_base::out)
  10884.       { return this->seekoff(__off, __way, __mode); }
  10885. # 262 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  10886.       pos_type
  10887.       pubseekpos(pos_type __sp,
  10888.    ios_base::openmode __mode = ios_base::in | ios_base::out)
  10889.       { return this->seekpos(__sp, __mode); }
  10890.  
  10891.  
  10892.  
  10893.  
  10894.       int
  10895.       pubsync() { return this->sync(); }
  10896. # 283 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  10897.       streamsize
  10898.       in_avail()
  10899.       {
  10900.  const streamsize __ret = this->egptr() - this->gptr();
  10901.  return __ret ? __ret : this->showmanyc();
  10902.       }
  10903. # 297 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  10904.       int_type
  10905.       snextc()
  10906.       {
  10907.  int_type __ret = traits_type::eof();
  10908.  if (__builtin_expect(!traits_type::eq_int_type(this->sbumpc(),
  10909.              __ret), true))
  10910.    __ret = this->sgetc();
  10911.  return __ret;
  10912.       }
  10913. # 315 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  10914.       int_type
  10915.       sbumpc()
  10916.       {
  10917.  int_type __ret;
  10918.  if (__builtin_expect(this->gptr() < this->egptr(), true))
  10919.    {
  10920.      __ret = traits_type::to_int_type(*this->gptr());
  10921.      this->gbump(1);
  10922.    }
  10923.  else
  10924.    __ret = this->uflow();
  10925.  return __ret;
  10926.       }
  10927. # 337 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  10928.       int_type
  10929.       sgetc()
  10930.       {
  10931.  int_type __ret;
  10932.  if (__builtin_expect(this->gptr() < this->egptr(), true))
  10933.    __ret = traits_type::to_int_type(*this->gptr());
  10934.  else
  10935.    __ret = this->underflow();
  10936.  return __ret;
  10937.       }
  10938. # 356 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  10939.       streamsize
  10940.       sgetn(char_type* __s, streamsize __n)
  10941.       { return this->xsgetn(__s, __n); }
  10942. # 371 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  10943.       int_type
  10944.       sputbackc(char_type __c)
  10945.       {
  10946.  int_type __ret;
  10947.  const bool __testpos = this->eback() < this->gptr();
  10948.  if (__builtin_expect(!__testpos ||
  10949.         !traits_type::eq(__c, this->gptr()[-1]), false))
  10950.    __ret = this->pbackfail(traits_type::to_int_type(__c));
  10951.  else
  10952.    {
  10953.      this->gbump(-1);
  10954.      __ret = traits_type::to_int_type(*this->gptr());
  10955.    }
  10956.  return __ret;
  10957.       }
  10958. # 396 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  10959.       int_type
  10960.       sungetc()
  10961.       {
  10962.  int_type __ret;
  10963.  if (__builtin_expect(this->eback() < this->gptr(), true))
  10964.    {
  10965.      this->gbump(-1);
  10966.      __ret = traits_type::to_int_type(*this->gptr());
  10967.    }
  10968.  else
  10969.    __ret = this->pbackfail();
  10970.  return __ret;
  10971.       }
  10972. # 423 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  10973.       int_type
  10974.       sputc(char_type __c)
  10975.       {
  10976.  int_type __ret;
  10977.  if (__builtin_expect(this->pptr() < this->epptr(), true))
  10978.    {
  10979.      *this->pptr() = __c;
  10980.      this->pbump(1);
  10981.      __ret = traits_type::to_int_type(__c);
  10982.    }
  10983.  else
  10984.    __ret = this->overflow(traits_type::to_int_type(__c));
  10985.  return __ret;
  10986.       }
  10987. # 449 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  10988.       streamsize
  10989.       sputn(const char_type* __s, streamsize __n)
  10990.       { return this->xsputn(__s, __n); }
  10991.  
  10992.     protected:
  10993. # 463 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  10994.       basic_streambuf()
  10995.       : _M_in_beg(0), _M_in_cur(0), _M_in_end(0),
  10996.       _M_out_beg(0), _M_out_cur(0), _M_out_end(0),
  10997.       _M_buf_locale(locale())
  10998.       { }
  10999. # 481 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  11000.       char_type*
  11001.       eback() const { return _M_in_beg; }
  11002.  
  11003.       char_type*
  11004.       gptr() const { return _M_in_cur; }
  11005.  
  11006.       char_type*
  11007.       egptr() const { return _M_in_end; }
  11008. # 497 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  11009.       void
  11010.       gbump(int __n) { _M_in_cur += __n; }
  11011. # 508 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  11012.       void
  11013.       setg(char_type* __gbeg, char_type* __gnext, char_type* __gend)
  11014.       {
  11015.  _M_in_beg = __gbeg;
  11016.  _M_in_cur = __gnext;
  11017.  _M_in_end = __gend;
  11018.       }
  11019. # 528 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  11020.       char_type*
  11021.       pbase() const { return _M_out_beg; }
  11022.  
  11023.       char_type*
  11024.       pptr() const { return _M_out_cur; }
  11025.  
  11026.       char_type*
  11027.       epptr() const { return _M_out_end; }
  11028. # 544 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  11029.       void
  11030.       pbump(int __n) { _M_out_cur += __n; }
  11031. # 554 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  11032.       void
  11033.       setp(char_type* __pbeg, char_type* __pend)
  11034.       {
  11035.  _M_out_beg = _M_out_cur = __pbeg;
  11036.  _M_out_end = __pend;
  11037.       }
  11038. # 575 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  11039.       virtual void
  11040.       imbue(const locale& __loc)
  11041.       { }
  11042. # 590 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  11043.       virtual basic_streambuf<char_type,_Traits>*
  11044.       setbuf(char_type*, streamsize)
  11045.       { return this; }
  11046. # 601 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  11047.       virtual pos_type
  11048.       seekoff(off_type, ios_base::seekdir,
  11049.        ios_base::openmode = ios_base::in | ios_base::out)
  11050.       { return pos_type(off_type(-1)); }
  11051. # 613 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  11052.       virtual pos_type
  11053.       seekpos(pos_type,
  11054.        ios_base::openmode = ios_base::in | ios_base::out)
  11055.       { return pos_type(off_type(-1)); }
  11056. # 626 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  11057.       virtual int
  11058.       sync() { return 0; }
  11059. # 648 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  11060.       virtual streamsize
  11061.       showmanyc() { return 0; }
  11062. # 664 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  11063.       virtual streamsize
  11064.       xsgetn(char_type* __s, streamsize __n);
  11065. # 686 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  11066.       virtual int_type
  11067.       underflow()
  11068.       { return traits_type::eof(); }
  11069. # 699 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  11070.       virtual int_type
  11071.       uflow()
  11072.       {
  11073.  int_type __ret = traits_type::eof();
  11074.  const bool __testeof = traits_type::eq_int_type(this->underflow(),
  11075.        __ret);
  11076.  if (!__testeof)
  11077.    {
  11078.      __ret = traits_type::to_int_type(*this->gptr());
  11079.      this->gbump(1);
  11080.    }
  11081.  return __ret;
  11082.       }
  11083. # 723 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  11084.       virtual int_type
  11085.       pbackfail(int_type __c = traits_type::eof())
  11086.       { return traits_type::eof(); }
  11087. # 741 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  11088.       virtual streamsize
  11089.       xsputn(const char_type* __s, streamsize __n);
  11090. # 767 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  11091.       virtual int_type
  11092.       overflow(int_type __c = traits_type::eof())
  11093.       { return traits_type::eof(); }
  11094.  
  11095.  
  11096.  
  11097.     public:
  11098. # 782 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 3
  11099.       void
  11100.       stossc()
  11101.       {
  11102.  if (this->gptr() < this->egptr())
  11103.    this->gbump(1);
  11104.  else
  11105.    this->uflow();
  11106.       }
  11107.  
  11108.  
  11109.  
  11110.       void
  11111.       __safe_gbump(streamsize __n) { _M_in_cur += __n; }
  11112.  
  11113.       void
  11114.       __safe_pbump(streamsize __n) { _M_out_cur += __n; }
  11115.  
  11116.     private:
  11117.  
  11118.  
  11119.       basic_streambuf(const basic_streambuf& __sb)
  11120.       : _M_in_beg(__sb._M_in_beg), _M_in_cur(__sb._M_in_cur),
  11121.       _M_in_end(__sb._M_in_end), _M_out_beg(__sb._M_out_beg),
  11122.       _M_out_cur(__sb._M_out_cur), _M_out_end(__sb._M_out_cur),
  11123.       _M_buf_locale(__sb._M_buf_locale)
  11124.       { }
  11125.  
  11126.       basic_streambuf&
  11127.       operator=(const basic_streambuf&) { return *this; };
  11128.     };
  11129.  
  11130.  
  11131.   template<>
  11132.     streamsize
  11133.     __copy_streambufs_eof(basic_streambuf<char>* __sbin,
  11134.      basic_streambuf<char>* __sbout, bool& __ineof);
  11135.  
  11136.   template<>
  11137.     streamsize
  11138.     __copy_streambufs_eof(basic_streambuf<wchar_t>* __sbin,
  11139.      basic_streambuf<wchar_t>* __sbout, bool& __ineof);
  11140.  
  11141.  
  11142.  
  11143. }
  11144.  
  11145. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/streambuf.tcc" 1 3
  11146. # 37 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/streambuf.tcc" 3
  11147.        
  11148. # 38 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/streambuf.tcc" 3
  11149.  
  11150. namespace std
  11151. {
  11152.  
  11153.  
  11154.   template<typename _CharT, typename _Traits>
  11155.     streamsize
  11156.     basic_streambuf<_CharT, _Traits>::
  11157.     xsgetn(char_type* __s, streamsize __n)
  11158.     {
  11159.       streamsize __ret = 0;
  11160.       while (__ret < __n)
  11161.  {
  11162.    const streamsize __buf_len = this->egptr() - this->gptr();
  11163.    if (__buf_len)
  11164.      {
  11165.        const streamsize __remaining = __n - __ret;
  11166.        const streamsize __len = std::min(__buf_len, __remaining);
  11167.        traits_type::copy(__s, this->gptr(), __len);
  11168.        __ret += __len;
  11169.        __s += __len;
  11170.        this->__safe_gbump(__len);
  11171.      }
  11172.  
  11173.    if (__ret < __n)
  11174.      {
  11175.        const int_type __c = this->uflow();
  11176.        if (!traits_type::eq_int_type(__c, traits_type::eof()))
  11177.   {
  11178.     traits_type::assign(*__s++, traits_type::to_char_type(__c));
  11179.     ++__ret;
  11180.   }
  11181.        else
  11182.   break;
  11183.      }
  11184.  }
  11185.       return __ret;
  11186.     }
  11187.  
  11188.   template<typename _CharT, typename _Traits>
  11189.     streamsize
  11190.     basic_streambuf<_CharT, _Traits>::
  11191.     xsputn(const char_type* __s, streamsize __n)
  11192.     {
  11193.       streamsize __ret = 0;
  11194.       while (__ret < __n)
  11195.  {
  11196.    const streamsize __buf_len = this->epptr() - this->pptr();
  11197.    if (__buf_len)
  11198.      {
  11199.        const streamsize __remaining = __n - __ret;
  11200.        const streamsize __len = std::min(__buf_len, __remaining);
  11201.        traits_type::copy(this->pptr(), __s, __len);
  11202.        __ret += __len;
  11203.        __s += __len;
  11204.        this->__safe_pbump(__len);
  11205.      }
  11206.  
  11207.    if (__ret < __n)
  11208.      {
  11209.        int_type __c = this->overflow(traits_type::to_int_type(*__s));
  11210.        if (!traits_type::eq_int_type(__c, traits_type::eof()))
  11211.   {
  11212.     ++__ret;
  11213.     ++__s;
  11214.   }
  11215.        else
  11216.   break;
  11217.      }
  11218.  }
  11219.       return __ret;
  11220.     }
  11221.  
  11222.  
  11223.  
  11224.  
  11225.   template<typename _CharT, typename _Traits>
  11226.     streamsize
  11227.     __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>* __sbin,
  11228.      basic_streambuf<_CharT, _Traits>* __sbout,
  11229.      bool& __ineof)
  11230.     {
  11231.       streamsize __ret = 0;
  11232.       __ineof = true;
  11233.       typename _Traits::int_type __c = __sbin->sgetc();
  11234.       while (!_Traits::eq_int_type(__c, _Traits::eof()))
  11235.  {
  11236.    __c = __sbout->sputc(_Traits::to_char_type(__c));
  11237.    if (_Traits::eq_int_type(__c, _Traits::eof()))
  11238.      {
  11239.        __ineof = false;
  11240.        break;
  11241.      }
  11242.    ++__ret;
  11243.    __c = __sbin->snextc();
  11244.  }
  11245.       return __ret;
  11246.     }
  11247.  
  11248.   template<typename _CharT, typename _Traits>
  11249.     inline streamsize
  11250.     __copy_streambufs(basic_streambuf<_CharT, _Traits>* __sbin,
  11251.         basic_streambuf<_CharT, _Traits>* __sbout)
  11252.     {
  11253.       bool __ineof;
  11254.       return __copy_streambufs_eof(__sbin, __sbout, __ineof);
  11255.     }
  11256.  
  11257.  
  11258.  
  11259.  
  11260.   extern template class basic_streambuf<char>;
  11261.   extern template
  11262.     streamsize
  11263.     __copy_streambufs(basic_streambuf<char>*,
  11264.         basic_streambuf<char>*);
  11265.   extern template
  11266.     streamsize
  11267.     __copy_streambufs_eof(basic_streambuf<char>*,
  11268.      basic_streambuf<char>*, bool&);
  11269.  
  11270.  
  11271.   extern template class basic_streambuf<wchar_t>;
  11272.   extern template
  11273.     streamsize
  11274.     __copy_streambufs(basic_streambuf<wchar_t>*,
  11275.         basic_streambuf<wchar_t>*);
  11276.   extern template
  11277.     streamsize
  11278.     __copy_streambufs_eof(basic_streambuf<wchar_t>*,
  11279.      basic_streambuf<wchar_t>*, bool&);
  11280.  
  11281.  
  11282.  
  11283.  
  11284. }
  11285. # 829 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/streambuf" 2 3
  11286. # 44 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ios" 2 3
  11287. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_ios.h" 1 3
  11288. # 33 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_ios.h" 3
  11289.        
  11290. # 34 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_ios.h" 3
  11291.  
  11292.  
  11293.  
  11294. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 1 3
  11295. # 37 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11296.        
  11297. # 38 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11298.  
  11299. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cwctype" 1 3
  11300. # 39 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cwctype" 3
  11301.        
  11302. # 40 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cwctype" 3
  11303. # 50 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cwctype" 3
  11304. # 1 "/usr/include/wctype.h" 1 3 4
  11305.  
  11306.  
  11307.  
  11308.  
  11309.  
  11310.  
  11311.  
  11312. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/stddef.h" 1 3 4
  11313. # 9 "/usr/include/wctype.h" 2 3 4
  11314.  
  11315.  
  11316.  
  11317.  
  11318.  
  11319. extern "C" {
  11320.  
  11321.  
  11322.  
  11323. typedef int wctype_t;
  11324.  
  11325.  
  11326.  
  11327.  
  11328. typedef int wctrans_t;
  11329.  
  11330.  
  11331. int __attribute__((__cdecl__)) iswalpha (wint_t);
  11332. int __attribute__((__cdecl__)) iswalnum (wint_t);
  11333. int __attribute__((__cdecl__)) iswblank (wint_t);
  11334. int __attribute__((__cdecl__)) iswcntrl (wint_t);
  11335. int __attribute__((__cdecl__)) iswctype (wint_t, wctype_t);
  11336. int __attribute__((__cdecl__)) iswdigit (wint_t);
  11337. int __attribute__((__cdecl__)) iswgraph (wint_t);
  11338. int __attribute__((__cdecl__)) iswlower (wint_t);
  11339. int __attribute__((__cdecl__)) iswprint (wint_t);
  11340. int __attribute__((__cdecl__)) iswpunct (wint_t);
  11341. int __attribute__((__cdecl__)) iswspace (wint_t);
  11342. int __attribute__((__cdecl__)) iswupper (wint_t);
  11343. int __attribute__((__cdecl__)) iswxdigit (wint_t);
  11344. wint_t __attribute__((__cdecl__)) towctrans (wint_t, wctrans_t);
  11345. wint_t __attribute__((__cdecl__)) towupper (wint_t);
  11346. wint_t __attribute__((__cdecl__)) towlower (wint_t);
  11347. wctrans_t __attribute__((__cdecl__)) wctrans (const char *);
  11348. wctype_t __attribute__((__cdecl__)) wctype (const char *);
  11349.  
  11350. }
  11351. # 51 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cwctype" 2 3
  11352. # 80 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cwctype" 3
  11353. namespace std
  11354. {
  11355.   using ::wctrans_t;
  11356.   using ::wctype_t;
  11357.   using ::wint_t;
  11358.  
  11359.   using ::iswalnum;
  11360.   using ::iswalpha;
  11361.  
  11362.   using ::iswblank;
  11363.  
  11364.   using ::iswcntrl;
  11365.   using ::iswctype;
  11366.   using ::iswdigit;
  11367.   using ::iswgraph;
  11368.   using ::iswlower;
  11369.   using ::iswprint;
  11370.   using ::iswpunct;
  11371.   using ::iswspace;
  11372.   using ::iswupper;
  11373.   using ::iswxdigit;
  11374.   using ::towctrans;
  11375.   using ::towlower;
  11376.   using ::towupper;
  11377.   using ::wctrans;
  11378.   using ::wctype;
  11379. }
  11380. # 40 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 2 3
  11381. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cctype" 1 3
  11382. # 39 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cctype" 3
  11383.        
  11384. # 40 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/cctype" 3
  11385. # 41 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 2 3
  11386. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/ctype_base.h" 1 3
  11387. # 33 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/ctype_base.h" 3
  11388. namespace std
  11389. {
  11390.  
  11391.  
  11392.  
  11393.   struct ctype_base
  11394.   {
  11395.  
  11396.     typedef const int* __to_type;
  11397.  
  11398.  
  11399.  
  11400.     typedef char mask;
  11401.     static const mask upper = 01;
  11402.     static const mask lower = 02;
  11403.     static const mask alpha = 01 | 02;
  11404.     static const mask digit = 04;
  11405.     static const mask xdigit = 0100 | 04;
  11406.     static const mask space = 010;
  11407.     static const mask print = 020 | 01 | 02 | 04 | 0200;
  11408.     static const mask graph = 020 | 01 | 02 | 04;
  11409.     static const mask cntrl = 040;
  11410.     static const mask punct = 020;
  11411.     static const mask alnum = 01 | 02 | 04;
  11412.   };
  11413.  
  11414.  
  11415. }
  11416. # 42 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 2 3
  11417.  
  11418.  
  11419.  
  11420.  
  11421.  
  11422.  
  11423. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/streambuf_iterator.h" 1 3
  11424. # 33 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/streambuf_iterator.h" 3
  11425.        
  11426. # 34 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/streambuf_iterator.h" 3
  11427.  
  11428.  
  11429.  
  11430.  
  11431. namespace std
  11432. {
  11433.  
  11434. # 49 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/streambuf_iterator.h" 3
  11435.   template<typename _CharT, typename _Traits>
  11436.     class istreambuf_iterator
  11437.     : public iterator<input_iterator_tag, _CharT, typename _Traits::off_type,
  11438.                       _CharT*,
  11439.  
  11440.  
  11441.  
  11442.  
  11443.         _CharT&>
  11444.  
  11445.     {
  11446.     public:
  11447.  
  11448.  
  11449.  
  11450.       typedef _CharT char_type;
  11451.       typedef _Traits traits_type;
  11452.       typedef typename _Traits::int_type int_type;
  11453.       typedef basic_streambuf<_CharT, _Traits> streambuf_type;
  11454.       typedef basic_istream<_CharT, _Traits> istream_type;
  11455.  
  11456.  
  11457.       template<typename _CharT2>
  11458.  friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
  11459.                       ostreambuf_iterator<_CharT2> >::__type
  11460.  copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>,
  11461.       ostreambuf_iterator<_CharT2>);
  11462.  
  11463.       template<bool _IsMove, typename _CharT2>
  11464.  friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
  11465.             _CharT2*>::__type
  11466.  __copy_move_a2(istreambuf_iterator<_CharT2>,
  11467.          istreambuf_iterator<_CharT2>, _CharT2*);
  11468.  
  11469.       template<typename _CharT2>
  11470.  friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
  11471.                istreambuf_iterator<_CharT2> >::__type
  11472.  find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>,
  11473.       const _CharT2&);
  11474.  
  11475.     private:
  11476.  
  11477.  
  11478.  
  11479.  
  11480.  
  11481.  
  11482.  
  11483.       mutable streambuf_type* _M_sbuf;
  11484.       mutable int_type _M_c;
  11485.  
  11486.     public:
  11487.  
  11488.       istreambuf_iterator() throw()
  11489.       : _M_sbuf(0), _M_c(traits_type::eof()) { }
  11490. # 112 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/streambuf_iterator.h" 3
  11491.       istreambuf_iterator(istream_type& __s) throw()
  11492.       : _M_sbuf(__s.rdbuf()), _M_c(traits_type::eof()) { }
  11493.  
  11494.  
  11495.       istreambuf_iterator(streambuf_type* __s) throw()
  11496.       : _M_sbuf(__s), _M_c(traits_type::eof()) { }
  11497.  
  11498.  
  11499.  
  11500.  
  11501.       char_type
  11502.       operator*() const
  11503.       {
  11504.  
  11505.  
  11506.  
  11507.  
  11508.  
  11509.  
  11510.  
  11511.  return traits_type::to_char_type(_M_get());
  11512.       }
  11513.  
  11514.  
  11515.       istreambuf_iterator&
  11516.       operator++()
  11517.       {
  11518.  
  11519.  
  11520.                         ;
  11521.  if (_M_sbuf)
  11522.    {
  11523.      _M_sbuf->sbumpc();
  11524.      _M_c = traits_type::eof();
  11525.    }
  11526.  return *this;
  11527.       }
  11528.  
  11529.  
  11530.       istreambuf_iterator
  11531.       operator++(int)
  11532.       {
  11533.  
  11534.  
  11535.                         ;
  11536.  
  11537.  istreambuf_iterator __old = *this;
  11538.  if (_M_sbuf)
  11539.    {
  11540.      __old._M_c = _M_sbuf->sbumpc();
  11541.      _M_c = traits_type::eof();
  11542.    }
  11543.  return __old;
  11544.       }
  11545.  
  11546.  
  11547.  
  11548.  
  11549.  
  11550.       bool
  11551.       equal(const istreambuf_iterator& __b) const
  11552.       { return _M_at_eof() == __b._M_at_eof(); }
  11553.  
  11554.     private:
  11555.       int_type
  11556.       _M_get() const
  11557.       {
  11558.  const int_type __eof = traits_type::eof();
  11559.  int_type __ret = __eof;
  11560.  if (_M_sbuf)
  11561.    {
  11562.      if (!traits_type::eq_int_type(_M_c, __eof))
  11563.        __ret = _M_c;
  11564.      else if (!traits_type::eq_int_type((__ret = _M_sbuf->sgetc()),
  11565.             __eof))
  11566.        _M_c = __ret;
  11567.      else
  11568.        _M_sbuf = 0;
  11569.    }
  11570.  return __ret;
  11571.       }
  11572.  
  11573.       bool
  11574.       _M_at_eof() const
  11575.       {
  11576.  const int_type __eof = traits_type::eof();
  11577.  return traits_type::eq_int_type(_M_get(), __eof);
  11578.       }
  11579.     };
  11580.  
  11581.   template<typename _CharT, typename _Traits>
  11582.     inline bool
  11583.     operator==(const istreambuf_iterator<_CharT, _Traits>& __a,
  11584.         const istreambuf_iterator<_CharT, _Traits>& __b)
  11585.     { return __a.equal(__b); }
  11586.  
  11587.   template<typename _CharT, typename _Traits>
  11588.     inline bool
  11589.     operator!=(const istreambuf_iterator<_CharT, _Traits>& __a,
  11590.         const istreambuf_iterator<_CharT, _Traits>& __b)
  11591.     { return !__a.equal(__b); }
  11592.  
  11593.  
  11594.   template<typename _CharT, typename _Traits>
  11595.     class ostreambuf_iterator
  11596.     : public iterator<output_iterator_tag, void, void, void, void>
  11597.     {
  11598.     public:
  11599.  
  11600.  
  11601.  
  11602.       typedef _CharT char_type;
  11603.       typedef _Traits traits_type;
  11604.       typedef basic_streambuf<_CharT, _Traits> streambuf_type;
  11605.       typedef basic_ostream<_CharT, _Traits> ostream_type;
  11606.  
  11607.  
  11608.       template<typename _CharT2>
  11609.  friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
  11610.                       ostreambuf_iterator<_CharT2> >::__type
  11611.  copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>,
  11612.       ostreambuf_iterator<_CharT2>);
  11613.  
  11614.     private:
  11615.       streambuf_type* _M_sbuf;
  11616.       bool _M_failed;
  11617.  
  11618.     public:
  11619.  
  11620.       ostreambuf_iterator(ostream_type& __s) throw()
  11621.       : _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { }
  11622.  
  11623.  
  11624.       ostreambuf_iterator(streambuf_type* __s) throw()
  11625.       : _M_sbuf(__s), _M_failed(!_M_sbuf) { }
  11626.  
  11627.  
  11628.       ostreambuf_iterator&
  11629.       operator=(_CharT __c)
  11630.       {
  11631.  if (!_M_failed &&
  11632.      _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof()))
  11633.    _M_failed = true;
  11634.  return *this;
  11635.       }
  11636.  
  11637.  
  11638.       ostreambuf_iterator&
  11639.       operator*()
  11640.       { return *this; }
  11641.  
  11642.  
  11643.       ostreambuf_iterator&
  11644.       operator++(int)
  11645.       { return *this; }
  11646.  
  11647.  
  11648.       ostreambuf_iterator&
  11649.       operator++()
  11650.       { return *this; }
  11651.  
  11652.  
  11653.       bool
  11654.       failed() const throw()
  11655.       { return _M_failed; }
  11656.  
  11657.       ostreambuf_iterator&
  11658.       _M_put(const _CharT* __ws, streamsize __len)
  11659.       {
  11660.  if (__builtin_expect(!_M_failed, true)
  11661.      && __builtin_expect(this->_M_sbuf->sputn(__ws, __len) != __len,
  11662.     false))
  11663.    _M_failed = true;
  11664.  return *this;
  11665.       }
  11666.     };
  11667.  
  11668.  
  11669.   template<typename _CharT>
  11670.     typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
  11671.                            ostreambuf_iterator<_CharT> >::__type
  11672.     copy(istreambuf_iterator<_CharT> __first,
  11673.   istreambuf_iterator<_CharT> __last,
  11674.   ostreambuf_iterator<_CharT> __result)
  11675.     {
  11676.       if (__first._M_sbuf && !__last._M_sbuf && !__result._M_failed)
  11677.  {
  11678.    bool __ineof;
  11679.    __copy_streambufs_eof(__first._M_sbuf, __result._M_sbuf, __ineof);
  11680.    if (!__ineof)
  11681.      __result._M_failed = true;
  11682.  }
  11683.       return __result;
  11684.     }
  11685.  
  11686.   template<bool _IsMove, typename _CharT>
  11687.     typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
  11688.             ostreambuf_iterator<_CharT> >::__type
  11689.     __copy_move_a2(_CharT* __first, _CharT* __last,
  11690.      ostreambuf_iterator<_CharT> __result)
  11691.     {
  11692.       const streamsize __num = __last - __first;
  11693.       if (__num > 0)
  11694.  __result._M_put(__first, __num);
  11695.       return __result;
  11696.     }
  11697.  
  11698.   template<bool _IsMove, typename _CharT>
  11699.     typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
  11700.         ostreambuf_iterator<_CharT> >::__type
  11701.     __copy_move_a2(const _CharT* __first, const _CharT* __last,
  11702.      ostreambuf_iterator<_CharT> __result)
  11703.     {
  11704.       const streamsize __num = __last - __first;
  11705.       if (__num > 0)
  11706.  __result._M_put(__first, __num);
  11707.       return __result;
  11708.     }
  11709.  
  11710.   template<bool _IsMove, typename _CharT>
  11711.     typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
  11712.             _CharT*>::__type
  11713.     __copy_move_a2(istreambuf_iterator<_CharT> __first,
  11714.      istreambuf_iterator<_CharT> __last, _CharT* __result)
  11715.     {
  11716.       typedef istreambuf_iterator<_CharT> __is_iterator_type;
  11717.       typedef typename __is_iterator_type::traits_type traits_type;
  11718.       typedef typename __is_iterator_type::streambuf_type streambuf_type;
  11719.       typedef typename traits_type::int_type int_type;
  11720.  
  11721.       if (__first._M_sbuf && !__last._M_sbuf)
  11722.  {
  11723.    streambuf_type* __sb = __first._M_sbuf;
  11724.    int_type __c = __sb->sgetc();
  11725.    while (!traits_type::eq_int_type(__c, traits_type::eof()))
  11726.      {
  11727.        const streamsize __n = __sb->egptr() - __sb->gptr();
  11728.        if (__n > 1)
  11729.   {
  11730.     traits_type::copy(__result, __sb->gptr(), __n);
  11731.     __sb->__safe_gbump(__n);
  11732.     __result += __n;
  11733.     __c = __sb->underflow();
  11734.   }
  11735.        else
  11736.   {
  11737.     *__result++ = traits_type::to_char_type(__c);
  11738.     __c = __sb->snextc();
  11739.   }
  11740.      }
  11741.  }
  11742.       return __result;
  11743.     }
  11744.  
  11745.   template<typename _CharT>
  11746.     typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
  11747.           istreambuf_iterator<_CharT> >::__type
  11748.     find(istreambuf_iterator<_CharT> __first,
  11749.   istreambuf_iterator<_CharT> __last, const _CharT& __val)
  11750.     {
  11751.       typedef istreambuf_iterator<_CharT> __is_iterator_type;
  11752.       typedef typename __is_iterator_type::traits_type traits_type;
  11753.       typedef typename __is_iterator_type::streambuf_type streambuf_type;
  11754.       typedef typename traits_type::int_type int_type;
  11755.  
  11756.       if (__first._M_sbuf && !__last._M_sbuf)
  11757.  {
  11758.    const int_type __ival = traits_type::to_int_type(__val);
  11759.    streambuf_type* __sb = __first._M_sbuf;
  11760.    int_type __c = __sb->sgetc();
  11761.    while (!traits_type::eq_int_type(__c, traits_type::eof())
  11762.    && !traits_type::eq_int_type(__c, __ival))
  11763.      {
  11764.        streamsize __n = __sb->egptr() - __sb->gptr();
  11765.        if (__n > 1)
  11766.   {
  11767.     const _CharT* __p = traits_type::find(__sb->gptr(),
  11768.        __n, __val);
  11769.     if (__p)
  11770.       __n = __p - __sb->gptr();
  11771.     __sb->__safe_gbump(__n);
  11772.     __c = __sb->sgetc();
  11773.   }
  11774.        else
  11775.   __c = __sb->snextc();
  11776.      }
  11777.  
  11778.    if (!traits_type::eq_int_type(__c, traits_type::eof()))
  11779.      __first._M_c = __c;
  11780.    else
  11781.      __first._M_sbuf = 0;
  11782.  }
  11783.       return __first;
  11784.     }
  11785.  
  11786.  
  11787.  
  11788.  
  11789. }
  11790. # 49 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 2 3
  11791.  
  11792. namespace std
  11793. {
  11794.  
  11795. # 64 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11796.   template<typename _Tp>
  11797.     void
  11798.     __convert_to_v(const char*, _Tp&, ios_base::iostate&,
  11799.      const __c_locale&) throw();
  11800.  
  11801.  
  11802.   template<>
  11803.     void
  11804.     __convert_to_v(const char*, float&, ios_base::iostate&,
  11805.      const __c_locale&) throw();
  11806.  
  11807.   template<>
  11808.     void
  11809.     __convert_to_v(const char*, double&, ios_base::iostate&,
  11810.      const __c_locale&) throw();
  11811.  
  11812.   template<>
  11813.     void
  11814.     __convert_to_v(const char*, long double&, ios_base::iostate&,
  11815.      const __c_locale&) throw();
  11816.  
  11817.  
  11818.  
  11819.   template<typename _CharT, typename _Traits>
  11820.     struct __pad
  11821.     {
  11822.       static void
  11823.       _S_pad(ios_base& __io, _CharT __fill, _CharT* __news,
  11824.       const _CharT* __olds, streamsize __newlen, streamsize __oldlen);
  11825.     };
  11826.  
  11827.  
  11828.  
  11829.  
  11830.  
  11831.  
  11832.   template<typename _CharT>
  11833.     _CharT*
  11834.     __add_grouping(_CharT* __s, _CharT __sep,
  11835.      const char* __gbeg, size_t __gsize,
  11836.      const _CharT* __first, const _CharT* __last);
  11837.  
  11838.  
  11839.  
  11840.  
  11841.   template<typename _CharT>
  11842.     inline
  11843.     ostreambuf_iterator<_CharT>
  11844.     __write(ostreambuf_iterator<_CharT> __s, const _CharT* __ws, int __len)
  11845.     {
  11846.       __s._M_put(__ws, __len);
  11847.       return __s;
  11848.     }
  11849.  
  11850.  
  11851.   template<typename _CharT, typename _OutIter>
  11852.     inline
  11853.     _OutIter
  11854.     __write(_OutIter __s, const _CharT* __ws, int __len)
  11855.     {
  11856.       for (int __j = 0; __j < __len; __j++, ++__s)
  11857.  *__s = __ws[__j];
  11858.       return __s;
  11859.     }
  11860. # 142 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11861.   template<typename _CharT>
  11862.     class __ctype_abstract_base : public locale::facet, public ctype_base
  11863.     {
  11864.     public:
  11865.  
  11866.  
  11867.       typedef _CharT char_type;
  11868. # 161 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11869.       bool
  11870.       is(mask __m, char_type __c) const
  11871.       { return this->do_is(__m, __c); }
  11872. # 178 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11873.       const char_type*
  11874.       is(const char_type *__lo, const char_type *__hi, mask *__vec) const
  11875.       { return this->do_is(__lo, __hi, __vec); }
  11876. # 194 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11877.       const char_type*
  11878.       scan_is(mask __m, const char_type* __lo, const char_type* __hi) const
  11879.       { return this->do_scan_is(__m, __lo, __hi); }
  11880. # 210 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11881.       const char_type*
  11882.       scan_not(mask __m, const char_type* __lo, const char_type* __hi) const
  11883.       { return this->do_scan_not(__m, __lo, __hi); }
  11884. # 224 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11885.       char_type
  11886.       toupper(char_type __c) const
  11887.       { return this->do_toupper(__c); }
  11888. # 239 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11889.       const char_type*
  11890.       toupper(char_type *__lo, const char_type* __hi) const
  11891.       { return this->do_toupper(__lo, __hi); }
  11892. # 253 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11893.       char_type
  11894.       tolower(char_type __c) const
  11895.       { return this->do_tolower(__c); }
  11896. # 268 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11897.       const char_type*
  11898.       tolower(char_type* __lo, const char_type* __hi) const
  11899.       { return this->do_tolower(__lo, __hi); }
  11900. # 285 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11901.       char_type
  11902.       widen(char __c) const
  11903.       { return this->do_widen(__c); }
  11904. # 304 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11905.       const char*
  11906.       widen(const char* __lo, const char* __hi, char_type* __to) const
  11907.       { return this->do_widen(__lo, __hi, __to); }
  11908. # 323 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11909.       char
  11910.       narrow(char_type __c, char __dfault) const
  11911.       { return this->do_narrow(__c, __dfault); }
  11912. # 345 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11913.       const char_type*
  11914.       narrow(const char_type* __lo, const char_type* __hi,
  11915.        char __dfault, char* __to) const
  11916.       { return this->do_narrow(__lo, __hi, __dfault, __to); }
  11917.  
  11918.     protected:
  11919.       explicit
  11920.       __ctype_abstract_base(size_t __refs = 0): facet(__refs) { }
  11921.  
  11922.       virtual
  11923.       ~__ctype_abstract_base() { }
  11924. # 370 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11925.       virtual bool
  11926.       do_is(mask __m, char_type __c) const = 0;
  11927. # 389 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11928.       virtual const char_type*
  11929.       do_is(const char_type* __lo, const char_type* __hi,
  11930.      mask* __vec) const = 0;
  11931. # 408 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11932.       virtual const char_type*
  11933.       do_scan_is(mask __m, const char_type* __lo,
  11934.    const char_type* __hi) const = 0;
  11935. # 427 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11936.       virtual const char_type*
  11937.       do_scan_not(mask __m, const char_type* __lo,
  11938.     const char_type* __hi) const = 0;
  11939. # 445 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11940.       virtual char_type
  11941.       do_toupper(char_type __c) const = 0;
  11942. # 462 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11943.       virtual const char_type*
  11944.       do_toupper(char_type* __lo, const char_type* __hi) const = 0;
  11945. # 478 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11946.       virtual char_type
  11947.       do_tolower(char_type __c) const = 0;
  11948. # 495 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11949.       virtual const char_type*
  11950.       do_tolower(char_type* __lo, const char_type* __hi) const = 0;
  11951. # 514 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11952.       virtual char_type
  11953.       do_widen(char __c) const = 0;
  11954. # 535 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11955.       virtual const char*
  11956.       do_widen(const char* __lo, const char* __hi, char_type* __to) const = 0;
  11957. # 556 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11958.       virtual char
  11959.       do_narrow(char_type __c, char __dfault) const = 0;
  11960. # 581 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11961.       virtual const char_type*
  11962.       do_narrow(const char_type* __lo, const char_type* __hi,
  11963.   char __dfault, char* __to) const = 0;
  11964.     };
  11965. # 604 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  11966.   template<typename _CharT>
  11967.     class ctype : public __ctype_abstract_base<_CharT>
  11968.     {
  11969.     public:
  11970.  
  11971.       typedef _CharT char_type;
  11972.       typedef typename __ctype_abstract_base<_CharT>::mask mask;
  11973.  
  11974.  
  11975.       static locale::id id;
  11976.  
  11977.       explicit
  11978.       ctype(size_t __refs = 0) : __ctype_abstract_base<_CharT>(__refs) { }
  11979.  
  11980.    protected:
  11981.       virtual
  11982.       ~ctype();
  11983.  
  11984.       virtual bool
  11985.       do_is(mask __m, char_type __c) const;
  11986.  
  11987.       virtual const char_type*
  11988.       do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const;
  11989.  
  11990.       virtual const char_type*
  11991.       do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const;
  11992.  
  11993.       virtual const char_type*
  11994.       do_scan_not(mask __m, const char_type* __lo,
  11995.     const char_type* __hi) const;
  11996.  
  11997.       virtual char_type
  11998.       do_toupper(char_type __c) const;
  11999.  
  12000.       virtual const char_type*
  12001.       do_toupper(char_type* __lo, const char_type* __hi) const;
  12002.  
  12003.       virtual char_type
  12004.       do_tolower(char_type __c) const;
  12005.  
  12006.       virtual const char_type*
  12007.       do_tolower(char_type* __lo, const char_type* __hi) const;
  12008.  
  12009.       virtual char_type
  12010.       do_widen(char __c) const;
  12011.  
  12012.       virtual const char*
  12013.       do_widen(const char* __lo, const char* __hi, char_type* __dest) const;
  12014.  
  12015.       virtual char
  12016.       do_narrow(char_type, char __dfault) const;
  12017.  
  12018.       virtual const char_type*
  12019.       do_narrow(const char_type* __lo, const char_type* __hi,
  12020.   char __dfault, char* __to) const;
  12021.     };
  12022.  
  12023.   template<typename _CharT>
  12024.     locale::id ctype<_CharT>::id;
  12025. # 673 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12026.   template<>
  12027.     class ctype<char> : public locale::facet, public ctype_base
  12028.     {
  12029.     public:
  12030.  
  12031.  
  12032.       typedef char char_type;
  12033.  
  12034.     protected:
  12035.  
  12036.       __c_locale _M_c_locale_ctype;
  12037.       bool _M_del;
  12038.       __to_type _M_toupper;
  12039.       __to_type _M_tolower;
  12040.       const mask* _M_table;
  12041.       mutable char _M_widen_ok;
  12042.       mutable char _M_widen[1 + static_cast<unsigned char>(-1)];
  12043.       mutable char _M_narrow[1 + static_cast<unsigned char>(-1)];
  12044.       mutable char _M_narrow_ok;
  12045.  
  12046.  
  12047.     public:
  12048.  
  12049.       static locale::id id;
  12050.  
  12051.       static const size_t table_size = 1 + static_cast<unsigned char>(-1);
  12052. # 710 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12053.       explicit
  12054.       ctype(const mask* __table = 0, bool __del = false, size_t __refs = 0);
  12055. # 723 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12056.       explicit
  12057.       ctype(__c_locale __cloc, const mask* __table = 0, bool __del = false,
  12058.      size_t __refs = 0);
  12059. # 736 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12060.       inline bool
  12061.       is(mask __m, char __c) const;
  12062. # 751 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12063.       inline const char*
  12064.       is(const char* __lo, const char* __hi, mask* __vec) const;
  12065. # 765 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12066.       inline const char*
  12067.       scan_is(mask __m, const char* __lo, const char* __hi) const;
  12068. # 779 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12069.       inline const char*
  12070.       scan_not(mask __m, const char* __lo, const char* __hi) const;
  12071. # 794 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12072.       char_type
  12073.       toupper(char_type __c) const
  12074.       { return this->do_toupper(__c); }
  12075. # 811 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12076.       const char_type*
  12077.       toupper(char_type *__lo, const char_type* __hi) const
  12078.       { return this->do_toupper(__lo, __hi); }
  12079. # 827 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12080.       char_type
  12081.       tolower(char_type __c) const
  12082.       { return this->do_tolower(__c); }
  12083. # 844 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12084.       const char_type*
  12085.       tolower(char_type* __lo, const char_type* __hi) const
  12086.       { return this->do_tolower(__lo, __hi); }
  12087. # 864 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12088.       char_type
  12089.       widen(char __c) const
  12090.       {
  12091.  if (_M_widen_ok)
  12092.    return _M_widen[static_cast<unsigned char>(__c)];
  12093.  this->_M_widen_init();
  12094.  return this->do_widen(__c);
  12095.       }
  12096. # 891 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12097.       const char*
  12098.       widen(const char* __lo, const char* __hi, char_type* __to) const
  12099.       {
  12100.  if (_M_widen_ok == 1)
  12101.    {
  12102.      __builtin_memcpy(__to, __lo, __hi - __lo);
  12103.      return __hi;
  12104.    }
  12105.  if (!_M_widen_ok)
  12106.    _M_widen_init();
  12107.  return this->do_widen(__lo, __hi, __to);
  12108.       }
  12109. # 922 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12110.       char
  12111.       narrow(char_type __c, char __dfault) const
  12112.       {
  12113.  if (_M_narrow[static_cast<unsigned char>(__c)])
  12114.    return _M_narrow[static_cast<unsigned char>(__c)];
  12115.  const char __t = do_narrow(__c, __dfault);
  12116.  if (__t != __dfault)
  12117.    _M_narrow[static_cast<unsigned char>(__c)] = __t;
  12118.  return __t;
  12119.       }
  12120. # 955 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12121.       const char_type*
  12122.       narrow(const char_type* __lo, const char_type* __hi,
  12123.       char __dfault, char* __to) const
  12124.       {
  12125.  if (__builtin_expect(_M_narrow_ok == 1, true))
  12126.    {
  12127.      __builtin_memcpy(__to, __lo, __hi - __lo);
  12128.      return __hi;
  12129.    }
  12130.  if (!_M_narrow_ok)
  12131.    _M_narrow_init();
  12132.  return this->do_narrow(__lo, __hi, __dfault, __to);
  12133.       }
  12134.  
  12135.  
  12136.  
  12137.  
  12138.  
  12139.       const mask*
  12140.       table() const throw()
  12141.       { return _M_table; }
  12142.  
  12143.  
  12144.       static const mask*
  12145.       classic_table() throw();
  12146.     protected:
  12147.  
  12148.  
  12149.  
  12150.  
  12151.  
  12152.  
  12153.  
  12154.       virtual
  12155.       ~ctype();
  12156. # 1004 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12157.       virtual char_type
  12158.       do_toupper(char_type __c) const;
  12159. # 1021 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12160.       virtual const char_type*
  12161.       do_toupper(char_type* __lo, const char_type* __hi) const;
  12162. # 1037 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12163.       virtual char_type
  12164.       do_tolower(char_type __c) const;
  12165. # 1054 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12166.       virtual const char_type*
  12167.       do_tolower(char_type* __lo, const char_type* __hi) const;
  12168. # 1074 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12169.       virtual char_type
  12170.       do_widen(char __c) const
  12171.       { return __c; }
  12172. # 1097 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12173.       virtual const char*
  12174.       do_widen(const char* __lo, const char* __hi, char_type* __to) const
  12175.       {
  12176.  __builtin_memcpy(__to, __lo, __hi - __lo);
  12177.  return __hi;
  12178.       }
  12179. # 1123 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12180.       virtual char
  12181.       do_narrow(char_type __c, char __dfault) const
  12182.       { return __c; }
  12183. # 1149 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12184.       virtual const char_type*
  12185.       do_narrow(const char_type* __lo, const char_type* __hi,
  12186.   char __dfault, char* __to) const
  12187.       {
  12188.  __builtin_memcpy(__to, __lo, __hi - __lo);
  12189.  return __hi;
  12190.       }
  12191.  
  12192.     private:
  12193.       void _M_narrow_init() const;
  12194.       void _M_widen_init() const;
  12195.     };
  12196. # 1174 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12197.   template<>
  12198.     class ctype<wchar_t> : public __ctype_abstract_base<wchar_t>
  12199.     {
  12200.     public:
  12201.  
  12202.  
  12203.       typedef wchar_t char_type;
  12204.       typedef wctype_t __wmask_type;
  12205.  
  12206.     protected:
  12207.       __c_locale _M_c_locale_ctype;
  12208.  
  12209.  
  12210.       bool _M_narrow_ok;
  12211.       char _M_narrow[128];
  12212.       wint_t _M_widen[1 + static_cast<unsigned char>(-1)];
  12213.  
  12214.  
  12215.       mask _M_bit[16];
  12216.       __wmask_type _M_wmask[16];
  12217.  
  12218.     public:
  12219.  
  12220.  
  12221.       static locale::id id;
  12222. # 1207 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12223.       explicit
  12224.       ctype(size_t __refs = 0);
  12225. # 1218 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12226.       explicit
  12227.       ctype(__c_locale __cloc, size_t __refs = 0);
  12228.  
  12229.     protected:
  12230.       __wmask_type
  12231.       _M_convert_to_wmask(const mask __m) const throw();
  12232.  
  12233.  
  12234.       virtual
  12235.       ~ctype();
  12236. # 1242 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12237.       virtual bool
  12238.       do_is(mask __m, char_type __c) const;
  12239. # 1261 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12240.       virtual const char_type*
  12241.       do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const;
  12242. # 1279 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12243.       virtual const char_type*
  12244.       do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const;
  12245. # 1297 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12246.       virtual const char_type*
  12247.       do_scan_not(mask __m, const char_type* __lo,
  12248.     const char_type* __hi) const;
  12249. # 1314 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12250.       virtual char_type
  12251.       do_toupper(char_type __c) const;
  12252. # 1331 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12253.       virtual const char_type*
  12254.       do_toupper(char_type* __lo, const char_type* __hi) const;
  12255. # 1347 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12256.       virtual char_type
  12257.       do_tolower(char_type __c) const;
  12258. # 1364 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12259.       virtual const char_type*
  12260.       do_tolower(char_type* __lo, const char_type* __hi) const;
  12261. # 1384 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12262.       virtual char_type
  12263.       do_widen(char __c) const;
  12264. # 1406 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12265.       virtual const char*
  12266.       do_widen(const char* __lo, const char* __hi, char_type* __to) const;
  12267. # 1429 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12268.       virtual char
  12269.       do_narrow(char_type __c, char __dfault) const;
  12270. # 1455 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12271.       virtual const char_type*
  12272.       do_narrow(const char_type* __lo, const char_type* __hi,
  12273.   char __dfault, char* __to) const;
  12274.  
  12275.  
  12276.       void
  12277.       _M_initialize_ctype() throw();
  12278.     };
  12279.  
  12280.  
  12281.  
  12282.   template<typename _CharT>
  12283.     class ctype_byname : public ctype<_CharT>
  12284.     {
  12285.     public:
  12286.       typedef typename ctype<_CharT>::mask mask;
  12287.  
  12288.       explicit
  12289.       ctype_byname(const char* __s, size_t __refs = 0);
  12290.  
  12291.     protected:
  12292.       virtual
  12293.       ~ctype_byname() { };
  12294.     };
  12295.  
  12296.  
  12297.   template<>
  12298.     class ctype_byname<char> : public ctype<char>
  12299.     {
  12300.     public:
  12301.       explicit
  12302.       ctype_byname(const char* __s, size_t __refs = 0);
  12303.  
  12304.     protected:
  12305.       virtual
  12306.       ~ctype_byname();
  12307.     };
  12308.  
  12309.  
  12310.   template<>
  12311.     class ctype_byname<wchar_t> : public ctype<wchar_t>
  12312.     {
  12313.     public:
  12314.       explicit
  12315.       ctype_byname(const char* __s, size_t __refs = 0);
  12316.  
  12317.     protected:
  12318.       virtual
  12319.       ~ctype_byname();
  12320.     };
  12321.  
  12322.  
  12323.  
  12324. }
  12325.  
  12326.  
  12327. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/ctype_inline.h" 1 3
  12328. # 37 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/x86_64-pc-cygwin/bits/ctype_inline.h" 3
  12329. namespace std
  12330. {
  12331.  
  12332.  
  12333.   bool
  12334.   ctype<char>::
  12335.   is(mask __m, char __c) const
  12336.   { return _M_table[static_cast<unsigned char>(__c)] & __m; }
  12337.  
  12338.   const char*
  12339.   ctype<char>::
  12340.   is(const char* __low, const char* __high, mask* __vec) const
  12341.   {
  12342.     while (__low < __high)
  12343.       *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
  12344.     return __high;
  12345.   }
  12346.  
  12347.   const char*
  12348.   ctype<char>::
  12349.   scan_is(mask __m, const char* __low, const char* __high) const
  12350.   {
  12351.     while (__low < __high && !this->is(__m, *__low))
  12352.       ++__low;
  12353.     return __low;
  12354.   }
  12355.  
  12356.   const char*
  12357.   ctype<char>::
  12358.   scan_not(mask __m, const char* __low, const char* __high) const
  12359.   {
  12360.     while (__low < __high && this->is(__m, *__low) != 0)
  12361.       ++__low;
  12362.     return __low;
  12363.   }
  12364.  
  12365.  
  12366. }
  12367. # 1512 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 2 3
  12368.  
  12369. namespace std
  12370. {
  12371.  
  12372.  
  12373.  
  12374.   class __num_base
  12375.   {
  12376.   public:
  12377.  
  12378.  
  12379.     enum
  12380.       {
  12381.  _S_ominus,
  12382.  _S_oplus,
  12383.  _S_ox,
  12384.  _S_oX,
  12385.  _S_odigits,
  12386.  _S_odigits_end = _S_odigits + 16,
  12387.  _S_oudigits = _S_odigits_end,
  12388.  _S_oudigits_end = _S_oudigits + 16,
  12389.  _S_oe = _S_odigits + 14,
  12390.  _S_oE = _S_oudigits + 14,
  12391.  _S_oend = _S_oudigits_end
  12392.       };
  12393.  
  12394.  
  12395.  
  12396.  
  12397.  
  12398.  
  12399.     static const char* _S_atoms_out;
  12400.  
  12401.  
  12402.  
  12403.     static const char* _S_atoms_in;
  12404.  
  12405.     enum
  12406.     {
  12407.       _S_iminus,
  12408.       _S_iplus,
  12409.       _S_ix,
  12410.       _S_iX,
  12411.       _S_izero,
  12412.       _S_ie = _S_izero + 14,
  12413.       _S_iE = _S_izero + 20,
  12414.       _S_iend = 26
  12415.     };
  12416.  
  12417.  
  12418.  
  12419.     static void
  12420.     _S_format_float(const ios_base& __io, char* __fptr, char __mod) throw();
  12421.   };
  12422.  
  12423.   template<typename _CharT>
  12424.     struct __numpunct_cache : public locale::facet
  12425.     {
  12426.       const char* _M_grouping;
  12427.       size_t _M_grouping_size;
  12428.       bool _M_use_grouping;
  12429.       const _CharT* _M_truename;
  12430.       size_t _M_truename_size;
  12431.       const _CharT* _M_falsename;
  12432.       size_t _M_falsename_size;
  12433.       _CharT _M_decimal_point;
  12434.       _CharT _M_thousands_sep;
  12435.  
  12436.  
  12437.  
  12438.  
  12439.  
  12440.       _CharT _M_atoms_out[__num_base::_S_oend];
  12441.  
  12442.  
  12443.  
  12444.  
  12445.  
  12446.       _CharT _M_atoms_in[__num_base::_S_iend];
  12447.  
  12448.       bool _M_allocated;
  12449.  
  12450.       __numpunct_cache(size_t __refs = 0)
  12451.       : facet(__refs), _M_grouping(0), _M_grouping_size(0),
  12452.  _M_use_grouping(false),
  12453.  _M_truename(0), _M_truename_size(0), _M_falsename(0),
  12454.  _M_falsename_size(0), _M_decimal_point(_CharT()),
  12455.  _M_thousands_sep(_CharT()), _M_allocated(false)
  12456.  { }
  12457.  
  12458.       ~__numpunct_cache();
  12459.  
  12460.       void
  12461.       _M_cache(const locale& __loc);
  12462.  
  12463.     private:
  12464.       __numpunct_cache&
  12465.       operator=(const __numpunct_cache&);
  12466.  
  12467.       explicit
  12468.       __numpunct_cache(const __numpunct_cache&);
  12469.     };
  12470.  
  12471.   template<typename _CharT>
  12472.     __numpunct_cache<_CharT>::~__numpunct_cache()
  12473.     {
  12474.       if (_M_allocated)
  12475.  {
  12476.    delete [] _M_grouping;
  12477.    delete [] _M_truename;
  12478.    delete [] _M_falsename;
  12479.  }
  12480.     }
  12481. # 1640 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12482.   template<typename _CharT>
  12483.     class numpunct : public locale::facet
  12484.     {
  12485.     public:
  12486.  
  12487.  
  12488.  
  12489.       typedef _CharT char_type;
  12490.       typedef basic_string<_CharT> string_type;
  12491.  
  12492.       typedef __numpunct_cache<_CharT> __cache_type;
  12493.  
  12494.     protected:
  12495.       __cache_type* _M_data;
  12496.  
  12497.     public:
  12498.  
  12499.       static locale::id id;
  12500.  
  12501.  
  12502.  
  12503.  
  12504.  
  12505.  
  12506.       explicit
  12507.       numpunct(size_t __refs = 0)
  12508.       : facet(__refs), _M_data(0)
  12509.       { _M_initialize_numpunct(); }
  12510. # 1678 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12511.       explicit
  12512.       numpunct(__cache_type* __cache, size_t __refs = 0)
  12513.       : facet(__refs), _M_data(__cache)
  12514.       { _M_initialize_numpunct(); }
  12515. # 1692 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12516.       explicit
  12517.       numpunct(__c_locale __cloc, size_t __refs = 0)
  12518.       : facet(__refs), _M_data(0)
  12519.       { _M_initialize_numpunct(__cloc); }
  12520. # 1706 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12521.       char_type
  12522.       decimal_point() const
  12523.       { return this->do_decimal_point(); }
  12524. # 1719 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12525.       char_type
  12526.       thousands_sep() const
  12527.       { return this->do_thousands_sep(); }
  12528. # 1750 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12529.       string
  12530.       grouping() const
  12531.       { return this->do_grouping(); }
  12532. # 1763 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12533.       string_type
  12534.       truename() const
  12535.       { return this->do_truename(); }
  12536. # 1776 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12537.       string_type
  12538.       falsename() const
  12539.       { return this->do_falsename(); }
  12540.  
  12541.     protected:
  12542.  
  12543.       virtual
  12544.       ~numpunct();
  12545. # 1793 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12546.       virtual char_type
  12547.       do_decimal_point() const
  12548.       { return _M_data->_M_decimal_point; }
  12549. # 1805 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12550.       virtual char_type
  12551.       do_thousands_sep() const
  12552.       { return _M_data->_M_thousands_sep; }
  12553. # 1818 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12554.       virtual string
  12555.       do_grouping() const
  12556.       { return _M_data->_M_grouping; }
  12557. # 1831 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12558.       virtual string_type
  12559.       do_truename() const
  12560.       { return _M_data->_M_truename; }
  12561. # 1844 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12562.       virtual string_type
  12563.       do_falsename() const
  12564.       { return _M_data->_M_falsename; }
  12565.  
  12566.  
  12567.       void
  12568.       _M_initialize_numpunct(__c_locale __cloc = 0);
  12569.     };
  12570.  
  12571.   template<typename _CharT>
  12572.     locale::id numpunct<_CharT>::id;
  12573.  
  12574.   template<>
  12575.     numpunct<char>::~numpunct();
  12576.  
  12577.   template<>
  12578.     void
  12579.     numpunct<char>::_M_initialize_numpunct(__c_locale __cloc);
  12580.  
  12581.  
  12582.   template<>
  12583.     numpunct<wchar_t>::~numpunct();
  12584.  
  12585.   template<>
  12586.     void
  12587.     numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc);
  12588.  
  12589.  
  12590.  
  12591.   template<typename _CharT>
  12592.     class numpunct_byname : public numpunct<_CharT>
  12593.     {
  12594.     public:
  12595.       typedef _CharT char_type;
  12596.       typedef basic_string<_CharT> string_type;
  12597.  
  12598.       explicit
  12599.       numpunct_byname(const char* __s, size_t __refs = 0)
  12600.       : numpunct<_CharT>(__refs)
  12601.       {
  12602.  if (__builtin_strcmp(__s, "C") != 0
  12603.      && __builtin_strcmp(__s, "POSIX") != 0)
  12604.    {
  12605.      __c_locale __tmp;
  12606.      this->_S_create_c_locale(__tmp, __s);
  12607.      this->_M_initialize_numpunct(__tmp);
  12608.      this->_S_destroy_c_locale(__tmp);
  12609.    }
  12610.       }
  12611.  
  12612.     protected:
  12613.       virtual
  12614.       ~numpunct_byname() { }
  12615.     };
  12616.  
  12617.  
  12618. # 1914 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12619.   template<typename _CharT, typename _InIter>
  12620.     class num_get : public locale::facet
  12621.     {
  12622.     public:
  12623.  
  12624.  
  12625.  
  12626.       typedef _CharT char_type;
  12627.       typedef _InIter iter_type;
  12628.  
  12629.  
  12630.  
  12631.       static locale::id id;
  12632. # 1935 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12633.       explicit
  12634.       num_get(size_t __refs = 0) : facet(__refs) { }
  12635. # 1961 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12636.       iter_type
  12637.       get(iter_type __in, iter_type __end, ios_base& __io,
  12638.    ios_base::iostate& __err, bool& __v) const
  12639.       { return this->do_get(__in, __end, __io, __err, __v); }
  12640. # 1998 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12641.       iter_type
  12642.       get(iter_type __in, iter_type __end, ios_base& __io,
  12643.    ios_base::iostate& __err, long& __v) const
  12644.       { return this->do_get(__in, __end, __io, __err, __v); }
  12645.  
  12646.       iter_type
  12647.       get(iter_type __in, iter_type __end, ios_base& __io,
  12648.    ios_base::iostate& __err, unsigned short& __v) const
  12649.       { return this->do_get(__in, __end, __io, __err, __v); }
  12650.  
  12651.       iter_type
  12652.       get(iter_type __in, iter_type __end, ios_base& __io,
  12653.    ios_base::iostate& __err, unsigned int& __v) const
  12654.       { return this->do_get(__in, __end, __io, __err, __v); }
  12655.  
  12656.       iter_type
  12657.       get(iter_type __in, iter_type __end, ios_base& __io,
  12658.    ios_base::iostate& __err, unsigned long& __v) const
  12659.       { return this->do_get(__in, __end, __io, __err, __v); }
  12660.  
  12661.  
  12662.       iter_type
  12663.       get(iter_type __in, iter_type __end, ios_base& __io,
  12664.    ios_base::iostate& __err, long long& __v) const
  12665.       { return this->do_get(__in, __end, __io, __err, __v); }
  12666.  
  12667.       iter_type
  12668.       get(iter_type __in, iter_type __end, ios_base& __io,
  12669.    ios_base::iostate& __err, unsigned long long& __v) const
  12670.       { return this->do_get(__in, __end, __io, __err, __v); }
  12671. # 2058 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12672.       iter_type
  12673.       get(iter_type __in, iter_type __end, ios_base& __io,
  12674.    ios_base::iostate& __err, float& __v) const
  12675.       { return this->do_get(__in, __end, __io, __err, __v); }
  12676.  
  12677.       iter_type
  12678.       get(iter_type __in, iter_type __end, ios_base& __io,
  12679.    ios_base::iostate& __err, double& __v) const
  12680.       { return this->do_get(__in, __end, __io, __err, __v); }
  12681.  
  12682.       iter_type
  12683.       get(iter_type __in, iter_type __end, ios_base& __io,
  12684.    ios_base::iostate& __err, long double& __v) const
  12685.       { return this->do_get(__in, __end, __io, __err, __v); }
  12686. # 2101 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12687.       iter_type
  12688.       get(iter_type __in, iter_type __end, ios_base& __io,
  12689.    ios_base::iostate& __err, void*& __v) const
  12690.       { return this->do_get(__in, __end, __io, __err, __v); }
  12691.  
  12692.     protected:
  12693.  
  12694.       virtual ~num_get() { }
  12695.  
  12696.       iter_type
  12697.       _M_extract_float(iter_type, iter_type, ios_base&, ios_base::iostate&,
  12698.          string&) const;
  12699.  
  12700.       template<typename _ValueT>
  12701.  iter_type
  12702.  _M_extract_int(iter_type, iter_type, ios_base&, ios_base::iostate&,
  12703.          _ValueT&) const;
  12704.  
  12705.       template<typename _CharT2>
  12706.       typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, int>::__type
  12707.  _M_find(const _CharT2*, size_t __len, _CharT2 __c) const
  12708.  {
  12709.    int __ret = -1;
  12710.    if (__len <= 10)
  12711.      {
  12712.        if (__c >= _CharT2('0') && __c < _CharT2(_CharT2('0') + __len))
  12713.   __ret = __c - _CharT2('0');
  12714.      }
  12715.    else
  12716.      {
  12717.        if (__c >= _CharT2('0') && __c <= _CharT2('9'))
  12718.   __ret = __c - _CharT2('0');
  12719.        else if (__c >= _CharT2('a') && __c <= _CharT2('f'))
  12720.   __ret = 10 + (__c - _CharT2('a'));
  12721.        else if (__c >= _CharT2('A') && __c <= _CharT2('F'))
  12722.   __ret = 10 + (__c - _CharT2('A'));
  12723.      }
  12724.    return __ret;
  12725.  }
  12726.  
  12727.       template<typename _CharT2>
  12728.       typename __gnu_cxx::__enable_if<!__is_char<_CharT2>::__value,
  12729.           int>::__type
  12730.  _M_find(const _CharT2* __zero, size_t __len, _CharT2 __c) const
  12731.  {
  12732.    int __ret = -1;
  12733.    const char_type* __q = char_traits<_CharT2>::find(__zero, __len, __c);
  12734.    if (__q)
  12735.      {
  12736.        __ret = __q - __zero;
  12737.        if (__ret > 15)
  12738.   __ret -= 6;
  12739.      }
  12740.    return __ret;
  12741.  }
  12742. # 2172 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12743.       virtual iter_type
  12744.       do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) const;
  12745.  
  12746.       virtual iter_type
  12747.       do_get(iter_type __beg, iter_type __end, ios_base& __io,
  12748.       ios_base::iostate& __err, long& __v) const
  12749.       { return _M_extract_int(__beg, __end, __io, __err, __v); }
  12750.  
  12751.       virtual iter_type
  12752.       do_get(iter_type __beg, iter_type __end, ios_base& __io,
  12753.       ios_base::iostate& __err, unsigned short& __v) const
  12754.       { return _M_extract_int(__beg, __end, __io, __err, __v); }
  12755.  
  12756.       virtual iter_type
  12757.       do_get(iter_type __beg, iter_type __end, ios_base& __io,
  12758.       ios_base::iostate& __err, unsigned int& __v) const
  12759.       { return _M_extract_int(__beg, __end, __io, __err, __v); }
  12760.  
  12761.       virtual iter_type
  12762.       do_get(iter_type __beg, iter_type __end, ios_base& __io,
  12763.       ios_base::iostate& __err, unsigned long& __v) const
  12764.       { return _M_extract_int(__beg, __end, __io, __err, __v); }
  12765.  
  12766.  
  12767.       virtual iter_type
  12768.       do_get(iter_type __beg, iter_type __end, ios_base& __io,
  12769.       ios_base::iostate& __err, long long& __v) const
  12770.       { return _M_extract_int(__beg, __end, __io, __err, __v); }
  12771.  
  12772.       virtual iter_type
  12773.       do_get(iter_type __beg, iter_type __end, ios_base& __io,
  12774.       ios_base::iostate& __err, unsigned long long& __v) const
  12775.       { return _M_extract_int(__beg, __end, __io, __err, __v); }
  12776.  
  12777.  
  12778.       virtual iter_type
  12779.       do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, float&) const;
  12780.  
  12781.       virtual iter_type
  12782.       do_get(iter_type, iter_type, ios_base&, ios_base::iostate&,
  12783.       double&) const;
  12784.  
  12785.  
  12786.  
  12787.  
  12788.  
  12789.  
  12790.  
  12791.       virtual iter_type
  12792.       do_get(iter_type, iter_type, ios_base&, ios_base::iostate&,
  12793.       long double&) const;
  12794.  
  12795.  
  12796.       virtual iter_type
  12797.       do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, void*&) const;
  12798. # 2235 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12799.     };
  12800.  
  12801.   template<typename _CharT, typename _InIter>
  12802.     locale::id num_get<_CharT, _InIter>::id;
  12803. # 2253 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12804.   template<typename _CharT, typename _OutIter>
  12805.     class num_put : public locale::facet
  12806.     {
  12807.     public:
  12808.  
  12809.  
  12810.  
  12811.       typedef _CharT char_type;
  12812.       typedef _OutIter iter_type;
  12813.  
  12814.  
  12815.  
  12816.       static locale::id id;
  12817. # 2274 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12818.       explicit
  12819.       num_put(size_t __refs = 0) : facet(__refs) { }
  12820. # 2292 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12821.       iter_type
  12822.       put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const
  12823.       { return this->do_put(__s, __io, __fill, __v); }
  12824. # 2334 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12825.       iter_type
  12826.       put(iter_type __s, ios_base& __io, char_type __fill, long __v) const
  12827.       { return this->do_put(__s, __io, __fill, __v); }
  12828.  
  12829.       iter_type
  12830.       put(iter_type __s, ios_base& __io, char_type __fill,
  12831.    unsigned long __v) const
  12832.       { return this->do_put(__s, __io, __fill, __v); }
  12833.  
  12834.  
  12835.       iter_type
  12836.       put(iter_type __s, ios_base& __io, char_type __fill, long long __v) const
  12837.       { return this->do_put(__s, __io, __fill, __v); }
  12838.  
  12839.       iter_type
  12840.       put(iter_type __s, ios_base& __io, char_type __fill,
  12841.    unsigned long long __v) const
  12842.       { return this->do_put(__s, __io, __fill, __v); }
  12843. # 2397 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12844.       iter_type
  12845.       put(iter_type __s, ios_base& __io, char_type __fill, double __v) const
  12846.       { return this->do_put(__s, __io, __fill, __v); }
  12847.  
  12848.       iter_type
  12849.       put(iter_type __s, ios_base& __io, char_type __fill,
  12850.    long double __v) const
  12851.       { return this->do_put(__s, __io, __fill, __v); }
  12852. # 2422 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12853.       iter_type
  12854.       put(iter_type __s, ios_base& __io, char_type __fill,
  12855.    const void* __v) const
  12856.       { return this->do_put(__s, __io, __fill, __v); }
  12857.  
  12858.     protected:
  12859.       template<typename _ValueT>
  12860.  iter_type
  12861.  _M_insert_float(iter_type, ios_base& __io, char_type __fill,
  12862.    char __mod, _ValueT __v) const;
  12863.  
  12864.       void
  12865.       _M_group_float(const char* __grouping, size_t __grouping_size,
  12866.        char_type __sep, const char_type* __p, char_type* __new,
  12867.        char_type* __cs, int& __len) const;
  12868.  
  12869.       template<typename _ValueT>
  12870.  iter_type
  12871.  _M_insert_int(iter_type, ios_base& __io, char_type __fill,
  12872.         _ValueT __v) const;
  12873.  
  12874.       void
  12875.       _M_group_int(const char* __grouping, size_t __grouping_size,
  12876.      char_type __sep, ios_base& __io, char_type* __new,
  12877.      char_type* __cs, int& __len) const;
  12878.  
  12879.       void
  12880.       _M_pad(char_type __fill, streamsize __w, ios_base& __io,
  12881.       char_type* __new, const char_type* __cs, int& __len) const;
  12882.  
  12883.  
  12884.       virtual
  12885.       ~num_put() { };
  12886. # 2470 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 3
  12887.       virtual iter_type
  12888.       do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const;
  12889.  
  12890.       virtual iter_type
  12891.       do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) const
  12892.       { return _M_insert_int(__s, __io, __fill, __v); }
  12893.  
  12894.       virtual iter_type
  12895.       do_put(iter_type __s, ios_base& __io, char_type __fill,
  12896.       unsigned long __v) const
  12897.       { return _M_insert_int(__s, __io, __fill, __v); }
  12898.  
  12899.  
  12900.       virtual iter_type
  12901.       do_put(iter_type __s, ios_base& __io, char_type __fill,
  12902.       long long __v) const
  12903.       { return _M_insert_int(__s, __io, __fill, __v); }
  12904.  
  12905.       virtual iter_type
  12906.       do_put(iter_type __s, ios_base& __io, char_type __fill,
  12907.       unsigned long long __v) const
  12908.       { return _M_insert_int(__s, __io, __fill, __v); }
  12909.  
  12910.  
  12911.       virtual iter_type
  12912.       do_put(iter_type, ios_base&, char_type, double) const;
  12913.  
  12914.  
  12915.  
  12916.  
  12917.  
  12918.  
  12919.       virtual iter_type
  12920.       do_put(iter_type, ios_base&, char_type, long double) const;
  12921.  
  12922.  
  12923.       virtual iter_type
  12924.       do_put(iter_type, ios_base&, char_type, const void*) const;
  12925.  
  12926.  
  12927.  
  12928.  
  12929.  
  12930.  
  12931.  
  12932.     };
  12933.  
  12934.   template <typename _CharT, typename _OutIter>
  12935.     locale::id num_put<_CharT, _OutIter>::id;
  12936.  
  12937.  
  12938.  
  12939.  
  12940.  
  12941.  
  12942.  
  12943.  
  12944.  
  12945.   template<typename _CharT>
  12946.     inline bool
  12947.     isspace(_CharT __c, const locale& __loc)
  12948.     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::space, __c); }
  12949.  
  12950.  
  12951.   template<typename _CharT>
  12952.     inline bool
  12953.     isprint(_CharT __c, const locale& __loc)
  12954.     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::print, __c); }
  12955.  
  12956.  
  12957.   template<typename _CharT>
  12958.     inline bool
  12959.     iscntrl(_CharT __c, const locale& __loc)
  12960.     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::cntrl, __c); }
  12961.  
  12962.  
  12963.   template<typename _CharT>
  12964.     inline bool
  12965.     isupper(_CharT __c, const locale& __loc)
  12966.     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::upper, __c); }
  12967.  
  12968.  
  12969.   template<typename _CharT>
  12970.     inline bool
  12971.     islower(_CharT __c, const locale& __loc)
  12972.     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::lower, __c); }
  12973.  
  12974.  
  12975.   template<typename _CharT>
  12976.     inline bool
  12977.     isalpha(_CharT __c, const locale& __loc)
  12978.     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::alpha, __c); }
  12979.  
  12980.  
  12981.   template<typename _CharT>
  12982.     inline bool
  12983.     isdigit(_CharT __c, const locale& __loc)
  12984.     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::digit, __c); }
  12985.  
  12986.  
  12987.   template<typename _CharT>
  12988.     inline bool
  12989.     ispunct(_CharT __c, const locale& __loc)
  12990.     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::punct, __c); }
  12991.  
  12992.  
  12993.   template<typename _CharT>
  12994.     inline bool
  12995.     isxdigit(_CharT __c, const locale& __loc)
  12996.     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::xdigit, __c); }
  12997.  
  12998.  
  12999.   template<typename _CharT>
  13000.     inline bool
  13001.     isalnum(_CharT __c, const locale& __loc)
  13002.     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::alnum, __c); }
  13003.  
  13004.  
  13005.   template<typename _CharT>
  13006.     inline bool
  13007.     isgraph(_CharT __c, const locale& __loc)
  13008.     { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::graph, __c); }
  13009.  
  13010.  
  13011.   template<typename _CharT>
  13012.     inline _CharT
  13013.     toupper(_CharT __c, const locale& __loc)
  13014.     { return use_facet<ctype<_CharT> >(__loc).toupper(__c); }
  13015.  
  13016.  
  13017.   template<typename _CharT>
  13018.     inline _CharT
  13019.     tolower(_CharT __c, const locale& __loc)
  13020.     { return use_facet<ctype<_CharT> >(__loc).tolower(__c); }
  13021.  
  13022.  
  13023. }
  13024.  
  13025. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.tcc" 1 3
  13026. # 33 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.tcc" 3
  13027.        
  13028. # 34 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.tcc" 3
  13029.  
  13030. namespace std
  13031. {
  13032.  
  13033.  
  13034.  
  13035.  
  13036.   template<typename _Facet>
  13037.     struct __use_cache
  13038.     {
  13039.       const _Facet*
  13040.       operator() (const locale& __loc) const;
  13041.     };
  13042.  
  13043.  
  13044.   template<typename _CharT>
  13045.     struct __use_cache<__numpunct_cache<_CharT> >
  13046.     {
  13047.       const __numpunct_cache<_CharT>*
  13048.       operator() (const locale& __loc) const
  13049.       {
  13050.  const size_t __i = numpunct<_CharT>::id._M_id();
  13051.  const locale::facet** __caches = __loc._M_impl->_M_caches;
  13052.  if (!__caches[__i])
  13053.    {
  13054.      __numpunct_cache<_CharT>* __tmp = 0;
  13055.      try
  13056.        {
  13057.   __tmp = new __numpunct_cache<_CharT>;
  13058.   __tmp->_M_cache(__loc);
  13059.        }
  13060.      catch(...)
  13061.        {
  13062.   delete __tmp;
  13063.   throw;
  13064.        }
  13065.      __loc._M_impl->_M_install_cache(__tmp, __i);
  13066.    }
  13067.  return static_cast<const __numpunct_cache<_CharT>*>(__caches[__i]);
  13068.       }
  13069.     };
  13070.  
  13071.   template<typename _CharT>
  13072.     void
  13073.     __numpunct_cache<_CharT>::_M_cache(const locale& __loc)
  13074.     {
  13075.       _M_allocated = true;
  13076.  
  13077.       const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc);
  13078.  
  13079.       char* __grouping = 0;
  13080.       _CharT* __truename = 0;
  13081.       _CharT* __falsename = 0;
  13082.       try
  13083.  {
  13084.    _M_grouping_size = __np.grouping().size();
  13085.    __grouping = new char[_M_grouping_size];
  13086.    __np.grouping().copy(__grouping, _M_grouping_size);
  13087.    _M_grouping = __grouping;
  13088.    _M_use_grouping = (_M_grouping_size
  13089.         && static_cast<signed char>(_M_grouping[0]) > 0
  13090.         && (_M_grouping[0]
  13091.      != __gnu_cxx::__numeric_traits<char>::__max));
  13092.  
  13093.    _M_truename_size = __np.truename().size();
  13094.    __truename = new _CharT[_M_truename_size];
  13095.    __np.truename().copy(__truename, _M_truename_size);
  13096.    _M_truename = __truename;
  13097.  
  13098.    _M_falsename_size = __np.falsename().size();
  13099.    __falsename = new _CharT[_M_falsename_size];
  13100.    __np.falsename().copy(__falsename, _M_falsename_size);
  13101.    _M_falsename = __falsename;
  13102.  
  13103.    _M_decimal_point = __np.decimal_point();
  13104.    _M_thousands_sep = __np.thousands_sep();
  13105.  
  13106.    const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__loc);
  13107.    __ct.widen(__num_base::_S_atoms_out,
  13108.        __num_base::_S_atoms_out
  13109.        + __num_base::_S_oend, _M_atoms_out);
  13110.    __ct.widen(__num_base::_S_atoms_in,
  13111.        __num_base::_S_atoms_in
  13112.        + __num_base::_S_iend, _M_atoms_in);
  13113.  }
  13114.       catch(...)
  13115.  {
  13116.    delete [] __grouping;
  13117.    delete [] __truename;
  13118.    delete [] __falsename;
  13119.    throw;
  13120.  }
  13121.     }
  13122. # 136 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.tcc" 3
  13123.   __attribute__ ((__pure__)) bool
  13124.   __verify_grouping(const char* __grouping, size_t __grouping_size,
  13125.       const string& __grouping_tmp) throw ();
  13126.  
  13127.  
  13128.  
  13129.   template<typename _CharT, typename _InIter>
  13130.     _InIter
  13131.     num_get<_CharT, _InIter>::
  13132.     _M_extract_float(_InIter __beg, _InIter __end, ios_base& __io,
  13133.        ios_base::iostate& __err, string& __xtrc) const
  13134.     {
  13135.       typedef char_traits<_CharT> __traits_type;
  13136.       typedef __numpunct_cache<_CharT> __cache_type;
  13137.       __use_cache<__cache_type> __uc;
  13138.       const locale& __loc = __io._M_getloc();
  13139.       const __cache_type* __lc = __uc(__loc);
  13140.       const _CharT* __lit = __lc->_M_atoms_in;
  13141.       char_type __c = char_type();
  13142.  
  13143.  
  13144.       bool __testeof = __beg == __end;
  13145.  
  13146.  
  13147.       if (!__testeof)
  13148.  {
  13149.    __c = *__beg;
  13150.    const bool __plus = __c == __lit[__num_base::_S_iplus];
  13151.    if ((__plus || __c == __lit[__num_base::_S_iminus])
  13152.        && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
  13153.        && !(__c == __lc->_M_decimal_point))
  13154.      {
  13155.        __xtrc += __plus ? '+' : '-';
  13156.        if (++__beg != __end)
  13157.   __c = *__beg;
  13158.        else
  13159.   __testeof = true;
  13160.      }
  13161.  }
  13162.  
  13163.  
  13164.       bool __found_mantissa = false;
  13165.       int __sep_pos = 0;
  13166.       while (!__testeof)
  13167.  {
  13168.    if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
  13169.        || __c == __lc->_M_decimal_point)
  13170.      break;
  13171.    else if (__c == __lit[__num_base::_S_izero])
  13172.      {
  13173.        if (!__found_mantissa)
  13174.   {
  13175.     __xtrc += '0';
  13176.     __found_mantissa = true;
  13177.   }
  13178.        ++__sep_pos;
  13179.  
  13180.        if (++__beg != __end)
  13181.   __c = *__beg;
  13182.        else
  13183.   __testeof = true;
  13184.      }
  13185.    else
  13186.      break;
  13187.  }
  13188.  
  13189.  
  13190.       bool __found_dec = false;
  13191.       bool __found_sci = false;
  13192.       string __found_grouping;
  13193.       if (__lc->_M_use_grouping)
  13194.  __found_grouping.reserve(32);
  13195.       const char_type* __lit_zero = __lit + __num_base::_S_izero;
  13196.  
  13197.       if (!__lc->_M_allocated)
  13198.  
  13199.  while (!__testeof)
  13200.    {
  13201.      const int __digit = _M_find(__lit_zero, 10, __c);
  13202.      if (__digit != -1)
  13203.        {
  13204.   __xtrc += '0' + __digit;
  13205.   __found_mantissa = true;
  13206.        }
  13207.      else if (__c == __lc->_M_decimal_point
  13208.        && !__found_dec && !__found_sci)
  13209.        {
  13210.   __xtrc += '.';
  13211.   __found_dec = true;
  13212.        }
  13213.      else if ((__c == __lit[__num_base::_S_ie]
  13214.         || __c == __lit[__num_base::_S_iE])
  13215.        && !__found_sci && __found_mantissa)
  13216.        {
  13217.  
  13218.   __xtrc += 'e';
  13219.   __found_sci = true;
  13220.  
  13221.  
  13222.   if (++__beg != __end)
  13223.     {
  13224.       __c = *__beg;
  13225.       const bool __plus = __c == __lit[__num_base::_S_iplus];
  13226.       if (__plus || __c == __lit[__num_base::_S_iminus])
  13227.         __xtrc += __plus ? '+' : '-';
  13228.       else
  13229.         continue;
  13230.     }
  13231.   else
  13232.     {
  13233.       __testeof = true;
  13234.       break;
  13235.     }
  13236.        }
  13237.      else
  13238.        break;
  13239.  
  13240.      if (++__beg != __end)
  13241.        __c = *__beg;
  13242.      else
  13243.        __testeof = true;
  13244.    }
  13245.       else
  13246.  while (!__testeof)
  13247.    {
  13248.  
  13249.  
  13250.      if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
  13251.        {
  13252.   if (!__found_dec && !__found_sci)
  13253.     {
  13254.  
  13255.  
  13256.       if (__sep_pos)
  13257.         {
  13258.    __found_grouping += static_cast<char>(__sep_pos);
  13259.    __sep_pos = 0;
  13260.         }
  13261.       else
  13262.         {
  13263.  
  13264.  
  13265.    __xtrc.clear();
  13266.    break;
  13267.         }
  13268.     }
  13269.   else
  13270.     break;
  13271.        }
  13272.      else if (__c == __lc->_M_decimal_point)
  13273.        {
  13274.   if (!__found_dec && !__found_sci)
  13275.     {
  13276.  
  13277.  
  13278.  
  13279.       if (__found_grouping.size())
  13280.         __found_grouping += static_cast<char>(__sep_pos);
  13281.       __xtrc += '.';
  13282.       __found_dec = true;
  13283.     }
  13284.   else
  13285.     break;
  13286.        }
  13287.      else
  13288.        {
  13289.   const char_type* __q =
  13290.     __traits_type::find(__lit_zero, 10, __c);
  13291.   if (__q)
  13292.     {
  13293.       __xtrc += '0' + (__q - __lit_zero);
  13294.       __found_mantissa = true;
  13295.       ++__sep_pos;
  13296.     }
  13297.   else if ((__c == __lit[__num_base::_S_ie]
  13298.      || __c == __lit[__num_base::_S_iE])
  13299.     && !__found_sci && __found_mantissa)
  13300.     {
  13301.  
  13302.       if (__found_grouping.size() && !__found_dec)
  13303.         __found_grouping += static_cast<char>(__sep_pos);
  13304.       __xtrc += 'e';
  13305.       __found_sci = true;
  13306.  
  13307.  
  13308.       if (++__beg != __end)
  13309.         {
  13310.    __c = *__beg;
  13311.    const bool __plus = __c == __lit[__num_base::_S_iplus];
  13312.    if ((__plus || __c == __lit[__num_base::_S_iminus])
  13313.        && !(__lc->_M_use_grouping
  13314.      && __c == __lc->_M_thousands_sep)
  13315.        && !(__c == __lc->_M_decimal_point))
  13316.         __xtrc += __plus ? '+' : '-';
  13317.    else
  13318.      continue;
  13319.         }
  13320.       else
  13321.         {
  13322.    __testeof = true;
  13323.    break;
  13324.         }
  13325.     }
  13326.   else
  13327.     break;
  13328.        }
  13329.  
  13330.      if (++__beg != __end)
  13331.        __c = *__beg;
  13332.      else
  13333.        __testeof = true;
  13334.    }
  13335.  
  13336.  
  13337.  
  13338.       if (__found_grouping.size())
  13339.         {
  13340.  
  13341.    if (!__found_dec && !__found_sci)
  13342.      __found_grouping += static_cast<char>(__sep_pos);
  13343.  
  13344.           if (!std::__verify_grouping(__lc->_M_grouping,
  13345.           __lc->_M_grouping_size,
  13346.           __found_grouping))
  13347.      __err = ios_base::failbit;
  13348.         }
  13349.  
  13350.       return __beg;
  13351.     }
  13352.  
  13353.   template<typename _CharT, typename _InIter>
  13354.     template<typename _ValueT>
  13355.       _InIter
  13356.       num_get<_CharT, _InIter>::
  13357.       _M_extract_int(_InIter __beg, _InIter __end, ios_base& __io,
  13358.        ios_base::iostate& __err, _ValueT& __v) const
  13359.       {
  13360.         typedef char_traits<_CharT> __traits_type;
  13361.  using __gnu_cxx::__add_unsigned;
  13362.  typedef typename __add_unsigned<_ValueT>::__type __unsigned_type;
  13363.  typedef __numpunct_cache<_CharT> __cache_type;
  13364.  __use_cache<__cache_type> __uc;
  13365.  const locale& __loc = __io._M_getloc();
  13366.  const __cache_type* __lc = __uc(__loc);
  13367.  const _CharT* __lit = __lc->_M_atoms_in;
  13368.  char_type __c = char_type();
  13369.  
  13370.  
  13371.  const ios_base::fmtflags __basefield = __io.flags()
  13372.                                         & ios_base::basefield;
  13373.  const bool __oct = __basefield == ios_base::oct;
  13374.  int __base = __oct ? 8 : (__basefield == ios_base::hex ? 16 : 10);
  13375.  
  13376.  
  13377.  bool __testeof = __beg == __end;
  13378.  
  13379.  
  13380.  bool __negative = false;
  13381.  if (!__testeof)
  13382.    {
  13383.      __c = *__beg;
  13384.      __negative = __c == __lit[__num_base::_S_iminus];
  13385.      if ((__negative || __c == __lit[__num_base::_S_iplus])
  13386.   && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
  13387.   && !(__c == __lc->_M_decimal_point))
  13388.        {
  13389.   if (++__beg != __end)
  13390.     __c = *__beg;
  13391.   else
  13392.     __testeof = true;
  13393.        }
  13394.    }
  13395.  
  13396.  
  13397.  
  13398.  bool __found_zero = false;
  13399.  int __sep_pos = 0;
  13400.  while (!__testeof)
  13401.    {
  13402.      if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
  13403.   || __c == __lc->_M_decimal_point)
  13404.        break;
  13405.      else if (__c == __lit[__num_base::_S_izero]
  13406.        && (!__found_zero || __base == 10))
  13407.        {
  13408.   __found_zero = true;
  13409.   ++__sep_pos;
  13410.   if (__basefield == 0)
  13411.     __base = 8;
  13412.   if (__base == 8)
  13413.     __sep_pos = 0;
  13414.        }
  13415.      else if (__found_zero
  13416.        && (__c == __lit[__num_base::_S_ix]
  13417.     || __c == __lit[__num_base::_S_iX]))
  13418.        {
  13419.   if (__basefield == 0)
  13420.     __base = 16;
  13421.   if (__base == 16)
  13422.     {
  13423.       __found_zero = false;
  13424.       __sep_pos = 0;
  13425.     }
  13426.   else
  13427.     break;
  13428.        }
  13429.      else
  13430.        break;
  13431.  
  13432.      if (++__beg != __end)
  13433.        {
  13434.   __c = *__beg;
  13435.   if (!__found_zero)
  13436.     break;
  13437.        }
  13438.      else
  13439.        __testeof = true;
  13440.    }
  13441.  
  13442.  
  13443.  
  13444.  const size_t __len = (__base == 16 ? __num_base::_S_iend
  13445.          - __num_base::_S_izero : __base);
  13446.  
  13447.  
  13448.  string __found_grouping;
  13449.  if (__lc->_M_use_grouping)
  13450.    __found_grouping.reserve(32);
  13451.  bool __testfail = false;
  13452.  bool __testoverflow = false;
  13453.  const __unsigned_type __max =
  13454.    (__negative && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed)
  13455.    ? -__gnu_cxx::__numeric_traits<_ValueT>::__min
  13456.    : __gnu_cxx::__numeric_traits<_ValueT>::__max;
  13457.  const __unsigned_type __smax = __max / __base;
  13458.  __unsigned_type __result = 0;
  13459.  int __digit = 0;
  13460.  const char_type* __lit_zero = __lit + __num_base::_S_izero;
  13461.  
  13462.  if (!__lc->_M_allocated)
  13463.  
  13464.    while (!__testeof)
  13465.      {
  13466.        __digit = _M_find(__lit_zero, __len, __c);
  13467.        if (__digit == -1)
  13468.   break;
  13469.  
  13470.        if (__result > __smax)
  13471.   __testoverflow = true;
  13472.        else
  13473.   {
  13474.     __result *= __base;
  13475.     __testoverflow |= __result > __max - __digit;
  13476.     __result += __digit;
  13477.     ++__sep_pos;
  13478.   }
  13479.  
  13480.        if (++__beg != __end)
  13481.   __c = *__beg;
  13482.        else
  13483.   __testeof = true;
  13484.      }
  13485.  else
  13486.    while (!__testeof)
  13487.      {
  13488.  
  13489.  
  13490.        if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep)
  13491.   {
  13492.  
  13493.  
  13494.     if (__sep_pos)
  13495.       {
  13496.         __found_grouping += static_cast<char>(__sep_pos);
  13497.         __sep_pos = 0;
  13498.       }
  13499.     else
  13500.       {
  13501.         __testfail = true;
  13502.         break;
  13503.       }
  13504.   }
  13505.        else if (__c == __lc->_M_decimal_point)
  13506.   break;
  13507.        else
  13508.   {
  13509.     const char_type* __q =
  13510.       __traits_type::find(__lit_zero, __len, __c);
  13511.     if (!__q)
  13512.       break;
  13513.  
  13514.     __digit = __q - __lit_zero;
  13515.     if (__digit > 15)
  13516.       __digit -= 6;
  13517.     if (__result > __smax)
  13518.       __testoverflow = true;
  13519.     else
  13520.       {
  13521.         __result *= __base;
  13522.         __testoverflow |= __result > __max - __digit;
  13523.         __result += __digit;
  13524.         ++__sep_pos;
  13525.       }
  13526.   }
  13527.  
  13528.        if (++__beg != __end)
  13529.   __c = *__beg;
  13530.        else
  13531.   __testeof = true;
  13532.      }
  13533.  
  13534.  
  13535.  
  13536.  if (__found_grouping.size())
  13537.    {
  13538.  
  13539.      __found_grouping += static_cast<char>(__sep_pos);
  13540.  
  13541.      if (!std::__verify_grouping(__lc->_M_grouping,
  13542.      __lc->_M_grouping_size,
  13543.      __found_grouping))
  13544.        __err = ios_base::failbit;
  13545.    }
  13546.  
  13547.  
  13548.  
  13549.  if ((!__sep_pos && !__found_zero && !__found_grouping.size())
  13550.      || __testfail)
  13551.    {
  13552.      __v = 0;
  13553.      __err = ios_base::failbit;
  13554.    }
  13555.  else if (__testoverflow)
  13556.    {
  13557.      if (__negative
  13558.   && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed)
  13559.        __v = __gnu_cxx::__numeric_traits<_ValueT>::__min;
  13560.      else
  13561.        __v = __gnu_cxx::__numeric_traits<_ValueT>::__max;
  13562.      __err = ios_base::failbit;
  13563.    }
  13564.  else
  13565.    __v = __negative ? -__result : __result;
  13566.  
  13567.  if (__testeof)
  13568.    __err |= ios_base::eofbit;
  13569.  return __beg;
  13570.       }
  13571.  
  13572.  
  13573.  
  13574.   template<typename _CharT, typename _InIter>
  13575.     _InIter
  13576.     num_get<_CharT, _InIter>::
  13577.     do_get(iter_type __beg, iter_type __end, ios_base& __io,
  13578.            ios_base::iostate& __err, bool& __v) const
  13579.     {
  13580.       if (!(__io.flags() & ios_base::boolalpha))
  13581.         {
  13582.  
  13583.  
  13584.  
  13585.    long __l = -1;
  13586.           __beg = _M_extract_int(__beg, __end, __io, __err, __l);
  13587.    if (__l == 0 || __l == 1)
  13588.      __v = bool(__l);
  13589.    else
  13590.      {
  13591.  
  13592.  
  13593.        __v = true;
  13594.        __err = ios_base::failbit;
  13595.        if (__beg == __end)
  13596.   __err |= ios_base::eofbit;
  13597.      }
  13598.         }
  13599.       else
  13600.         {
  13601.  
  13602.    typedef __numpunct_cache<_CharT> __cache_type;
  13603.    __use_cache<__cache_type> __uc;
  13604.    const locale& __loc = __io._M_getloc();
  13605.    const __cache_type* __lc = __uc(__loc);
  13606.  
  13607.    bool __testf = true;
  13608.    bool __testt = true;
  13609.    bool __donef = __lc->_M_falsename_size == 0;
  13610.    bool __donet = __lc->_M_truename_size == 0;
  13611.    bool __testeof = false;
  13612.    size_t __n = 0;
  13613.    while (!__donef || !__donet)
  13614.      {
  13615.        if (__beg == __end)
  13616.   {
  13617.     __testeof = true;
  13618.     break;
  13619.   }
  13620.  
  13621.        const char_type __c = *__beg;
  13622.  
  13623.        if (!__donef)
  13624.   __testf = __c == __lc->_M_falsename[__n];
  13625.  
  13626.        if (!__testf && __donet)
  13627.   break;
  13628.  
  13629.        if (!__donet)
  13630.   __testt = __c == __lc->_M_truename[__n];
  13631.  
  13632.        if (!__testt && __donef)
  13633.   break;
  13634.  
  13635.        if (!__testt && !__testf)
  13636.   break;
  13637.  
  13638.        ++__n;
  13639.        ++__beg;
  13640.  
  13641.        __donef = !__testf || __n >= __lc->_M_falsename_size;
  13642.        __donet = !__testt || __n >= __lc->_M_truename_size;
  13643.      }
  13644.    if (__testf && __n == __lc->_M_falsename_size && __n)
  13645.      {
  13646.        __v = false;
  13647.        if (__testt && __n == __lc->_M_truename_size)
  13648.   __err = ios_base::failbit;
  13649.        else
  13650.   __err = __testeof ? ios_base::eofbit : ios_base::goodbit;
  13651.      }
  13652.    else if (__testt && __n == __lc->_M_truename_size && __n)
  13653.      {
  13654.        __v = true;
  13655.        __err = __testeof ? ios_base::eofbit : ios_base::goodbit;
  13656.      }
  13657.    else
  13658.      {
  13659.  
  13660.  
  13661.        __v = false;
  13662.        __err = ios_base::failbit;
  13663.        if (__testeof)
  13664.   __err |= ios_base::eofbit;
  13665.      }
  13666.  }
  13667.       return __beg;
  13668.     }
  13669.  
  13670.   template<typename _CharT, typename _InIter>
  13671.     _InIter
  13672.     num_get<_CharT, _InIter>::
  13673.     do_get(iter_type __beg, iter_type __end, ios_base& __io,
  13674.     ios_base::iostate& __err, float& __v) const
  13675.     {
  13676.       string __xtrc;
  13677.       __xtrc.reserve(32);
  13678.       __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc);
  13679.       std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale());
  13680.       if (__beg == __end)
  13681.  __err |= ios_base::eofbit;
  13682.       return __beg;
  13683.     }
  13684.  
  13685.   template<typename _CharT, typename _InIter>
  13686.     _InIter
  13687.     num_get<_CharT, _InIter>::
  13688.     do_get(iter_type __beg, iter_type __end, ios_base& __io,
  13689.            ios_base::iostate& __err, double& __v) const
  13690.     {
  13691.       string __xtrc;
  13692.       __xtrc.reserve(32);
  13693.       __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc);
  13694.       std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale());
  13695.       if (__beg == __end)
  13696.  __err |= ios_base::eofbit;
  13697.       return __beg;
  13698.     }
  13699. # 730 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.tcc" 3
  13700.   template<typename _CharT, typename _InIter>
  13701.     _InIter
  13702.     num_get<_CharT, _InIter>::
  13703.     do_get(iter_type __beg, iter_type __end, ios_base& __io,
  13704.            ios_base::iostate& __err, long double& __v) const
  13705.     {
  13706.       string __xtrc;
  13707.       __xtrc.reserve(32);
  13708.       __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc);
  13709.       std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale());
  13710.       if (__beg == __end)
  13711.  __err |= ios_base::eofbit;
  13712.       return __beg;
  13713.     }
  13714.  
  13715.   template<typename _CharT, typename _InIter>
  13716.     _InIter
  13717.     num_get<_CharT, _InIter>::
  13718.     do_get(iter_type __beg, iter_type __end, ios_base& __io,
  13719.            ios_base::iostate& __err, void*& __v) const
  13720.     {
  13721.  
  13722.       typedef ios_base::fmtflags fmtflags;
  13723.       const fmtflags __fmt = __io.flags();
  13724.       __io.flags((__fmt & ~ios_base::basefield) | ios_base::hex);
  13725.  
  13726.       typedef __gnu_cxx::__conditional_type<(sizeof(void*)
  13727.           <= sizeof(unsigned long)),
  13728.  unsigned long, unsigned long long>::__type _UIntPtrType;
  13729.  
  13730.       _UIntPtrType __ul;
  13731.       __beg = _M_extract_int(__beg, __end, __io, __err, __ul);
  13732.  
  13733.  
  13734.       __io.flags(__fmt);
  13735.  
  13736.       __v = reinterpret_cast<void*>(__ul);
  13737.       return __beg;
  13738.     }
  13739.  
  13740.  
  13741.  
  13742.   template<typename _CharT, typename _OutIter>
  13743.     void
  13744.     num_put<_CharT, _OutIter>::
  13745.     _M_pad(_CharT __fill, streamsize __w, ios_base& __io,
  13746.     _CharT* __new, const _CharT* __cs, int& __len) const
  13747.     {
  13748.  
  13749.  
  13750.       __pad<_CharT, char_traits<_CharT> >::_S_pad(__io, __fill, __new,
  13751.         __cs, __w, __len);
  13752.       __len = static_cast<int>(__w);
  13753.     }
  13754.  
  13755.  
  13756.  
  13757.   template<typename _CharT, typename _ValueT>
  13758.     int
  13759.     __int_to_char(_CharT* __bufend, _ValueT __v, const _CharT* __lit,
  13760.     ios_base::fmtflags __flags, bool __dec)
  13761.     {
  13762.       _CharT* __buf = __bufend;
  13763.       if (__builtin_expect(__dec, true))
  13764.  {
  13765.  
  13766.    do
  13767.      {
  13768.        *--__buf = __lit[(__v % 10) + __num_base::_S_odigits];
  13769.        __v /= 10;
  13770.      }
  13771.    while (__v != 0);
  13772.  }
  13773.       else if ((__flags & ios_base::basefield) == ios_base::oct)
  13774.  {
  13775.  
  13776.    do
  13777.      {
  13778.        *--__buf = __lit[(__v & 0x7) + __num_base::_S_odigits];
  13779.        __v >>= 3;
  13780.      }
  13781.    while (__v != 0);
  13782.  }
  13783.       else
  13784.  {
  13785.  
  13786.    const bool __uppercase = __flags & ios_base::uppercase;
  13787.    const int __case_offset = __uppercase ? __num_base::_S_oudigits
  13788.                                          : __num_base::_S_odigits;
  13789.    do
  13790.      {
  13791.        *--__buf = __lit[(__v & 0xf) + __case_offset];
  13792.        __v >>= 4;
  13793.      }
  13794.    while (__v != 0);
  13795.  }
  13796.       return __bufend - __buf;
  13797.     }
  13798.  
  13799.  
  13800.  
  13801.   template<typename _CharT, typename _OutIter>
  13802.     void
  13803.     num_put<_CharT, _OutIter>::
  13804.     _M_group_int(const char* __grouping, size_t __grouping_size, _CharT __sep,
  13805.    ios_base&, _CharT* __new, _CharT* __cs, int& __len) const
  13806.     {
  13807.       _CharT* __p = std::__add_grouping(__new, __sep, __grouping,
  13808.      __grouping_size, __cs, __cs + __len);
  13809.       __len = __p - __new;
  13810.     }
  13811.  
  13812.   template<typename _CharT, typename _OutIter>
  13813.     template<typename _ValueT>
  13814.       _OutIter
  13815.       num_put<_CharT, _OutIter>::
  13816.       _M_insert_int(_OutIter __s, ios_base& __io, _CharT __fill,
  13817.       _ValueT __v) const
  13818.       {
  13819.  using __gnu_cxx::__add_unsigned;
  13820.  typedef typename __add_unsigned<_ValueT>::__type __unsigned_type;
  13821.  typedef __numpunct_cache<_CharT> __cache_type;
  13822.  __use_cache<__cache_type> __uc;
  13823.  const locale& __loc = __io._M_getloc();
  13824.  const __cache_type* __lc = __uc(__loc);
  13825.  const _CharT* __lit = __lc->_M_atoms_out;
  13826.  const ios_base::fmtflags __flags = __io.flags();
  13827.  
  13828.  
  13829.  const int __ilen = 5 * sizeof(_ValueT);
  13830.  _CharT* __cs = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
  13831.             * __ilen));
  13832.  
  13833.  
  13834.  
  13835.  const ios_base::fmtflags __basefield = __flags & ios_base::basefield;
  13836.  const bool __dec = (__basefield != ios_base::oct
  13837.        && __basefield != ios_base::hex);
  13838.  const __unsigned_type __u = ((__v > 0 || !__dec)
  13839.          ? __unsigned_type(__v)
  13840.          : -__unsigned_type(__v));
  13841.   int __len = __int_to_char(__cs + __ilen, __u, __lit, __flags, __dec);
  13842.  __cs += __ilen - __len;
  13843.  
  13844.  
  13845.  if (__lc->_M_use_grouping)
  13846.    {
  13847.  
  13848.  
  13849.      _CharT* __cs2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
  13850.           * (__len + 1)
  13851.           * 2));
  13852.      _M_group_int(__lc->_M_grouping, __lc->_M_grouping_size,
  13853.     __lc->_M_thousands_sep, __io, __cs2 + 2, __cs, __len);
  13854.      __cs = __cs2 + 2;
  13855.    }
  13856.  
  13857.  
  13858.  if (__builtin_expect(__dec, true))
  13859.    {
  13860.  
  13861.      if (__v >= 0)
  13862.        {
  13863.   if (bool(__flags & ios_base::showpos)
  13864.       && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed)
  13865.     *--__cs = __lit[__num_base::_S_oplus], ++__len;
  13866.        }
  13867.      else
  13868.        *--__cs = __lit[__num_base::_S_ominus], ++__len;
  13869.    }
  13870.  else if (bool(__flags & ios_base::showbase) && __v)
  13871.    {
  13872.      if (__basefield == ios_base::oct)
  13873.        *--__cs = __lit[__num_base::_S_odigits], ++__len;
  13874.      else
  13875.        {
  13876.  
  13877.   const bool __uppercase = __flags & ios_base::uppercase;
  13878.   *--__cs = __lit[__num_base::_S_ox + __uppercase];
  13879.  
  13880.   *--__cs = __lit[__num_base::_S_odigits];
  13881.   __len += 2;
  13882.        }
  13883.    }
  13884.  
  13885.  
  13886.  const streamsize __w = __io.width();
  13887.  if (__w > static_cast<streamsize>(__len))
  13888.    {
  13889.      _CharT* __cs3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
  13890.           * __w));
  13891.      _M_pad(__fill, __w, __io, __cs3, __cs, __len);
  13892.      __cs = __cs3;
  13893.    }
  13894.  __io.width(0);
  13895.  
  13896.  
  13897.  
  13898.  return std::__write(__s, __cs, __len);
  13899.       }
  13900.  
  13901.   template<typename _CharT, typename _OutIter>
  13902.     void
  13903.     num_put<_CharT, _OutIter>::
  13904.     _M_group_float(const char* __grouping, size_t __grouping_size,
  13905.      _CharT __sep, const _CharT* __p, _CharT* __new,
  13906.      _CharT* __cs, int& __len) const
  13907.     {
  13908.  
  13909.  
  13910.  
  13911.       const int __declen = __p ? __p - __cs : __len;
  13912.       _CharT* __p2 = std::__add_grouping(__new, __sep, __grouping,
  13913.       __grouping_size,
  13914.       __cs, __cs + __declen);
  13915.  
  13916.  
  13917.       int __newlen = __p2 - __new;
  13918.       if (__p)
  13919.  {
  13920.    char_traits<_CharT>::copy(__p2, __p, __len - __declen);
  13921.    __newlen += __len - __declen;
  13922.  }
  13923.       __len = __newlen;
  13924.     }
  13925. # 966 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.tcc" 3
  13926.   template<typename _CharT, typename _OutIter>
  13927.     template<typename _ValueT>
  13928.       _OutIter
  13929.       num_put<_CharT, _OutIter>::
  13930.       _M_insert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod,
  13931.          _ValueT __v) const
  13932.       {
  13933.  typedef __numpunct_cache<_CharT> __cache_type;
  13934.  __use_cache<__cache_type> __uc;
  13935.  const locale& __loc = __io._M_getloc();
  13936.  const __cache_type* __lc = __uc(__loc);
  13937.  
  13938.  
  13939.  const streamsize __prec = __io.precision() < 0 ? 6 : __io.precision();
  13940.  
  13941.  const int __max_digits =
  13942.    __gnu_cxx::__numeric_traits<_ValueT>::__digits10;
  13943.  
  13944.  
  13945.  int __len;
  13946.  
  13947.  char __fbuf[16];
  13948.  __num_base::_S_format_float(__io, __fbuf, __mod);
  13949. # 1008 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.tcc" 3
  13950.  const bool __fixed = __io.flags() & ios_base::fixed;
  13951.  const int __max_exp =
  13952.    __gnu_cxx::__numeric_traits<_ValueT>::__max_exponent10;
  13953.  
  13954.  
  13955.  
  13956.  
  13957.  
  13958.  
  13959.  
  13960.  const int __cs_size = __fixed ? __max_exp + __prec + 4
  13961.                                : __max_digits * 2 + __prec;
  13962.  char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
  13963.  __len = std::__convert_from_v(_S_get_c_locale(), __cs, 0, __fbuf,
  13964.           __prec, __v);
  13965.  
  13966.  
  13967.  
  13968.  
  13969.  const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
  13970.  
  13971.  _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
  13972.             * __len));
  13973.  __ctype.widen(__cs, __cs + __len, __ws);
  13974.  
  13975.  
  13976.  _CharT* __wp = 0;
  13977.  const char* __p = char_traits<char>::find(__cs, __len, '.');
  13978.  if (__p)
  13979.    {
  13980.      __wp = __ws + (__p - __cs);
  13981.      *__wp = __lc->_M_decimal_point;
  13982.    }
  13983.  
  13984.  
  13985.  
  13986.  
  13987.  if (__lc->_M_use_grouping
  13988.      && (__wp || __len < 3 || (__cs[1] <= '9' && __cs[2] <= '9'
  13989.           && __cs[1] >= '0' && __cs[2] >= '0')))
  13990.    {
  13991.  
  13992.  
  13993.      _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
  13994.           * __len * 2));
  13995.  
  13996.      streamsize __off = 0;
  13997.      if (__cs[0] == '-' || __cs[0] == '+')
  13998.        {
  13999.   __off = 1;
  14000.   __ws2[0] = __ws[0];
  14001.   __len -= 1;
  14002.        }
  14003.  
  14004.      _M_group_float(__lc->_M_grouping, __lc->_M_grouping_size,
  14005.       __lc->_M_thousands_sep, __wp, __ws2 + __off,
  14006.       __ws + __off, __len);
  14007.      __len += __off;
  14008.  
  14009.      __ws = __ws2;
  14010.    }
  14011.  
  14012.  
  14013.  const streamsize __w = __io.width();
  14014.  if (__w > static_cast<streamsize>(__len))
  14015.    {
  14016.      _CharT* __ws3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
  14017.           * __w));
  14018.      _M_pad(__fill, __w, __io, __ws3, __ws, __len);
  14019.      __ws = __ws3;
  14020.    }
  14021.  __io.width(0);
  14022.  
  14023.  
  14024.  
  14025.  return std::__write(__s, __ws, __len);
  14026.       }
  14027.  
  14028.   template<typename _CharT, typename _OutIter>
  14029.     _OutIter
  14030.     num_put<_CharT, _OutIter>::
  14031.     do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const
  14032.     {
  14033.       const ios_base::fmtflags __flags = __io.flags();
  14034.       if ((__flags & ios_base::boolalpha) == 0)
  14035.         {
  14036.           const long __l = __v;
  14037.           __s = _M_insert_int(__s, __io, __fill, __l);
  14038.         }
  14039.       else
  14040.         {
  14041.    typedef __numpunct_cache<_CharT> __cache_type;
  14042.    __use_cache<__cache_type> __uc;
  14043.    const locale& __loc = __io._M_getloc();
  14044.    const __cache_type* __lc = __uc(__loc);
  14045.  
  14046.    const _CharT* __name = __v ? __lc->_M_truename
  14047.                               : __lc->_M_falsename;
  14048.    int __len = __v ? __lc->_M_truename_size
  14049.                    : __lc->_M_falsename_size;
  14050.  
  14051.    const streamsize __w = __io.width();
  14052.    if (__w > static_cast<streamsize>(__len))
  14053.      {
  14054.        const streamsize __plen = __w - __len;
  14055.        _CharT* __ps
  14056.   = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
  14057.        * __plen));
  14058.  
  14059.        char_traits<_CharT>::assign(__ps, __plen, __fill);
  14060.        __io.width(0);
  14061.  
  14062.        if ((__flags & ios_base::adjustfield) == ios_base::left)
  14063.   {
  14064.     __s = std::__write(__s, __name, __len);
  14065.     __s = std::__write(__s, __ps, __plen);
  14066.   }
  14067.        else
  14068.   {
  14069.     __s = std::__write(__s, __ps, __plen);
  14070.     __s = std::__write(__s, __name, __len);
  14071.   }
  14072.        return __s;
  14073.      }
  14074.    __io.width(0);
  14075.    __s = std::__write(__s, __name, __len);
  14076.  }
  14077.       return __s;
  14078.     }
  14079.  
  14080.   template<typename _CharT, typename _OutIter>
  14081.     _OutIter
  14082.     num_put<_CharT, _OutIter>::
  14083.     do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const
  14084.     { return _M_insert_float(__s, __io, __fill, char(), __v); }
  14085. # 1152 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.tcc" 3
  14086.   template<typename _CharT, typename _OutIter>
  14087.     _OutIter
  14088.     num_put<_CharT, _OutIter>::
  14089.     do_put(iter_type __s, ios_base& __io, char_type __fill,
  14090.     long double __v) const
  14091.     { return _M_insert_float(__s, __io, __fill, 'L', __v); }
  14092.  
  14093.   template<typename _CharT, typename _OutIter>
  14094.     _OutIter
  14095.     num_put<_CharT, _OutIter>::
  14096.     do_put(iter_type __s, ios_base& __io, char_type __fill,
  14097.            const void* __v) const
  14098.     {
  14099.       const ios_base::fmtflags __flags = __io.flags();
  14100.       const ios_base::fmtflags __fmt = ~(ios_base::basefield
  14101.       | ios_base::uppercase);
  14102.       __io.flags((__flags & __fmt) | (ios_base::hex | ios_base::showbase));
  14103.  
  14104.       typedef __gnu_cxx::__conditional_type<(sizeof(const void*)
  14105.           <= sizeof(unsigned long)),
  14106.  unsigned long, unsigned long long>::__type _UIntPtrType;
  14107.  
  14108.       __s = _M_insert_int(__s, __io, __fill,
  14109.      reinterpret_cast<_UIntPtrType>(__v));
  14110.       __io.flags(__flags);
  14111.       return __s;
  14112.     }
  14113.  
  14114.  
  14115. # 1189 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.tcc" 3
  14116.   template<typename _CharT, typename _Traits>
  14117.     void
  14118.     __pad<_CharT, _Traits>::_S_pad(ios_base& __io, _CharT __fill,
  14119.        _CharT* __news, const _CharT* __olds,
  14120.        streamsize __newlen, streamsize __oldlen)
  14121.     {
  14122.       const size_t __plen = static_cast<size_t>(__newlen - __oldlen);
  14123.       const ios_base::fmtflags __adjust = __io.flags() & ios_base::adjustfield;
  14124.  
  14125.  
  14126.       if (__adjust == ios_base::left)
  14127.  {
  14128.    _Traits::copy(__news, __olds, __oldlen);
  14129.    _Traits::assign(__news + __oldlen, __plen, __fill);
  14130.    return;
  14131.  }
  14132.  
  14133.       size_t __mod = 0;
  14134.       if (__adjust == ios_base::internal)
  14135.  {
  14136.  
  14137.  
  14138.  
  14139.           const locale& __loc = __io._M_getloc();
  14140.    const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
  14141.  
  14142.    if (__ctype.widen('-') == __olds[0]
  14143.        || __ctype.widen('+') == __olds[0])
  14144.      {
  14145.        __news[0] = __olds[0];
  14146.        __mod = 1;
  14147.        ++__news;
  14148.      }
  14149.    else if (__ctype.widen('0') == __olds[0]
  14150.      && __oldlen > 1
  14151.      && (__ctype.widen('x') == __olds[1]
  14152.          || __ctype.widen('X') == __olds[1]))
  14153.      {
  14154.        __news[0] = __olds[0];
  14155.        __news[1] = __olds[1];
  14156.        __mod = 2;
  14157.        __news += 2;
  14158.      }
  14159.  
  14160.  }
  14161.       _Traits::assign(__news, __plen, __fill);
  14162.       _Traits::copy(__news + __plen, __olds + __mod, __oldlen - __mod);
  14163.     }
  14164.  
  14165.   template<typename _CharT>
  14166.     _CharT*
  14167.     __add_grouping(_CharT* __s, _CharT __sep,
  14168.      const char* __gbeg, size_t __gsize,
  14169.      const _CharT* __first, const _CharT* __last)
  14170.     {
  14171.       size_t __idx = 0;
  14172.       size_t __ctr = 0;
  14173.  
  14174.       while (__last - __first > __gbeg[__idx]
  14175.       && static_cast<signed char>(__gbeg[__idx]) > 0
  14176.       && __gbeg[__idx] != __gnu_cxx::__numeric_traits<char>::__max)
  14177.  {
  14178.    __last -= __gbeg[__idx];
  14179.    __idx < __gsize - 1 ? ++__idx : ++__ctr;
  14180.  }
  14181.  
  14182.       while (__first != __last)
  14183.  *__s++ = *__first++;
  14184.  
  14185.       while (__ctr--)
  14186.  {
  14187.    *__s++ = __sep;
  14188.    for (char __i = __gbeg[__idx]; __i > 0; --__i)
  14189.      *__s++ = *__first++;
  14190.  }
  14191.  
  14192.       while (__idx--)
  14193.  {
  14194.    *__s++ = __sep;
  14195.    for (char __i = __gbeg[__idx]; __i > 0; --__i)
  14196.      *__s++ = *__first++;
  14197.  }
  14198.  
  14199.       return __s;
  14200.     }
  14201.  
  14202.  
  14203.  
  14204.  
  14205.   extern template class numpunct<char>;
  14206.   extern template class numpunct_byname<char>;
  14207.   extern template class num_get<char>;
  14208.   extern template class num_put<char>;
  14209.   extern template class ctype_byname<char>;
  14210.  
  14211.   extern template
  14212.     const ctype<char>&
  14213.     use_facet<ctype<char> >(const locale&);
  14214.  
  14215.   extern template
  14216.     const numpunct<char>&
  14217.     use_facet<numpunct<char> >(const locale&);
  14218.  
  14219.   extern template
  14220.     const num_put<char>&
  14221.     use_facet<num_put<char> >(const locale&);
  14222.  
  14223.   extern template
  14224.     const num_get<char>&
  14225.     use_facet<num_get<char> >(const locale&);
  14226.  
  14227.   extern template
  14228.     bool
  14229.     has_facet<ctype<char> >(const locale&);
  14230.  
  14231.   extern template
  14232.     bool
  14233.     has_facet<numpunct<char> >(const locale&);
  14234.  
  14235.   extern template
  14236.     bool
  14237.     has_facet<num_put<char> >(const locale&);
  14238.  
  14239.   extern template
  14240.     bool
  14241.     has_facet<num_get<char> >(const locale&);
  14242.  
  14243.  
  14244.   extern template class numpunct<wchar_t>;
  14245.   extern template class numpunct_byname<wchar_t>;
  14246.   extern template class num_get<wchar_t>;
  14247.   extern template class num_put<wchar_t>;
  14248.   extern template class ctype_byname<wchar_t>;
  14249.  
  14250.   extern template
  14251.     const ctype<wchar_t>&
  14252.     use_facet<ctype<wchar_t> >(const locale&);
  14253.  
  14254.   extern template
  14255.     const numpunct<wchar_t>&
  14256.     use_facet<numpunct<wchar_t> >(const locale&);
  14257.  
  14258.   extern template
  14259.     const num_put<wchar_t>&
  14260.     use_facet<num_put<wchar_t> >(const locale&);
  14261.  
  14262.   extern template
  14263.     const num_get<wchar_t>&
  14264.     use_facet<num_get<wchar_t> >(const locale&);
  14265.  
  14266.  extern template
  14267.     bool
  14268.     has_facet<ctype<wchar_t> >(const locale&);
  14269.  
  14270.   extern template
  14271.     bool
  14272.     has_facet<numpunct<wchar_t> >(const locale&);
  14273.  
  14274.   extern template
  14275.     bool
  14276.     has_facet<num_put<wchar_t> >(const locale&);
  14277.  
  14278.   extern template
  14279.     bool
  14280.     has_facet<num_get<wchar_t> >(const locale&);
  14281.  
  14282.  
  14283.  
  14284.  
  14285. }
  14286. # 2609 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/locale_facets.h" 2 3
  14287. # 38 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_ios.h" 2 3
  14288.  
  14289.  
  14290. namespace std
  14291. {
  14292.  
  14293.  
  14294.   template<typename _Facet>
  14295.     inline const _Facet&
  14296.     __check_facet(const _Facet* __f)
  14297.     {
  14298.       if (!__f)
  14299.  __throw_bad_cast();
  14300.       return *__f;
  14301.     }
  14302. # 65 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_ios.h" 3
  14303.   template<typename _CharT, typename _Traits>
  14304.     class basic_ios : public ios_base
  14305.     {
  14306.     public:
  14307.  
  14308.  
  14309.  
  14310.  
  14311.  
  14312.  
  14313.       typedef _CharT char_type;
  14314.       typedef typename _Traits::int_type int_type;
  14315.       typedef typename _Traits::pos_type pos_type;
  14316.       typedef typename _Traits::off_type off_type;
  14317.       typedef _Traits traits_type;
  14318.  
  14319.  
  14320.  
  14321.  
  14322.  
  14323.  
  14324.       typedef ctype<_CharT> __ctype_type;
  14325.       typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> >
  14326.            __num_put_type;
  14327.       typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> >
  14328.            __num_get_type;
  14329.  
  14330.  
  14331.  
  14332.     protected:
  14333.       basic_ostream<_CharT, _Traits>* _M_tie;
  14334.       mutable char_type _M_fill;
  14335.       mutable bool _M_fill_init;
  14336.       basic_streambuf<_CharT, _Traits>* _M_streambuf;
  14337.  
  14338.  
  14339.       const __ctype_type* _M_ctype;
  14340.  
  14341.       const __num_put_type* _M_num_put;
  14342.  
  14343.       const __num_get_type* _M_num_get;
  14344.  
  14345.     public:
  14346.  
  14347.  
  14348.  
  14349.  
  14350.  
  14351.  
  14352.  
  14353.       operator void*() const
  14354.       { return this->fail() ? 0 : const_cast<basic_ios*>(this); }
  14355.  
  14356.       bool
  14357.       operator!() const
  14358.       { return this->fail(); }
  14359. # 130 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_ios.h" 3
  14360.       iostate
  14361.       rdstate() const
  14362.       { return _M_streambuf_state; }
  14363. # 141 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_ios.h" 3
  14364.       void
  14365.       clear(iostate __state = goodbit);
  14366.  
  14367.  
  14368.  
  14369.  
  14370.  
  14371.  
  14372.  
  14373.       void
  14374.       setstate(iostate __state)
  14375.       { this->clear(this->rdstate() | __state); }
  14376.  
  14377.  
  14378.  
  14379.  
  14380.       void
  14381.       _M_setstate(iostate __state)
  14382.       {
  14383.  
  14384.  
  14385.  _M_streambuf_state |= __state;
  14386.  if (this->exceptions() & __state)
  14387.    throw;
  14388.       }
  14389.  
  14390.  
  14391.  
  14392.  
  14393.  
  14394.  
  14395.  
  14396.       bool
  14397.       good() const
  14398.       { return this->rdstate() == 0; }
  14399.  
  14400.  
  14401.  
  14402.  
  14403.  
  14404.  
  14405.  
  14406.       bool
  14407.       eof() const
  14408.       { return (this->rdstate() & eofbit) != 0; }
  14409. # 194 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_ios.h" 3
  14410.       bool
  14411.       fail() const
  14412.       { return (this->rdstate() & (badbit | failbit)) != 0; }
  14413.  
  14414.  
  14415.  
  14416.  
  14417.  
  14418.  
  14419.  
  14420.       bool
  14421.       bad() const
  14422.       { return (this->rdstate() & badbit) != 0; }
  14423. # 215 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_ios.h" 3
  14424.       iostate
  14425.       exceptions() const
  14426.       { return _M_exception; }
  14427. # 250 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_ios.h" 3
  14428.       void
  14429.       exceptions(iostate __except)
  14430.       {
  14431.         _M_exception = __except;
  14432.         this->clear(_M_streambuf_state);
  14433.       }
  14434.  
  14435.  
  14436.  
  14437.  
  14438.  
  14439.  
  14440.  
  14441.       explicit
  14442.       basic_ios(basic_streambuf<_CharT, _Traits>* __sb)
  14443.       : ios_base(), _M_tie(0), _M_fill(), _M_fill_init(false), _M_streambuf(0),
  14444.  _M_ctype(0), _M_num_put(0), _M_num_get(0)
  14445.       { this->init(__sb); }
  14446.  
  14447.  
  14448.  
  14449.  
  14450.  
  14451.  
  14452.  
  14453.       virtual
  14454.       ~basic_ios() { }
  14455. # 288 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_ios.h" 3
  14456.       basic_ostream<_CharT, _Traits>*
  14457.       tie() const
  14458.       { return _M_tie; }
  14459. # 300 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_ios.h" 3
  14460.       basic_ostream<_CharT, _Traits>*
  14461.       tie(basic_ostream<_CharT, _Traits>* __tiestr)
  14462.       {
  14463.         basic_ostream<_CharT, _Traits>* __old = _M_tie;
  14464.         _M_tie = __tiestr;
  14465.         return __old;
  14466.       }
  14467.  
  14468.  
  14469.  
  14470.  
  14471.  
  14472.  
  14473.  
  14474.       basic_streambuf<_CharT, _Traits>*
  14475.       rdbuf() const
  14476.       { return _M_streambuf; }
  14477. # 340 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_ios.h" 3
  14478.       basic_streambuf<_CharT, _Traits>*
  14479.       rdbuf(basic_streambuf<_CharT, _Traits>* __sb);
  14480. # 354 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_ios.h" 3
  14481.       basic_ios&
  14482.       copyfmt(const basic_ios& __rhs);
  14483.  
  14484.  
  14485.  
  14486.  
  14487.  
  14488.  
  14489.  
  14490.       char_type
  14491.       fill() const
  14492.       {
  14493.  if (!_M_fill_init)
  14494.    {
  14495.      _M_fill = this->widen(' ');
  14496.      _M_fill_init = true;
  14497.    }
  14498.  return _M_fill;
  14499.       }
  14500. # 383 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_ios.h" 3
  14501.       char_type
  14502.       fill(char_type __ch)
  14503.       {
  14504.  char_type __old = this->fill();
  14505.  _M_fill = __ch;
  14506.  return __old;
  14507.       }
  14508. # 403 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_ios.h" 3
  14509.       locale
  14510.       imbue(const locale& __loc);
  14511. # 423 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_ios.h" 3
  14512.       char
  14513.       narrow(char_type __c, char __dfault) const
  14514.       { return __check_facet(_M_ctype).narrow(__c, __dfault); }
  14515. # 442 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_ios.h" 3
  14516.       char_type
  14517.       widen(char __c) const
  14518.       { return __check_facet(_M_ctype).widen(__c); }
  14519.  
  14520.     protected:
  14521.  
  14522.  
  14523.  
  14524.  
  14525.  
  14526.  
  14527.  
  14528.       basic_ios()
  14529.       : ios_base(), _M_tie(0), _M_fill(char_type()), _M_fill_init(false),
  14530.  _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0)
  14531.       { }
  14532.  
  14533.  
  14534.  
  14535.  
  14536.  
  14537.  
  14538.  
  14539.       void
  14540.       init(basic_streambuf<_CharT, _Traits>* __sb);
  14541.  
  14542.       void
  14543.       _M_cache_locale(const locale& __loc);
  14544.     };
  14545.  
  14546.  
  14547. }
  14548.  
  14549. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_ios.tcc" 1 3
  14550. # 33 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_ios.tcc" 3
  14551.        
  14552. # 34 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_ios.tcc" 3
  14553.  
  14554. namespace std
  14555. {
  14556.  
  14557.  
  14558.   template<typename _CharT, typename _Traits>
  14559.     void
  14560.     basic_ios<_CharT, _Traits>::clear(iostate __state)
  14561.     {
  14562.       if (this->rdbuf())
  14563.  _M_streambuf_state = __state;
  14564.       else
  14565.    _M_streambuf_state = __state | badbit;
  14566.       if (this->exceptions() & this->rdstate())
  14567.  __throw_ios_failure(("basic_ios::clear"));
  14568.     }
  14569.  
  14570.   template<typename _CharT, typename _Traits>
  14571.     basic_streambuf<_CharT, _Traits>*
  14572.     basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<_CharT, _Traits>* __sb)
  14573.     {
  14574.       basic_streambuf<_CharT, _Traits>* __old = _M_streambuf;
  14575.       _M_streambuf = __sb;
  14576.       this->clear();
  14577.       return __old;
  14578.     }
  14579.  
  14580.   template<typename _CharT, typename _Traits>
  14581.     basic_ios<_CharT, _Traits>&
  14582.     basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs)
  14583.     {
  14584.  
  14585.  
  14586.       if (this != &__rhs)
  14587.  {
  14588.  
  14589.  
  14590.  
  14591.  
  14592.    _Words* __words = (__rhs._M_word_size <= _S_local_word_size) ?
  14593.                       _M_local_word : new _Words[__rhs._M_word_size];
  14594.  
  14595.  
  14596.    _Callback_list* __cb = __rhs._M_callbacks;
  14597.    if (__cb)
  14598.      __cb->_M_add_reference();
  14599.    _M_call_callbacks(erase_event);
  14600.    if (_M_word != _M_local_word)
  14601.      {
  14602.        delete [] _M_word;
  14603.        _M_word = 0;
  14604.      }
  14605.    _M_dispose_callbacks();
  14606.  
  14607.  
  14608.    _M_callbacks = __cb;
  14609.    for (int __i = 0; __i < __rhs._M_word_size; ++__i)
  14610.      __words[__i] = __rhs._M_word[__i];
  14611.    _M_word = __words;
  14612.    _M_word_size = __rhs._M_word_size;
  14613.  
  14614.    this->flags(__rhs.flags());
  14615.    this->width(__rhs.width());
  14616.    this->precision(__rhs.precision());
  14617.    this->tie(__rhs.tie());
  14618.    this->fill(__rhs.fill());
  14619.    _M_ios_locale = __rhs.getloc();
  14620.    _M_cache_locale(_M_ios_locale);
  14621.  
  14622.    _M_call_callbacks(copyfmt_event);
  14623.  
  14624.  
  14625.    this->exceptions(__rhs.exceptions());
  14626.  }
  14627.       return *this;
  14628.     }
  14629.  
  14630.  
  14631.   template<typename _CharT, typename _Traits>
  14632.     locale
  14633.     basic_ios<_CharT, _Traits>::imbue(const locale& __loc)
  14634.     {
  14635.       locale __old(this->getloc());
  14636.       ios_base::imbue(__loc);
  14637.       _M_cache_locale(__loc);
  14638.       if (this->rdbuf() != 0)
  14639.  this->rdbuf()->pubimbue(__loc);
  14640.       return __old;
  14641.     }
  14642.  
  14643.   template<typename _CharT, typename _Traits>
  14644.     void
  14645.     basic_ios<_CharT, _Traits>::init(basic_streambuf<_CharT, _Traits>* __sb)
  14646.     {
  14647.  
  14648.       ios_base::_M_init();
  14649.  
  14650.  
  14651.       _M_cache_locale(_M_ios_locale);
  14652. # 146 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_ios.tcc" 3
  14653.       _M_fill = _CharT();
  14654.       _M_fill_init = false;
  14655.  
  14656.       _M_tie = 0;
  14657.       _M_exception = goodbit;
  14658.       _M_streambuf = __sb;
  14659.       _M_streambuf_state = __sb ? goodbit : badbit;
  14660.     }
  14661.  
  14662.   template<typename _CharT, typename _Traits>
  14663.     void
  14664.     basic_ios<_CharT, _Traits>::_M_cache_locale(const locale& __loc)
  14665.     {
  14666.       if (__builtin_expect(has_facet<__ctype_type>(__loc), true))
  14667.  _M_ctype = &use_facet<__ctype_type>(__loc);
  14668.       else
  14669.  _M_ctype = 0;
  14670.  
  14671.       if (__builtin_expect(has_facet<__num_put_type>(__loc), true))
  14672.  _M_num_put = &use_facet<__num_put_type>(__loc);
  14673.       else
  14674.  _M_num_put = 0;
  14675.  
  14676.       if (__builtin_expect(has_facet<__num_get_type>(__loc), true))
  14677.  _M_num_get = &use_facet<__num_get_type>(__loc);
  14678.       else
  14679.  _M_num_get = 0;
  14680.     }
  14681.  
  14682.  
  14683.  
  14684.  
  14685.   extern template class basic_ios<char>;
  14686.  
  14687.  
  14688.   extern template class basic_ios<wchar_t>;
  14689.  
  14690.  
  14691.  
  14692.  
  14693. }
  14694. # 476 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/basic_ios.h" 2 3
  14695. # 45 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ios" 2 3
  14696. # 39 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 2 3
  14697.  
  14698.  
  14699. namespace std
  14700. {
  14701.  
  14702. # 57 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 3
  14703.   template<typename _CharT, typename _Traits>
  14704.     class basic_ostream : virtual public basic_ios<_CharT, _Traits>
  14705.     {
  14706.     public:
  14707.  
  14708.       typedef _CharT char_type;
  14709.       typedef typename _Traits::int_type int_type;
  14710.       typedef typename _Traits::pos_type pos_type;
  14711.       typedef typename _Traits::off_type off_type;
  14712.       typedef _Traits traits_type;
  14713.  
  14714.  
  14715.       typedef basic_streambuf<_CharT, _Traits> __streambuf_type;
  14716.       typedef basic_ios<_CharT, _Traits> __ios_type;
  14717.       typedef basic_ostream<_CharT, _Traits> __ostream_type;
  14718.       typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> >
  14719.              __num_put_type;
  14720.       typedef ctype<_CharT> __ctype_type;
  14721. # 83 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 3
  14722.       explicit
  14723.       basic_ostream(__streambuf_type* __sb)
  14724.       { this->init(__sb); }
  14725.  
  14726.  
  14727.  
  14728.  
  14729.  
  14730.  
  14731.       virtual
  14732.       ~basic_ostream() { }
  14733.  
  14734.  
  14735.       class sentry;
  14736.       friend class sentry;
  14737. # 107 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 3
  14738.       __ostream_type&
  14739.       operator<<(__ostream_type& (*__pf)(__ostream_type&))
  14740.       {
  14741.  
  14742.  
  14743.  
  14744.  return __pf(*this);
  14745.       }
  14746.  
  14747.       __ostream_type&
  14748.       operator<<(__ios_type& (*__pf)(__ios_type&))
  14749.       {
  14750.  
  14751.  
  14752.  
  14753.  __pf(*this);
  14754.  return *this;
  14755.       }
  14756.  
  14757.       __ostream_type&
  14758.       operator<<(ios_base& (*__pf) (ios_base&))
  14759.       {
  14760.  
  14761.  
  14762.  
  14763.  __pf(*this);
  14764.  return *this;
  14765.       }
  14766. # 165 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 3
  14767.       __ostream_type&
  14768.       operator<<(long __n)
  14769.       { return _M_insert(__n); }
  14770.  
  14771.       __ostream_type&
  14772.       operator<<(unsigned long __n)
  14773.       { return _M_insert(__n); }
  14774.  
  14775.       __ostream_type&
  14776.       operator<<(bool __n)
  14777.       { return _M_insert(__n); }
  14778.  
  14779.       __ostream_type&
  14780.       operator<<(short __n);
  14781.  
  14782.       __ostream_type&
  14783.       operator<<(unsigned short __n)
  14784.       {
  14785.  
  14786.  
  14787.  return _M_insert(static_cast<unsigned long>(__n));
  14788.       }
  14789.  
  14790.       __ostream_type&
  14791.       operator<<(int __n);
  14792.  
  14793.       __ostream_type&
  14794.       operator<<(unsigned int __n)
  14795.       {
  14796.  
  14797.  
  14798.  return _M_insert(static_cast<unsigned long>(__n));
  14799.       }
  14800.  
  14801.  
  14802.       __ostream_type&
  14803.       operator<<(long long __n)
  14804.       { return _M_insert(__n); }
  14805.  
  14806.       __ostream_type&
  14807.       operator<<(unsigned long long __n)
  14808.       { return _M_insert(__n); }
  14809. # 219 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 3
  14810.       __ostream_type&
  14811.       operator<<(double __f)
  14812.       { return _M_insert(__f); }
  14813.  
  14814.       __ostream_type&
  14815.       operator<<(float __f)
  14816.       {
  14817.  
  14818.  
  14819.  return _M_insert(static_cast<double>(__f));
  14820.       }
  14821.  
  14822.       __ostream_type&
  14823.       operator<<(long double __f)
  14824.       { return _M_insert(__f); }
  14825. # 244 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 3
  14826.       __ostream_type&
  14827.       operator<<(const void* __p)
  14828.       { return _M_insert(__p); }
  14829. # 269 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 3
  14830.       __ostream_type&
  14831.       operator<<(__streambuf_type* __sb);
  14832. # 302 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 3
  14833.       __ostream_type&
  14834.       put(char_type __c);
  14835.  
  14836.  
  14837.  
  14838.  
  14839.  
  14840.  
  14841.       void
  14842.       _M_write(const char_type* __s, streamsize __n)
  14843.       {
  14844.  const streamsize __put = this->rdbuf()->sputn(__s, __n);
  14845.  if (__put != __n)
  14846.    this->setstate(ios_base::badbit);
  14847.       }
  14848. # 334 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 3
  14849.       __ostream_type&
  14850.       write(const char_type* __s, streamsize __n);
  14851. # 347 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 3
  14852.       __ostream_type&
  14853.       flush();
  14854. # 357 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 3
  14855.       pos_type
  14856.       tellp();
  14857. # 368 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 3
  14858.       __ostream_type&
  14859.       seekp(pos_type);
  14860. # 380 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 3
  14861.        __ostream_type&
  14862.       seekp(off_type, ios_base::seekdir);
  14863.  
  14864.     protected:
  14865.       basic_ostream()
  14866.       { this->init(0); }
  14867.  
  14868.       template<typename _ValueT>
  14869.  __ostream_type&
  14870.  _M_insert(_ValueT __v);
  14871.     };
  14872. # 399 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 3
  14873.   template <typename _CharT, typename _Traits>
  14874.     class basic_ostream<_CharT, _Traits>::sentry
  14875.     {
  14876.  
  14877.       bool _M_ok;
  14878.       basic_ostream<_CharT, _Traits>& _M_os;
  14879.  
  14880.     public:
  14881. # 418 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 3
  14882.       explicit
  14883.       sentry(basic_ostream<_CharT, _Traits>& __os);
  14884. # 428 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 3
  14885.       ~sentry()
  14886.       {
  14887.  
  14888.  if (bool(_M_os.flags() & ios_base::unitbuf) && !uncaught_exception())
  14889.    {
  14890.  
  14891.      if (_M_os.rdbuf() && _M_os.rdbuf()->pubsync() == -1)
  14892.        _M_os.setstate(ios_base::badbit);
  14893.    }
  14894.       }
  14895. # 449 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 3
  14896.       operator bool() const
  14897.       { return _M_ok; }
  14898.     };
  14899. # 469 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 3
  14900.   template<typename _CharT, typename _Traits>
  14901.     inline basic_ostream<_CharT, _Traits>&
  14902.     operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c)
  14903.     { return __ostream_insert(__out, &__c, 1); }
  14904.  
  14905.   template<typename _CharT, typename _Traits>
  14906.     inline basic_ostream<_CharT, _Traits>&
  14907.     operator<<(basic_ostream<_CharT, _Traits>& __out, char __c)
  14908.     { return (__out << __out.widen(__c)); }
  14909.  
  14910.  
  14911.   template <class _Traits>
  14912.     inline basic_ostream<char, _Traits>&
  14913.     operator<<(basic_ostream<char, _Traits>& __out, char __c)
  14914.     { return __ostream_insert(__out, &__c, 1); }
  14915.  
  14916.  
  14917.   template<class _Traits>
  14918.     inline basic_ostream<char, _Traits>&
  14919.     operator<<(basic_ostream<char, _Traits>& __out, signed char __c)
  14920.     { return (__out << static_cast<char>(__c)); }
  14921.  
  14922.   template<class _Traits>
  14923.     inline basic_ostream<char, _Traits>&
  14924.     operator<<(basic_ostream<char, _Traits>& __out, unsigned char __c)
  14925.     { return (__out << static_cast<char>(__c)); }
  14926. # 511 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 3
  14927.   template<typename _CharT, typename _Traits>
  14928.     inline basic_ostream<_CharT, _Traits>&
  14929.     operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s)
  14930.     {
  14931.       if (!__s)
  14932.  __out.setstate(ios_base::badbit);
  14933.       else
  14934.  __ostream_insert(__out, __s,
  14935.     static_cast<streamsize>(_Traits::length(__s)));
  14936.       return __out;
  14937.     }
  14938.  
  14939.   template<typename _CharT, typename _Traits>
  14940.     basic_ostream<_CharT, _Traits> &
  14941.     operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s);
  14942.  
  14943.  
  14944.   template<class _Traits>
  14945.     inline basic_ostream<char, _Traits>&
  14946.     operator<<(basic_ostream<char, _Traits>& __out, const char* __s)
  14947.     {
  14948.       if (!__s)
  14949.  __out.setstate(ios_base::badbit);
  14950.       else
  14951.  __ostream_insert(__out, __s,
  14952.     static_cast<streamsize>(_Traits::length(__s)));
  14953.       return __out;
  14954.     }
  14955.  
  14956.  
  14957.   template<class _Traits>
  14958.     inline basic_ostream<char, _Traits>&
  14959.     operator<<(basic_ostream<char, _Traits>& __out, const signed char* __s)
  14960.     { return (__out << reinterpret_cast<const char*>(__s)); }
  14961.  
  14962.   template<class _Traits>
  14963.     inline basic_ostream<char, _Traits> &
  14964.     operator<<(basic_ostream<char, _Traits>& __out, const unsigned char* __s)
  14965.     { return (__out << reinterpret_cast<const char*>(__s)); }
  14966. # 562 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 3
  14967.   template<typename _CharT, typename _Traits>
  14968.     inline basic_ostream<_CharT, _Traits>&
  14969.     endl(basic_ostream<_CharT, _Traits>& __os)
  14970.     { return flush(__os.put(__os.widen('\n'))); }
  14971. # 574 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 3
  14972.   template<typename _CharT, typename _Traits>
  14973.     inline basic_ostream<_CharT, _Traits>&
  14974.     ends(basic_ostream<_CharT, _Traits>& __os)
  14975.     { return __os.put(_CharT()); }
  14976.  
  14977.  
  14978.  
  14979.  
  14980.  
  14981.  
  14982.   template<typename _CharT, typename _Traits>
  14983.     inline basic_ostream<_CharT, _Traits>&
  14984.     flush(basic_ostream<_CharT, _Traits>& __os)
  14985.     { return __os.flush(); }
  14986. # 606 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 3
  14987.  
  14988. }
  14989.  
  14990. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ostream.tcc" 1 3
  14991. # 37 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ostream.tcc" 3
  14992.        
  14993. # 38 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/ostream.tcc" 3
  14994.  
  14995.  
  14996.  
  14997. namespace std
  14998. {
  14999.  
  15000.  
  15001.   template<typename _CharT, typename _Traits>
  15002.     basic_ostream<_CharT, _Traits>::sentry::
  15003.     sentry(basic_ostream<_CharT, _Traits>& __os)
  15004.     : _M_ok(false), _M_os(__os)
  15005.     {
  15006.  
  15007.       if (__os.tie() && __os.good())
  15008.  __os.tie()->flush();
  15009.  
  15010.       if (__os.good())
  15011.  _M_ok = true;
  15012.       else
  15013.  __os.setstate(ios_base::failbit);
  15014.     }
  15015.  
  15016.   template<typename _CharT, typename _Traits>
  15017.     template<typename _ValueT>
  15018.       basic_ostream<_CharT, _Traits>&
  15019.       basic_ostream<_CharT, _Traits>::
  15020.       _M_insert(_ValueT __v)
  15021.       {
  15022.  sentry __cerb(*this);
  15023.  if (__cerb)
  15024.    {
  15025.      ios_base::iostate __err = ios_base::goodbit;
  15026.      try
  15027.        {
  15028.   const __num_put_type& __np = __check_facet(this->_M_num_put);
  15029.   if (__np.put(*this, *this, this->fill(), __v).failed())
  15030.     __err |= ios_base::badbit;
  15031.        }
  15032.      catch(__cxxabiv1::__forced_unwind&)
  15033.        {
  15034.   this->_M_setstate(ios_base::badbit);
  15035.   throw;
  15036.        }
  15037.      catch(...)
  15038.        { this->_M_setstate(ios_base::badbit); }
  15039.      if (__err)
  15040.        this->setstate(__err);
  15041.    }
  15042.  return *this;
  15043.       }
  15044.  
  15045.   template<typename _CharT, typename _Traits>
  15046.     basic_ostream<_CharT, _Traits>&
  15047.     basic_ostream<_CharT, _Traits>::
  15048.     operator<<(short __n)
  15049.     {
  15050.  
  15051.  
  15052.       const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield;
  15053.       if (__fmt == ios_base::oct || __fmt == ios_base::hex)
  15054.  return _M_insert(static_cast<long>(static_cast<unsigned short>(__n)));
  15055.       else
  15056.  return _M_insert(static_cast<long>(__n));
  15057.     }
  15058.  
  15059.   template<typename _CharT, typename _Traits>
  15060.     basic_ostream<_CharT, _Traits>&
  15061.     basic_ostream<_CharT, _Traits>::
  15062.     operator<<(int __n)
  15063.     {
  15064.  
  15065.  
  15066.       const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield;
  15067.       if (__fmt == ios_base::oct || __fmt == ios_base::hex)
  15068.  return _M_insert(static_cast<long>(static_cast<unsigned int>(__n)));
  15069.       else
  15070.  return _M_insert(static_cast<long>(__n));
  15071.     }
  15072.  
  15073.   template<typename _CharT, typename _Traits>
  15074.     basic_ostream<_CharT, _Traits>&
  15075.     basic_ostream<_CharT, _Traits>::
  15076.     operator<<(__streambuf_type* __sbin)
  15077.     {
  15078.       ios_base::iostate __err = ios_base::goodbit;
  15079.       sentry __cerb(*this);
  15080.       if (__cerb && __sbin)
  15081.  {
  15082.    try
  15083.      {
  15084.        if (!__copy_streambufs(__sbin, this->rdbuf()))
  15085.   __err |= ios_base::failbit;
  15086.      }
  15087.    catch(__cxxabiv1::__forced_unwind&)
  15088.      {
  15089.        this->_M_setstate(ios_base::badbit);
  15090.        throw;
  15091.      }
  15092.    catch(...)
  15093.      { this->_M_setstate(ios_base::failbit); }
  15094.  }
  15095.       else if (!__sbin)
  15096.  __err |= ios_base::badbit;
  15097.       if (__err)
  15098.  this->setstate(__err);
  15099.       return *this;
  15100.     }
  15101.  
  15102.   template<typename _CharT, typename _Traits>
  15103.     basic_ostream<_CharT, _Traits>&
  15104.     basic_ostream<_CharT, _Traits>::
  15105.     put(char_type __c)
  15106.     {
  15107.  
  15108.  
  15109.  
  15110.  
  15111.  
  15112.  
  15113.       sentry __cerb(*this);
  15114.       if (__cerb)
  15115.  {
  15116.    ios_base::iostate __err = ios_base::goodbit;
  15117.    try
  15118.      {
  15119.        const int_type __put = this->rdbuf()->sputc(__c);
  15120.        if (traits_type::eq_int_type(__put, traits_type::eof()))
  15121.   __err |= ios_base::badbit;
  15122.      }
  15123.    catch(__cxxabiv1::__forced_unwind&)
  15124.      {
  15125.        this->_M_setstate(ios_base::badbit);
  15126.        throw;
  15127.      }
  15128.    catch(...)
  15129.      { this->_M_setstate(ios_base::badbit); }
  15130.    if (__err)
  15131.      this->setstate(__err);
  15132.  }
  15133.       return *this;
  15134.     }
  15135.  
  15136.   template<typename _CharT, typename _Traits>
  15137.     basic_ostream<_CharT, _Traits>&
  15138.     basic_ostream<_CharT, _Traits>::
  15139.     write(const _CharT* __s, streamsize __n)
  15140.     {
  15141.  
  15142.  
  15143.  
  15144.  
  15145.  
  15146.  
  15147.  
  15148.       sentry __cerb(*this);
  15149.       if (__cerb)
  15150.  {
  15151.    try
  15152.      { _M_write(__s, __n); }
  15153.    catch(__cxxabiv1::__forced_unwind&)
  15154.      {
  15155.        this->_M_setstate(ios_base::badbit);
  15156.        throw;
  15157.      }
  15158.    catch(...)
  15159.      { this->_M_setstate(ios_base::badbit); }
  15160.  }
  15161.       return *this;
  15162.     }
  15163.  
  15164.   template<typename _CharT, typename _Traits>
  15165.     basic_ostream<_CharT, _Traits>&
  15166.     basic_ostream<_CharT, _Traits>::
  15167.     flush()
  15168.     {
  15169.  
  15170.  
  15171.  
  15172.       ios_base::iostate __err = ios_base::goodbit;
  15173.       try
  15174.  {
  15175.    if (this->rdbuf() && this->rdbuf()->pubsync() == -1)
  15176.      __err |= ios_base::badbit;
  15177.  }
  15178.       catch(__cxxabiv1::__forced_unwind&)
  15179.  {
  15180.    this->_M_setstate(ios_base::badbit);
  15181.    throw;
  15182.  }
  15183.       catch(...)
  15184.  { this->_M_setstate(ios_base::badbit); }
  15185.       if (__err)
  15186.  this->setstate(__err);
  15187.       return *this;
  15188.     }
  15189.  
  15190.   template<typename _CharT, typename _Traits>
  15191.     typename basic_ostream<_CharT, _Traits>::pos_type
  15192.     basic_ostream<_CharT, _Traits>::
  15193.     tellp()
  15194.     {
  15195.       pos_type __ret = pos_type(-1);
  15196.       try
  15197.  {
  15198.    if (!this->fail())
  15199.      __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out);
  15200.  }
  15201.       catch(__cxxabiv1::__forced_unwind&)
  15202.  {
  15203.    this->_M_setstate(ios_base::badbit);
  15204.    throw;
  15205.  }
  15206.       catch(...)
  15207.  { this->_M_setstate(ios_base::badbit); }
  15208.       return __ret;
  15209.     }
  15210.  
  15211.   template<typename _CharT, typename _Traits>
  15212.     basic_ostream<_CharT, _Traits>&
  15213.     basic_ostream<_CharT, _Traits>::
  15214.     seekp(pos_type __pos)
  15215.     {
  15216.       ios_base::iostate __err = ios_base::goodbit;
  15217.       try
  15218.  {
  15219.    if (!this->fail())
  15220.      {
  15221.  
  15222.  
  15223.        const pos_type __p = this->rdbuf()->pubseekpos(__pos,
  15224.             ios_base::out);
  15225.  
  15226.  
  15227.        if (__p == pos_type(off_type(-1)))
  15228.   __err |= ios_base::failbit;
  15229.      }
  15230.  }
  15231.       catch(__cxxabiv1::__forced_unwind&)
  15232.  {
  15233.    this->_M_setstate(ios_base::badbit);
  15234.    throw;
  15235.  }
  15236.       catch(...)
  15237.  { this->_M_setstate(ios_base::badbit); }
  15238.       if (__err)
  15239.  this->setstate(__err);
  15240.       return *this;
  15241.     }
  15242.  
  15243.   template<typename _CharT, typename _Traits>
  15244.     basic_ostream<_CharT, _Traits>&
  15245.     basic_ostream<_CharT, _Traits>::
  15246.     seekp(off_type __off, ios_base::seekdir __dir)
  15247.     {
  15248.       ios_base::iostate __err = ios_base::goodbit;
  15249.       try
  15250.  {
  15251.    if (!this->fail())
  15252.      {
  15253.  
  15254.  
  15255.        const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir,
  15256.             ios_base::out);
  15257.  
  15258.  
  15259.        if (__p == pos_type(off_type(-1)))
  15260.   __err |= ios_base::failbit;
  15261.      }
  15262.  }
  15263.       catch(__cxxabiv1::__forced_unwind&)
  15264.  {
  15265.    this->_M_setstate(ios_base::badbit);
  15266.    throw;
  15267.  }
  15268.       catch(...)
  15269.  { this->_M_setstate(ios_base::badbit); }
  15270.       if (__err)
  15271.  this->setstate(__err);
  15272.       return *this;
  15273.     }
  15274.  
  15275.   template<typename _CharT, typename _Traits>
  15276.     basic_ostream<_CharT, _Traits>&
  15277.     operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s)
  15278.     {
  15279.       if (!__s)
  15280.  __out.setstate(ios_base::badbit);
  15281.       else
  15282.  {
  15283.  
  15284.  
  15285.    const size_t __clen = char_traits<char>::length(__s);
  15286.    try
  15287.      {
  15288.        struct __ptr_guard
  15289.        {
  15290.   _CharT *__p;
  15291.   __ptr_guard (_CharT *__ip): __p(__ip) { }
  15292.   ~__ptr_guard() { delete[] __p; }
  15293.   _CharT* __get() { return __p; }
  15294.        } __pg (new _CharT[__clen]);
  15295.  
  15296.        _CharT *__ws = __pg.__get();
  15297.        for (size_t __i = 0; __i < __clen; ++__i)
  15298.   __ws[__i] = __out.widen(__s[__i]);
  15299.        __ostream_insert(__out, __ws, __clen);
  15300.      }
  15301.    catch(__cxxabiv1::__forced_unwind&)
  15302.      {
  15303.        __out._M_setstate(ios_base::badbit);
  15304.        throw;
  15305.      }
  15306.    catch(...)
  15307.      { __out._M_setstate(ios_base::badbit); }
  15308.  }
  15309.       return __out;
  15310.     }
  15311.  
  15312.  
  15313.  
  15314.  
  15315.   extern template class basic_ostream<char>;
  15316.   extern template ostream& endl(ostream&);
  15317.   extern template ostream& ends(ostream&);
  15318.   extern template ostream& flush(ostream&);
  15319.   extern template ostream& operator<<(ostream&, char);
  15320.   extern template ostream& operator<<(ostream&, unsigned char);
  15321.   extern template ostream& operator<<(ostream&, signed char);
  15322.   extern template ostream& operator<<(ostream&, const char*);
  15323.   extern template ostream& operator<<(ostream&, const unsigned char*);
  15324.   extern template ostream& operator<<(ostream&, const signed char*);
  15325.  
  15326.   extern template ostream& ostream::_M_insert(long);
  15327.   extern template ostream& ostream::_M_insert(unsigned long);
  15328.   extern template ostream& ostream::_M_insert(bool);
  15329.  
  15330.   extern template ostream& ostream::_M_insert(long long);
  15331.   extern template ostream& ostream::_M_insert(unsigned long long);
  15332.  
  15333.   extern template ostream& ostream::_M_insert(double);
  15334.   extern template ostream& ostream::_M_insert(long double);
  15335.   extern template ostream& ostream::_M_insert(const void*);
  15336.  
  15337.  
  15338.   extern template class basic_ostream<wchar_t>;
  15339.   extern template wostream& endl(wostream&);
  15340.   extern template wostream& ends(wostream&);
  15341.   extern template wostream& flush(wostream&);
  15342.   extern template wostream& operator<<(wostream&, wchar_t);
  15343.   extern template wostream& operator<<(wostream&, char);
  15344.   extern template wostream& operator<<(wostream&, const wchar_t*);
  15345.   extern template wostream& operator<<(wostream&, const char*);
  15346.  
  15347.   extern template wostream& wostream::_M_insert(long);
  15348.   extern template wostream& wostream::_M_insert(unsigned long);
  15349.   extern template wostream& wostream::_M_insert(bool);
  15350.  
  15351.   extern template wostream& wostream::_M_insert(long long);
  15352.   extern template wostream& wostream::_M_insert(unsigned long long);
  15353.  
  15354.   extern template wostream& wostream::_M_insert(double);
  15355.   extern template wostream& wostream::_M_insert(long double);
  15356.   extern template wostream& wostream::_M_insert(const void*);
  15357.  
  15358.  
  15359.  
  15360.  
  15361. }
  15362. # 610 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/ostream" 2 3
  15363. # 40 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/iostream" 2 3
  15364. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 1 3
  15365. # 36 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15366.        
  15367. # 37 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15368.  
  15369.  
  15370.  
  15371.  
  15372. namespace std
  15373. {
  15374.  
  15375. # 57 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15376.   template<typename _CharT, typename _Traits>
  15377.     class basic_istream : virtual public basic_ios<_CharT, _Traits>
  15378.     {
  15379.     public:
  15380.  
  15381.       typedef _CharT char_type;
  15382.       typedef typename _Traits::int_type int_type;
  15383.       typedef typename _Traits::pos_type pos_type;
  15384.       typedef typename _Traits::off_type off_type;
  15385.       typedef _Traits traits_type;
  15386.  
  15387.  
  15388.       typedef basic_streambuf<_CharT, _Traits> __streambuf_type;
  15389.       typedef basic_ios<_CharT, _Traits> __ios_type;
  15390.       typedef basic_istream<_CharT, _Traits> __istream_type;
  15391.       typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> >
  15392.         __num_get_type;
  15393.       typedef ctype<_CharT> __ctype_type;
  15394.  
  15395.     protected:
  15396.  
  15397.  
  15398.  
  15399.  
  15400.  
  15401.       streamsize _M_gcount;
  15402.  
  15403.     public:
  15404.  
  15405.  
  15406.  
  15407.  
  15408.  
  15409.  
  15410.  
  15411.       explicit
  15412.       basic_istream(__streambuf_type* __sb)
  15413.       : _M_gcount(streamsize(0))
  15414.       { this->init(__sb); }
  15415.  
  15416.  
  15417.  
  15418.  
  15419.  
  15420.  
  15421.       virtual
  15422.       ~basic_istream()
  15423.       { _M_gcount = streamsize(0); }
  15424.  
  15425.  
  15426.       class sentry;
  15427.       friend class sentry;
  15428. # 119 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15429.       __istream_type&
  15430.       operator>>(__istream_type& (*__pf)(__istream_type&))
  15431.       { return __pf(*this); }
  15432.  
  15433.       __istream_type&
  15434.       operator>>(__ios_type& (*__pf)(__ios_type&))
  15435.       {
  15436.  __pf(*this);
  15437.  return *this;
  15438.       }
  15439.  
  15440.       __istream_type&
  15441.       operator>>(ios_base& (*__pf)(ios_base&))
  15442.       {
  15443.  __pf(*this);
  15444.  return *this;
  15445.       }
  15446. # 167 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15447.       __istream_type&
  15448.       operator>>(bool& __n)
  15449.       { return _M_extract(__n); }
  15450.  
  15451.       __istream_type&
  15452.       operator>>(short& __n);
  15453.  
  15454.       __istream_type&
  15455.       operator>>(unsigned short& __n)
  15456.       { return _M_extract(__n); }
  15457.  
  15458.       __istream_type&
  15459.       operator>>(int& __n);
  15460.  
  15461.       __istream_type&
  15462.       operator>>(unsigned int& __n)
  15463.       { return _M_extract(__n); }
  15464.  
  15465.       __istream_type&
  15466.       operator>>(long& __n)
  15467.       { return _M_extract(__n); }
  15468.  
  15469.       __istream_type&
  15470.       operator>>(unsigned long& __n)
  15471.       { return _M_extract(__n); }
  15472.  
  15473.  
  15474.       __istream_type&
  15475.       operator>>(long long& __n)
  15476.       { return _M_extract(__n); }
  15477.  
  15478.       __istream_type&
  15479.       operator>>(unsigned long long& __n)
  15480.       { return _M_extract(__n); }
  15481. # 213 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15482.       __istream_type&
  15483.       operator>>(float& __f)
  15484.       { return _M_extract(__f); }
  15485.  
  15486.       __istream_type&
  15487.       operator>>(double& __f)
  15488.       { return _M_extract(__f); }
  15489.  
  15490.       __istream_type&
  15491.       operator>>(long double& __f)
  15492.       { return _M_extract(__f); }
  15493. # 234 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15494.       __istream_type&
  15495.       operator>>(void*& __p)
  15496.       { return _M_extract(__p); }
  15497. # 258 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15498.       __istream_type&
  15499.       operator>>(__streambuf_type* __sb);
  15500. # 268 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15501.       streamsize
  15502.       gcount() const
  15503.       { return _M_gcount; }
  15504. # 301 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15505.       int_type
  15506.       get();
  15507. # 315 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15508.       __istream_type&
  15509.       get(char_type& __c);
  15510. # 342 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15511.       __istream_type&
  15512.       get(char_type* __s, streamsize __n, char_type __delim);
  15513. # 353 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15514.       __istream_type&
  15515.       get(char_type* __s, streamsize __n)
  15516.       { return this->get(__s, __n, this->widen('\n')); }
  15517. # 376 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15518.       __istream_type&
  15519.       get(__streambuf_type& __sb, char_type __delim);
  15520. # 386 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15521.       __istream_type&
  15522.       get(__streambuf_type& __sb)
  15523.       { return this->get(__sb, this->widen('\n')); }
  15524. # 415 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15525.       __istream_type&
  15526.       getline(char_type* __s, streamsize __n, char_type __delim);
  15527. # 426 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15528.       __istream_type&
  15529.       getline(char_type* __s, streamsize __n)
  15530.       { return this->getline(__s, __n, this->widen('\n')); }
  15531. # 450 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15532.       __istream_type&
  15533.       ignore(streamsize __n, int_type __delim);
  15534.  
  15535.       __istream_type&
  15536.       ignore(streamsize __n);
  15537.  
  15538.       __istream_type&
  15539.       ignore();
  15540. # 467 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15541.       int_type
  15542.       peek();
  15543. # 485 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15544.       __istream_type&
  15545.       read(char_type* __s, streamsize __n);
  15546. # 504 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15547.       streamsize
  15548.       readsome(char_type* __s, streamsize __n);
  15549. # 521 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15550.       __istream_type&
  15551.       putback(char_type __c);
  15552. # 537 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15553.       __istream_type&
  15554.       unget();
  15555. # 555 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15556.       int
  15557.       sync();
  15558. # 570 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15559.       pos_type
  15560.       tellg();
  15561. # 585 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15562.       __istream_type&
  15563.       seekg(pos_type);
  15564. # 601 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15565.       __istream_type&
  15566.       seekg(off_type, ios_base::seekdir);
  15567.  
  15568.  
  15569.     protected:
  15570.       basic_istream()
  15571.       : _M_gcount(streamsize(0))
  15572.       { this->init(0); }
  15573.  
  15574.       template<typename _ValueT>
  15575.  __istream_type&
  15576.  _M_extract(_ValueT& __v);
  15577.     };
  15578.  
  15579.  
  15580.   template<>
  15581.     basic_istream<char>&
  15582.     basic_istream<char>::
  15583.     getline(char_type* __s, streamsize __n, char_type __delim);
  15584.  
  15585.   template<>
  15586.     basic_istream<char>&
  15587.     basic_istream<char>::
  15588.     ignore(streamsize __n);
  15589.  
  15590.   template<>
  15591.     basic_istream<char>&
  15592.     basic_istream<char>::
  15593.     ignore(streamsize __n, int_type __delim);
  15594.  
  15595.  
  15596.   template<>
  15597.     basic_istream<wchar_t>&
  15598.     basic_istream<wchar_t>::
  15599.     getline(char_type* __s, streamsize __n, char_type __delim);
  15600.  
  15601.   template<>
  15602.     basic_istream<wchar_t>&
  15603.     basic_istream<wchar_t>::
  15604.     ignore(streamsize __n);
  15605.  
  15606.   template<>
  15607.     basic_istream<wchar_t>&
  15608.     basic_istream<wchar_t>::
  15609.     ignore(streamsize __n, int_type __delim);
  15610. # 656 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15611.   template<typename _CharT, typename _Traits>
  15612.     class basic_istream<_CharT, _Traits>::sentry
  15613.     {
  15614.  
  15615.       bool _M_ok;
  15616.  
  15617.     public:
  15618.  
  15619.       typedef _Traits traits_type;
  15620.       typedef basic_streambuf<_CharT, _Traits> __streambuf_type;
  15621.       typedef basic_istream<_CharT, _Traits> __istream_type;
  15622.       typedef typename __istream_type::__ctype_type __ctype_type;
  15623.       typedef typename _Traits::int_type __int_type;
  15624. # 692 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15625.       explicit
  15626.       sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws = false);
  15627. # 705 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15628.       operator bool() const
  15629.       { return _M_ok; }
  15630.     };
  15631. # 721 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15632.   template<typename _CharT, typename _Traits>
  15633.     basic_istream<_CharT, _Traits>&
  15634.     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c);
  15635.  
  15636.   template<class _Traits>
  15637.     inline basic_istream<char, _Traits>&
  15638.     operator>>(basic_istream<char, _Traits>& __in, unsigned char& __c)
  15639.     { return (__in >> reinterpret_cast<char&>(__c)); }
  15640.  
  15641.   template<class _Traits>
  15642.     inline basic_istream<char, _Traits>&
  15643.     operator>>(basic_istream<char, _Traits>& __in, signed char& __c)
  15644.     { return (__in >> reinterpret_cast<char&>(__c)); }
  15645. # 763 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15646.   template<typename _CharT, typename _Traits>
  15647.     basic_istream<_CharT, _Traits>&
  15648.     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s);
  15649.  
  15650.  
  15651.   template<>
  15652.     basic_istream<char>&
  15653.     operator>>(basic_istream<char>& __in, char* __s);
  15654.  
  15655.   template<class _Traits>
  15656.     inline basic_istream<char, _Traits>&
  15657.     operator>>(basic_istream<char, _Traits>& __in, unsigned char* __s)
  15658.     { return (__in >> reinterpret_cast<char*>(__s)); }
  15659.  
  15660.   template<class _Traits>
  15661.     inline basic_istream<char, _Traits>&
  15662.     operator>>(basic_istream<char, _Traits>& __in, signed char* __s)
  15663.     { return (__in >> reinterpret_cast<char*>(__s)); }
  15664. # 794 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15665.   template<typename _CharT, typename _Traits>
  15666.     class basic_iostream
  15667.     : public basic_istream<_CharT, _Traits>,
  15668.       public basic_ostream<_CharT, _Traits>
  15669.     {
  15670.     public:
  15671.  
  15672.  
  15673.  
  15674.       typedef _CharT char_type;
  15675.       typedef typename _Traits::int_type int_type;
  15676.       typedef typename _Traits::pos_type pos_type;
  15677.       typedef typename _Traits::off_type off_type;
  15678.       typedef _Traits traits_type;
  15679.  
  15680.  
  15681.       typedef basic_istream<_CharT, _Traits> __istream_type;
  15682.       typedef basic_ostream<_CharT, _Traits> __ostream_type;
  15683.  
  15684.  
  15685.  
  15686.  
  15687.  
  15688.  
  15689.  
  15690.       explicit
  15691.       basic_iostream(basic_streambuf<_CharT, _Traits>* __sb)
  15692.       : __istream_type(__sb), __ostream_type(__sb) { }
  15693.  
  15694.  
  15695.  
  15696.  
  15697.       virtual
  15698.       ~basic_iostream() { }
  15699.  
  15700.     protected:
  15701.       basic_iostream()
  15702.       : __istream_type(), __ostream_type() { }
  15703.     };
  15704. # 854 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15705.   template<typename _CharT, typename _Traits>
  15706.     basic_istream<_CharT, _Traits>&
  15707.     ws(basic_istream<_CharT, _Traits>& __is);
  15708. # 876 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 3
  15709.  
  15710. }
  15711.  
  15712. # 1 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/istream.tcc" 1 3
  15713. # 37 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/istream.tcc" 3
  15714.        
  15715. # 38 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/istream.tcc" 3
  15716.  
  15717.  
  15718.  
  15719. namespace std
  15720. {
  15721.  
  15722.  
  15723.   template<typename _CharT, typename _Traits>
  15724.     basic_istream<_CharT, _Traits>::sentry::
  15725.     sentry(basic_istream<_CharT, _Traits>& __in, bool __noskip) : _M_ok(false)
  15726.     {
  15727.       ios_base::iostate __err = ios_base::goodbit;
  15728.       if (__in.good())
  15729.  {
  15730.    if (__in.tie())
  15731.      __in.tie()->flush();
  15732.    if (!__noskip && bool(__in.flags() & ios_base::skipws))
  15733.      {
  15734.        const __int_type __eof = traits_type::eof();
  15735.        __streambuf_type* __sb = __in.rdbuf();
  15736.        __int_type __c = __sb->sgetc();
  15737.  
  15738.        const __ctype_type& __ct = __check_facet(__in._M_ctype);
  15739.        while (!traits_type::eq_int_type(__c, __eof)
  15740.        && __ct.is(ctype_base::space,
  15741.     traits_type::to_char_type(__c)))
  15742.   __c = __sb->snextc();
  15743.  
  15744.  
  15745.  
  15746.  
  15747.        if (traits_type::eq_int_type(__c, __eof))
  15748.   __err |= ios_base::eofbit;
  15749.      }
  15750.  }
  15751.  
  15752.       if (__in.good() && __err == ios_base::goodbit)
  15753.  _M_ok = true;
  15754.       else
  15755.  {
  15756.    __err |= ios_base::failbit;
  15757.    __in.setstate(__err);
  15758.  }
  15759.     }
  15760.  
  15761.   template<typename _CharT, typename _Traits>
  15762.     template<typename _ValueT>
  15763.       basic_istream<_CharT, _Traits>&
  15764.       basic_istream<_CharT, _Traits>::
  15765.       _M_extract(_ValueT& __v)
  15766.       {
  15767.  sentry __cerb(*this, false);
  15768.  if (__cerb)
  15769.    {
  15770.      ios_base::iostate __err = ios_base::goodbit;
  15771.      try
  15772.        {
  15773.   const __num_get_type& __ng = __check_facet(this->_M_num_get);
  15774.   __ng.get(*this, 0, *this, __err, __v);
  15775.        }
  15776.      catch(__cxxabiv1::__forced_unwind&)
  15777.        {
  15778.   this->_M_setstate(ios_base::badbit);
  15779.   throw;
  15780.        }
  15781.      catch(...)
  15782.        { this->_M_setstate(ios_base::badbit); }
  15783.      if (__err)
  15784.        this->setstate(__err);
  15785.    }
  15786.  return *this;
  15787.       }
  15788.  
  15789.   template<typename _CharT, typename _Traits>
  15790.     basic_istream<_CharT, _Traits>&
  15791.     basic_istream<_CharT, _Traits>::
  15792.     operator>>(short& __n)
  15793.     {
  15794.  
  15795.  
  15796.       sentry __cerb(*this, false);
  15797.       if (__cerb)
  15798.  {
  15799.    ios_base::iostate __err = ios_base::goodbit;
  15800.    try
  15801.      {
  15802.        long __l;
  15803.        const __num_get_type& __ng = __check_facet(this->_M_num_get);
  15804.        __ng.get(*this, 0, *this, __err, __l);
  15805.  
  15806.  
  15807.  
  15808.        if (__l < __gnu_cxx::__numeric_traits<short>::__min)
  15809.   {
  15810.     __err |= ios_base::failbit;
  15811.     __n = __gnu_cxx::__numeric_traits<short>::__min;
  15812.   }
  15813.        else if (__l > __gnu_cxx::__numeric_traits<short>::__max)
  15814.   {
  15815.     __err |= ios_base::failbit;
  15816.     __n = __gnu_cxx::__numeric_traits<short>::__max;
  15817.   }
  15818.        else
  15819.   __n = short(__l);
  15820.      }
  15821.    catch(__cxxabiv1::__forced_unwind&)
  15822.      {
  15823.        this->_M_setstate(ios_base::badbit);
  15824.        throw;
  15825.      }
  15826.    catch(...)
  15827.      { this->_M_setstate(ios_base::badbit); }
  15828.    if (__err)
  15829.      this->setstate(__err);
  15830.  }
  15831.       return *this;
  15832.     }
  15833.  
  15834.   template<typename _CharT, typename _Traits>
  15835.     basic_istream<_CharT, _Traits>&
  15836.     basic_istream<_CharT, _Traits>::
  15837.     operator>>(int& __n)
  15838.     {
  15839.  
  15840.  
  15841.       sentry __cerb(*this, false);
  15842.       if (__cerb)
  15843.  {
  15844.    ios_base::iostate __err = ios_base::goodbit;
  15845.    try
  15846.      {
  15847.        long __l;
  15848.        const __num_get_type& __ng = __check_facet(this->_M_num_get);
  15849.        __ng.get(*this, 0, *this, __err, __l);
  15850.  
  15851.  
  15852.  
  15853.        if (__l < __gnu_cxx::__numeric_traits<int>::__min)
  15854.   {
  15855.     __err |= ios_base::failbit;
  15856.     __n = __gnu_cxx::__numeric_traits<int>::__min;
  15857.   }
  15858.        else if (__l > __gnu_cxx::__numeric_traits<int>::__max)
  15859.   {
  15860.     __err |= ios_base::failbit;
  15861.     __n = __gnu_cxx::__numeric_traits<int>::__max;
  15862.   }
  15863.        else
  15864.   __n = int(__l);
  15865.      }
  15866.    catch(__cxxabiv1::__forced_unwind&)
  15867.      {
  15868.        this->_M_setstate(ios_base::badbit);
  15869.        throw;
  15870.      }
  15871.    catch(...)
  15872.      { this->_M_setstate(ios_base::badbit); }
  15873.    if (__err)
  15874.      this->setstate(__err);
  15875.  }
  15876.       return *this;
  15877.     }
  15878.  
  15879.   template<typename _CharT, typename _Traits>
  15880.     basic_istream<_CharT, _Traits>&
  15881.     basic_istream<_CharT, _Traits>::
  15882.     operator>>(__streambuf_type* __sbout)
  15883.     {
  15884.       ios_base::iostate __err = ios_base::goodbit;
  15885.       sentry __cerb(*this, false);
  15886.       if (__cerb && __sbout)
  15887.  {
  15888.    try
  15889.      {
  15890.        bool __ineof;
  15891.        if (!__copy_streambufs_eof(this->rdbuf(), __sbout, __ineof))
  15892.   __err |= ios_base::failbit;
  15893.        if (__ineof)
  15894.   __err |= ios_base::eofbit;
  15895.      }
  15896.    catch(__cxxabiv1::__forced_unwind&)
  15897.      {
  15898.        this->_M_setstate(ios_base::failbit);
  15899.        throw;
  15900.      }
  15901.    catch(...)
  15902.      { this->_M_setstate(ios_base::failbit); }
  15903.  }
  15904.       else if (!__sbout)
  15905.  __err |= ios_base::failbit;
  15906.       if (__err)
  15907.  this->setstate(__err);
  15908.       return *this;
  15909.     }
  15910.  
  15911.   template<typename _CharT, typename _Traits>
  15912.     typename basic_istream<_CharT, _Traits>::int_type
  15913.     basic_istream<_CharT, _Traits>::
  15914.     get(void)
  15915.     {
  15916.       const int_type __eof = traits_type::eof();
  15917.       int_type __c = __eof;
  15918.       _M_gcount = 0;
  15919.       ios_base::iostate __err = ios_base::goodbit;
  15920.       sentry __cerb(*this, true);
  15921.       if (__cerb)
  15922.  {
  15923.    try
  15924.      {
  15925.        __c = this->rdbuf()->sbumpc();
  15926.  
  15927.        if (!traits_type::eq_int_type(__c, __eof))
  15928.   _M_gcount = 1;
  15929.        else
  15930.   __err |= ios_base::eofbit;
  15931.      }
  15932.    catch(__cxxabiv1::__forced_unwind&)
  15933.      {
  15934.        this->_M_setstate(ios_base::badbit);
  15935.        throw;
  15936.      }
  15937.    catch(...)
  15938.      { this->_M_setstate(ios_base::badbit); }
  15939.  }
  15940.       if (!_M_gcount)
  15941.  __err |= ios_base::failbit;
  15942.       if (__err)
  15943.  this->setstate(__err);
  15944.       return __c;
  15945.     }
  15946.  
  15947.   template<typename _CharT, typename _Traits>
  15948.     basic_istream<_CharT, _Traits>&
  15949.     basic_istream<_CharT, _Traits>::
  15950.     get(char_type& __c)
  15951.     {
  15952.       _M_gcount = 0;
  15953.       ios_base::iostate __err = ios_base::goodbit;
  15954.       sentry __cerb(*this, true);
  15955.       if (__cerb)
  15956.  {
  15957.    try
  15958.      {
  15959.        const int_type __cb = this->rdbuf()->sbumpc();
  15960.  
  15961.        if (!traits_type::eq_int_type(__cb, traits_type::eof()))
  15962.   {
  15963.     _M_gcount = 1;
  15964.     __c = traits_type::to_char_type(__cb);
  15965.   }
  15966.        else
  15967.   __err |= ios_base::eofbit;
  15968.      }
  15969.    catch(__cxxabiv1::__forced_unwind&)
  15970.      {
  15971.        this->_M_setstate(ios_base::badbit);
  15972.        throw;
  15973.      }
  15974.    catch(...)
  15975.      { this->_M_setstate(ios_base::badbit); }
  15976.  }
  15977.       if (!_M_gcount)
  15978.  __err |= ios_base::failbit;
  15979.       if (__err)
  15980.  this->setstate(__err);
  15981.       return *this;
  15982.     }
  15983.  
  15984.   template<typename _CharT, typename _Traits>
  15985.     basic_istream<_CharT, _Traits>&
  15986.     basic_istream<_CharT, _Traits>::
  15987.     get(char_type* __s, streamsize __n, char_type __delim)
  15988.     {
  15989.       _M_gcount = 0;
  15990.       ios_base::iostate __err = ios_base::goodbit;
  15991.       sentry __cerb(*this, true);
  15992.       if (__cerb)
  15993.  {
  15994.    try
  15995.      {
  15996.        const int_type __idelim = traits_type::to_int_type(__delim);
  15997.        const int_type __eof = traits_type::eof();
  15998.        __streambuf_type* __sb = this->rdbuf();
  15999.        int_type __c = __sb->sgetc();
  16000.  
  16001.        while (_M_gcount + 1 < __n
  16002.        && !traits_type::eq_int_type(__c, __eof)
  16003.        && !traits_type::eq_int_type(__c, __idelim))
  16004.   {
  16005.     *__s++ = traits_type::to_char_type(__c);
  16006.     ++_M_gcount;
  16007.     __c = __sb->snextc();
  16008.   }
  16009.        if (traits_type::eq_int_type(__c, __eof))
  16010.   __err |= ios_base::eofbit;
  16011.      }
  16012.    catch(__cxxabiv1::__forced_unwind&)
  16013.      {
  16014.        this->_M_setstate(ios_base::badbit);
  16015.        throw;
  16016.      }
  16017.    catch(...)
  16018.      { this->_M_setstate(ios_base::badbit); }
  16019.  }
  16020.  
  16021.  
  16022.       if (__n > 0)
  16023.  *__s = char_type();
  16024.       if (!_M_gcount)
  16025.  __err |= ios_base::failbit;
  16026.       if (__err)
  16027.  this->setstate(__err);
  16028.       return *this;
  16029.     }
  16030.  
  16031.   template<typename _CharT, typename _Traits>
  16032.     basic_istream<_CharT, _Traits>&
  16033.     basic_istream<_CharT, _Traits>::
  16034.     get(__streambuf_type& __sb, char_type __delim)
  16035.     {
  16036.       _M_gcount = 0;
  16037.       ios_base::iostate __err = ios_base::goodbit;
  16038.       sentry __cerb(*this, true);
  16039.       if (__cerb)
  16040.  {
  16041.    try
  16042.      {
  16043.        const int_type __idelim = traits_type::to_int_type(__delim);
  16044.        const int_type __eof = traits_type::eof();
  16045.        __streambuf_type* __this_sb = this->rdbuf();
  16046.        int_type __c = __this_sb->sgetc();
  16047.        char_type __c2 = traits_type::to_char_type(__c);
  16048.  
  16049.        while (!traits_type::eq_int_type(__c, __eof)
  16050.        && !traits_type::eq_int_type(__c, __idelim)
  16051.        && !traits_type::eq_int_type(__sb.sputc(__c2), __eof))
  16052.   {
  16053.     ++_M_gcount;
  16054.     __c = __this_sb->snextc();
  16055.     __c2 = traits_type::to_char_type(__c);
  16056.   }
  16057.        if (traits_type::eq_int_type(__c, __eof))
  16058.   __err |= ios_base::eofbit;
  16059.      }
  16060.    catch(__cxxabiv1::__forced_unwind&)
  16061.      {
  16062.        this->_M_setstate(ios_base::badbit);
  16063.        throw;
  16064.      }
  16065.    catch(...)
  16066.      { this->_M_setstate(ios_base::badbit); }
  16067.  }
  16068.       if (!_M_gcount)
  16069.  __err |= ios_base::failbit;
  16070.       if (__err)
  16071.  this->setstate(__err);
  16072.       return *this;
  16073.     }
  16074.  
  16075.   template<typename _CharT, typename _Traits>
  16076.     basic_istream<_CharT, _Traits>&
  16077.     basic_istream<_CharT, _Traits>::
  16078.     getline(char_type* __s, streamsize __n, char_type __delim)
  16079.     {
  16080.       _M_gcount = 0;
  16081.       ios_base::iostate __err = ios_base::goodbit;
  16082.       sentry __cerb(*this, true);
  16083.       if (__cerb)
  16084.         {
  16085.           try
  16086.             {
  16087.               const int_type __idelim = traits_type::to_int_type(__delim);
  16088.               const int_type __eof = traits_type::eof();
  16089.               __streambuf_type* __sb = this->rdbuf();
  16090.               int_type __c = __sb->sgetc();
  16091.  
  16092.               while (_M_gcount + 1 < __n
  16093.                      && !traits_type::eq_int_type(__c, __eof)
  16094.                      && !traits_type::eq_int_type(__c, __idelim))
  16095.                 {
  16096.                   *__s++ = traits_type::to_char_type(__c);
  16097.                   __c = __sb->snextc();
  16098.                   ++_M_gcount;
  16099.                 }
  16100.               if (traits_type::eq_int_type(__c, __eof))
  16101.                 __err |= ios_base::eofbit;
  16102.               else
  16103.                 {
  16104.                   if (traits_type::eq_int_type(__c, __idelim))
  16105.                     {
  16106.                       __sb->sbumpc();
  16107.                       ++_M_gcount;
  16108.                     }
  16109.                   else
  16110.                     __err |= ios_base::failbit;
  16111.                 }
  16112.             }
  16113.    catch(__cxxabiv1::__forced_unwind&)
  16114.      {
  16115.        this->_M_setstate(ios_base::badbit);
  16116.        throw;
  16117.      }
  16118.           catch(...)
  16119.             { this->_M_setstate(ios_base::badbit); }
  16120.         }
  16121.  
  16122.  
  16123.       if (__n > 0)
  16124.  *__s = char_type();
  16125.       if (!_M_gcount)
  16126.         __err |= ios_base::failbit;
  16127.       if (__err)
  16128.         this->setstate(__err);
  16129.       return *this;
  16130.     }
  16131.  
  16132.  
  16133.  
  16134.  
  16135.   template<typename _CharT, typename _Traits>
  16136.     basic_istream<_CharT, _Traits>&
  16137.     basic_istream<_CharT, _Traits>::
  16138.     ignore(void)
  16139.     {
  16140.       _M_gcount = 0;
  16141.       sentry __cerb(*this, true);
  16142.       if (__cerb)
  16143.  {
  16144.    ios_base::iostate __err = ios_base::goodbit;
  16145.    try
  16146.      {
  16147.        const int_type __eof = traits_type::eof();
  16148.        __streambuf_type* __sb = this->rdbuf();
  16149.  
  16150.        if (traits_type::eq_int_type(__sb->sbumpc(), __eof))
  16151.   __err |= ios_base::eofbit;
  16152.        else
  16153.   _M_gcount = 1;
  16154.      }
  16155.    catch(__cxxabiv1::__forced_unwind&)
  16156.      {
  16157.        this->_M_setstate(ios_base::badbit);
  16158.        throw;
  16159.      }
  16160.    catch(...)
  16161.      { this->_M_setstate(ios_base::badbit); }
  16162.    if (__err)
  16163.      this->setstate(__err);
  16164.  }
  16165.       return *this;
  16166.     }
  16167.  
  16168.   template<typename _CharT, typename _Traits>
  16169.     basic_istream<_CharT, _Traits>&
  16170.     basic_istream<_CharT, _Traits>::
  16171.     ignore(streamsize __n)
  16172.     {
  16173.       _M_gcount = 0;
  16174.       sentry __cerb(*this, true);
  16175.       if (__cerb && __n > 0)
  16176.         {
  16177.           ios_base::iostate __err = ios_base::goodbit;
  16178.           try
  16179.             {
  16180.               const int_type __eof = traits_type::eof();
  16181.               __streambuf_type* __sb = this->rdbuf();
  16182.               int_type __c = __sb->sgetc();
  16183. # 513 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/bits/istream.tcc" 3
  16184.        bool __large_ignore = false;
  16185.        while (true)
  16186.   {
  16187.     while (_M_gcount < __n
  16188.     && !traits_type::eq_int_type(__c, __eof))
  16189.       {
  16190.         ++_M_gcount;
  16191.         __c = __sb->snextc();
  16192.       }
  16193.     if (__n == __gnu_cxx::__numeric_traits<streamsize>::__max
  16194.         && !traits_type::eq_int_type(__c, __eof))
  16195.       {
  16196.         _M_gcount =
  16197.    __gnu_cxx::__numeric_traits<streamsize>::__min;
  16198.         __large_ignore = true;
  16199.       }
  16200.     else
  16201.       break;
  16202.   }
  16203.  
  16204.        if (__large_ignore)
  16205.   _M_gcount = __gnu_cxx::__numeric_traits<streamsize>::__max;
  16206.  
  16207.        if (traits_type::eq_int_type(__c, __eof))
  16208.                 __err |= ios_base::eofbit;
  16209.             }
  16210.    catch(__cxxabiv1::__forced_unwind&)
  16211.      {
  16212.        this->_M_setstate(ios_base::badbit);
  16213.        throw;
  16214.      }
  16215.           catch(...)
  16216.             { this->_M_setstate(ios_base::badbit); }
  16217.           if (__err)
  16218.             this->setstate(__err);
  16219.         }
  16220.       return *this;
  16221.     }
  16222.  
  16223.   template<typename _CharT, typename _Traits>
  16224.     basic_istream<_CharT, _Traits>&
  16225.     basic_istream<_CharT, _Traits>::
  16226.     ignore(streamsize __n, int_type __delim)
  16227.     {
  16228.       _M_gcount = 0;
  16229.       sentry __cerb(*this, true);
  16230.       if (__cerb && __n > 0)
  16231.         {
  16232.           ios_base::iostate __err = ios_base::goodbit;
  16233.           try
  16234.             {
  16235.               const int_type __eof = traits_type::eof();
  16236.               __streambuf_type* __sb = this->rdbuf();
  16237.               int_type __c = __sb->sgetc();
  16238.  
  16239.  
  16240.        bool __large_ignore = false;
  16241.        while (true)
  16242.   {
  16243.     while (_M_gcount < __n
  16244.     && !traits_type::eq_int_type(__c, __eof)
  16245.     && !traits_type::eq_int_type(__c, __delim))
  16246.       {
  16247.         ++_M_gcount;
  16248.         __c = __sb->snextc();
  16249.       }
  16250.     if (__n == __gnu_cxx::__numeric_traits<streamsize>::__max
  16251.         && !traits_type::eq_int_type(__c, __eof)
  16252.         && !traits_type::eq_int_type(__c, __delim))
  16253.       {
  16254.         _M_gcount =
  16255.    __gnu_cxx::__numeric_traits<streamsize>::__min;
  16256.         __large_ignore = true;
  16257.       }
  16258.     else
  16259.       break;
  16260.   }
  16261.  
  16262.        if (__large_ignore)
  16263.   _M_gcount = __gnu_cxx::__numeric_traits<streamsize>::__max;
  16264.  
  16265.               if (traits_type::eq_int_type(__c, __eof))
  16266.                 __err |= ios_base::eofbit;
  16267.        else if (traits_type::eq_int_type(__c, __delim))
  16268.   {
  16269.     if (_M_gcount
  16270.         < __gnu_cxx::__numeric_traits<streamsize>::__max)
  16271.       ++_M_gcount;
  16272.     __sb->sbumpc();
  16273.   }
  16274.             }
  16275.    catch(__cxxabiv1::__forced_unwind&)
  16276.      {
  16277.        this->_M_setstate(ios_base::badbit);
  16278.        throw;
  16279.      }
  16280.           catch(...)
  16281.             { this->_M_setstate(ios_base::badbit); }
  16282.           if (__err)
  16283.             this->setstate(__err);
  16284.         }
  16285.       return *this;
  16286.     }
  16287.  
  16288.   template<typename _CharT, typename _Traits>
  16289.     typename basic_istream<_CharT, _Traits>::int_type
  16290.     basic_istream<_CharT, _Traits>::
  16291.     peek(void)
  16292.     {
  16293.       int_type __c = traits_type::eof();
  16294.       _M_gcount = 0;
  16295.       sentry __cerb(*this, true);
  16296.       if (__cerb)
  16297.  {
  16298.    ios_base::iostate __err = ios_base::goodbit;
  16299.    try
  16300.      {
  16301.        __c = this->rdbuf()->sgetc();
  16302.        if (traits_type::eq_int_type(__c, traits_type::eof()))
  16303.   __err |= ios_base::eofbit;
  16304.      }
  16305.    catch(__cxxabiv1::__forced_unwind&)
  16306.      {
  16307.        this->_M_setstate(ios_base::badbit);
  16308.        throw;
  16309.      }
  16310.    catch(...)
  16311.      { this->_M_setstate(ios_base::badbit); }
  16312.    if (__err)
  16313.      this->setstate(__err);
  16314.  }
  16315.       return __c;
  16316.     }
  16317.  
  16318.   template<typename _CharT, typename _Traits>
  16319.     basic_istream<_CharT, _Traits>&
  16320.     basic_istream<_CharT, _Traits>::
  16321.     read(char_type* __s, streamsize __n)
  16322.     {
  16323.       _M_gcount = 0;
  16324.       sentry __cerb(*this, true);
  16325.       if (__cerb)
  16326.  {
  16327.    ios_base::iostate __err = ios_base::goodbit;
  16328.    try
  16329.      {
  16330.        _M_gcount = this->rdbuf()->sgetn(__s, __n);
  16331.        if (_M_gcount != __n)
  16332.   __err |= (ios_base::eofbit | ios_base::failbit);
  16333.      }
  16334.    catch(__cxxabiv1::__forced_unwind&)
  16335.      {
  16336.        this->_M_setstate(ios_base::badbit);
  16337.        throw;
  16338.      }
  16339.    catch(...)
  16340.      { this->_M_setstate(ios_base::badbit); }
  16341.    if (__err)
  16342.      this->setstate(__err);
  16343.  }
  16344.       return *this;
  16345.     }
  16346.  
  16347.   template<typename _CharT, typename _Traits>
  16348.     streamsize
  16349.     basic_istream<_CharT, _Traits>::
  16350.     readsome(char_type* __s, streamsize __n)
  16351.     {
  16352.       _M_gcount = 0;
  16353.       sentry __cerb(*this, true);
  16354.       if (__cerb)
  16355.  {
  16356.    ios_base::iostate __err = ios_base::goodbit;
  16357.    try
  16358.      {
  16359.  
  16360.        const streamsize __num = this->rdbuf()->in_avail();
  16361.        if (__num > 0)
  16362.   _M_gcount = this->rdbuf()->sgetn(__s, std::min(__num, __n));
  16363.        else if (__num == -1)
  16364.   __err |= ios_base::eofbit;
  16365.      }
  16366.    catch(__cxxabiv1::__forced_unwind&)
  16367.      {
  16368.        this->_M_setstate(ios_base::badbit);
  16369.        throw;
  16370.      }
  16371.    catch(...)
  16372.      { this->_M_setstate(ios_base::badbit); }
  16373.    if (__err)
  16374.      this->setstate(__err);
  16375.  }
  16376.       return _M_gcount;
  16377.     }
  16378.  
  16379.   template<typename _CharT, typename _Traits>
  16380.     basic_istream<_CharT, _Traits>&
  16381.     basic_istream<_CharT, _Traits>::
  16382.     putback(char_type __c)
  16383.     {
  16384.  
  16385.  
  16386.       _M_gcount = 0;
  16387.  
  16388.       this->clear(this->rdstate() & ~ios_base::eofbit);
  16389.       sentry __cerb(*this, true);
  16390.       if (__cerb)
  16391.  {
  16392.    ios_base::iostate __err = ios_base::goodbit;
  16393.    try
  16394.      {
  16395.        const int_type __eof = traits_type::eof();
  16396.        __streambuf_type* __sb = this->rdbuf();
  16397.        if (!__sb
  16398.     || traits_type::eq_int_type(__sb->sputbackc(__c), __eof))
  16399.   __err |= ios_base::badbit;
  16400.      }
  16401.    catch(__cxxabiv1::__forced_unwind&)
  16402.      {
  16403.        this->_M_setstate(ios_base::badbit);
  16404.        throw;
  16405.      }
  16406.    catch(...)
  16407.      { this->_M_setstate(ios_base::badbit); }
  16408.    if (__err)
  16409.      this->setstate(__err);
  16410.  }
  16411.       return *this;
  16412.     }
  16413.  
  16414.   template<typename _CharT, typename _Traits>
  16415.     basic_istream<_CharT, _Traits>&
  16416.     basic_istream<_CharT, _Traits>::
  16417.     unget(void)
  16418.     {
  16419.  
  16420.  
  16421.       _M_gcount = 0;
  16422.  
  16423.       this->clear(this->rdstate() & ~ios_base::eofbit);
  16424.       sentry __cerb(*this, true);
  16425.       if (__cerb)
  16426.  {
  16427.    ios_base::iostate __err = ios_base::goodbit;
  16428.    try
  16429.      {
  16430.        const int_type __eof = traits_type::eof();
  16431.        __streambuf_type* __sb = this->rdbuf();
  16432.        if (!__sb
  16433.     || traits_type::eq_int_type(__sb->sungetc(), __eof))
  16434.   __err |= ios_base::badbit;
  16435.      }
  16436.    catch(__cxxabiv1::__forced_unwind&)
  16437.      {
  16438.        this->_M_setstate(ios_base::badbit);
  16439.        throw;
  16440.      }
  16441.    catch(...)
  16442.      { this->_M_setstate(ios_base::badbit); }
  16443.    if (__err)
  16444.      this->setstate(__err);
  16445.  }
  16446.       return *this;
  16447.     }
  16448.  
  16449.   template<typename _CharT, typename _Traits>
  16450.     int
  16451.     basic_istream<_CharT, _Traits>::
  16452.     sync(void)
  16453.     {
  16454.  
  16455.  
  16456.       int __ret = -1;
  16457.       sentry __cerb(*this, true);
  16458.       if (__cerb)
  16459.  {
  16460.    ios_base::iostate __err = ios_base::goodbit;
  16461.    try
  16462.      {
  16463.        __streambuf_type* __sb = this->rdbuf();
  16464.        if (__sb)
  16465.   {
  16466.     if (__sb->pubsync() == -1)
  16467.       __err |= ios_base::badbit;
  16468.     else
  16469.       __ret = 0;
  16470.   }
  16471.      }
  16472.    catch(__cxxabiv1::__forced_unwind&)
  16473.      {
  16474.        this->_M_setstate(ios_base::badbit);
  16475.        throw;
  16476.      }
  16477.    catch(...)
  16478.      { this->_M_setstate(ios_base::badbit); }
  16479.    if (__err)
  16480.      this->setstate(__err);
  16481.  }
  16482.       return __ret;
  16483.     }
  16484.  
  16485.   template<typename _CharT, typename _Traits>
  16486.     typename basic_istream<_CharT, _Traits>::pos_type
  16487.     basic_istream<_CharT, _Traits>::
  16488.     tellg(void)
  16489.     {
  16490.  
  16491.  
  16492.       pos_type __ret = pos_type(-1);
  16493.       sentry __cerb(*this, true);
  16494.       if (__cerb)
  16495.  {
  16496.    try
  16497.      {
  16498.        if (!this->fail())
  16499.   __ret = this->rdbuf()->pubseekoff(0, ios_base::cur,
  16500.         ios_base::in);
  16501.      }
  16502.    catch(__cxxabiv1::__forced_unwind&)
  16503.      {
  16504.        this->_M_setstate(ios_base::badbit);
  16505.        throw;
  16506.      }
  16507.    catch(...)
  16508.      { this->_M_setstate(ios_base::badbit); }
  16509.  }
  16510.       return __ret;
  16511.     }
  16512.  
  16513.   template<typename _CharT, typename _Traits>
  16514.     basic_istream<_CharT, _Traits>&
  16515.     basic_istream<_CharT, _Traits>::
  16516.     seekg(pos_type __pos)
  16517.     {
  16518.  
  16519.  
  16520.  
  16521.       this->clear(this->rdstate() & ~ios_base::eofbit);
  16522.       sentry __cerb(*this, true);
  16523.       if (__cerb)
  16524.  {
  16525.    ios_base::iostate __err = ios_base::goodbit;
  16526.    try
  16527.      {
  16528.        if (!this->fail())
  16529.   {
  16530.  
  16531.     const pos_type __p = this->rdbuf()->pubseekpos(__pos,
  16532.          ios_base::in);
  16533.  
  16534.  
  16535.     if (__p == pos_type(off_type(-1)))
  16536.       __err |= ios_base::failbit;
  16537.   }
  16538.      }
  16539.    catch(__cxxabiv1::__forced_unwind&)
  16540.      {
  16541.        this->_M_setstate(ios_base::badbit);
  16542.        throw;
  16543.      }
  16544.    catch(...)
  16545.      { this->_M_setstate(ios_base::badbit); }
  16546.    if (__err)
  16547.      this->setstate(__err);
  16548.  }
  16549.       return *this;
  16550.     }
  16551.  
  16552.   template<typename _CharT, typename _Traits>
  16553.     basic_istream<_CharT, _Traits>&
  16554.     basic_istream<_CharT, _Traits>::
  16555.     seekg(off_type __off, ios_base::seekdir __dir)
  16556.     {
  16557.  
  16558.  
  16559.  
  16560.       this->clear(this->rdstate() & ~ios_base::eofbit);
  16561.       sentry __cerb(*this, true);
  16562.       if (__cerb)
  16563.  {
  16564.    ios_base::iostate __err = ios_base::goodbit;
  16565.    try
  16566.      {
  16567.        if (!this->fail())
  16568.   {
  16569.  
  16570.     const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir,
  16571.          ios_base::in);
  16572.  
  16573.  
  16574.     if (__p == pos_type(off_type(-1)))
  16575.       __err |= ios_base::failbit;
  16576.   }
  16577.      }
  16578.    catch(__cxxabiv1::__forced_unwind&)
  16579.      {
  16580.        this->_M_setstate(ios_base::badbit);
  16581.        throw;
  16582.      }
  16583.    catch(...)
  16584.      { this->_M_setstate(ios_base::badbit); }
  16585.    if (__err)
  16586.      this->setstate(__err);
  16587.  }
  16588.       return *this;
  16589.     }
  16590.  
  16591.  
  16592.   template<typename _CharT, typename _Traits>
  16593.     basic_istream<_CharT, _Traits>&
  16594.     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c)
  16595.     {
  16596.       typedef basic_istream<_CharT, _Traits> __istream_type;
  16597.       typedef typename __istream_type::int_type __int_type;
  16598.  
  16599.       typename __istream_type::sentry __cerb(__in, false);
  16600.       if (__cerb)
  16601.  {
  16602.    ios_base::iostate __err = ios_base::goodbit;
  16603.    try
  16604.      {
  16605.        const __int_type __cb = __in.rdbuf()->sbumpc();
  16606.        if (!_Traits::eq_int_type(__cb, _Traits::eof()))
  16607.   __c = _Traits::to_char_type(__cb);
  16608.        else
  16609.   __err |= (ios_base::eofbit | ios_base::failbit);
  16610.      }
  16611.    catch(__cxxabiv1::__forced_unwind&)
  16612.      {
  16613.        __in._M_setstate(ios_base::badbit);
  16614.        throw;
  16615.      }
  16616.    catch(...)
  16617.      { __in._M_setstate(ios_base::badbit); }
  16618.    if (__err)
  16619.      __in.setstate(__err);
  16620.  }
  16621.       return __in;
  16622.     }
  16623.  
  16624.   template<typename _CharT, typename _Traits>
  16625.     basic_istream<_CharT, _Traits>&
  16626.     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s)
  16627.     {
  16628.       typedef basic_istream<_CharT, _Traits> __istream_type;
  16629.       typedef basic_streambuf<_CharT, _Traits> __streambuf_type;
  16630.       typedef typename _Traits::int_type int_type;
  16631.       typedef _CharT char_type;
  16632.       typedef ctype<_CharT> __ctype_type;
  16633.  
  16634.       streamsize __extracted = 0;
  16635.       ios_base::iostate __err = ios_base::goodbit;
  16636.       typename __istream_type::sentry __cerb(__in, false);
  16637.       if (__cerb)
  16638.  {
  16639.    try
  16640.      {
  16641.  
  16642.        streamsize __num = __in.width();
  16643.        if (__num <= 0)
  16644.   __num = __gnu_cxx::__numeric_traits<streamsize>::__max;
  16645.  
  16646.        const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc());
  16647.  
  16648.        const int_type __eof = _Traits::eof();
  16649.        __streambuf_type* __sb = __in.rdbuf();
  16650.        int_type __c = __sb->sgetc();
  16651.  
  16652.        while (__extracted < __num - 1
  16653.        && !_Traits::eq_int_type(__c, __eof)
  16654.        && !__ct.is(ctype_base::space,
  16655.      _Traits::to_char_type(__c)))
  16656.   {
  16657.     *__s++ = _Traits::to_char_type(__c);
  16658.     ++__extracted;
  16659.     __c = __sb->snextc();
  16660.   }
  16661.        if (_Traits::eq_int_type(__c, __eof))
  16662.   __err |= ios_base::eofbit;
  16663.  
  16664.  
  16665.  
  16666.        *__s = char_type();
  16667.        __in.width(0);
  16668.      }
  16669.    catch(__cxxabiv1::__forced_unwind&)
  16670.      {
  16671.        __in._M_setstate(ios_base::badbit);
  16672.        throw;
  16673.      }
  16674.    catch(...)
  16675.      { __in._M_setstate(ios_base::badbit); }
  16676.  }
  16677.       if (!__extracted)
  16678.  __err |= ios_base::failbit;
  16679.       if (__err)
  16680.  __in.setstate(__err);
  16681.       return __in;
  16682.     }
  16683.  
  16684.  
  16685.   template<typename _CharT, typename _Traits>
  16686.     basic_istream<_CharT, _Traits>&
  16687.     ws(basic_istream<_CharT, _Traits>& __in)
  16688.     {
  16689.       typedef basic_istream<_CharT, _Traits> __istream_type;
  16690.       typedef basic_streambuf<_CharT, _Traits> __streambuf_type;
  16691.       typedef typename __istream_type::int_type __int_type;
  16692.       typedef ctype<_CharT> __ctype_type;
  16693.  
  16694.       const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc());
  16695.       const __int_type __eof = _Traits::eof();
  16696.       __streambuf_type* __sb = __in.rdbuf();
  16697.       __int_type __c = __sb->sgetc();
  16698.  
  16699.       while (!_Traits::eq_int_type(__c, __eof)
  16700.       && __ct.is(ctype_base::space, _Traits::to_char_type(__c)))
  16701.  __c = __sb->snextc();
  16702.  
  16703.        if (_Traits::eq_int_type(__c, __eof))
  16704.   __in.setstate(ios_base::eofbit);
  16705.       return __in;
  16706.     }
  16707.  
  16708.  
  16709.  
  16710.  
  16711.   extern template class basic_istream<char>;
  16712.   extern template istream& ws(istream&);
  16713.   extern template istream& operator>>(istream&, char&);
  16714.   extern template istream& operator>>(istream&, char*);
  16715.   extern template istream& operator>>(istream&, unsigned char&);
  16716.   extern template istream& operator>>(istream&, signed char&);
  16717.   extern template istream& operator>>(istream&, unsigned char*);
  16718.   extern template istream& operator>>(istream&, signed char*);
  16719.  
  16720.   extern template istream& istream::_M_extract(unsigned short&);
  16721.   extern template istream& istream::_M_extract(unsigned int&);
  16722.   extern template istream& istream::_M_extract(long&);
  16723.   extern template istream& istream::_M_extract(unsigned long&);
  16724.   extern template istream& istream::_M_extract(bool&);
  16725.  
  16726.   extern template istream& istream::_M_extract(long long&);
  16727.   extern template istream& istream::_M_extract(unsigned long long&);
  16728.  
  16729.   extern template istream& istream::_M_extract(float&);
  16730.   extern template istream& istream::_M_extract(double&);
  16731.   extern template istream& istream::_M_extract(long double&);
  16732.   extern template istream& istream::_M_extract(void*&);
  16733.  
  16734.   extern template class basic_iostream<char>;
  16735.  
  16736.  
  16737.   extern template class basic_istream<wchar_t>;
  16738.   extern template wistream& ws(wistream&);
  16739.   extern template wistream& operator>>(wistream&, wchar_t&);
  16740.   extern template wistream& operator>>(wistream&, wchar_t*);
  16741.  
  16742.   extern template wistream& wistream::_M_extract(unsigned short&);
  16743.   extern template wistream& wistream::_M_extract(unsigned int&);
  16744.   extern template wistream& wistream::_M_extract(long&);
  16745.   extern template wistream& wistream::_M_extract(unsigned long&);
  16746.   extern template wistream& wistream::_M_extract(bool&);
  16747.  
  16748.   extern template wistream& wistream::_M_extract(long long&);
  16749.   extern template wistream& wistream::_M_extract(unsigned long long&);
  16750.  
  16751.   extern template wistream& wistream::_M_extract(float&);
  16752.   extern template wistream& wistream::_M_extract(double&);
  16753.   extern template wistream& wistream::_M_extract(long double&);
  16754.   extern template wistream& wistream::_M_extract(void*&);
  16755.  
  16756.   extern template class basic_iostream<wchar_t>;
  16757.  
  16758.  
  16759.  
  16760.  
  16761. }
  16762. # 880 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/istream" 2 3
  16763. # 41 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/iostream" 2 3
  16764.  
  16765. namespace std
  16766. {
  16767.  
  16768. # 60 "/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/include/c++/iostream" 3
  16769.   extern istream cin;
  16770.   extern ostream cout;
  16771.   extern ostream cerr;
  16772.   extern ostream clog;
  16773.  
  16774.  
  16775.   extern wistream wcin;
  16776.   extern wostream wcout;
  16777.   extern wostream wcerr;
  16778.   extern wostream wclog;
  16779.  
  16780.  
  16781.  
  16782.  
  16783.   static ios_base::Init __ioinit;
  16784.  
  16785.  
  16786. }
  16787. # 2 "tst.cpp" 2
  16788.  long double operator "" 04(long double V) { return V; }
  16789.  
  16790. int main(int argc, char** argv) {
  16791.  
  16792.     long double t = 4.0_N;
  16793.  
  16794.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement