Subject: bug#19320: closed (Re: [PATCH] Re-enable SIGIO when waiting for events)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 30 Jul 2015 18:50:09 +0000

Your bug report

#16737: 24.4; pselect wrapping around, temporarily hanging emacs

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
16737: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16737
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: [PATCH] Re-enable SIGIO when waiting for events
From: Tassilo Horn <[email-masked]>
To: Mike Crowe <[email-masked]>
Cc: Paul Eggert <[email-masked]>, [email-masked], Emacs Development <[email-masked]>
Date: Thu, 30 Jul 2015 20:49:04 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Mike Crowe <[email-masked]> writes:

>> > Thanks for checking.  I installed a similar patch as Emacs master
>> > commit 0592cefd03f1de2f04b721d07a16e6e0a9e48f73; could you please
>> > give it a try?  It is like Mike Crowe's patch, except it avoids a
>> > race that could lose SIGIOs.  I'll also send a heads-up email to
>> > the relevant bug reports.
>> 
>> I prefer your version and will switch to testing it instead.
>
> I've been testing with 0592cefd03f1de2f04b721d07a16e6e0a9e48f73
> applied to Debian Jessie's emacs24 (24.4+1-5) for over a week now
> without seeing any problems so I think we can call the bug fixed.

And I run the git head updating daily, and the issue didn't occur to me
since that commit whereas it bit me several times a day before.  So I
can confirm that it's fixed (as multiple other already did in the
debbugs issue), so I close it with this mail.

Thanks!
Tassilo

Subject: 24.4; pselect wrapping around, temporarily hanging emacs
From: Mitchel Humpherys <[email-masked]>
To: [email-masked]
Date: Mon, 08 Dec 2014 17:24:47 -0800
List-Id: <debbugs-submit.debbugs.gnu.org>

Somehow I get into a state where every time I paste from my system
clipboard, Emacs hangs for 10 to 15 seconds.  I was able to strace it
and it looks like the pselect system call is being called with an
argument that is underflowing and wrapping around from 0.  Here's a
snippet of my strace log during one of the hangs:

