Package: emacs;
Reported by: Peter Ludemann <peter.ludemann <at> gmail.com>
Date: Tue, 17 Dec 2019 01:25:02 UTC
Severity: normal
Found in version 26.3
Fixed in version 27.1
Done: Michael Albinus <michael.albinus <at> gmx.de>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 38644 in the body.
You can then email your comments to 38644 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-gnu-emacs <at> gnu.org
:bug#38644
; Package emacs
.
(Tue, 17 Dec 2019 01:25:02 GMT) Full text and rfc822 format available.Peter Ludemann <peter.ludemann <at> gmail.com>
:bug-gnu-emacs <at> gnu.org
.
(Tue, 17 Dec 2019 01:25:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Peter Ludemann <peter.ludemann <at> gmail.com> To: bug-gnu-emacs <at> gnu.org Subject: 26.3; emacs uses 100% CPU with auto-revert-mode Date: Mon, 16 Dec 2019 17:23:30 -0800
[Message part 1 (text/plain, inline)]
This problem occurs with emacs 26.3 but didn't occur with 25.x. Possibly related to bug#33194. My hypothesis is that emacs is monitoring some files that it shouldn't but I need some help in figuring out which files are being monitored and whether that is indeed a bug. When I run a CPU-bound job that also does quite a bit of I/O, emacs becomes very unresponsive -- running "top", I see CPU usage for emacs go into the 50-100% range. (Ubuntu 18.04, emacs 26.3 on a 4-CPU machine with SSD disk) The job I'm running is parallel -v --will-cite --keep-order --group -L80 -j8 (the problem does not go away when I change to "-j3") As far as I know, I don't have any of the output files or directories open (I have global-auto-revert-mode set) -- all the outputs go into one directory and when I search the Buffer List, I don't see that directory. I upgraded from emacs 25.3 to 26.3 today, with the same .emacs.desktop, and the problem wasn't showing with emacs 25.3. I double-checked the output of lsof on one of the running CPU processes and again couldn't find anything that matched with the Emacs buffer. However, I did notice that file-name-history did match some. Any suggestions on how to track down what's causing the polling? As I mentioned, this didn't happen with emacs 25.3 with the same files open. It also doesn't happen when I start 26.3 without the .emacs.desktop (that is, with nothing in the Buffer List). "strace -c" emacs when not running the CPU/IO job: % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 31.63 0.009027 3 2950 2534 recvmsg 23.19 0.006618 3 2057 poll 13.38 0.003819 3 1100 rt_sigprocmask 12.10 0.003454 17 209 pselect6 9.17 0.002618 6 466 writev 7.62 0.002174 5 405 rt_sigreturn 1.21 0.000344 57 6 openat 0.37 0.000105 4 30 1 read 0.31 0.000089 3 26 timerfd_settime 0.28 0.000080 11 7 ioctl 0.22 0.000064 64 1 vfork 0.11 0.000032 11 3 fcntl 0.11 0.000030 4 8 close 0.09 0.000026 1 51 9 stat 0.06 0.000017 17 1 pipe2 0.06 0.000016 0 48 11 faccessat 0.04 0.000011 11 1 getuid 0.03 0.000009 5 2 wait4 0.01 0.000003 1 4 write 0.00 0.000000 0 3 fstat 0.00 0.000000 0 3 lseek 0.00 0.000000 0 1 inotify_add_watch 0.00 0.000000 0 1 1 readlinkat ------ ----------- ----------- --------- --------- ---------------- 100.00 0.028536 7383 2556 total "strace -c" emacs when running the CPU/IO job: % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 30.79 0.013978 1 15384 poll 21.05 0.009554 1 15799 12395 recvmsg 19.44 0.008827 1 6538 writev 13.96 0.006339 1 12446 rt_sigprocmask 6.97 0.003162 2 1554 pselect6 2.96 0.001342 0 3108 rt_sigreturn 2.95 0.001338 1 1551 read 1.88 0.000855 1 1551 ioctl 0.00 0.000000 0 10 stat 0.00 0.000000 0 1 restart_syscall 0.00 0.000000 0 10 faccessat ------ ----------- ----------- --------- --------- ---------------- 100.00 0.045395 57952 12395 total "strace -c emacs when running the CPU/IO job without global-auto-revert-mode: % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 37.41 0.001833 1 1860 1576 recvmsg 27.88 0.001366 1 1619 poll 14.78 0.000724 5 142 pselect6 7.43 0.000364 2 201 writev 6.29 0.000308 1 570 rt_sigprocmask 6.06 0.000297 1 318 24 rt_sigreturn 0.08 0.000004 1 6 write 0.06 0.000003 0 8 read 0.02 0.000001 1 2 openat 0.00 0.000000 0 2 close 0.00 0.000000 0 6 3 recvfrom 0.00 0.000000 0 1 1 faccessat ------ ----------- ----------- --------- --------- ---------------- 100.00 0.004900 4735 1604 total In GNU Emacs 26.3 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.22.30) of 2019-09-16 built on lcy01-amd64-030 Windowing system distributor 'The X.Org Foundation', version 11.0.11906000 System Description: Ubuntu 18.04.3 LTS Recent messages: Making completion list... Saving file /tmp/t10.kythe.json-decoded... Wrote /tmp/t10.kythe.json-decoded Quit [5 times] command-execute: Buffer is read-only: #<buffer *Help*> Mark set Quit Mark saved where search started Quit [2 times] Mark saved where search started [2 times] Quit [4 times] Configured using: 'configure --build=x86_64-linux-gnu --prefix=/usr '--includedir=${prefix}/include' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' --sysconfdir=/etc --localstatedir=/var --disable-silent-rules '--libdir=${prefix}/lib/x86_64-linux-gnu' '--libexecdir=${prefix}/lib/x86_64-linux-gnu' --disable-maintainer-mode --disable-dependency-tracking --prefix=/usr --sharedstatedir=/var/lib --program-suffix=26 --with-modules --with-file-notification=inotify --with-mailutils --with-x=yes --with-x-toolkit=gtk3 --with-xwidgets --with-lcms2 'CFLAGS=-g -O2 -fdebug-prefix-map=/build/emacs26-TP6iDo/emacs26-26.3~1.git96dd019=. -fstack-protector-strong -Wformat -Werror=format-security -no-pie' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro -no-pie'' Configured features: XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS GLIB NOTIFY LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS XWIDGETS LIBSYSTEMD LCMS2 Important settings: value of $LC_MONETARY: en_CA.UTF-8 value of $LC_NUMERIC: en_CA.UTF-8 value of $LC_TIME: en_CA.UTF-8 value of $LANG: en_US.UTF-8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix Major mode: GNUmakefile Minor modes in effect: shell-dirtrack-mode: t diff-auto-refine-mode: t global-auto-revert-mode: t show-paren-mode: t display-time-mode: t savehist-mode: t desktop-save-mode: t cl-old-struct-compat-mode: t tooltip-mode: t global-eldoc-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 auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t Load-path shadows: /usr/share/emacs/site-lisp/llvm-6.0/llvm-mode hides /usr/share/emacs/site-lisp/llvm-7/llvm-mode /usr/share/emacs/site-lisp/llvm-6.0/emacs hides /usr/share/emacs/site-lisp/llvm-7/emacs /usr/share/emacs/site-lisp/llvm-6.0/tablegen-mode hides /usr/share/emacs/site-lisp/llvm-7/tablegen-mode /home/peter/.emacs.d/elpa/go-mode-1.5.0/go-mode hides /usr/share/emacs/site-lisp/elpa-src/go-mode-1.5.0/go-mode /home/peter/.emacs.d/elpa/go-mode-1.5.0/go-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/go-mode-1.5.0/go-mode-autoloads /home/peter/.emacs.d/elpa/go-mode-1.5.0/go-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/go-mode-1.5.0/go-mode-pkg /usr/share/emacs/site-lisp/dictionaries-common/flyspell hides /usr/share/emacs/26.3/lisp/textmodes/flyspell /usr/share/emacs/site-lisp/dictionaries-common/ispell hides /usr/share/emacs/26.3/lisp/textmodes/ispell /usr/share/emacs/site-lisp/rst hides /usr/share/emacs/26.3/lisp/textmodes/rst ~/emacs/prolog hides /usr/share/emacs/26.3/lisp/progmodes/prolog /usr/share/emacs/site-lisp/latex-cjk-thai/thai-word hides /usr/share/emacs/26.3/lisp/language/thai-word Features: (shadow mail-extr emacsbug sendmail eieio-opt speedbar sb-image ezimage dframe find-func completion help-fns tabify man novice pulse misearch multi-isearch solarized dash quail inf-haskell haskell-decl-scan haskell haskell-completions haskell-load haskell-commands highlight-uses-mode haskell-modules haskell-sandbox haskell-repl haskell-debug haskell-interactive-mode haskell-presentation-mode haskell-collapse haskell-navigate-imports haskell-compile haskell-process haskell-session haskell-hoogle edmacro kmacro sort autoload radix-tree cl-extra lisp-mnt help-mode mm-archive network-stream starttls url-http tls gnutls url-gw nsm url-cache url-auth vc vc-dispatcher server erlang tempo cl perl-mode asm-mode conf-mode jka-compr add-log rst haskell-mode haskell-cabal haskell-utils haskell-font-lock haskell-indentation haskell-string haskell-sort-imports haskell-lexeme rx haskell-align-imports haskell-compat haskell-complete-module haskell-ghc-support flymake-proc flymake warnings dabbrev haskell-customize go-mode url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap find-file ffap etags xref project sh-script executable tar-mode markdown-mode noutline outline message rmc puny rfc822 mml mml-sec epa derived epg gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader elec-pair mhtml-mode css-mode smie color dired dired-loaddefs make-mode python tramp-sh tramp tramp-compat tramp-loaddefs trampver ucs-normalize parse-time format-spec smerge-mode prolog align shell pcomplete vc-git diff-mode easy-mmode js advice sgml-mode dom json map imenu thingatpt cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs finder-inf info package easymenu epg-config url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache url-vars seq byte-opt gv bytecomp byte-compile cconv autorevert filenotify grep compile comint ansi-color ring cus-start cus-load time-date paren time savehist desktop frameset cl-loaddefs cl-lib mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer cl-preloaded 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 threads dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting xwidget-internal move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 791439 152674) (symbols 48 44537 1) (miscs 40 2000 2396) (strings 32 134121 30613) (string-bytes 1 6691533) (vectors 16 70253) (vector-slots 8 1997947 168512) (floats 8 365 431) (intervals 56 50166 2906) (buffers 992 501))
[Message part 2 (text/html, inline)]
bug-gnu-emacs <at> gnu.org
:bug#38644
; Package emacs
.
(Tue, 17 Dec 2019 14:00:02 GMT) Full text and rfc822 format available.Message #8 received at 38644 <at> debbugs.gnu.org (full text, mbox):
From: Michael Albinus <michael.albinus <at> gmx.de> To: Peter Ludemann <peter.ludemann <at> gmail.com> Cc: 38644 <at> debbugs.gnu.org Subject: Re: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode Date: Tue, 17 Dec 2019 14:59:23 +0100
Peter Ludemann <peter.ludemann <at> gmail.com> writes: Hi Peter, > This problem occurs with emacs 26.3 but didn't occur with 25.x. > Possibly related to bug#33194. That's a good catch. > My hypothesis is that emacs is monitoring some files that it shouldn't > but I need some help in figuring out which files are being monitored > and whether that is indeed a bug. > > When I run a CPU-bound job that also does quite a bit of I/O, emacs > becomes very unresponsive -- running "top", I see CPU usage for emacs > go into the 50-100% range. (Ubuntu 18.04, emacs 26.3 on a 4-CPU > machine with SSD disk) > > The job I'm running is > parallel -v --will-cite --keep-order --group -L80 -j8 > (the problem does not go away when I change to "-j3") You are reading commands from STDIN? Which? > As far as I know, I don't have any of the output files or directories > open (I have global-auto-revert-mode set) -- all the outputs go into > one directory and when I search the Buffer List, I don't see that > directory. It might be the default directory of a buffer not bound to a file. > I upgraded from emacs 25.3 to 26.3 today, with the same . > emacs.desktop, and the problem wasn't showing with emacs 25.3. In bug#33194, a patch for Emacs 27.0.50 is mentioned. Do you have a chance to run this for test? > Any suggestions on how to track down what's causing the polling? As I > mentioned, this didn't happen with emacs 25.3 with the same files > open. It also doesn't happen when I start 26.3 without the > .emacs.desktop (that is, with nothing in the Buffer List). Could you show the contents of .emacs.desktop? What happens if you set auto-revert-use-notify to nil? What's the value of (pp file-notify-descriptors) ? What do you see, if you remove the comment of the message call in file-notify-handle-event (lisp/filenotify.el, line 93)? > "strace -c" emacs when not running the CPU/IO job: > % time seconds usecs/call calls errors syscall > ------ ----------- ----------- --------- --------- ---------------- > 31.63 0.009027 3 2950 2534 recvmsg > 23.19 0.006618 3 2057 poll > 13.38 0.003819 3 1100 rt_sigprocmask > 12.10 0.003454 17 209 pselect6 > 9.17 0.002618 6 466 writev > 7.62 0.002174 5 405 rt_sigreturn > 1.21 0.000344 57 6 openat > 0.37 0.000105 4 30 1 read > 0.31 0.000089 3 26 timerfd_settime > 0.28 0.000080 11 7 ioctl > 0.22 0.000064 64 1 vfork > 0.11 0.000032 11 3 fcntl > 0.11 0.000030 4 8 close > 0.09 0.000026 1 51 9 stat > 0.06 0.000017 17 1 pipe2 > 0.06 0.000016 0 48 11 faccessat > 0.04 0.000011 11 1 getuid > 0.03 0.000009 5 2 wait4 > 0.01 0.000003 1 4 write > 0.00 0.000000 0 3 fstat > 0.00 0.000000 0 3 lseek > 0.00 0.000000 0 1 inotify_add_watch > 0.00 0.000000 0 1 1 readlinkat > ------ ----------- ----------- --------- --------- ---------------- > 100.00 0.028536 7383 2556 total inotify_add_watch is an indication, that file notifications are in place. Best regards, Michael.
bug-gnu-emacs <at> gnu.org
:bug#38644
; Package emacs
.
(Tue, 17 Dec 2019 16:18:01 GMT) Full text and rfc822 format available.Message #11 received at 38644 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Peter Ludemann <peter.ludemann <at> gmail.com> Cc: 38644 <at> debbugs.gnu.org Subject: Re: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode Date: Tue, 17 Dec 2019 18:17:04 +0200
> From: Peter Ludemann <peter.ludemann <at> gmail.com> > Date: Mon, 16 Dec 2019 17:23:30 -0800 > > My hypothesis is that emacs is monitoring some files that it shouldn't Emacs actually monitors the directory of every file whose buffer has auto-revert-mode turned on, if you use file notifications for auto-reverting (which is the default). > When I run a CPU-bound job that also does quite a bit of I/O, emacs > becomes very unresponsive -- running "top", I see CPU usage for emacs go > into the 50-100% range. Does "a bit of I/O" includes creating, deleting, or modifying files in a directory where you have a file whose buffer has auto-revert-mode? > As far as I know, I don't have any of the output files or directories > open (I have global-auto-revert-mode set) -- all the outputs go into one > directory and when I search the Buffer List, I don't see that > directory. Turn off auto-revert-use-notify and try again, would be my advice.
bug-gnu-emacs <at> gnu.org
:bug#38644
; Package emacs
.
(Tue, 17 Dec 2019 18:29:02 GMT) Full text and rfc822 format available.Message #14 received at 38644 <at> debbugs.gnu.org (full text, mbox):
From: Peter Ludemann <peter.ludemann <at> gmail.com> Cc: 38644 <at> debbugs.gnu.org Subject: Re: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode Date: Tue, 17 Dec 2019 10:27:36 -0800
[Message part 1 (text/plain, inline)]
So many questions (thank-you!) ... I'll try to answer them soon (and there are also a few experiments I should try first). But first: I see different versions of this discussion at https://lists.gnu.org/archive/html/bug-gnu-emacs/2018-10/msg00997.html and http://emacs.1067599.n8.nabble.com/bug-33194-26-1-Auto-revert-mode-causes-emacs-to-use-100-cpu-whenever-a-file-is-being-written-to-in-ty-tt468378.html#none (the former has a 2nd thread, which mentions the patch in Emacs 27) ... what is the correct way to interact with emacs bugs? On Tue, 17 Dec 2019 at 08:17, Eli Zaretskii <eliz <at> gnu.org> wrote: > > From: Peter Ludemann <peter.ludemann <at> gmail.com> > > Date: Mon, 16 Dec 2019 17:23:30 -0800 > > > > My hypothesis is that emacs is monitoring some files that it shouldn't > > Emacs actually monitors the directory of every file whose buffer has > auto-revert-mode turned on, if you use file notifications for > auto-reverting (which is the default). > > > When I run a CPU-bound job that also does quite a bit of I/O, emacs > > becomes very unresponsive -- running "top", I see CPU usage for emacs go > > into the 50-100% range. > > Does "a bit of I/O" includes creating, deleting, or modifying files in > a directory where you have a file whose buffer has auto-revert-mode? > > > As far as I know, I don't have any of the output files or directories > > open (I have global-auto-revert-mode set) -- all the outputs go into one > > directory and when I search the Buffer List, I don't see that > > directory. > > Turn off auto-revert-use-notify and try again, would be my advice. >
[Message part 2 (text/html, inline)]
bug-gnu-emacs <at> gnu.org
:bug#38644
; Package emacs
.
(Tue, 17 Dec 2019 19:31:01 GMT) Full text and rfc822 format available.Message #17 received at 38644 <at> debbugs.gnu.org (full text, mbox):
From: Michael Albinus <michael.albinus <at> gmx.de> To: Peter Ludemann <peter.ludemann <at> gmail.com> Cc: 38644 <at> debbugs.gnu.org Subject: Re: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode Date: Tue, 17 Dec 2019 20:30:26 +0100
Peter Ludemann <peter.ludemann <at> gmail.com> writes: > But first: I see different versions of this discussion at > https://lists.gnu.org/archive/html/bug-gnu-emacs/2018-10/msg00997.html > and > http://emacs.1067599.n8.nabble.com/bug-33194-26-1-Auto-revert-mode-causes-emacs-to-use-100-cpu-whenever-a-file-is-being-written-to-in-ty-tt468378.html#none > (the former has a 2nd thread, which mentions the patch in Emacs 27) . > .. what is the correct way to interact with emacs bugs? Just reply to this message, and keep 38644 <at> debbugs.gnu.org in Cc. Whether you keep me (or anybody else) in the list of recipients depends on your taste. Best regards, Michael.
bug-gnu-emacs <at> gnu.org
:bug#38644
; Package emacs
.
(Sat, 28 Dec 2019 21:14:01 GMT) Full text and rfc822 format available.Message #20 received at 38644 <at> debbugs.gnu.org (full text, mbox):
From: Peter Ludemann <peter.ludemann <at> gmail.com> To: Michael Albinus <michael.albinus <at> gmx.de> Cc: 38644 <at> debbugs.gnu.org Subject: Re: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode Date: Sat, 28 Dec 2019 13:12:24 -0800
[Message part 1 (text/plain, inline)]
> In bug#33194, a patch for Emacs 27.0.50 is mentioned. Do you have a chance to run this for test? Emacs 27.0.50 somewhat fixes the problem with global-auto-revert-mode, using the same desktop file (and same open files) that was causing problems with Emacs 26.3. (Sorry I took so long to test this.) Emacs CPU utilization is now ~30-80% (according to top(1)) instead of 100%; and responsiveness is good. Of course, it would be nicer if emacs CPU utilization were less, so that I could fully utilize that core (I only have 4 cores, so losing half a core is notable on large tests). Michael Albinus - you had a number of other questions ... do you still want them (or some of them) answered? best, - peter PS: Here's the desktop file, in case that can give some clue as to what file or directory is causing problems. The "compilation" processes both input from and output into /tmp/pykythe_test -- as you can see, there are a couple of open files from that directory, but they're not being continuously updated, only once or twice per test. begin 644 bug38644-desktop.gz M'XL(`&;#!UX``^P]:W/B2)+?YU<HV+AHN^,$>DO@(&)I@]UL8^,SN&=F;S<4 M0BI`8[U:*FSHN)C??IDE(0D0-G;;O7>Q3,>@K*RL4E96/JI2)?GLC.,_\IP? M.J3%$=^R$]YSD^B,\\C2M2V/G[B!XP:S%CWC[)!!W().>8-GQ*SU+V=P>;/_ ML+<N2>YI&'$7KD>X:1AS/;S9V]_G/"86)0XWLBC<T^8D <at> Q/EEJ"T9(.3!+%9 MYF6:\>(#[0.)$S<,@$9#$L9=@33J0ET5?L&:2R^<6!Z7$)M"5>N7DX30;YR3 M=LDGU@-Q^&EL^03PW'_GD,B=2(J <at> BYPJ")+$Z4U#D1$6A%/N)&O-U;F:)!BU M4ZX6$4KBOSZZ";5BUU(G-2YP/?;_"?SGNX$[64RG)(8F%#I8!`ZQPQA'#J40 M^(Y=A_`Q<=P8&`7<-`PH'UG(#F7-:GRW<]7A[R:+@"ZXJS`(^0!%X6U=/O*2 M`3_XS^<%WDU"4=`4C1=K6:]OU=<DC!T2\X^N0^?0)\K%#8#7`%5VMRYV9W/* M.^Z#NUTS"2D-_<HJ$`QE-I#8<>A!OU:<0!7K"ZKG8>Q^AR%M$K!QQF06AR!F MW <at> Z]D,EOXEGV/6,<KMN5CW.7$JSTPT5"JAJE(]JM@!L3$O`SR_<M*'IN0/@D MLFRP4RR2*07U@@*!5D8NAPT4B#^)B.W",&;>*IHG:;?9>/AB,)OX8AS(-PD6 M#(L,H(Q$0%)KLH%#D<X),@`%#4LT#+T=$NI2C\#UT7(IWIU_]#.]S<FC,''1 MGA`?1FSJY^X$R)UP,?$(GVI[*@/7#@.>KB*2=6(M:,C'EIN0=<$+'TD,!7L1 M)W"[C'82+C<'O-8,4=O$YT-B%987S:U4JM/07B0\W-VWHA1CV3:):%J!>K+P MO'0"4=G<!(;@N725,9K<NQ%/K>0>;@+%[SQ*&SLBP8,;AP'(G'(UL]V8ASYI M,!?02!TX>BY>E'A1;X#W3I&VYP)]C:L-SLUQ_ZK7)H%YWJG?C2]X`["7XR]F M_\J\&G;O!KTVN(L$27NCT?"F=]W^'ZZQ2&+6F4>2)')!0O^!%".@Z`^OS:O. M=>>R=]OV0C"71N&(6G]M4#]JU/OG/7X1N,N&**GZ?S*H1%1!@RS];61V>Y_N M+LWQ\*9_/FK_;<3U;F^'MV<`#(:7Z5CZW=[UN'_1/^^,@9&M4=UTQI\WY%.' M_ODH#M&7XW!:Y<J(Q)ZZ <at> WVR2=VVXEFXBT[EP-`HN+28;)7S8E'!@+28XV88 M$\KM,D026!%2P3A_ZUZ:Y\/KB_ZEV>W?CMH-0NW&TIGA__R"^=G6&H?DG;OQ MY^%M?_Q[NQ$O`N@:>!8AN#1FCM_X#8P"71M=93W?WEVCQF#76_1`T/UT-S+7 M:H!PI]N]A6(;I[(5672^?8],MX:7UQU00R8PG.WK(=ZB-_H"LYUWV.^VZ=Q- MP/?S#HD@.&',0NKN54;23H>7*79OT+OY/+S>UFX<Q:C7&;<3"/?(]>CSX.N@ M+0)TW?_-'(T&YGGO=FQ>]$'YF:"2Q&O8X/Z3AFWQ"+A3%V^>U.V8YNR.>[=7 M_>O.`#J__0KZVVZ)=5E04?-ZMP-UT/_4WE4PSYVD$'9S<VF"X5R/S?[UQ7!G M-H)%-&N,ZK-HQELS,-^6T!+7TWUW>XOM,HEE8F <at> QOH`$;#E3B)O/G5&O+6$S ML&ZPE!XHR%]=?VWD_S7>-?S1Y]Y <at> T&;V/K&2.6"^CGOF5VB)$E<E`;O#P;>7 M,"Z?EU2-A2;`_MJ_[@Y_98:'K(Y^[7^]2C6G;!_)H_O@,P.]P4[_WFM[A&:* M`)XHY6;4GEFNU[+H/3^!!<J,9'(U!\-SD#E(U[P=#L>[(DZ5X?KNJG?;/]]V M=+E7&=Z-;^Y`)2A$UCAMLM;=+2^"][RZ,H<WXW;_>C3N#`;F)Q1JU8U354NU M=W-NLLIN9]S)K)39_MR*26-MHR5GP?"M$DVK\6#%3'O0\IU&M <at> S<NN?X]YM> M>RF*Z<QVSL\1_ZD_0&-G$S+ZG&G<#1B7**L"F\K?QMWA5:=_W79]6&4$4Q?] MQ&?0I?(@41:_=C>&G<1V(UK=K^B<9,;$IAYL/[J?);N^UR%3LHSBACVW <at> H!X M22.C;+VX!?J>WD7G;C`>I?<LB6J&0\B$6H<.K(5'Z^B+*BSW_+8'$:X1QC.P M-[SW:#7`*6&AN"%,9UN#:Q(2PJIJ*/A'-B6QHIBA.)4FR%4-IBALR9-I> M,,/FDS38A"@E6UNZ/AO#AL<K=.4.?$KN'<LSC-.6:7AG)XZ/P.P'0U`N7-E` M&0(S*-SP]O>G9>1;@6/1,%ZMI<34!**$.1J>?]GV2_=DA8LK<)+SC+>OX^M; MQA5RO>'74^/YQ(R'Y]T`@K[GF>!5"/>/VHX!_:,&3=@(F'>A\8*L'4LZ;\PS MY:(`2?8*B5UVO\!T=D"T;,4#F.&@6Z6PZ^IN?W0SZ/S>;J$-##K7ERC,NU'A M*[I?4L<)([SJ7=^9-[>]B_YO;:8G?#H'5Q!MQIW;W[?F`6J8;]M&`^/G <at> R'Z MCHH%5;JFPDY[G='=;0_N.=[N()_@.&D++<=M"^*9K+2\@`%:RY^W!:$5N6U% M.)/E5A(RO-IRUL#$2:O.!+%EE^`P9K"(L.]B)\FB+>MGBMA*9FU9.%/DEFTQ M0&S11P9(K1``!8&$,F*E19;L1E+K8QW6=PP6$9Y]SV$KMDOP'P6-5=!X<ZN` MORLE>%Z"_8*(>D5CNBS!W\,"U <at> O\=S<JX!SZ>PXY!;+$NA>7X#)8W*1T[^\@ ME8*/4F'R72K!!<TF+)4:%WR120['D9_#?Y2$_5B"20E.2G!<@JW24"R;%/R' MQ;#LR"T*)3F6!&);!6N/;L%:\EC`3 <at> DFB5.P'\TR!468%`6_7.-O5,W<:0Y/ M_"B'HXE?P+,2'!4PG5DYO"S1+\LTI?X!+@I14#"1/&S`WPM>2T21O2SPX4,! ME\>V,6JI1'1?P(^DQ&M8&IL?*06LE.]0*CR$DQS^1G,P6)1NX!>PE11#COT2 M^%!T,_7L <at> O[!+>'+<-'GS,M!IP"7=G&GY:.3PZL29W9IM,2?EJ3P4((+.5L6 M<":@3P1XD8-3KX3W%:N`7:<,NT7AOD04R26XZ"B<S7(X+L@?K8<228$/HT62 M%Y)HF</+))IF!8R$@[LQ!,*M10.F`-TD\JS5.E?!8N1F;@D3NE#C9;FJ++=1 MD4"BKGV_PER1E629"7X1P6)@G2]9YR0A>#O84F^*&G]N=`S>4`6-5SKR16V# M#-.-',U:YTD3EKE$IC#5D^<A810NI=:$)7PP6X6D35EGR1[,<,K-=0HG@/Z+ MD2,G$+8Q&[*$/FR7I <at> 2`P'QGD93!#!<B"D8R1$K!NQ#,8V1(*1,6:'63/+&F MB)4VB+>0D;LD7L&!)&]6Y)PH0D6#XLXBRR=MM2NJ]<K6&2NJ4=%TS:8!4GJP MN9-M=AB?6\R+NLA2>2%F.0L92CDNIU2;+,?%,K=%\[I08//F#&F'/BQ_+$SC M\9[KNY1I@#4]C"]#%PYC2Q8JV!+JZCZVLD1Y[2/P%[D>X^]C#>R$>,1.$^;S M-/F7I2O37&K"&?`OR[JC[*UX!HO=K%3.'R.-!/:!5R&]8O9OHT^'."S;@'>+ M0I=ES46C*4B&UF0V:\5KE*BP^3R)8O*0Y3T3[J0V6;@>!0;J;&M6_R,!*6/2 MW\'TB<C2L]M#%`6M*2CI16/U0QO<!M9P*EI'#3R$:8?A/7'JT:H&BF08S?0W MJV5H130$]L/Z@'%9U)ZS7D2%]6N:ON4&ILFH10[&U#P]S6<?_5#F'PY2!.5` M_92J]/,`1:BSW4(]WVWGFI`Q^:_1!EF2#+&D"K)HZ%J%'F1[\WKDL0G0#38I MG]*Q#=R$LHG15)7-8&Q+&:6LB:=L4BH>'VT%'S\,PLK8XUCQ?47HR1]V5&;_ MJYZ=8)P <at> MCMU\6'9;-]#E#+59%9^WD3IJE9^]M#<"$S/QJ6#'VYD`4P5\O"E M"A41]%Q4!5[IBEV^*8GGO-;[)%9%T-U8MA&BGHIEF^%I![T9*\07Q#+EM#*2 M/1W(*L+?OLIJSJJ"&$BG,EH(%2ZBPD'L^@?C9>%K[1XVG-GS44*`?X?Z!>$5 M?H$YTU*$0"/^Y^G68V??31)@A\='&CSL%0,HL#MD=-2:)6DEKJFXVIZ$7WX= M=RY'M8W&S'3P(`'E/IP<V'[=00([5GO.H\"@\5^@.3X>RFA-2A):`Y&(.JP+ MUZ1D!JM`?KH(V%-V)K1UG6TE!):UGL.G"&976:?1V>H>^S)^H*O:HTOGYO1; M@*D;?&+N@?^LX8,$N&`L,R<K2LQP.H7!80V(%2[V/#;Q`AZ*!#0Q4510#@C$ M%1IRBX1P]!$3>%;`$3]BSV*6P``2=0(L84BOPS59)7C!9_I3\$5.(<AL+)OR MK,U<"OL%WV=WAR4!:STCL%BP8^(S'O'`17I)1^-;]X3_`P<8^^R'X^,I`/3> M <at> 5TQ,BEB!BUY="./X_FL!5SR65M0%SO"XISFQ8PJC$APLL$V"(/$O,7TYR3] M7>LNECYRBHY/YVT*C'Y8TS_DJ,US%'+3T+BFIJD0YB1#%CE%3@]2K!OFAR76 M!R;8Z0<,,21PN"7X].7I\4C$O].1B+<Y_E"UO$G#!A_%F>\^?>5YAY]VJ`&9 M7I]IV#BO\`XIB/2,`M;=!1',!XLB'*#<=`&WO9"Z,"X4WK@`DU"-CL)WI&[G MB51$<?1$*J__)'5W`5AQ8FIC19C-(O-,5;S^'T0RKF.V-GZ&^=-2)J8IY4M9 M/95:X(2/F?A52=%A3ZIABW!!F:?8K99JIYL9G)V#+L^D=&!Q8\7`6]JM(NFZ M+.O'1,_K$SVZ49GH8:F%K76RI.\NE#7Q92OE <at> Q,]E7P9S0/9DJO8.F!_7UZB M)&SW^Z(=_K.K^-+N_J`5/$R$7EK!-P7]H.1(M?"JLF25POO)6;*WE]KVI@<7 M<N^>8'BK3,A[)BH.3$HT-?&"5W3]G)>%3SHO2+)0F92H"(X'!)0#0\\1>40> MD4?D$7E$'I%'Y!%Y1!Z11^01>40>D4?D$7E$'I%'Y!%Y1!Z11^01>40>D4?D M$?GOB3P>D?__<$2^_`[*P2?DGSTA(KSTA(BH-YO:]C&1?U:?(L1C$Q1UZQ[9 MN"<\\')/8G:NQ'(<?AZ&]]R']9EDA^`A$(8[\2Q_XECI46(\-Y$VY*`CAIH! M:BT7[B,E?O2QQHZK^/?P\Z$X;L%TG<^/*)=J_ECX$8_'/4O'E[&+[/AT?FZ? MGT-U&*_PT/>?C?5K3(WM]YEJZ4='\*,T,$MA(-?U1G8P'%]I@*951_;+<[J' MI%YO7('HINF!=W:(/W_!:*O)#ITHIC??.?K?^/+[^'-O%SVZ^S0:-S[=]0?C M_O6H\>3K;_OYO>UUNE>]NK^?:$8"<]VYF:Q\<$=/R6!#3+M<3^+P$;^J85E6 MG9VO_Y/1/"RR>E!5ZMH-*@JF8]&,YH!N7BBV/:]G(`6[+\R'<(@DP0;=B"8H MR2T!E$[7[65N'Q>KB"1SXH`P'-12N6%-[!(W!^K?GWN&5J_OKWQ*3W>;)&G# M?,IS_65?%\JM+'ET\7-B7CC#8FS%J\8[S-B/S'3*^0'\)LO2*,&VGY[?E[&T MOD["D"8TMB+S:9O^:2K_OC?*I?E-?LJOK-^UW5]MLE.&K_*BKV3YY_N;*K5- MA5?2Q,5"VBAEA5WU?HV1'FJ-`)49_/8M>7A+8]F^TS.3<V!?IND&+LU>;=P? MFNISZC\;`<L!H#IHD"58N9WK[0$!<Q]3.7X_U\N"Z6='546PMV)K$<%HUN'; MC*W'=9A_5@+"P;(R`_+X0L&^Z?W?29$K?<RN*-?H)YPUUAZ\NCK(H583;;P* M_",=;7UGX0DJ%,,3)+!V <at> DV5Z9#)8O;2>'&0J"LG_ <at> F[9.COA]SCF3M6S&WQ MT=6&OZH8+/<\R8MGZ1GY/Z41Y>"5B7W'*'#MN[[@RPQ)PR?QC,`:TRVUC_!- M5<>DB\@C=7RUEP0'K`X*]4IC9N4^!MQL14?UA*[@5BLKFN;-K7U+C0/M/5K) MC-Z<Q?CBYH;D4]IL`Q8V(``\X.<'ES&9)NEO?19N4>-6L'N@"&#OC-]JS[Z* MD7VKG>-Y;OT=#7QA <at> 3B<&W`)OA#/WCSEK`01V68>*5J_Y&\IV^R[\NN=/GXE MGMN<WWW;<:3;17TH/LS/7BE!U`GQG-!.WS"9L:_,\^E;H`3?T67X4Z!C'PIA M]`!I:6H%BG#)?S^<K%_AR-]G<6&4Z0?HE::A:YRA:9RJ:NGWYS-BEFA(_R0` MGZQ`0/C::NE/`["/.6->X <at> 5B>68/C>2;Q0_I*JV0RAY1<`FSG%PLHFXP<E$V M#%E[C50T'6!9%61.-Y1#!7.H2-XA[8']/E/_8;H('`O=!TCP.8DR*3*"IBZ( MBF&\0HC82FSJ(LA25>4#A(A_N,`%;M]*MS;]`+;8P7Q(TV(OM3OV621&KXJ2 MMD_#J#7)DZ:8775A@`'%SV<D:4_<4_(SM*;(&4)35T5.%J3WD%\Y:\?$4\"' MFA[S0EJJ*N++E<304$E40]$5$*KZUI;VO(*4-./'5`*_B95*05.5=U((2>%4 M3=4EE5/%0]SUID*D?PSD,79IYBE_7(#E)1#2;Y5?*4K\S`TC5U#WWT64JMB$ M**'*"OXEF'^9:\K6H(5G*A"O%)UH*$^:XH^)33)DA6NJNB)JG*2)[R&WIQY7 M(,%&Z;5"$IK-+3'1-Q02A`1.%PQ)5CE#>A<A/;'>WLU38XL*W&MM4Q;2M94! M"O#V2B:`9Q,%%91,%'2=:S9?[N;>QCBSO=_:-(OB*^4&OON]#%/@%%TVP#"; M.JY;P;7]Y#`:A?D"JP!?*2?94.5T0Z,;[R0K6+%Q34F398G3C)^H7OGS)20J M%S[X68&?I8^C#UAS2<I:HZ2FVFSND=2V9#;?Z:^2C@+['4Y4FIRL'K(:>TO7 M5:0&UUXK!U_KZ"4EVPB*RCNLR01.PL4#ITNPC0;/_],,;^?1"'-3/RRM=+_W M+E8GP2Y0X72EJ8&@1.W <at> 7,,+=S*EC<PK]C&:*&;+SI=F4 <at> 38Z&I-6);K@@RK M?_GP9,J+!I@>G$@G6_S1-9#Z?O%(-&1#AS40[%301@[9N[Y(&+N+1"A)-)01 M$Y-\V;-1^B&K>.N%HM8$DU!$`=93HJQ+H#$_T=GN?="#C:J0+S$B_`AC&I<4 M;9_/W2\44<3X`_L_637^E[DKZVT<2=+O_2N(?C$6`]MY'X\+]*(QV-D#F'T7 M:)MEJTN'6Z+:=OWZC2"3ARA1RDPQ60-TEYCI*ML9C(P[OH#[.+LE,\QG_I*= MP9`*I(@VU0\')K*2L6"22,'A#[A%($"5GM-9[7*=^+>.5G=8^?:R_0B_3@+X MHJ:&$*.QV?[%$A=O$;H+8#0R1C.C)Y>Z5]AEI%X,_^GXEX(TDI%.3,-A <at> SF' M:Z$R <at> _^49;9BG92<,Y9J_V/?&G/UX]T?>S])PH23)(P&QI^5`<8P"HQ]<,/! MJN6IW<AKJ6='@?[:EPQ"*EG?&'S2$80`40K*1G&#P8G93=32MO:\O5$5:U[' M!0V1DYLM0"EA01,K8I#*C/K<EUA*';%+"C$K':48'[LYOB+6@&UB3*8Y)02, M%ITD$7&A,@MH;!JAVGL.,DF(BRE0V=V?TN?VZ"J-13`.I4'/"/8SPE%PC,.J M6.#LOH80IULA]`#_JQ8HP08:T@-->RHXX6"U\KFY`4<+*M&0X6 <at> 5I%<5<^D[ M:6PP1U#0I]*`=P-R521+S$U81%UYC"=;O <at> K(UGDM$:J#@50$@[C::$K!@ITS MUG:F.O,7%P>?)$K"*!F+N=V@@A3(;8525BG">";)Q*4']>_X:U<"C[_QRW)7 MO/C)#=[(T?Z5N3`"HGL+O_[;95Y1&9.:<W <at> V5-/,UNG-2=Y_]_*G>?,,WDR" M-\^DLCJ3&@LF,IU&T71E_;ALGZ)SC;4,I:-JY`:"2(QP4RR_X023M-,;KKU" M_$H^MH]!JM1P,;@3GM)19I2`*LFD!'6B0"/YB,>H*-D9-?K\EN_VRVUS]N-E MV/E-;4I(IL,4J<B4@"N?<6*5X*!DTE6X_-F]XY <at> CDJCW*^!/"]:SLE6FE$]? MW-+K?ZB,XT-,[0[5RK#8`\+!1`8"6V*^B$S.P%U+1WV^&-.?B\C["<>CC%"L MM+%@Q`CC4\$VA>?<1&?KTKU%-0G(2>S3K?C$F'OI5(Q%%&X0WB*C5D@+:AR) MEG&=Q/2[(-_V^7K5\$WO.<A%X+I6;QLWT,M?L%$CX4].I(%[8462TL=+PAU. MT!?N1\L0$DCA4LPQ)!!@QAE.F1'H0\]$`NPG?(1OB1-XVO=_M`PYOV"2-<4( M3(93`-0:2$A0`Z#JDL3MSU#@\_T9A$K+$(]5L;;;6.#!VJS&R590R:>65L7S M!L6DN;1:@8A(4"'E_)Q>]U^8H\.H/G<V]'3.D/R:;X,GY <at> ICL)SKC%GBZ=KT M>PEQH_<<J.&I4X%:ZU`G'GYY%`,9M]8R-,=3IN0N=NO]XI((S>)NC4^^`4!7 M!V)4:`(.#!Q#L23&**,S,WUFW^/\S_LNA^*>[^#3,XOB9!AE;"QJ?O'L)*-* M4L%P\&ZZJUKWD(5=4^U$T*5PQ-G^SBL7EF?@BV/5/5P8:K`:*CP84;6OY9_W M8$*:A_*SO-\^[;<K^%+](L>^$MFDT1-4GJ\6SB <at> H',[02BH)X7.OI\Z0/:U@ M(]^\++:[?/-:M'P^LN_-\U2?V"W^9*&@LC,NM`:IE[PV_/R-[S*&@;E"<,?Y M#2>7!AQQKK">4'OY.PF.WI/UG:CW/#Z86;><'LT1`MH.0T\I?-EA0^POO:1P M;\\[,8Q%0\<"T/.T+),$S <at> OTPG`K*+4D_MF%WNU&F4W4J::EIKHF!3P2&JKG MX+XKP6FFP$YC&L7'3TCS#=NY*QJ=[L76G[M"$JX31*]17E)F\8>@K2A-TM:0 M,RZO(]#*14FZ16"L:!`)\W)H,`T*JCR35G+@/)/&WS_3*W]ZB8)41:2D!.FH M!.@):J0`W][8))6+#DD`G^N/2,,H5#+2JD89CF <at> H%@\ELW<1Y"#0V"62G'+G MG1N@?LVDQ0"T9MBDB$8?J+JX]-KKLKP_O(.^*A[V;W6=VW#G;O_F6]WE^A?8 M:&W^^&G`T"&9 <at> IL&I[%I6'!BO`;\GA>^%MUU>MD"N$&HH]]'@<J"6&[`42!S MMG!W]'SFB[QM_NN>XUO_:AEOQ5B-_TTDLQQ;(X4F6F0BHNE]PA[=/HX'_KW! M.EB@"LTNMPQ<H`K<5/"FP<BB6=71ERC1UU;?]HIM(]E$7\X:W<8DE#$LI.*$ MH^TP6W/$[PY\I?PL*RH-UG=E\5GZL0(HD`A+"20V0:=:8_08[*4D-0X7>D-> MBPT#R?V]:!-J_44DJ\BA!)ZJ0X2`'8U6B"("KHU4J0,T_L@]E2H[OQ][WTY, M[RGOFR06S',CM;%9&M=D0$8_2"/\E_W%W>O6,\BCF>,YK<U8^C:L]1.H)*AE M5;.)MAA9G8U,-983?KU]FBT*"C8.Q9 <at> 7UIN!69R:-^J@\-,*OF-;MC%8ASBL MUM92V(269H+T556;O8`/RD`A^>CD*3MGON7?"_C.C30Y7L:#\M2FG4_)>Y <at> 0 MP68TH>!B8-<X<(VQ<^,ZN&)&W6HN?6N?O2O>8VFH16U5QVJQT&W>LOF.6LOU M^W97[MNFV<$Z-I+&4YF&%=V,`8)QBT$(/F>S7T>V)_B-X6>TEW.PCF4XU_;' MZ/2%TS7AE`'WRS"-@8'4OFJ-XE?[5>WC#4!^3(HHYTIBW%%)EBDE929Y <at> L"U MBUA5YPZ,60G"G+>MC_IN!CG:*\$K/".S5&1*4L[!@I/AP:N'IWS_MGNN7UCW M[!NL$B+^]5`+9B?XOH2#Z\/G2+,ZDV)@8<1$Q)N08VA&!3L.-0<#0TOP]5AF M2,J^PZ-,8DD7:&\7;4/[<".H=H8W04HQBHMQ <at> 01"*)59K!FQ48AMX=)\_[%\ M7]V_P"E6C^M\T[("R*`C7G#K($,[0T'VU[+XN%\O-]M=9X8*9TLPR\>22Q>( M1#1!B:T-5B.P)/?C0N8(H5W;3O_^(NR>-,J-J`X-TB<F`@2 <at> AE!,-A!C5`U( M-"N78)/Z2\4K_Y5O#OFJ89GJ</<HZW&@3R\M?_'+`459H/%."FR]N8:"UE.9 M5 <at> 23]I+.D0#P(MH&#"/X!W!!<H09/B7;V%\(()R <at> CG""CD*P7:0<_&D95O*! M;)I;*(VS6['>+G\49QAM\(40%B/,W,)B <at> F"85AN3<39']J-/J!1=X?8:-3R; MPBOJ&*XKI4;1STO7O//D`OK!,ED-B@,]7[QVG7B<PT6Q&;BQ,_9EN:+LYU5^ MV`\KM8\VPQ!YE!,8C-`.F]9+/>F,*@.O&P&=!'@9:>Q7#XK`63[RU?<A38ZW MPTP[3EP(!)^"J2(EQ[R6X9E.8]E=)\I^>]@]#]GD:#.(32BKPZB2J7`F`0L( M_#-CP8CCJ9%F4%3N7HJRZ7/`YX8*O><PB`CA``%"0ZG5X;%9FQHKL)UQKDZ/ MJM>E^'S/-VVKR]$JZ/@:'.RA;O!Z]RIC##,&2FAL=)%V;D2(_/U]]=7F?7N+ MD/.C>',N3!=+]SP_%8(@Y!^KO/TT0/=5XW:-\U!U!S;%@;UE>,X$[!M;1S48 MMZ-M@.,'-\IBW[+3F:G1':I9>T7^<O_']@E>:Q.</-V*!C:NE0$=:Q"Y(3RI M$-&.9AHIAHWM$W?*N <at> A=$P();G8ZL0JO]5%<"]A),!2P_X\*.++(S&1@#IOM M8K-:Y.6BV+20PV?V8A-(_%K;P`T\T-"$,9"3-M/3HV)>I=Y^N<;"LP;^H;^* M[B,FR9(A+<$,V!8<[+6?@Q_3GY.'_V*PO <at> E+)"FC<8YE:!FM4Y4W&IR'70'G M?C^T=M;)3E!CK6PPA:0)4[?-X4#E"C`WX%=/I6[?RO)]@:^R>%EBA*O,J^S' MKR/[=_#I=79^TEKJJ7";HX.)8='L\,%3VFQA:P,_?[_<;KQ[3K^QNM^T_ <at> PV M++C#G <at> OUO)L#*J*I <at> 0^OKO%;)&0_W(*EN?EKL7]\KHK'=MOG8K]_>&X\JVYU M]]P1(7]Z <at> K-?URM*NUB$&LM]7J6)T03][S2N9OW6W4N/,R;9E8+):P?47%&! M%L/D*"(^+QTO=1JXVV::`;L1ZK8EE&%,$\1VG</+'B=6+0;AE\S+YQ:6\-QF M$*J`Y;4MRD4HT&E''VFT(9E,XH=ZDZ=\0\=D@<^M=WYF+VS*ENOVPX=8XEA) M$%0K.1ZN!_.\YSN0,/"7]T?L<[(=%L=P&6OPL4)3U <at> V-+*8QJ6>G?V(:?>SR M]_<NE7UF+X <at> ZPC4!XD,L=13.&\F\O)>4Q%FO%E671$>:P4Z0/4J4RZB12`W- M$%()I/W/)@O*WZ_-XF.[^SZ\6*?[@=%A=[/@(9)$G(/62I7C#R/2<8G(Z580 M]X@&GYN2T.AQ0QHCK4+2S.'C7B%-C2[6(TQO(PPW3[N8.F>C8*E7;Q6U4I)4 MA*G1`3_KT'']&5EZKCB)LWQ1<%A-5,;25'Y48=/=[O.S/F7W.%>-?7=.02A. MA9%)KG_5,-S$:'[<6.'K1MR-VJ`W1V<8PMV"RY39V6`%6Y#H>DI <at> W<=:A7-[ MTW(&6]%Q5'L-AV,""G*BA`')Z34D)HJ?5BM7%E9_AG=,<J[J:`\\L3B'!J$5 M&&98%$OB\)VVRSTM<49Z5_S=6\4&.]5Y/+5)N4%**T3&U-QHBPF]8<F;5@-+ M@^86=%31',<&,3UWV49'%?Q9QX9H?R?(SN*RN4V"1Y%#$%T-)DM9)E^+V^!" M^=HQ4^JH$.4"M'KSZ9>*8PCP1:W)1.VAA*F1W[8?F]4V?]D__F]]__F#>A"/ M_X!7G[BWUCC,=3L]:$U+&<S)@K]O;1+Y6H,XUJ'5/^/L+MI`]09"%[8GU(PA MQ#8SR2#&SPWBP\;@SK3HK6(3]#K-S.:.3(9)HT`ZI';B/>X3CE%OB-=[CB2= MU=*Y*6+40YV`@,92U#;4S!$%P6^P>]MNP:#=%44)WZJW=5A6?^??W]\?_CK4 MD(N]9U^()*E-XPB,"J!K-`'2 <at> QL,S)L.)NG'U\/V4)<$]9[#K54KE7)I67"Z M1W'"+I^85]-=<8;C+&6`#1S/8`(.RS<OO!T6]+6L3=FC96P;H]/4"5T;CB5U MQ(*=DF:XT'D2/M?T>/R_"MFH`:%_VY9[^+\OCDZW8K&+:FN.)_.R>0:.*";+ MC/*X?<O]]GZ5E\O-/8TFY>JC>'K\^/B`+WR4V]H*QE_[L\5<.5KY(ZY0QET# M(CQ$7DR)B-LXR6`N-/939V"ZV*+D9[!__4FA!5:U"Z]!U)$(;TXDA5;CG8?< M/^,)M#+/SP7 <at> E40&]6QT!)QQ&S<&!B\/Y>,?^5]Y+2,6Q6=>%Y+5KW7T*V$% M0E'P?>U1-3&2$Q"@L\73'5W <at> H[WJO>>`B\ZUJNU]32V/"YO#^;$<5V56)@77 M;TX=R.*<JS,XFV<XO$]87R8W%"'>L.[B]JJW-.DB'*=9*SZ$T8R17H9+#<Z@ M21'&N(AE!%H=38.W8IV[CY;9CY?^_"X5):[M1$H5../8401<#D4$Q7[K%+#- M/QH <at> TE <at> D4I<>C/3?JTDR5H!?F <at> PJ;HSW4U2Q2.4,F1[R3`#W"^`8(1!F-UG8 M?U?`>19"DZ['X'@C-JUD+NJTF\U=8!$&(B'37J/&TAAXQ6ZW/9:3_9VPR7+* MV0`@TJ,8Q3+L=DS4D.6'^%;#Q/;TQ9$Z<1APIUO>2'#<^5"4C,[V",.!Z\D< M <at> CU!U&L,=AI>Z@\\'FX$3?(";1GM*V!GEU0<;"D?'S).X'S_HSIC_1%1>LN< M/16;FX<S*D.EA;?]<X"Z2M,F#<RM,057BB.GGTG:4 <at> NL##159+J,P8_:X(CC M!]?%I`-1M;OC4:;1RO2:@C!MAU(I6D80MW8F"1>[3<D(AN*`:Y8&TG@,U_EU M62Y?-]M='=<^7 <at> 9S"[MLE%PUQJA0",<^]\"'2DNLX;?!*$BC)`;KH/)&9D\& MYX19I9QBU3#U`KI*HR]K$^),POW,%X(L,:5<YDW*2),=;&>%2'4_!]"P;!$@ MRQNQ'RV]#"HR <at> 4R1!EQ\"Q\)E(L+W0#K!/<(CT8ES[.F9[Q&9(H)BG5P*F(B MQ<-J^YROCA+0ZG&/T/EM6:M+;FP/9=6I6'/!T2JVQDWIX3R.Z7E!2:8LCE9. M-WBO)E`@.X!3,.CV.A/!\W\[OKR"(!6JA4*?.&5<"8U%_K[LGA[>:H3/X<;= M6[[_7JQ6P<8IL]>:/R=@&LMJ?R5%O:!CFI9JH7QCZ(FG,A+[[5Z,+W=8R;0" MP1F;WO`I*/A'OGG]^_-VTU85##?"1Y<9-[?,Q'55R`S,#L)!CJ:3$8=E:#D; M/SLZ^^)K/D]TOY>/.*,5CGF=[_$OBW]\`E%T>+^G^>:%XD1.>T\,_/>X.KP4 MZWS3`_`[V;GSAJ$#&[F9/RNLC8L"R^IP%/-#LZ2RK[V8#9P-AT<?P*9\A+^? MHGE6&(=;!F?V*5NZWCXK$;>.5=U]<YBBUXCX43RA+GP``?)M^=J,A#R[ZSW6 M3;H!1_ <at> 0R6G4&HR<ZEE&C <at> 0QVA]_'HK=%WO\?7?8E/C[-#0;;OB22U_M5+A& M+)P:J#CB1/ZK$<OQ$79ZW;OH,QICAW*)!3YE7A[V#?F.5M[E<>SRS):KE#,2 M;F&JQJ<([5Z5-#F*])Z]>8FXP!N)B[R!*I=$&X&`C>G2]KO0*=M"GVW>B%#F M^'=\%3K"AA.&8^>]-+H[76NIA_JW\BSZ7>@9.Q_"^Y <at> 6SPG6FV^Y0MRO4X/` ME(U#<[R,=6>H=1"K"=T964TYECR3,D%@[49W1M!)N,:75X``.*5(*S]><8?[ MMMMNRF+SXJ*`H;4Z9!)+?O!+^!]96KP>7$0BR`7]4H-U<UG.;T=?F <at> YVEE'M M`PH3>6^DU<94)0$_6[L.Z5P5+C;4[2^B:9I>"BDNN259E0V?D9HIO"IF:K.M MA_)[HT^E+':Z <at> J2>HQYM_?7^5<7V[ZO8/GR7\O'YK0`[]WF5[_?`3`T&YJ_G MMV,G22MN6*QAIRW%P>M*):]'S=<XW2;?U?F/ZB>T-7HG.P%EJ3=Z218'6[$9 M!C,-BW&P'!G,G_7CZW;[NBH>P1FJBW+J+^>;?/7UH]B!:_G7^O&W__CGWW__ M[^:Z':VBKQN?"G._)B4"_UG&L<)UKO1\TPN"[$.;N=_]A>\4)=D,^61Q+J/* M&.722$^4N"G9Z/GS\Q'.LORVA"\V#P_/-3[@8'WW_+>_=?3PQ`CDRK389UK& MQ8(5MO=J;3)+DN;CNV[/]6%5+AT\(M:[@6.Q*9ZKP2;-R.[A3FR^35!^-G<P MG98'\B$:A\CX+!&)T7F%"S#/Z>.R&UMX8]*:,=?6)_7T,\];VDG&")=8/#0C M[1K1]&WYN?BVW2W:F]C,%3V_'XUKXM*>X\F:*0AIK*2(VSL'$XXT3AZ6<*\W M^ZYU<K`16Y0EFN)O>$A'026UJ6IQ?DJQ"6N+3=B-Z`<NGDA'VX`FH)4V#+SK M[*?J4[3/=Z <at> B%OF^?*CMBS-[@<B[V7Y=[%Z+G <at> 9A-?-I%I<843@,2%*2V32] M!U?(!4;L>KN99%RV8K>TUVF<I0[.L$HSZ\*/#-]_+-]KO,?6##O=BK+$#+L- MH;LJFC<(>):BN]27/E6?,9ID_XE?^9^JXNF?)7S#M;M@(_L1\-;ZJHMSC6`, M^U9$&K.UGQD([L7UF8PQ?`E^L4T<F4*UE9E4$>-LJPE(!6O^=Z^T?8IXB53Q M`;Q*X#L4I`)MUBD&`+EW".<+;C7UC=`C)7W?''A91MT0E;ZN"/>-3#O9B1)I MU!@'Q0E6)8_#*`6IC_U4!HL2_R6,A?W04MA',[]U+:@FLD53X]PK <at> 6.>U3R@ M)\<88,^\*?=NG\)FGYEF]EDL:V"A*L<;,>?Q1QWGQ?[P]+AL6TF6-[:2*!<P MIZ/(&S?;X2`WX7(QGGG-O+B%@%CXMMX4^V7NXGE-6V]O$39&T56VD3A\RPKE M1E*9"3WY0*1+`VWR90>/W5^$G%UR[DK`=5=K%=`8`6?7P%PLDUZ-ZU-VC1SU MZ<:VZ'+CIN8)RV-Z*W5FM,96,Z=)9Y<;*"Z_6L%YV_2XQ(TA.K-4$X4XT7-- M6*P&3*Z+_1YK]=L>J^-U"+M8PFHB&:UBX$R!!-P(8C/EU9DXM99='X!MMIMN MX.IP(TSG2I>%Q7D<<8+3:EU5QI <at> Y`EW#0"'''?@1;8CP>!G?OGMY=M3-]\AD M0H#UCB[G3^"A)HZZ*#[+77X27CW>CNY,:G`3DIDK)C.*<H[()C^IH:_7T7=C M=H03!T,W.J-@`G)1!BJ>9A7/)9C\Z=(@H>5KQ!=J;)AN\7.4#>9I#9AVDD96 M-XXZ@>^[HBR_%N^[Y:87`#R[&^<P4P>I8"(AB0P\*\UT-1UX7M-N^UZ^Y[MN M?/Q@'=;YR[6;^B)I#%85D$%9(Q%[;@XE=35COZC*N@=I^_YF7,38S8M <at> 1L8! MMN',=&:ER6912CZAE57Q.0RNN*V(\(H0\J2Y/I`^0A/.+%`Z0>;%"=&&#,%% MP+X5LJ-T]Q6GPL)]5'7OTD081<_UQ,LJ:Y!O7A;80+)O@(G.;88#3'#B+%UX MB'S[4G#,NRFODJ>YPDMY%U_*;W0>57T];$*#35HMC<U$BM82#V>ARN(VYFY_ M$6NUN0Y3-MIK,P'-E.;,F"K,,[,*W[WLB[+UN8^700J\26$A]'^4_E96&5B( M65#4!E#4OQ7KK<,@W#_^7FR*75YNV]J>X4:LNR1I<I=3:V[!D*0SU94=$1&G M"J`HJ^79TU>)L9NO-N9[M!--0JY.E&`"GY/+JB&()KB.C2-5R:O@;G>'FL_) M%0M@*!=]%3_8E988!/".T_QG(I_+W?-AE>\6"(K?,L39W9LFW*<K\\(J5\*L MP+J>GV(5O!S6ZR^T"=Q355CO"'FR$XUBYF;^6ILP.F$%JY(1R9-/5:+]I2C3 MC-H.D$#7Z^QQ:("RF)9*71KG<'*>EIO'K_R]GL+>/$3762:?OV<1B4)2;$=( M <at> GAVW2C?_)6OEB\+9YRWQOC9[6C%Y <at> C)>+K[9Q%"@'"=F12AHLT-,$^,^P<( M*YLC",_)9IQ2#CX)DWYU-.XH[=T(*>3R+0/";^[_^RMF!/'N43__PYSPV[F> MM>/E'7SZ&?I7[OO_4W=MVXW;2O97N#(/F1=9Q!UXS'1G,EDGMSG)K'G4HF5: M9EH7'Y%J=^?KIXH$*4K4!8`$.O-@FP!E2=C$I5"HVOM:4P3RS<E$Q&`:.]WN M#__UW2\_?/_3KS_4S3XH?3M_R=:+?.)\L$CXM?:7+YNW2;7-BB4VY>VE@(GD M-9NW;,C7!K$3:;)!X=A4Z,03P.3?X55+>-5RMUK#;<4C>"U4-T&J>]AU45<6 MJ2 <at> J\KD1T$;@TKRKMKP]C".H3NJ_`0<P#.#`DEJT9_2\&A <at> MU0Q:6F7+3RT: M)^I<\1B$Y-O`,Q-VR&)@J(`1 <at> H1%L7,A:ZOUY^Q3CF]=P]`O@,W:%"8+O+K+ MC!TX!2G-T%\3)46A#<,%+'RWR$.:I7-QN`BTZP*L&5*$)2S4(UY_6,VUU46" MS7W[]#U67PR(24G"TK$GO*8X.X!@4.6%A.AH4:7<QTMZS7 <at> FI52E"95C[NM_ M^O'#][_\_GT-0>_:GRP@;7-KH$E!TYI.X4TX4HK%H'2\W!V62*?0]81^R2LN MD+?^0&*H#(@,U!A*K#4#>_1]`DQ.^7;HT+ES8X(?M;+HL3S/`*,QJO;LN,!X M9RI_T;F9Q3TLSH@@$<XP"H^^8\9MMEW8(`U[1G9<$2`#D1IV$;FKL!CT2\"F MYCWB"QM88,998!+;;%;`5#2;[8\0CRK\4R!;I1#)2%#6`P!$,;`!_1=17(07 MM+5KL?6G;?%YG^E^4`I-=#@F=+PKOP("I@`QF1`5)7_V&F"U('WQ5^>D/RJ' MSDZLS2N&%9^86-`Q`@85[G1&MPD:>_#+-G\^,A%[57YGTD38D:?3@+0)!$-) MU$XD)MXF9[[TY9!4SKF&EP)QG+8^``$8EYRRI$X&\.3']'6>FH'BM4>[.A$T MC^18;![\ICK1H:[5$_:([`)V]I>AAIL-:8(.")OR*#8)5PK,_\2,PL%\S7DH M.^>A_'L[#P$X00F#@4%B1`HZ=;-]+[LQ*LS$U1?1&%!'\.")LW?"2NR'I+AQ M2+8D?2X\\:%H&3`:L8-%W$M]W+RMEQN,=[)PS6I1`I).4C:A9$+H0[5HU.&N MO>#;*MLZFL+Z<@3496`(V'-4U62M#G;P>C-IV(?+8K.^,8 <at> 5C(X*EIEJL\T6 M8,5AJ49F4!.P>6H3PL-<.`3CWHVIJ8C>0Z.YOIRT.+3\CR=K/3@@"6EWE(J? M)0^]!@Q#7F^9T#MGPCCK5N,Y#GY*MI[4'"FP:>H$V\_>\@!)<&.)-%)Y-FC@ M&D@\Y<A@)>,H^;KUGMVVF)2O^?RH^QQ7NT-#E<W_Q(M08(0D3"<\1J)$&RK1 MS1HQ(B6&\Y>;24PP=%O!#E`1+T9\?*"^C>'V,3'FT9BZY[BV16AJ8"F5Y`ZI M#+TNBPQ01]VU7^6C2F\W/3!]AXYA20U!0S2.-J;;;#?9?,9-6/[6H7*FWF." M8\9*5LF>,+<O-H92SI-11'C.])7Y9O6:5<7CLKF$C]Z61WWGTDL\^E)JK <at> 5' M7X-+,527:0.-W@>O04\Z7>V."S3FFGS$-5R@`TJ-<?4N1I9_6FT89YBKPIV/ M0Z06K(()I3W7]WNJRSS;KJL\F_ZR@<U7_?"ZJP#3N*6Z8&',!=@8)='UITP\ MOK<SPFZ>3Y-H>E(6&!_G*G\JLBFT\1/M@]U\<'E66<[M <at> 5-8-Q <at> 3NE%6=E_N MVT?M;;^T2[Z\T&N[?N3:!C#RD>J#^YDL#63;\NMZCL"Q"8%M;>K[Y*R+;F#" MN#VV539_W&P^<?P"JOX"%'^G9L+3Z<>F#=/37]09'6'`$!:)YF[2MZ?1$9,4 MOIE\/W0DMIH"1FI"-52<0\=^46=TD&N5ZEK^YV83<9M#URWS:?;ZFJ\7Q3J? MXME%.;6*+C;=]:`4,"^*5M<EC#,`PQTXDS11HZ2)]?')OV2K5Y2,>\S^RI=V MP:^WP"W=_[#*E?2?TI;&F)NP]8+A/(*'7T*/;?^\Y8^U9'&'4)NR<E0.3EI1 M2C0Q('AQC\050(NA490ZYLK?[F*Q$>O+;+VP(^@PK6=P(SS#1YE61O7L$/,% MBW.#@49F='Z*=DZ*(IS*=+-]Y>1NO4I <at> D(R&R6ETH'9E-9UGV\5F8H.36ZG& M;4^J<1MFS3)IG1U,RM#923+!*1Y9CNWJ76RF.+AVR,?62&MA$ED-AUW2>M<! MD8Q6K9Q0%J1'`M`HHO!(AL?7/1HD(66/9;7-YE5[PG14#@V1$:0-DM'\7(>Y M^:P)@#.8_)"P48X/RK?B=8DRL;#V8WE33J&,GU4^6&:E <at> V(`!0RZ^ZUY),,< M:BS1AC+HB22Z%7#F$"X%"U=.4CD19P[A3KS`_1!.2LM#%L2CJCGZQ(TP8&\Y MP'/K*5PMPE;_JK7&GMI0Q<:.'E0%#+;C5!&BE8VRBC7H.&HX$U36TF.P,`TY M4N:;Y;*12BH=`AX#-45$=!2%`$L_?2>F&1LVVL;]?44YR@[#PV(H <at> MQRWI)8 M&D"`H82U%Z6QR1C3_WE%Q;=LNX;/&D <at> J#NK][:[4-"?LC(NP0P0`21F)_*=J MC(YV"J3GXDNUV\*V>;V!+P?;000@?^KZV^EJ?ZQLI+(*6SAYHF`^0SLU.I,! M_`N&C^([3_-J/K77#T]3N-.Z$O:7KBX$0HBE$*,A/-.(@-$H3J:BZP8^V";7 M+>T77-MJ[`1MSDXOU]JJJ>#(N!CCW-'Z($,%LZGQ%\P&#)]V]:KH*YF-6`A- MD3;0T8GN^S6ZJUFQPI`:P/";`WP.Z_VY\\#LK5\C1-CF%#5U8)8$FR;&)&E[ MP\([6F*HL.064>SVV`5N70U+3,.4[LS]9,.PO8^(`AO3A7V[MHH3G/Y,J%[0 M9<_!8;'U'YRL#?`DI%UX9MABCP+"=2Z2DYON7F%C0Y3N(;X&T_-%$_QJYP;[ M&M4-682UK#U%/&BU;ZZW/GMDZH6U\V#7,-I1E.G6*=Y!NOX>S]_:O6%:XM!> M2C6%&9V-HBYW$9U=,45JV!FT;(>G1[OM,HH[F]U70QLP9"F1"J#4T3+WBO5\ MN0.TU@`:_$#9RE6U%R$R53#PFZD#$\0##&%HN#12PAZ=QS,.;<M];0)RUC3L MP^DZ*8A4(41,N9D`AQ_R1<N9Y)-EL=Y]F2S6NRE`,BTW\T]YJT[:+X2([:6Z M54()V<]`\[A,M4K&X.L[9JUNLKF>OQ;X<\"G?E0.(]X_H;GH.3]*IN!OHD?Q MXIU1WT1'0>TG**ML6\V05VAF[;UV&WSVCO/!NF'76/ZN0F5@@R3AS]AAYCVH M8'*<S9<%K)\S1*WM3*>KP_I4RBT)LCK'1GH-*`73)A)ECGWV"591P]U;#[HZ M:&6659M5\1>\^+#8FNPG:_V-%*)NLU(U-1JL,DK&[EJ++B/(HE83=\V <at> Z=LB M/RJUF)VJ](;,D$&>K.\>!WHJRJ6,$[?1P;6KBB4.P_[?%IG#HC<F6@^B87TQ M,10F.N18?H_09QOFTY@"7>3SR5KWP&>NU6VHR(3#9I <at> D<I3DX)/Q4/4YP`P` M^%2V"]JPRG4E@[GB1CQ <at> 7@:3*!$Q%,FM6=NMU-X;8LH#/42]J;_WZ8XV,(;% MPSX!^DI#H^C:SGK]\*4^&$;R.[3P7%2F:_LHD00+CB'Q-S]'EMY"\-`1(80\ M2B1.D29APBL8'+Z*=U?URUZX$*'EVC26:L90`M7+6=OG)_!NHRL7X15:!.<6 M<HHL:$:Y>JCPZ.PI?\YVRVJZV.YJ/8)OVHMOYYOU<SUUN?I>6Y^!T?WV.L^M M3*DZ4'(4T<V]<^E^KK8P$U;6`36<U^S<XU+N[!;;[/6EDW\Y+'I1[7!!CRCF MO!X]%_#D52+C\%)>#8B!]^[.TGO7P41-AE[L#S?';:`!`EOJ%#YJ#.K*IWFU MF'[,GS$P*/^PS'9E_L<V6Y?+#(\I?]AFJU6V+?\`*+9%MFQ=LK[_$.ZU5<VN M6SH%RESWVDJP=U.1JH0Y;<-O8S.L0TCO2%'^-^`G!P`53&5(9!(0&G`S23D* MSW_^W,YIW947KZBPU`I,G-6VO0H!=")N$J)B^R7V0:3%>KYE[?#K%VXX$%%[ MDMD[#2[-*(/!)>Z=2SL<7$O814[>WM[@QENUF?Z^>UP5U6]9-7_I=M <at> GZMSW MUY+9>1ZY^,-ZB4FE)&8$U5(<%1A:-EEC0F[7_F&51UZU=0OKLUQ(5UO/ZL1$ MY31-W(,UMJ6;1T.;M?Z$?L'9)RXOA[=>;;G&..-$1M>TP>?^`OO?-;3@=?EU MTL:/IZ+K`Y=O>Q`VT&-:3R]08+WE4H!IHV+R7AVG(2#].(8"("=BHU\WFR^* M=O4X*GN9Q,H>!M!4A9W`*]3KI`;I;&*R3_JJT.'27K^&JXM)W)>1=MO3*E1] M0O&G.G4Y).KBRK.&!SK/R_+@>1_6^3QS3JV*-4L#V5R <at> P0HY^A,QBF5_'IV_ MO7`:0`5VA*9@:>DQ=HU7.A)JA]8'&/V>=%3ITY5HRF[SW0,\6F#JF*3O"\\' M%##YJ2BKO=4QK/)896Y$A>&IO8#Q%3M">V^7_]:X$=B#?."U3&J;-K+-G[-Y M3VGVJ!R:.&)B9S"IA&N!X3W$)0<L8M\ZFK[#9VY8K2T!2VC:(.QHP)(G.I:: MAG,NS>,&WOPXD>:PTMN_"6UJ3LY@/QAJS$B"9'H)'R73M(9GNUMCBSO)QJ-R MJ'M/\P$'W_T'&*9I4HU'3^^=<Y1M%WOO:+_@'Y"<MH1.84X5E2A:GW`H)U+/ MNZ#2<-QM=MMY/L4#D6+1J.VV,HHGZCRU%(D*8W$!-!043#)*Y,L^$=>VN$Z[ M[5:N4Y6!XXOS-F./GD7F#@-,4Z2_270Z+GKVN*V;DX[*H3SQ;'#R?W_$3(I< M\8GF8\0[]OH;+F"]GG90#)W#TY9X^6Q2Z#T`4RE+22)&85.L/7E$6.`P.M8" MUKL.1(M))BV-ET!^\DB`:4RGTIAH2\8"+`I:FMG <at> AG@<\1J341A)$R7'B!1M M^U9_,816%TCJ,'LI,`SR:[<BGKOAO"QR87E?N0H4MM.8T)@2#-F)EWY <at> 08F6 MDMB"[N8I <at> R8;C)Q(-'$3N;XP'AYWQ?*I'1#]0O#JU%*5H^L[VI!@4K%4@/T0 M+P/U85'X*I*V;'WP]\H#S\'<_I1-Z.L4/\;YN7--A48M8QWVW/<?:Z_J:-/I MQPW<6F7KAX;[:G_I<3ZF9;.GEBK0QM5)'>=`$SZ*RLH9*/[V<KR`$VIK8/CR M&,O!&9B^KPO_#SS'.E$ITOO'HDR_R&T*WQ,S<HJ,3NI[>$"'`3:3S7;2P/GP M#'V <at> V1R<K@])LK`G<T2&'<YAFA,G7,!^:8P>5D<<_3EYS3!8%[K0SQ_['6I? M"NY0AMB8(1=J-9<>9;06-<NCBUO9GR'<8N&;(>T<@7H`N-O*8Q(!.QN>J$8B M(]0YCI_\``.BZ_!MP9G1C)+;,OD,&BB"<&0+C\MH-FSU <at> Z5W.RH[M]VFO802 M)YJ$4T(-'K..(*E4=[+YJES-_Q5EE9#-,D'I7<:TP=Q>3I6;?^V6>(0:ESCY M[.VT[[(3=8)$(5TV%&)%*C?$HDUS[89\7_CV-=^ZKGC<1H6&!"1C0!9C!GF< MXN7YX%/WI8!1KNDO=9=RG<<5)<@"19IPUZ!HR_9D=W_IODU@.E7M%BF,?<@@ MO;40"M[J[OKC7L9<F:T>LTG-2SG]5%3SEWQ=*[KLX%_ <at> XK4.L$IK <at> OH4=U@[ M-.+*)%L_);_G%6J"E=/?FJ7"DMN7V>=\\K4K[A[GD^HE+XMR^N=N3?A\6KW@ M#KTJND=P7.$A(,/U)5WFB\\`B1 <at> 540IJO(;,TZ8<]RG8?T&U@$=,"KOQ*;S^ MV[Q9S;\Y&-/>!ZP\/9D0Y0P^1>(YGOBI-CN"?S5_`GE\L^IESW_9*X3R']NT M<"EB^9L-ZAQQ@[*D8YQ(YT_S2(M\2UKH<I)Q=8T'5`1N%RD&RHS.I=TD+F;K M;/GUKQP#\?[,YY6].=ONUNO].="IRM`31R,'3%+W[VS"I&!D)VJ4'*=CIFTH M?%X5>Y+MKA!`*J,T$_IBC[L&A>*""Y/4<7OO`44C+]*!T2N&<.Q0-11E]`1$ M"^@5JF8/'1>0#S]_]X]N/NH7PEUUTLB[3D>&"H'RABK*='0B._*G'S]\_\OO MW]>0]*X#DT)#%W28DZ1BB8@^"]>9(6LP9K(Z!(@\P!ZK"V'M2MZM%](NX&E0 ML(\AT).X-*J1P8ZV_W[8/#W.'XIU8[@<E#P3H&^9$J&Q!C69H'!G_V&3Y(W- M*M9EU37TN,(WV?N&KDT22J5&Q:U1!$M/!H]B\Z=/^6HS?=MLG]9YU4:0'A:] M(DA%EPW&0WL\H[7#2<D()D)[:EV/=%\_LCB1W'WD=>A-(TY^!V <at> N)X)H))CT MX<[#R1KFI&Q=I[%/6[W4B7H@#[Q^XI_9#,#*%_FZF\J&5?X[-,'-2>^+\]/E M\$>AE_G.V6[K4!(.ELJS_B0WJ%V?-)@W)*6)=O8PN7T\P`6;A'R65=6V>-QA M%F/[Q,_?\G[RL`PUQRAJOQ?U>O""4XXZ:5%">4\@U>S+)^R!/[".:_)?R_G# MBP6G=^T?Q#LX;/'#0G/<7`H5P?2W`R&,%Y3+L\KJKA"[C@;)M90H3NO&E^3^ M!>#^S`Z3[EF?J/-GG$MO>^B*"$,H6/)1%GP?=!Z+JCR`IE_ACXNZS1!2`F4# M6NG1]\(E*TMH5(?*8=%_UR,(&["L^:%BN%9(!G-W7_[)H]@_LP8 <at> BF^.0?Y/ MEHBIL68.MD-'=2&:UE8O\2R=PC5T,'.<@C'A<F![WWWA8YZM>AO#MGC[OM@+ M`1 <at> NDA"%P0=Q3ZQ[[7_-MZN]:7%0\F]]8TH+'42:8%"O6S%-'&.7X <at> P/F$-F MJZ*<=Y`<5_C;6#?0*0`F5"A&9!N*,DI2YRE<,OAWR[@W>R[6V;(#Z.P=?[^* M53T([3Z,$B/``&/QHF01"T_K2]J0>2/VF^<3F\S+\+O97P"!XEJHEIW(M57- MY_F&>Y.S/(='R[/KE^=$HLW@:CS:+^]/\T`$]3&(G;^^H1(5$)D;E^;E&;D] M"NH50G.F96.SB+.IB3>?`,&8DZG&X!FG?*`X,W<S!;']-OFP[#]OZYNXJ`$4 MF:*+>X0\/!=@^!$P/'R9;Q,]\"(4&B6)HI&"K3R1$4?(B'!D;NPPBAA.1<+\ M0ATBP4*/8*'A_L7;]"@0&$FY!,,X>LKX%2,(/]#:.GO[YT2EO^ES&WTW0&2( M%@*ES6(?//>6JKMFCS!MX];/;1]#TD<0&`F3,`>K,.:FH@=*$_K2BX()ZA#J MMO[`$KP@,8\7CQFL_\P^9S4'!;JSIXO-9K',IT_YYR;PI7F-#7_9EO6K]Q(O MKY\6TP^;51VL]H"WFD/[XYIO\<([BH&3FS1>`$L-&XL4&1I&DPKXWU__^8_? M?_ON0]./#DK^<TL;M1"V!64)X016IH2,PK9T18UZD:_I=-'0['9!>4?E`,=> MTT-"`:)I$^IBHK)<-^8_>U#3+ZOEM,R^X`]R<'6[A:-RX(9!4]%T&-A,GE9( MNWG#P#"6%DS`I";CC]ZG&LKY9?;8NZH)P5O@^H50WH6F!V&D:J1=%DLP<-]( M)%]X'\R>NY[V?"O3D-(M$TJLM&G$RRB#F1UQ <at> O$P^B1[K2QK0/FP+,KJX6GZ MF/V5+^M"DV1^4!PUT <at> HE?Y12'";P,8+O!C,W;"2J'OM\K^!_-*O,;8&(@(4Q M*=&))O$T7^O5R=,9I<Z[T?P8]YJET<U9Q>J=-ZJA,-^PA?TJU'[P<_$EW\X: M,D@[.QS7!,X22E]27KC#!*%XJI!M*@:OPD5YBE<\MX$W7L^_=@Q_ <at> RHO?M;4 M!GI32@(T2M#(E:E*51R5\S-]N<J^8-:0QGR>^IV:,[A3M?XS!KOIX(7!*LL5 M0]G"NY.Y7^H7=7%65MG\4X_Z\;C.C_$_M=8M[(1Y0-?@&/A,:"+BL+$-)Y95 M5BP?-U]ZO$6]8BAU4:I,TQ_JJS <at> 3"D^$EAKVWO$"NIO4+V <at> Q8K98O9*TS;SY MF#\6V;J??;.O"1@]EN&;L*`>8\"^TRBY-0H.5;%^WHCI?W[WWW7S[=]1;2V. M <at> C44TS73V-;YZ?ES,'7Z)4C>.%UR^*)@:J=@:L;(D3RC>?#AUU_^^.>/__$_ M?_SXRP]=IL>P[N_!S8(824VD3+08 <at> _ETF,LXWRR7^1QUBLII]CC?,Y_NKV_; M_`H7>H+`F94)S6#Y(G$8!\];MXU97;-_=H>RO4)H#BAO7"PHM!UK+8*YUW#I M&)1]WV1'Z$W30Q;5>]"GDJ$(Z/W[&5>$IR;!R6PTU.8-'M.?L_GT(Z9N_/;C MAS\>MYNW$NX5\W5SV=&$'M>$PBG-Y<2>>]A#7'$&MG3T=$CG#?*]1S)TE]@@ M2B$I48DV8[#3]H]T8)=1;:8`6[Z%?YPM-K.Z!MZ@<P1>NAG,0FZN15[<`53% M.$=:C3BF>L"AQM.V^)SOSS0.B_ZVK"4:U2R(GA``TE00KA,5Y]1GN.#FZ^9= MRRGLIF>Z[6#]0CA)YT7+_ <at> Z]"<8FY2(AZ1A'A$>K1KUBE)OYI[PJI]NFLM,% M."B&XD>O':#>`4%C8$"B%VH,:V5H&\/XFM<GU=T`'-0$B`*8&]1SC4B$8BDL MGG(,'O>A4'/%VE[4785:NZ3!09IHAV,P]J2"!3*6X3:<K_K]8]!A;EG^C+3Q M4D02'<GU+1)*A(2")G>7I#LQM:,+;]I(*&1/3]VF8%`3&N)*B`UQ$%I%`TPJ MU)P2T8/S<#1^S5Z?ZU]-1,TV?]YL5UD%MV>/65G,9UC?TU8Z?S<T"(`9?4VE MZPZ@,IXRC8Z1<<;L8[%^R3O'\D$IF,RI32!G1D1R*XN$$[`N,`YI'//BA*)H M=B`IFGEJBA)M4U"9#ET+N1(HFJ*B*TXX[R3W44='04 <at> W="<N2+/W@:G_7&SU M'?H3&!:"L"2&Q%E[%-Z..=^LDJ&M>9R:L1_.;H?=^)MPBCX=7S:&_4=ER*I7 M;*;SS7:SJXIUWBW[_]?<M30Y3@/AO^+BPFF(]9:NL!RHX@:<4T[66Q/()"%V MV%E^/=VV[,B)G4A*Y*'V,)9J=NQN2:U^?GTU$]U<@]J4&)DJ/B402A]6/F,I M:M3O^`2+W6Y?%XWW>9`L,#$?ZX[)\S8.SA,>'Z4H.F14&MB#<2ZFP=>S*-I. MHM]#(0Z!.!@JQ[+X>2J<IT7T-Y3'9T0]9Q2YLXQHKS#88>EVEA&4,@HTSY&P M97=6TP9EV=WVS^Z00KIL4GQ(Q3@)YDP.$EZE@!NP-]J`3:&W&O-%-QY=$[][ M3F8F-XJ"#A'9)N?:*V)3/^'YN?%":2O(J)ZL%7_"GB`2MAQ6E7],N'5?+9;+ MS6Y3+Y<]ZRXG8 <at> W>Y`YR.%%,H-(T8_"P*NO3H<]E=P;1;@$+24&H3R^,2#XQ MRK7.9^KLYD*^=3ECQ:[:@,5_?.L2QBXG <at> IIS*XO6'-DL&!EB.*B9H&W/X;8< M8TB")#HP'-K;7T <at> 6RQ=N8#]B&&_&9/1SBN'+:77:U:>652\K4+<WZW.6NN?O M1:#"=-Z1<;_</9XAE@,QV#CU?Q*EJ_=_E;M>G`]&$7 <at> ICU68RTSFC%$*:L\< MD>%1M.%-[8(-=Z,(K&'*M+P-]GV/&8J"^D,0\OJ#P+W?C^67-K]@:9M)GY,, MW)GHNBRK2*N42I/F6G*P0-0\0:<)+CZ[;VGB1!=0O<%NDR#<4P <at> J:X`@8P+M M#D&O),QMN^-Z);QM#Y5K+"C1*L[XF/R`!L+\G$@V',:Z6>GMP.S#&T)EF%VB M,B;GN+C<G)VOY6IQVBQ^_..77S\U#.N?P <at> N'K?HL)VOT[C&!$,YT <at> P'_@;*D MLZ(;_KP4GS];5'P;T!B?]HUL,-:Z&]ED:ZY[/()GS=#S,Z/+YQZ3;'KA@$.# M.6_VB,?*]N`$@2%"P;S2"?*TK&"-\^FP/-"G,\UT/QF+T <at> 1T'`09SY\L8X>K MO]Z6V!'777QWRCOH]^#*<TX(8P <at> L.7-QWG%5'TL,Y[2FXW`89DR;%L:#$*Q# M#C>`5":DQM9A*7;_31X45;5?]PX%9Q!"O^86:(V"`1=%OB3"4);)65)?)X_' M[S__YI:8#(?QC5K;FV.R,5Q8Z$4A8!D%%51Z-95($CLXGG9-ZDEO^EQ.Q(9> M.LLPSY-%]11"%E/08'W`5Q-XBT_'+3X<R[]/;?+.QN;V#,81.ES71C4.J <at> U, M&HJ9F=BU;*Y68O6B?"_>#MNS"+X8!\K <at> FZK^7?(-%PS,XC2]K6Y(X`J#XE6] M6?=<N)H):N+!F`4T=#R[0;+8,/R7&9*N<2@(V_)8[M:A&*M"W\T:<3C\?EB7 MB[=BM^A?YZF!:>`B5S0S+9Z&=V,26X0;$"^\[MKF0X\O%5HQREMX,'_OPR%X M5?@X6OHM*OS703&%Y46A\!67+[3/3<.<]6M9]8?-'82<,Q"X%P5!`8=,-\4O M$E1\G0ZE!&D-SLH:[9)P:R5=QOJN*L5L2H$E52$[LWU3J/4639$O,8R#L("! M]),5-Q/RJ\6:=8J4W9[#<<@.59TW-!:H7</)9CDAH!-\J%J>(B7JN27?.A.Y MY!1_I/,+UZ&'F?@Z+JPVYKOCA0`5(\<?\4+9B>%VM81]`'<P$;+C)7Q2\SO, MT'%$NWNDR5Q09C*:HF6A7<;RK5B'YQ6-8E;@4DZTE6[>XKVBB <at> JL0*(J)J.H MX<?+;H\-JCJ`BK%)?Y`*R5HU3T0V7 <at> 2"X&XAPK,!\"/(J-?E5-5Z?X"_G_<) M+L-Q;"2#=RQ)91B#NBB9U`23V%)E+GP!TV;5%E%U3VW;QNI0K/W@@Q\!;]&9 MR3G(B"PIP)$CY5;[?;UHPN56NCG/89T9N;"1K"BC#@@73&`UM)C;P0B__[E- M][9>UN$XB`LY>8@+!@4<Q9*XN6W\U[H^+/ZLL$"WY8+S'.1H%?DMI+Q[Y&,1 M()"ODU07C9#?9)+\T#9U_,X=!.&:2=I>ZB0.\0Y6'?XCR3,Y,]UX4SB4=\-9 MX:J`>"FPKY"8_>"WZ1Q;)[4C'-*.]NBQ47$%DS&2*ZG`VI[[Q*]?RW-2HCL( M`WNTMWZLO&-:@JP#L3%W:.WS9GVV8=U!T/+G\B*?)XAX#GH,Q[C[W#N_>H6G MWIGK#((NNX=./=><*M#H=-)VE:.T%V?*BQB_FNUBA`!J,92C7PZC8\F;SCO% M25]_6G[:KT]-$X-%TR:D2<OMC*&KF0!+2%C+3PH^%3^\QQ&EJ8$;P,^)\X12 MK0$W3M6R+M[+:MFG(%_-1%Z(<8$>`YHPH;"WB%><ZUEXKV#L;,ON8+B#[P_E MT1-EA-JC02@/!^L$BP?[\PB323*W/-P6_WYK5KN_$:YF`MB <at> QINZ>7/!<(/- MNL+P*Y_`!7Q#A3`$VUXHG(=!-X/*3;16@!P <at> F&9/,Y6P@?6P/"'0VT4N(4H[ M7]=$\8./EZNAVW!A:*994-@!7A@:#[.5D%S(*0I\/QDN<43#Y%2D_60PC,<. M%7[R/P5L:=C'(9_-3),E;4A((?YJL\.7-"F:Q_*PKS;U_FAKQT>GH_$0A<V5 ;R$>/SX.>M$;2,FV4P;38J!/V'[#+5#J+:`(` ` end
[Message part 2 (text/html, inline)]
bug-gnu-emacs <at> gnu.org
:bug#38644
; Package emacs
.
(Sun, 29 Dec 2019 15:24:02 GMT) Full text and rfc822 format available.Message #23 received at 38644 <at> debbugs.gnu.org (full text, mbox):
From: Michael Albinus <michael.albinus <at> gmx.de> To: Peter Ludemann <peter.ludemann <at> gmail.com> Cc: 38644 <at> debbugs.gnu.org Subject: Re: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode Date: Sun, 29 Dec 2019 16:23:46 +0100
Peter Ludemann <peter.ludemann <at> gmail.com> writes: Hi Peter, >> In bug#33194, a patch for Emacs 27.0.50 is mentioned. Do you have a >> chance to run this for test? > > Emacs 27.0.50 somewhat fixes the problem with global-auto-revert-mode, > using the same desktop file (and same open files) that was causing > problems with Emacs 26.3. (Sorry I took so long to test this.) Thanks for the feedback, the fix in Emacs 27 seems to work. > Emacs CPU utilization is now ~30-80% (according to top(1)) instead of > 100%; and responsiveness is good. Of course, it would be nicer if > emacs CPU utilization were less, so that I could fully utilize that > core (I only have 4 cores, so losing half a core is notable on large > tests). If I count correctly, your desktop file contains 489 buffers. Heavy load for global-auto-revert-mode. > Michael Albinus - you had a number of other questions ... do you still > want them (or some of them) answered? No, I don't believe so. > PS: Here's the desktop file, in case that can give some clue as to > what file or directory is causing problems. The "compilation" > processes both input from and output into /tmp/pykythe_test -- as you > can see, there are a couple of open files from that directory, but > they're not being continuously updated, only once or twice per test. auto-revert watches directories. Even if you watch only some few files in a directory (I count 29 buffers which are bound to "/tmp"), there will be lot of file notification events when other files in that directory are changed. Maybe it helps to set auto-revert-use-notify to nil for those files? You could do it via directory-local variales, as in (dir-locals-set-class-variables 'auto-revert-with-polling '((nil . ((auto-revert-use-notify . nil))))) (dir-locals-set-directory-class "/tmp/" 'auto-revert-with-polling) (This is untested.) > best, > - peter Best regards, Michael.
bug-gnu-emacs <at> gnu.org
:bug#38644
; Package emacs
.
(Sat, 04 Jan 2020 18:51:02 GMT) Full text and rfc822 format available.Message #26 received at 38644 <at> debbugs.gnu.org (full text, mbox):
From: Peter Ludemann <peter.ludemann <at> gmail.com> To: Michael Albinus <michael.albinus <at> gmx.de> Cc: 38644 <at> debbugs.gnu.org Subject: Re: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode Date: Sat, 4 Jan 2020 10:50:16 -0800
[Message part 1 (text/plain, inline)]
A few small comments/questions inline ... On Sun, 29 Dec 2019 at 07:23, Michael Albinus <michael.albinus <at> gmx.de> wrote: > Peter Ludemann <peter.ludemann <at> gmail.com> writes: > > Hi Peter, > > >> In bug#33194, a patch for Emacs 27.0.50 is mentioned. Do you have a > >> chance to run this for test? > > > > Emacs 27.0.50 somewhat fixes the problem with global-auto-revert-mode, > > using the same desktop file (and same open files) that was causing > > problems with Emacs 26.3. (Sorry I took so long to test this.) > > Thanks for the feedback, the fix in Emacs 27 seems to work. > Correction: Emacs 28.05, cloned from git://git.sv.gnu.org/emacs.git and built using the instructions at https://www.emacswiki.org/emacs/EmacsSnapshotAndDebian#toc3 > > Emacs CPU utilization is now ~30-80% (according to top(1)) instead of > > 100%; and responsiveness is good. Of course, it would be nicer if > > emacs CPU utilization were less, so that I could fully utilize that > > core (I only have 4 cores, so losing half a core is notable on large > > tests). > > If I count correctly, your desktop file contains 489 buffers. Heavy load > for global-auto-revert-mode. > This is the result of working on a project for several months (using emacs-daemon). For example, 94 of those files are from Python and SWI-Prolog standard libraries, because I needed to get implementation details ("use the source, Luke"); and I'm using pieces from about 5 packages, whose source I also need to look at. So, it's a little sloppy, but not unreasonable, I think. > > > Michael Albinus - you had a number of other questions ... do you still > > want them (or some of them) answered? > > No, I don't believe so. > > > PS: Here's the desktop file, in case that can give some clue as to > > what file or directory is causing problems. The "compilation" > > processes both input from and output into /tmp/pykythe_test -- as you > > can see, there are a couple of open files from that directory, but > > they're not being continuously updated, only once or twice per test. > > auto-revert watches directories. Even if you watch only some few files > in a directory (I count 29 buffers which are bound to "/tmp"), there > will be lot of file notification events when other files in that > directory are changed. Maybe it helps to set auto-revert-use-notify to > nil for those files? You could do it via directory-local variales, as in > If I understand you correctly, Emacs doesn't watch individual files but instead watches the directories that those files are in ... if a file changes, then the directory will be changed with the file is written/closed. Is this a correct understanding? (Presumably the reason for this is that if files /path/to/dir/A, /path/to/dir/B, /path/to/dir/C are open in buffers, it suffices to only watch for changes to /path/to/dir; and if /path/to/dir/D is opened, no change to the watch list is needed.) > > (dir-locals-set-class-variables 'auto-revert-with-polling > '((nil . ((auto-revert-use-notify . nil))))) > > (dir-locals-set-directory-class > "/tmp/" 'auto-revert-with-polling) > > (This is untested.) > I haven't tested this because emacs 28.05 gives me adequate performance and I can live with turning global-auto-revert on/off when I do a big test (turning it off makes the test run a bit faster because there's another 0.5 CPU available for the test). Thanks again! - peter > > best, > > - peter > > Best regards, Michael. >
[Message part 2 (text/html, inline)]
Michael Albinus <michael.albinus <at> gmx.de>
:Peter Ludemann <peter.ludemann <at> gmail.com>
:Message #31 received at 38644-done <at> debbugs.gnu.org (full text, mbox):
From: Michael Albinus <michael.albinus <at> gmx.de> To: Peter Ludemann <peter.ludemann <at> gmail.com> Cc: 38644-done <at> debbugs.gnu.org Subject: Re: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode Date: Sun, 05 Jan 2020 10:28:20 +0100
Version: 27.1 Peter Ludemann <peter.ludemann <at> gmail.com> writes: Hi Peter, > I haven't tested this because emacs 28.05 gives me adequate > performance and I can live with turning global-auto-revert on/off when > I do a big test (turning it off makes the test run a bit faster > because there's another 0.5 CPU available for the test). So it's OK for you; I'll close the bug. > Thanks again! > > - peter Best regards, Michael.
bug-gnu-emacs <at> gnu.org
:bug#38644
; Package emacs
.
(Sun, 05 Jan 2020 13:06:01 GMT) Full text and rfc822 format available.Message #34 received at 38644 <at> debbugs.gnu.org (full text, mbox):
From: Mattias Engdegård <mattiase <at> acm.org> To: 38644 <at> debbugs.gnu.org Cc: Michael Albinus <michael.albinus <at> gmx.de>, Peter Ludemann <peter.ludemann <at> gmail.com> Subject: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode Date: Sun, 5 Jan 2020 14:04:25 +0100
Just out of curiosity --- did you try setting auto-revert-avoid-polling? If so, did it have any effect?
bug-gnu-emacs <at> gnu.org
:bug#38644
; Package emacs
.
(Sun, 05 Jan 2020 19:33:01 GMT) Full text and rfc822 format available.Message #37 received at 38644 <at> debbugs.gnu.org (full text, mbox):
From: Peter Ludemann <peter.ludemann <at> gmail.com> To: Mattias Engdegård <mattiase <at> acm.org> Cc: 38644 <at> debbugs.gnu.org, Michael Albinus <michael.albinus <at> gmx.de> Subject: Re: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode Date: Sun, 5 Jan 2020 11:31:51 -0800
[Message part 1 (text/plain, inline)]
Mattias: Are you asking if I've tried this: (dir-locals-set-class-variables 'auto-revert-with-polling '((nil . ((auto-revert-use-notify . nil))))) (dir-locals-set-directory-class "/tmp/" 'auto-revert-with-polling) No, I haven't. Which version of Emacs would you like me to try this with? And what result are you expecting/hoping to see? (e.g., might it reduce the current 30-80% CPU load for polling with emacs 28.0.50?) There are only a few open files directly under /tmp, so would this have any effect or does it propagate down to subdirectories? [Also, I'd need a few more details (not being an emacs-internals person) ... should I add this to my .emacs and restart, or execute in a scratch buffer, or ...?] On Sun, 5 Jan 2020 at 05:05, Mattias Engdegård <mattiase <at> acm.org> wrote: > Just out of curiosity --- did you try setting auto-revert-avoid-polling? > If so, did it have any effect? > >
[Message part 2 (text/html, inline)]
bug-gnu-emacs <at> gnu.org
:bug#38644
; Package emacs
.
(Sun, 05 Jan 2020 19:58:02 GMT) Full text and rfc822 format available.Message #40 received at 38644 <at> debbugs.gnu.org (full text, mbox):
From: Mattias Engdegård <mattiase <at> acm.org> To: Peter Ludemann <peter.ludemann <at> gmail.com> Cc: 38644 <at> debbugs.gnu.org, Michael Albinus <michael.albinus <at> gmx.de> Subject: Re: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode Date: Sun, 5 Jan 2020 20:57:42 +0100
5 jan. 2020 kl. 20.31 skrev Peter Ludemann <peter.ludemann <at> gmail.com>: > Which version of Emacs would you like me to try this with? And what result are you expecting/hoping to see? (e.g., might it reduce the current 30-80% CPU load for polling with emacs 28.0.50?) There are only a few open files directly under /tmp, so would this have any effect or does it propagate down to subdirectories? > > [Also, I'd need a few more details (not being an emacs-internals person) ... should I add this to my .emacs and restart, or execute in a scratch buffer, or ...?] 'auto-revert-avoid-polling' is a single global customisable variable, so you would set it using M-x customise-variable RET auto-revert-avoid-polling RET , then turn it on and apply the change. I believe it was introduced in Emacs 27. The idea is to save CPU by not having to look at files periodically to see if they have changed. I have no idea if you would see any improvement at all, but it shouldn't make anything worse.
bug-gnu-emacs <at> gnu.org
:bug#38644
; Package emacs
.
(Tue, 07 Jan 2020 00:03:01 GMT) Full text and rfc822 format available.Message #43 received at 38644 <at> debbugs.gnu.org (full text, mbox):
From: Peter Ludemann <peter.ludemann <at> gmail.com> To: Mattias Engdegård <mattiase <at> acm.org> Cc: 38644 <at> debbugs.gnu.org, Michael Albinus <michael.albinus <at> gmx.de> Subject: Re: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode Date: Mon, 6 Jan 2020 16:01:22 -0800
[Message part 1 (text/plain, inline)]
If anything, auto-revert-avoid-polling makes responsiveness worse -- the window locked up a few times on me while doing ctrl-N while running a CPU-intensive (and possibly IO-intensive) compilation. Although I might not have set the value correctly ... I did M-x customise-variable RET auto-revert-avoid-polling RET then "toggle" then "apply". . On Sun, 5 Jan 2020 at 11:57, Mattias Engdegård <mattiase <at> acm.org> wrote: > 5 jan. 2020 kl. 20.31 skrev Peter Ludemann <peter.ludemann <at> gmail.com>: > > > Which version of Emacs would you like me to try this with? And what > result are you expecting/hoping to see? (e.g., might it reduce the current > 30-80% CPU load for polling with emacs 28.0.50?) There are only a few open > files directly under /tmp, so would this have any effect or does it > propagate down to subdirectories? > > > > [Also, I'd need a few more details (not being an emacs-internals person) > ... should I add this to my .emacs and restart, or execute in a scratch > buffer, or ...?] > > 'auto-revert-avoid-polling' is a single global customisable variable, so > you would set it using > > M-x customise-variable RET auto-revert-avoid-polling RET > > , then turn it on and apply the change. I believe it was introduced in > Emacs 27. > > The idea is to save CPU by not having to look at files periodically to see > if they have changed. I have no idea if you would see any improvement at > all, but it shouldn't make anything worse. > >
[Message part 2 (text/html, inline)]
bug-gnu-emacs <at> gnu.org
:bug#38644
; Package emacs
.
(Tue, 07 Jan 2020 00:36:02 GMT) Full text and rfc822 format available.Message #46 received at 38644 <at> debbugs.gnu.org (full text, mbox):
From: Peter Ludemann <peter.ludemann <at> gmail.com> To: Mattias Engdegård <mattiase <at> acm.org> Cc: 38644 <at> debbugs.gnu.org, Michael Albinus <michael.albinus <at> gmx.de> Subject: Re: bug#38644: 26.3; emacs uses 100% CPU with auto-revert-mode Date: Mon, 6 Jan 2020 16:34:19 -0800
[Message part 1 (text/plain, inline)]
Correction -- the "lock-up" I observed might have been due to paging (possibly related to emacs - I'll have to investigate later). Toggling auto-revert-avoid-polling appeared to reduc emacs CPU usage, according to top(1) - it's a bit difficult to tell because there seems to be some lag in when the command takes effect and my compilation process switches a certain amount between CPU-intensive and IO-intensive. Anyway, CPU seemed to drop from ~60% to ~30% (please take this observation with a large grain of salt). I'll try more things in the future and report if anything interesting shows up. - peter On Mon, 6 Jan 2020 at 16:01, Peter Ludemann <peter.ludemann <at> gmail.com> wrote: > If anything, auto-revert-avoid-polling makes responsiveness worse -- the > window locked up a few times on me while doing ctrl-N while running a > CPU-intensive (and possibly IO-intensive) compilation. > Although I might not have set the value correctly ... I did M-x > customise-variable RET auto-revert-avoid-polling RET then "toggle" then > "apply". > . > > On Sun, 5 Jan 2020 at 11:57, Mattias Engdegård <mattiase <at> acm.org> wrote: > >> 5 jan. 2020 kl. 20.31 skrev Peter Ludemann <peter.ludemann <at> gmail.com>: >> >> > Which version of Emacs would you like me to try this with? And what >> result are you expecting/hoping to see? (e.g., might it reduce the current >> 30-80% CPU load for polling with emacs 28.0.50?) There are only a few open >> files directly under /tmp, so would this have any effect or does it >> propagate down to subdirectories? >> > >> > [Also, I'd need a few more details (not being an emacs-internals >> person) ... should I add this to my .emacs and restart, or execute in a >> scratch buffer, or ...?] >> >> 'auto-revert-avoid-polling' is a single global customisable variable, so >> you would set it using >> >> M-x customise-variable RET auto-revert-avoid-polling RET >> >> , then turn it on and apply the change. I believe it was introduced in >> Emacs 27. >> >> The idea is to save CPU by not having to look at files periodically to >> see if they have changed. I have no idea if you would see any improvement >> at all, but it shouldn't make anything worse. >> >>
[Message part 2 (text/html, inline)]
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Tue, 04 Feb 2020 12:24:03 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.