--8<---------------cut here---------------start------------->8---
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 2249908}, {NULL, 8}) = 2 (in [5 8], left {0, 2249078})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 2226975}, {NULL, 8}) = 2 (in [5 8], left {0, 2226124})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 2203876}, {NULL, 8}) = 2 (in [5 8], left {0, 2203030})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 2180900}, {NULL, 8}) = 2 (in [5 8], left {0, 2180069})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 2157896}, {NULL, 8}) = 2 (in [5 8], left {0, 2157068})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 2135015}, {NULL, 8}) = 2 (in [5 8], left {0, 2134186})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 2112208}, {NULL, 8}) = 2 (in [5 8], left {0, 2111377})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 2089309}, {NULL, 8}) = 2 (in [5 8], left {0, 2088459})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 2066478}, {NULL, 8}) = 2 (in [5 8], left {0, 2065654})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 735812}, {NULL, 8}) = 2 (in [5 8], left {0, 734934})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 706338}, {NULL, 8}) = 2 (in [5 8], left {0, 705418})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 675107}, {NULL, 8}) = 2 (in [5 8], left {0, 674272})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 652258}, {NULL, 8}) = 2 (in [5 8], left {0, 651423})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 629372}, {NULL, 8}) = 2 (in [5 8], left {0, 628537})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 606574}, {NULL, 8}) = 2 (in [5 8], left {0, 605753})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 583623}, {NULL, 8}) = 2 (in [5 8], left {0, 582786})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 560983}, {NULL, 8}) = 2 (in [5 8], left {0, 560155})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 538078}, {NULL, 8}) = 2 (in [5 8], left {0, 537232})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 515332}, {NULL, 8}) = 2 (in [5 8], left {0, 514509})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 492366}, {NULL, 8}) = 2 (in [5 8], left {0, 491523})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 469592}, {NULL, 8}) = 2 (in [5 8], left {0, 468733})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 446714}, {NULL, 8}) = 2 (in [5 8], left {0, 445886})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 423843}, {NULL, 8}) = 2 (in [5 8], left {0, 422993})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 400970}, {NULL, 8}) = 2 (in [5 8], left {0, 400140})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 378188}, {NULL, 8}) = 2 (in [5 8], left {0, 377346})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 355282}, {NULL, 8}) = 2 (in [5 8], left {0, 354449})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 332527}, {NULL, 8}) = 2 (in [5 8], left {0, 331684})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 309718}, {NULL, 8}) = 2 (in [5 8], left {0, 308882})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 286990}, {NULL, 8}) = 2 (in [5 8], left {0, 286164})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 264198}, {NULL, 8}) = 2 (in [5 8], left {0, 263375})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 241553}, {NULL, 8}) = 2 (in [5 8], left {0, 240711})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 218903}, {NULL, 8}) = 2 (in [5 8], left {0, 218059})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 196096}, {NULL, 8}) = 2 (in [5 8], left {0, 195249})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 173226}, {NULL, 8}) = 2 (in [5 8], left {0, 172404})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 150506}, {NULL, 8}) = 2 (in [5 8], left {0, 149624})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 127742}, {NULL, 8}) = 2 (in [5 8], left {0, 126911})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 105092}, {NULL, 8}) = 2 (in [5 8], left {0, 104268})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 82220}, {NULL, 8}) = 2 (in [5 8], left {0, 81373})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 59277}, {NULL, 8}) = 2 (in [5 8], left {0, 58428})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 36530}, {NULL, 8}) = 2 (in [5 8], left {0, 35674})
pselect6(33, [5 7 8 11 13 14 15 18 19 32], NULL, NULL, {0, 13674}, {NULL, 8}) = 2 (in [5 8], left {0, 12842})
recvmsg(8, {msg_name(0)=NULL, msg_iov(1)=[{"U\2\232\200\2\211+\25\3\30\10\0\20\0\0\0\0\0\0\30\30\30\30\30\0\0\3\37@\2\
0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 3232
recvmsg(8, 0x7ffff5287ee0, 0)           = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=8, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=8, revents=POLLOUT}])
writev(8, [{"+\32\1\0", 4}, {NULL, 0}, {"", 0}], 3) = 4
poll([{fd=8, events=POLLIN}], 1, 4294967295) = 1 ([{fd=8, revents=POLLIN}])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
recvmsg(8, {msg_name(0)=NULL, msg_iov(1)=[{"\1\1\233\200\0\0\0\0o\0\340\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 40
96}], msg_controllen=0, msg_flags=0}, 0) = 32
recvmsg(8, 0x7ffff5287e90, 0)           = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(8, 0x7ffff5287e90, 0)           = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=8, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=8, revents=POLLOUT}])
writev(8, [{"+\32\1\0", 4}, {NULL, 0}, {"", 0}], 3) = 4
poll([{fd=8, events=POLLIN}], 1, 4294967295) = 1 ([{fd=8, revents=POLLIN}])
--- SIGIO {si_signo=SIGIO, si_code=SI_KERNEL} ---
--8<---------------cut here---------------end--------------->8---

Emacs is not crashing but I was able to break in gdb during the error
condition and get a stack trace:

--8<---------------cut here---------------start------------->8---
(gdb) where 
#0  0x00007fefe41855dc in pselect () from /usr/lib/libc.so.6
#1  0x00000000005cb8cb in xg_select (fds_lim=33, rfds=rfds@entry=0x7ffff5287fc0, wfds=<optimized out>, 
    efds=efds@entry=0x0, timeout=timeout@entry=0x7ffff5287fb0, sigmask=sigmask@entry=0x0) at xgselect.c:105
#2  0x0000000000592196 in wait_reading_process_output (time_limit=<optimized out>, nsecs=0, read_kbd=0, 
    do_display=false, wait_for_cell=12782918, wait_proc=0x0, just_wait_proc=0) at process.c:4606
#3  0x00000000004ce839 in x_get_foreign_selection (selection_symbol=33, target_type=12848610, time_stamp=12539762, 
    frame=-1) at xselect.c:1237
#4  0x00000000005560ea in Ffuncall (nargs=<optimized out>, args=args@entry=0x7ffff52882f8) at eval.c:2823
#5  0x000000000058a373 in exec_byte_code (bytestr=<optimized out>, vector=10001589, maxdepth=<optimized out>, 
    args_template=<optimized out>, nargs=nargs@entry=0, args=<optimized out>, args@entry=0x0) at bytecode.c:916
#6  0x0000000000555bdf in funcall_lambda (fun=10001461, nargs=nargs@entry=2, 
    arg_vector=arg_vector@entry=0x7ffff52884b0) at eval.c:3045
#7  0x0000000000555f43 in Ffuncall (nargs=3, args=args@entry=0x7ffff52884a8) at eval.c:2873
#8  0x000000000058a373 in exec_byte_code (bytestr=<optimized out>, vector=10394029, maxdepth=<optimized out>, 
    args_template=<optimized out>, nargs=<optimized out>, args=<optimized out>) at bytecode.c:916
#9  0x000000000055551b in eval_sub (form=form@entry=10393950) at eval.c:2188
#10 0x00000000005581c9 in internal_lisp_condition_case (var=<optimized out>, bodyform=10393950, 
    handlers=<optimized out>) at eval.c:1317
#11 0x000000000058b6a7 in exec_byte_code (bytestr=<optimized out>, vector=10393813, maxdepth=<optimized out>, 
    args_template=<optimized out>, nargs=nargs@entry=0, args=<optimized out>, args@entry=0x0) at bytecode.c:1162
#12 0x0000000000555bdf in funcall_lambda (fun=10393741, nargs=nargs@entry=1, 
    arg_vector=arg_vector@entry=0x7ffff5288870) at eval.c:3045
#13 0x0000000000555f43 in Ffuncall (nargs=2, args=args@entry=0x7ffff5288868) at eval.c:2873
#14 0x000000000058a373 in exec_byte_code (bytestr=<optimized out>, vector=10394285, maxdepth=<optimized out>, 
    args_template=<optimized out>, nargs=nargs@entry=0, args=<optimized out>, args@entry=0x0) at bytecode.c:916
#15 0x0000000000555bdf in funcall_lambda (fun=10394213, nargs=nargs@entry=0, 
    arg_vector=arg_vector@entry=0x7ffff5288a00) at eval.c:3045
#16 0x0000000000555f43 in Ffuncall (nargs=1, args=args@entry=0x7ffff52889f8) at eval.c:2873
#17 0x000000000058a373 in exec_byte_code (bytestr=<optimized out>, vector=77742893, maxdepth=<optimized out>, 
    args_template=<optimized out>, nargs=nargs@entry=0, args=<optimized out>, args@entry=0x0) at bytecode.c:916
#18 0x0000000000555bdf in funcall_lambda (fun=77743005, nargs=nargs@entry=2, 
    arg_vector=arg_vector@entry=0x7ffff5288c70) at eval.c:3045
#19 0x0000000000555f43 in Ffuncall (nargs=nargs@entry=3, args=args@entry=0x7ffff5288c68) at eval.c:2873
#20 0x0000000000556ec7 in Fapply (nargs=3, args=0x7ffff5288c68) at eval.c:2298
#21 0x000000000055600a in Ffuncall (nargs=<optimized out>, args=args@entry=0x7ffff5288c60) at eval.c:2793
#22 0x000000000058a373 in exec_byte_code (bytestr=<optimized out>, vector=77734973, maxdepth=<optimized out>, 
    args_template=<optimized out>, nargs=nargs@entry=1, args=<optimized out>, args@entry=0x7ffff5288c60)
    at bytecode.c:916
#23 0x0000000000555c77 in funcall_lambda (fun=16598193, nargs=nargs@entry=1, arg_vector=0x7ffff5288c60, 
    arg_vector@entry=0x7ffff5288da0) at eval.c:2979
#24 0x0000000000555f43 in Ffuncall (nargs=2, args=args@entry=0x7ffff5288d98) at eval.c:2873
#25 0x000000000058a373 in exec_byte_code (bytestr=<optimized out>, vector=9603581, maxdepth=<optimized out>, 
    args_template=<optimized out>, nargs=nargs@entry=1, args=<optimized out>, args@entry=0x7ffff5288d98)
    at bytecode.c:916
#26 0x0000000000555c77 in funcall_lambda (fun=9603545, nargs=nargs@entry=1, arg_vector=0x7ffff5288d98, 
    arg_vector@entry=0x7ffff5288ef8) at eval.c:2979
#27 0x0000000000555f43 in Ffuncall (nargs=nargs@entry=2, args=args@entry=0x7ffff5288ef0) at eval.c:2873
#28 0x0000000000552310 in Fcall_interactively (function=16165330, record_flag=12539762, keys=1) at callint.c:836
#29 0x00000000005560fd in Ffuncall (nargs=<optimized out>, args=args@entry=0x7ffff5289098) at eval.c:2819
#30 0x000000000058a373 in exec_byte_code (bytestr=<optimized out>, vector=9578077, maxdepth=<optimized out>, 
    args_template=<optimized out>, nargs=nargs@entry=1, args=<optimized out>, args@entry=0x7ffff5289098)
    at bytecode.c:916
#31 0x0000000000555c77 in funcall_lambda (fun=9578041, nargs=nargs@entry=1, arg_vector=0x7ffff5289098, 
---Type <return> to continue, or q <return> to quit---
    arg_vector@entry=0x7ffff52891d8) at eval.c:2979
#32 0x0000000000555f43 in Ffuncall (nargs=nargs@entry=2, args=args@entry=0x7ffff52891d0) at eval.c:2873
#33 0x00000000005562fa in call1 (fn=<optimized out>, arg1=<optimized out>) at eval.c:2611
#34 0x00000000004f39bd in command_loop_1 () at keyboard.c:1559
#35 0x0000000000554477 in internal_condition_case (bfun=bfun@entry=0x4f3630 <command_loop_1>, 
    handlers=<optimized out>, hfun=hfun@entry=0x4eaa10 <cmd_error>) at eval.c:1348
#36 0x00000000004e618e in command_loop_2 (ignore=ignore@entry=12539762) at keyboard.c:1177
#37 0x000000000055435b in internal_catch (tag=12586850, func=func@entry=0x4e6170 <command_loop_2>, arg=12539762)
    at eval.c:1112
#38 0x00000000004ea627 in command_loop () at keyboard.c:1156
#39 recursive_edit_1 () at keyboard.c:777
#40 0x00000000004ea940 in Frecursive_edit () at keyboard.c:848
#41 0x0000000000417ff9 in main (argc=0, argv=0x7ffff5289568) at emacs.c:1646
--8<---------------cut here---------------end--------------->8---

It only shows up every couple of days so I haven't reproduced it with
`emacs -Q' (since I have to load my customizations in order to be
productive).

In GNU Emacs 24.4.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.14.5)
 of 2014-12-04 on mitchelh-linux
Windowing system distributor `The X.Org Foundation', version 11.0.11602000
System Description:	Arch Linux

Configured using:
 `configure --prefix=/local/mnt/workspace/mitchelh/opt/emacs-24.4'

Important settings:
  value of $LC_COLLATE: en_US.UTF-8
  value of $LC_CTYPE: en_US.utf8
  value of $LC_MESSAGES: en_US.UTF-8
  value of $LC_MONETARY: en_US.UTF-8
  value of $LC_NUMERIC: en_US.UTF-8
  value of $LC_TIME: en_US.UTF-8
  value of $LANG: en_US.utf8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Group

Minor modes in effect:
  recentf-mode: t
  erc-list-mode: t
  erc-menu-mode: t
  erc-autojoin-mode: t
  erc-ring-mode: t
  erc-networks-mode: t
  erc-pcomplete-mode: t
  erc-track-mode: t
  erc-match-mode: t
  erc-button-mode: t
  erc-fill-mode: t
  erc-stamp-mode: t
  erc-netsplit-mode: t
  erc-irccontrols-mode: t
  erc-noncommands-mode: t
  erc-move-to-prompt-mode: t
  erc-readonly-mode: t
  nyan-mode: t
  savehist-mode: t
  guide-key-mode: t
  global-diff-hl-mode: t
  global-edit-server-edit-mode: t
  google-this-mode: t
  delete-selection-mode: t
  pretty-control-l-mode: t
  textmate-mode: t
  indent-hints-global-mode: t
  autopair-global-mode: t
  display-time-mode: t
  show-paren-mode: t
  which-function-mode: t
  helm-match-plugin-mode: t
  helm-occur-match-plugin-mode: t
  gnus-undo-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  magit-auto-revert-mode: t
  shell-dirtrack-mode: t
  diff-auto-refine-mode: t
  global-auto-revert-mode: t
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
M-x r e p o <tab> r <tab> e m <tab> <return>

Recent messages:
nnimap read 0k from imap.gmail.com (initial sync of 1 group; please wait)
nnimap read 25k from imap.gmail.com (initial sync of 1 group; please wait)
nnimap read 42k from imap.gmail.com (initial sync of 1 group; please wait)
nnimap read 69k from imap.gmail.com (initial sync of 1 group; please wait)
nnimap read 77k from imap.gmail.com (initial sync of 1 group; please wait)
Reading active file from archive via nnfolder...done
Reading active file via nndraft...done
Checking new news...done
Loading /home/mitchelh/.emacs.d/gnus-mitch.special.el (source)...done
Making completion list...

Load-path shadows:
~/.emacs.d/site-lisp/moe-theme.el/moe-theme hides ~/.emacs.d/site-lisp/moe-theme
~/.emacs.d/site-lisp/dash.el/dash hides ~/.emacs.d/site-lisp/dash
~/.emacs.d/site-lisp/ov.el/ov hides ~/.emacs.d/site-lisp/ov
~/.emacs.d/site-lisp/s.el/s hides ~/.emacs.d/site-lisp/s
~/.emacs.d/site-lisp/bat-mode hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/progmodes/bat-mode
~/.emacs.d/site-lisp/org-mode/lisp/org-macs hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-macs
~/.emacs.d/site-lisp/org-mode/lisp/org-datetree hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-datetree
~/.emacs.d/site-lisp/org-mode/lisp/org-agenda hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-agenda
~/.emacs.d/site-lisp/org-mode/lisp/ox-texinfo hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ox-texinfo
~/.emacs.d/site-lisp/org-mode/lisp/ob-ditaa hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-ditaa
~/.emacs.d/site-lisp/org-mode/lisp/org-footnote hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-footnote
~/.emacs.d/site-lisp/org-mode/lisp/ob-ocaml hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-ocaml
~/.emacs.d/site-lisp/org-mode/lisp/ob-js hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-js
~/.emacs.d/site-lisp/org-mode/lisp/ob-css hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-css
~/.emacs.d/site-lisp/org-mode/lisp/ob-screen hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-screen
~/.emacs.d/site-lisp/org-mode/lisp/ob-matlab hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-matlab
~/.emacs.d/site-lisp/org-mode/lisp/ob-tangle hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-tangle
~/.emacs.d/site-lisp/org-mode/lisp/ob-picolisp hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-picolisp
~/.emacs.d/site-lisp/org-mode/lisp/org hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org
~/.emacs.d/site-lisp/org-mode/lisp/ox-icalendar hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ox-icalendar
~/.emacs.d/site-lisp/org-mode/lisp/org-src hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-src
~/.emacs.d/site-lisp/org-mode/lisp/ox-beamer hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ox-beamer
~/.emacs.d/site-lisp/org-mode/lisp/org-colview hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-colview
~/.emacs.d/site-lisp/org-mode/lisp/ob-org hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-org
~/.emacs.d/site-lisp/org-mode/lisp/org-compat hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-compat
~/.emacs.d/site-lisp/org-mode/lisp/ob-eval hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-eval
~/.emacs.d/site-lisp/org-mode/lisp/ob-latex hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-latex
~/.emacs.d/site-lisp/org-mode/lisp/ox-man hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ox-man
~/.emacs.d/site-lisp/org-mode/lisp/ob-makefile hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-makefile
~/.emacs.d/site-lisp/org-mode/lisp/org-plot hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-plot
~/.emacs.d/site-lisp/org-mode/lisp/org-w3m hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-w3m
~/.emacs.d/site-lisp/org-mode/lisp/ob-emacs-lisp hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-emacs-lisp
~/.emacs.d/site-lisp/org-mode/lisp/ox-ascii hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ox-ascii
~/.emacs.d/site-lisp/org-mode/lisp/org-id hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-id
~/.emacs.d/site-lisp/org-mode/lisp/ob-awk hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-awk
~/.emacs.d/site-lisp/org-mode/lisp/org-mobile hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-mobile
~/.emacs.d/site-lisp/org-mode/lisp/org-eshell hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-eshell
~/.emacs.d/site-lisp/org-mode/lisp/ob-asymptote hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-asymptote
~/.emacs.d/site-lisp/org-mode/lisp/ob-ledger hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-ledger
~/.emacs.d/site-lisp/org-mode/lisp/org-list hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-list
~/.emacs.d/site-lisp/org-mode/lisp/org-docview hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-docview
~/.emacs.d/site-lisp/org-mode/lisp/org-table hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-table
~/.emacs.d/site-lisp/org-mode/lisp/org-element hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-element
~/.emacs.d/site-lisp/org-mode/lisp/ob-R hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-R
~/.emacs.d/site-lisp/org-mode/lisp/ob-mscgen hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-mscgen
~/.emacs.d/site-lisp/org-mode/lisp/org-mouse hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-mouse
~/.emacs.d/site-lisp/org-mode/lisp/ob-haskell hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-haskell
~/.emacs.d/site-lisp/org-mode/lisp/org-protocol hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-protocol
~/.emacs.d/site-lisp/org-mode/lisp/org-ctags hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-ctags
~/.emacs.d/site-lisp/org-mode/lisp/org-timer hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-timer
~/.emacs.d/site-lisp/org-mode/lisp/ob-scheme hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-scheme
~/.emacs.d/site-lisp/org-mode/lisp/ob-fortran hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-fortran
~/.emacs.d/site-lisp/org-mode/lisp/org-feed hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-feed
~/.emacs.d/site-lisp/org-mode/lisp/ob-exp hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-exp
~/.emacs.d/site-lisp/org-mode/lisp/org-info hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-info
~/.emacs.d/site-lisp/org-mode/lisp/ox-odt hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ox-odt
~/.emacs.d/site-lisp/org-mode/lisp/ob-shen hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-shen
~/.emacs.d/site-lisp/org-mode/lisp/ob-sqlite hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-sqlite
~/.emacs.d/site-lisp/org-mode/lisp/org-capture hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-capture
~/.emacs.d/site-lisp/org-mode/lisp/org-rmail hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-rmail
~/.emacs.d/site-lisp/org-mode/lisp/ob-dot hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-dot
~/.emacs.d/site-lisp/org-mode/lisp/ox-publish hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ox-publish
~/.emacs.d/site-lisp/org-mode/lisp/ob-C hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-C
~/.emacs.d/site-lisp/org-mode/lisp/ob-io hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-io
~/.emacs.d/site-lisp/org-mode/lisp/ob-ref hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-ref
~/.emacs.d/site-lisp/org-mode/lisp/org-archive hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-archive
~/.emacs.d/site-lisp/org-mode/lisp/org-faces hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-faces
~/.emacs.d/site-lisp/org-mode/lisp/ox-org hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ox-org
~/.emacs.d/site-lisp/org-mode/lisp/ox hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ox
~/.emacs.d/site-lisp/org-mode/lisp/ob hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob
~/.emacs.d/site-lisp/org-mode/lisp/ox-md hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ox-md
~/.emacs.d/site-lisp/org-mode/lisp/org-gnus hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-gnus
~/.emacs.d/site-lisp/org-mode/lisp/ox-html hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ox-html
~/.emacs.d/site-lisp/org-mode/lisp/ob-ruby hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-ruby
~/.emacs.d/site-lisp/org-mode/lisp/org-entities hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-entities
~/.emacs.d/site-lisp/org-mode/lisp/ob-comint hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-comint
~/.emacs.d/site-lisp/org-mode/lisp/org-attach hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-attach
~/.emacs.d/site-lisp/org-mode/lisp/org-bbdb hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-bbdb
~/.emacs.d/site-lisp/org-mode/lisp/org-clock hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-clock
~/.emacs.d/site-lisp/org-mode/lisp/org-mhe hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-mhe
~/.emacs.d/site-lisp/org-mode/lisp/org-crypt hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-crypt
~/.emacs.d/site-lisp/org-mode/lisp/org-habit hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-habit
~/.emacs.d/site-lisp/org-mode/lisp/ob-lob hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-lob
~/.emacs.d/site-lisp/org-mode/lisp/ob-scala hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-scala
~/.emacs.d/site-lisp/org-mode/lisp/ob-table hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-table
~/.emacs.d/site-lisp/org-mode/lisp/ob-clojure hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-clojure
~/.emacs.d/site-lisp/org-mode/lisp/org-inlinetask hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-inlinetask
~/.emacs.d/site-lisp/org-mode/lisp/ob-python hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-python
~/.emacs.d/site-lisp/org-mode/lisp/ob-core hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-core
~/.emacs.d/site-lisp/org-mode/lisp/ob-java hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-java
~/.emacs.d/site-lisp/org-mode/lisp/ob-keys hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-keys
~/.emacs.d/site-lisp/org-mode/lisp/org-indent hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-indent
~/.emacs.d/site-lisp/org-mode/lisp/ob-octave hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-octave
~/.emacs.d/site-lisp/org-mode/lisp/ob-perl hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-perl
~/.emacs.d/site-lisp/org-mode/lisp/ox-latex hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ox-latex
~/.emacs.d/site-lisp/org-mode/lisp/ob-gnuplot hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-gnuplot
~/.emacs.d/site-lisp/org-mode/lisp/ob-lilypond hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-lilypond
~/.emacs.d/site-lisp/org-mode/lisp/org-irc hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-irc
~/.emacs.d/site-lisp/org-mode/lisp/org-bibtex hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-bibtex
~/.emacs.d/site-lisp/org-mode/lisp/ob-calc hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-calc
~/.emacs.d/site-lisp/org-mode/lisp/ob-sql hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-sql
~/.emacs.d/site-lisp/org-mode/lisp/ob-sass hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-sass
~/.emacs.d/site-lisp/org-mode/lisp/org-pcomplete hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-pcomplete
~/.emacs.d/site-lisp/org-mode/lisp/ob-maxima hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-maxima
~/.emacs.d/site-lisp/org-mode/lisp/ob-plantuml hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-plantuml
~/.emacs.d/site-lisp/org-mode/lisp/org-macro hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-macro
~/.emacs.d/site-lisp/org-mode/lisp/ob-lisp hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/ob-lisp
~/.emacs.d/site-lisp/org-mode/lisp/org-loaddefs hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-loaddefs
~/.emacs.d/site-lisp/org-mode/lisp/org-version hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-version
~/.emacs.d/site-lisp/org-mode/lisp/org-install hides /local/mnt/workspace/mitchelh/opt/emacs-24.4/share/emacs/24.4/lisp/org/org-install

Features:
(shadow sort mail-extr emacsbug sendmail nndraft nnmh nnfolder utf-7
network-stream starttls nnimap parse-time utf7 netrc gnus-agent
gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art mm-uu
mml2015 mm-view mml-smime smime dig nntp gnus-cache
gnus-article-treat-patch flymake smart-mode-line-dark-theme footnote
dockerfile-mode sh-script smie executable recentf tree-widget numbers
calc-bin calc-ext calc calc-loaddefs calc-macs jumbobuffer dts-mode
erc-hl-nicks color erc-list erc-menu erc-join erc-ring erc-networks
erc-pcomplete erc-track erc-match erc-button erc-fill erc-stamp
erc-netsplit erc-goodies erc erc-backend erc-compat rainbow-delimiters
ov info ace-link noflet cl-indent nyan-mode phi-search phi-search-core
multiple-cursors mc-hide-unmatched-lines-mode mc-separate-operations
rectangular-region-mode mc-mark-pop mc-mark-more mc-cycle-cursors
mc-edit-lines multiple-cursors-core web-mode-expansions web-mode
savehist jade-mode sws-mode flyspell ispell ack-and-a-half guide-key
popwin diff-hl face-remap vc-hg vc-git vc-dir ewoc transpose-frame
rich-minority smart-mode-line mule-util litable jedi python-environment
epc ctable concurrent deferred wgrep-ack highlight-symbol edit-server
google-this delsel expand-region text-mode-expansions
the-org-mode-expansions er-basic-expansions expand-region-core
expand-region-custom diffview kernel-stack-trace-mode thinks boxquote
rect lorem-ipsum auto-complete-config auto-complete popup gthings
gnus-notify doc-view jka-compr image-mode disp-table pp-c-l
browse-kill-ring whitespace tbemail one-key auto-install jump-char gist
gh-gist gh-oauth gh-api logito gh-cache pcache gh-auth gh-common gh-url
url-http tls url-auth url-gw gh-profile timezone eieio-base wombat-theme
textmate ace-jump-mode indent-hints autopair rfcview no-word iedit
help-macro iedit-lib time paren helm-gtags pulse which-func imenu
helm-gnu-global helm-swoop warnings helm-ls-git helm-files rx
image-dired dired-aux ffap helm-buffers helm-elscreen helm-tags
helm-bookmark helm-adaptive helm-info helm-net browse-url url url-proxy
url-privacy url-expand url-methods url-history url-cookie url-domsuf
url-util url-parse url-vars mailcap bookmark pp helm-locate helm-help
helm-match-plugin helm-grep wgrep-helm wgrep helm-regexp helm-plugin
helm-external helm-utils vc vc-dispatcher helm-config helm-autoloads
helm-aliases ox-reveal ox-latex ox-icalendar ox-html ox-ascii ox-publish
ox org-gnus org-element avl-tree org org-macro org-footnote
org-pcomplete org-list org-faces org-entities noutline outline
org-version ob-emacs-lisp ob ob-tangle ob-ref ob-lob ob-table ob-exp
org-src ob-keys ob-comint ob-core ob-eval org-compat org-macs
org-loaddefs find-func cal-menu calendar cal-loaddefs gnus-sum nnoo
gnus-group gnus-undo nnmail mail-source gnus-start gnus-spec gnus-int
gnus-range gnus-win gnus gnus-ems nnheader wid-edit htmlize yasnippet
gtags helm-qcom-contacts qcom-pidgin dbus xml helm-qcom-dv qcom-ldap
qcom-conf helm helm-source ldap qcom-mount qcom-util qcom-prism qcom-ph
qcom-compile gerrit dash json simple-git magit-key-mode magit package
iswitchb ido esh-var esh-io esh-cmd esh-opt esh-ext esh-proc esh-arg
eldoc esh-groups eshell esh-module esh-mode esh-util ediff-merg
ediff-wind ediff-diff ediff-mult ediff-help ediff-init ediff-util ediff
dired-x dired view tramp tramp-compat auth-source eieio byte-opt
bytecomp byte-compile cconv eieio-core gnus-util password-cache
tramp-loaddefs trampver shell pcomplete advice help-mode grep compile
comint epa epg epg-config diff-mode autorevert filenotify ansi-color
git-rebase-mode git-commit-mode derived edmacro kmacro log-edit
easy-mmode message format-spec rfc822 mml easymenu mml-sec mm-decode
mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums
mm-util help-fns mail-prsvr mailabbrev mail-utils gmm-utils mailheader
ring pcvs-util add-log s ucs-normalize cl-macs subr-x thingatpt cl gv
cl-loaddefs cl-lib server time-date tooltip electric uniquify ediff-hook
vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list newcomment lisp-mode prog-mode register
page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock
font-lock syntax facemenu font-core frame cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew
greek romanian slovak czech european ethiopic indian cyrillic chinese
case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer nadvice
loaddefs button faces cus-face macroexp files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process dbusbind
gfilenotify dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty emacs)

Memory information:
((conses 16 1093429 38052)
 (symbols 48 64745 4)
 (miscs 40 84 193)
 (strings 32 161407 29739)
 (string-bytes 1 5090660)
 (vectors 16 68954)
 (vector-slots 8 1809293 51826)
 (floats 8 936 227)
 (intervals 56 701 31)
 (buffers 960 21)
 (heap 1024 73979 3842))