From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Andrey Orst Newsgroups: gmane.emacs.bugs Subject: bug#46350: 28.0.50; touchpad-scrolling-eats-lots-of-cpu-samples Date: Sat, 6 Feb 2021 21:34:29 +0300 Message-ID: References: <83a6shnklg.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="000000000000983dfe05baaf3052" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="11226"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 46350@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Feb 06 19:35:12 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l8SQK-0002kp-1I for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 06 Feb 2021 19:35:12 +0100 Original-Received: from localhost ([::1]:36938 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l8SQJ-0002jk-22 for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 06 Feb 2021 13:35:11 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:53462) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l8SQA-0002iO-Ic for bug-gnu-emacs@gnu.org; Sat, 06 Feb 2021 13:35:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:34876) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1l8SQA-0004Zs-9E for bug-gnu-emacs@gnu.org; Sat, 06 Feb 2021 13:35:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1l8SQA-00040r-5x for bug-gnu-emacs@gnu.org; Sat, 06 Feb 2021 13:35:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Andrey Orst Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 06 Feb 2021 18:35:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 46350 X-GNU-PR-Package: emacs Original-Received: via spool by 46350-submit@debbugs.gnu.org id=B46350.161263648915404 (code B ref 46350); Sat, 06 Feb 2021 18:35:02 +0000 Original-Received: (at 46350) by debbugs.gnu.org; 6 Feb 2021 18:34:49 +0000 Original-Received: from localhost ([127.0.0.1]:46422 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l8SPx-00040O-Dd for submit@debbugs.gnu.org; Sat, 06 Feb 2021 13:34:49 -0500 Original-Received: from mail-pf1-f172.google.com ([209.85.210.172]:42317) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l8SPu-00040A-TI for 46350@debbugs.gnu.org; Sat, 06 Feb 2021 13:34:47 -0500 Original-Received: by mail-pf1-f172.google.com with SMTP id w18so6610980pfu.9 for <46350@debbugs.gnu.org>; Sat, 06 Feb 2021 10:34:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Y86RBmBTB4g3/sxjmYQQUnW0yZkSiQgGjp8M+oKALyo=; b=FanYyKbvov83SINdUMVm4r3Ri1zuU/gc+bacsMQebxfhm1m/JNgFzhOBIaWvxG7NHL 2oiaAePSb+OKy9OGKEqCY9XmqANN0VNkVW/lciDhxle4GAZWPJGTbJaCddHB787bIWvi rQsFzy7tBx98YFzJfPcVvsuH2zNpEcElcUuAlaCpPttt+zsgzUsaMcCFZg2n0eT9tjBi XGXAkZWVpOImhLYVMIAdZuKwIKhVD288X6IBZcHuXXfzSgmJwx6q6fB3nxaddm+MH/D8 ZgTDNA+xqgl6QR6ecM8ivkSSmH8kBIGjM/eoiNYASePclW5VB6Df+8w1l85I1d9jyBsA GeLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Y86RBmBTB4g3/sxjmYQQUnW0yZkSiQgGjp8M+oKALyo=; b=tH0aG2fEs5YD+HTPQ2BVEKnr0CIoK1bNHwoJcBuJ3r0UhhpLUKJ8cWl1scrbeQcREQ HtbL2v9fxBBVKTXDWtlKFkoN0T2eKEYGFQNM90R7VizNxXE2iWunNqHvacw6EkbdBNg/ L3IrFyZfBQD9QK/pQgQBxr9+347WCMpSgGVkEY76D/25Ah4NRShdrox8u8wmnMrnzys+ TxNNk2D/ZnRzZjIhXguRIeP+Xt/hZeUSDy0ZmUinYEUtUzkCr4llmmMEAMnLRLVPE51Y vgqJ3slIyd5V8HRpaBEqeXRHEBHanlFN7Cll3dtgsRzeqJJN5EMAB1jTs4rsVQAnTB13 oH3Q== X-Gm-Message-State: AOAM532G/2dNiP1DdthQzSKwUnfE36MwJgz4cIKQVgRecUpIGJvkwit5 y2MPIeQZwvg220/V0ksCe9lmVMb5g8vlaROo/XdR782MLfdTRA== X-Google-Smtp-Source: ABdhPJxVj3dbfddQAKyKMabKVI85n13EYG1sgct8nAeAO9B+tfGS5J9g31xaUZ0AVY4zJkAqfD6kDUglg3b/yKdy9Hg= X-Received: by 2002:a63:514d:: with SMTP id r13mr10223237pgl.287.1612636480878; Sat, 06 Feb 2021 10:34:40 -0800 (PST) In-Reply-To: <83a6shnklg.fsf@gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:199448 Archived-At: --000000000000983dfe05baaf3052 Content-Type: text/plain; charset="UTF-8" On Sat, Feb 6, 2021 at 8:59 PM Eli Zaretskii wrote: > I cannot reproduce this. Did you try "emacs -Q"? Yes, the behavior I've described happens to me in emacs -Q (and emacs -q) > Please load mwheel.el (NOT the .elc file!), and then profile the slow > scrolling again and show a fully-expanded profile. That might help us > understand what part of mwheel-scroll takes the lion's share of CPU > cycles. Here's whole report expanded (btw can't find if there's expand-all feature?): 11593 91% - command-execute 11549 91% - funcall-interactively 11542 91% - mwheel-scroll 11536 91% - let* 11420 90% - condition-case 11381 90% - unwind-protect 11377 90% - let 11373 90% - cond 11372 90% - condition-case 10868 86% - funcall 324 2% - scroll-down 263 2% - jit-lock-function 255 2% - jit-lock-fontify-now 235 1% - jit-lock--run-functions 233 1% - # 232 1% - font-lock-fontify-region 224 1% - font-lock-default-fontify-region 132 1% - font-lock-fontify-syntactically-region 110 0% syntax-ppss 10 0% - lisp-font-lock-syntactic-face-function 7 0% - lisp-string-in-doc-position-p 1 0% forward-sexp 2 0% - lisp-string-after-doc-keyword-p 2 0% - backward-sexp 2 0% forward-sexp 35 0% - font-lock-fontify-keywords-region 17 0% - lisp--el-match-keyword 2 0% - lisp--el-non-funcall-position-p 1 0% syntax-ppss 5 0% # 1 0% - let 1 0% - cond 1 0% eq 1 0% font-lock-prepend-text-property 1 0% lisp--match-confusable-symbol-character 6 0% font-lock-unfontify-region 24 0% - eval 18 0% - if 3 0% display-graphic-p 2 0% - unless 1 0% if 1 0% mode-line-eol-desc 502 3% - unwind-protect 502 3% - funcall 5 0% - scroll-down 4 0% - eval 4 0% if 4 0% - if 2 0% if 6 0% - message 4 0% - error-message-string 3 0% - substitute-command-keys 1 0% # 1 0% clear-minibuffer-message 57 0% - if 50 0% - progn 46 0% - setq 39 0% - run-with-timer 33 0% - run-at-time 4 0% - timer-set-time 1 0% timer--time-setter 1 0% timer-activate 3 0% * 2 0% if 3 0% - let 2 0% - while 1 0% - consp 1 0% - setq 1 0% car-safe 49 0% - mouse-wheel--get-scroll-window 48 0% - or 47 0% - catch 45 0% - let* 44 0% - if 39 0% progn 4 0% mwheel-event-window 1 0% - delq 1 0% - delq 1 0% delq 5 0% - eval-expression 5 0% progn 42 0% - byte-code 29 0% - read--expression 2 0% - redisplay_internal (C function) 2 0% - funcall 2 0% - # 2 0% - gui-backend-selection-exists-p 2 0% - apply 2 0% # 1 0% - frame-windows-min-size 1 0% window-min-size 976 7% - ... 976 7% Automatic GC 13 0% - timer-event-handler 13 0% - apply 13 0% - # 13 0% - eldoc-print-current-symbol-info 13 0% - eldoc--invoke-strategy 13 0% - eldoc-documentation-default 13 0% - elisp-eldoc-funcall 13 0% - elisp--fnsym-in-current-sexp 13 0% - elisp--beginning-of-sexp 13 0% - forward-sexp 4 0% - scan-sexps 4 0% syntax-ppss 11 0% - jit-lock--antiblink-post-command 11 0% syntax-ppss 5 0% - undo-auto--add-boundary 4 0% - undo-auto--boundaries 2 0% undo-auto--ensure-boundary 3 0% - mwheel-filter-click-events 2 0% - if 2 0% eq 3 0% internal-timer-start-idle 3 0% tooltip-hide 2 0% - redisplay_internal (C function) 1 0% - funcall 1 0% - # 1 0% - gui-backend-selection-exists-p 1 0% - apply 1 0% # 1 0% - jit-lock-function 1 0% - jit-lock-fontify-now 1 0% - jit-lock--run-functions 1 0% - # 1 0% - font-lock-fontify-region 1 0% - font-lock-default-fontify-region 1 0% - font-lock-fontify-syntactically-region 1 0% syntax-ppss 2 0% - # 1 0% - filter-buffer-substring 1 0% - buffer-substring--filter 1 0% - # 1 0% apply Also, I've attached a video of what I'm doing. VID_20210206_211819.tar.xz -- Best regards, Andrey Listopadov --000000000000983dfe05baaf3052 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 PGRpdiBkaXI9Imx0ciI+T24gU2F0LCBGZWIgNiwgMjAyMSBhdCA4OjU5IFBNIEVsaSBaYXJldHNr aWkgJmx0OzxhIGhyZWY9Im1haWx0bzplbGl6QGdudS5vcmciPmVsaXpAZ251Lm9yZzwvYT4mZ3Q7 IHdyb3RlOjxicj48YnI+Jmd0OyBJIGNhbm5vdCByZXByb2R1Y2UgdGhpcy7CoCBEaWQgeW91IHRy eSAmcXVvdDtlbWFjcyAtUSZxdW90Oz88YnI+PGJyPlllcywgdGhlIGJlaGF2aW9yIEkmIzM5O3Zl IGRlc2NyaWJlZCBoYXBwZW5zIHRvIG1lIGluIGVtYWNzIC1RIChhbmQgZW1hY3MgLXEpPGJyPjxi cj4mZ3Q7IFBsZWFzZSBsb2FkIG13aGVlbC5lbCAoTk9UIHRoZSAuZWxjIGZpbGUhKSwgYW5kIHRo ZW4gcHJvZmlsZSB0aGUgc2xvdzxicj4mZ3Q7IHNjcm9sbGluZyBhZ2FpbiBhbmQgc2hvdyBhIGZ1 bGx5LWV4cGFuZGVkIHByb2ZpbGUuwqAgVGhhdCBtaWdodCBoZWxwIHVzPGJyPiZndDsgdW5kZXJz dGFuZCB3aGF0IHBhcnQgb2YgbXdoZWVsLXNjcm9sbCB0YWtlcyB0aGUgbGlvbiYjMzk7cyBzaGFy ZSBvZiBDUFU8YnI+Jmd0OyBjeWNsZXMuPGJyPjxicj5IZXJlJiMzOTtzIHdob2xlIHJlcG9ydCBl eHBhbmRlZCAoYnR3IGNhbiYjMzk7dCBmaW5kIGlmIHRoZXJlJiMzOTtzIGV4cGFuZC1hbGwgZmVh dHVyZT8pOjxicj48YnI+wqAgwqAgwqAgwqAxMTU5MyDCoDkxJSAtIGNvbW1hbmQtZXhlY3V0ZTxi cj7CoCDCoCDCoCDCoDExNTQ5IMKgOTElIMKgLSBmdW5jYWxsLWludGVyYWN0aXZlbHk8YnI+wqAg wqAgwqAgwqAxMTU0MiDCoDkxJSDCoCAtIG13aGVlbC1zY3JvbGw8YnI+wqAgwqAgwqAgwqAxMTUz NiDCoDkxJSDCoCDCoC0gbGV0Kjxicj7CoCDCoCDCoCDCoDExNDIwIMKgOTAlIMKgIMKgIC0gY29u ZGl0aW9uLWNhc2U8YnI+wqAgwqAgwqAgwqAxMTM4MSDCoDkwJSDCoCDCoCDCoC0gdW53aW5kLXBy b3RlY3Q8YnI+wqAgwqAgwqAgwqAxMTM3NyDCoDkwJSDCoCDCoCDCoCAtIGxldDxicj7CoCDCoCDC oCDCoDExMzczIMKgOTAlIMKgIMKgIMKgIMKgLSBjb25kPGJyPsKgIMKgIMKgIMKgMTEzNzIgwqA5 MCUgwqAgwqAgwqAgwqAgLSBjb25kaXRpb24tY2FzZTxicj7CoCDCoCDCoCDCoDEwODY4IMKgODYl IMKgIMKgIMKgIMKgIMKgLSBmdW5jYWxsPGJyPsKgIMKgIMKgIMKgIMKgMzI0IMKgIDIlIMKgIMKg IMKgIMKgIMKgIC0gc2Nyb2xsLWRvd248YnI+wqAgwqAgwqAgwqAgwqAyNjMgwqAgMiUgwqAgwqAg wqAgwqAgwqAgwqAtIGppdC1sb2NrLWZ1bmN0aW9uPGJyPsKgIMKgIMKgIMKgIMKgMjU1IMKgIDIl IMKgIMKgIMKgIMKgIMKgIMKgIC0gaml0LWxvY2stZm9udGlmeS1ub3c8YnI+wqAgwqAgwqAgwqAg wqAyMzUgwqAgMSUgwqAgwqAgwqAgwqAgwqAgwqAgwqAtIGppdC1sb2NrLS1ydW4tZnVuY3Rpb25z PGJyPsKgIMKgIMKgIMKgIMKgMjMzIMKgIDElIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC0gIyZsdDtj b21waWxlZCAtMHgxNTJmNjQ5ZDI4OTNjYjdiJmd0Ozxicj7CoCDCoCDCoCDCoCDCoDIzMiDCoCAx JSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoC0gZm9udC1sb2NrLWZvbnRpZnktcmVnaW9uPGJyPsKg IMKgIMKgIMKgIMKgMjI0IMKgIDElIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC0gZm9udC1sb2Nr LWRlZmF1bHQtZm9udGlmeS1yZWdpb248YnI+wqAgwqAgwqAgwqAgwqAxMzIgwqAgMSUgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAtIGZvbnQtbG9jay1mb250aWZ5LXN5bnRhY3RpY2FsbHktcmVn aW9uPGJyPsKgIMKgIMKgIMKgIMKgMTEwIMKgIDAlIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIHN5bnRheC1wcHNzPGJyPsKgIMKgIMKgIMKgIMKgIDEwIMKgIDAlIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIC0gbGlzcC1mb250LWxvY2stc3ludGFjdGljLWZhY2UtZnVuY3Rpb248YnI+ wqAgwqAgwqAgwqAgwqAgwqA3IMKgIDAlIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgLSBs aXNwLXN0cmluZy1pbi1kb2MtcG9zaXRpb24tcDxicj7CoCDCoCDCoCDCoCDCoCDCoDEgwqAgMCUg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgZm9yd2FyZC1zZXhwPGJyPsKgIMKgIMKg IMKgIMKgIMKgMiDCoCAwJSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoC0gbGlzcC1zdHJp bmctYWZ0ZXItZG9jLWtleXdvcmQtcDxicj7CoCDCoCDCoCDCoCDCoCDCoDIgwqAgMCUgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgLSBiYWNrd2FyZC1zZXhwPGJyPsKgIMKgIMKgIMKgIMKg IMKgMiDCoCAwJSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGZvcndhcmQtc2V4 cDxicj7CoCDCoCDCoCDCoCDCoCAzNSDCoCAwJSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoC0g Zm9udC1sb2NrLWZvbnRpZnkta2V5d29yZHMtcmVnaW9uPGJyPsKgIMKgIMKgIMKgIMKgIDE3IMKg IDAlIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC0gbGlzcC0tZWwtbWF0Y2gta2V5d29yZDxi cj7CoCDCoCDCoCDCoCDCoCDCoDIgwqAgMCUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAt IGxpc3AtLWVsLW5vbi1mdW5jYWxsLXBvc2l0aW9uLXA8YnI+wqAgwqAgwqAgwqAgwqAgwqAxIMKg IDAlIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHN5bnRheC1wcHNzPGJyPsKgIMKg IMKgIMKgIMKgIMKgNSDCoCAwJSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAjJmx0O2Nv bXBpbGVkIC0weDRlNjM2OGYyMTBhNDBkYyZndDs8YnI+wqAgwqAgwqAgwqAgwqAgwqAxIMKgIDAl IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC0gbGV0PGJyPsKgIMKgIMKgIMKgIMKgIMKgMSDC oCAwJSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoC0gY29uZDxicj7CoCDCoCDCoCDCoCDC oCDCoDEgwqAgMCUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgZXE8YnI+wqAgwqAg wqAgwqAgwqAgwqAxIMKgIDAlIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGZvbnQtbG9j ay1wcmVwZW5kLXRleHQtcHJvcGVydHk8YnI+wqAgwqAgwqAgwqAgwqAgwqAxIMKgIDAlIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGxpc3AtLW1hdGNoLWNvbmZ1c2FibGUtc3ltYm9sLWNo YXJhY3Rlcjxicj7CoCDCoCDCoCDCoCDCoCDCoDYgwqAgMCUgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqBmb250LWxvY2stdW5mb250aWZ5LXJlZ2lvbjxicj7CoCDCoCDCoCDCoCDCoCAyNCDC oCAwJSDCoCDCoCDCoCDCoCDCoCDCoC0gZXZhbDxicj7CoCDCoCDCoCDCoCDCoCAxOCDCoCAwJSDC oCDCoCDCoCDCoCDCoCDCoCAtIGlmPGJyPsKgIMKgIMKgIMKgIMKgIMKgMyDCoCAwJSDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoGRpc3BsYXktZ3JhcGhpYy1wPGJyPsKgIMKgIMKgIMKgIMKgIMKgMiDC oCAwJSDCoCDCoCDCoCDCoCDCoCDCoCAtIHVubGVzczxicj7CoCDCoCDCoCDCoCDCoCDCoDEgwqAg MCUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBpZjxicj7CoCDCoCDCoCDCoCDCoCDCoDEgwqAgMCUg wqAgwqAgwqAgwqAgwqAgwqAgwqAgbW9kZS1saW5lLWVvbC1kZXNjPGJyPsKgIMKgIMKgIMKgIMKg NTAyIMKgIDMlIMKgIMKgIMKgIMKgIMKgLSB1bndpbmQtcHJvdGVjdDxicj7CoCDCoCDCoCDCoCDC oDUwMiDCoCAzJSDCoCDCoCDCoCDCoCDCoCAtIGZ1bmNhbGw8YnI+wqAgwqAgwqAgwqAgwqAgwqA1 IMKgIDAlIMKgIMKgIMKgIMKgIMKgIMKgLSBzY3JvbGwtZG93bjxicj7CoCDCoCDCoCDCoCDCoCDC oDQgwqAgMCUgwqAgwqAgwqAgwqAgwqAgwqAgLSBldmFsPGJyPsKgIMKgIMKgIMKgIMKgIMKgNCDC oCAwJSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGlmPGJyPsKgIMKgIMKgIMKgIMKgIMKgNCDCoCAw JSDCoCDCoCDCoCAtIGlmPGJyPsKgIMKgIMKgIMKgIMKgIMKgMiDCoCAwJSDCoCDCoCDCoCDCoCDC oGlmPGJyPsKgIMKgIMKgIMKgIMKgIMKgNiDCoCAwJSDCoCDCoCDCoC0gbWVzc2FnZTxicj7CoCDC oCDCoCDCoCDCoCDCoDQgwqAgMCUgwqAgwqAgwqAgLSBlcnJvci1tZXNzYWdlLXN0cmluZzxicj7C oCDCoCDCoCDCoCDCoCDCoDMgwqAgMCUgwqAgwqAgwqAgwqAtIHN1YnN0aXR1dGUtY29tbWFuZC1r ZXlzPGJyPsKgIMKgIMKgIMKgIMKgIMKgMSDCoCAwJSDCoCDCoCDCoCDCoCDCoCAjJmx0O2NvbXBp bGVkIC0weDFmYzczZGYzMDc3YzVhNzMmZ3Q7PGJyPsKgIMKgIMKgIMKgIMKgIMKgMSDCoCAwJSDC oCDCoCDCoCDCoCBjbGVhci1taW5pYnVmZmVyLW1lc3NhZ2U8YnI+wqAgwqAgwqAgwqAgwqAgNTcg wqAgMCUgwqAgwqAgLSBpZjxicj7CoCDCoCDCoCDCoCDCoCA1MCDCoCAwJSDCoCDCoCDCoC0gcHJv Z248YnI+wqAgwqAgwqAgwqAgwqAgNDYgwqAgMCUgwqAgwqAgwqAgLSBzZXRxPGJyPsKgIMKgIMKg IMKgIMKgIDM5IMKgIDAlIMKgIMKgIMKgIMKgLSBydW4td2l0aC10aW1lcjxicj7CoCDCoCDCoCDC oCDCoCAzMyDCoCAwJSDCoCDCoCDCoCDCoCAtIHJ1bi1hdC10aW1lPGJyPsKgIMKgIMKgIMKgIMKg IMKgNCDCoCAwJSDCoCDCoCDCoCDCoCDCoC0gdGltZXItc2V0LXRpbWU8YnI+wqAgwqAgwqAgwqAg wqAgwqAxIMKgIDAlIMKgIMKgIMKgIMKgIMKgIMKgIHRpbWVyLS10aW1lLXNldHRlcjxicj7CoCDC oCDCoCDCoCDCoCDCoDEgwqAgMCUgwqAgwqAgwqAgwqAgwqAgwqB0aW1lci1hY3RpdmF0ZTxicj7C oCDCoCDCoCDCoCDCoCDCoDMgwqAgMCUgwqAgwqAgwqAgwqAgwqAqPGJyPsKgIMKgIMKgIMKgIMKg IMKgMiDCoCAwJSDCoCDCoCDCoCDCoCBpZjxicj7CoCDCoCDCoCDCoCDCoCDCoDMgwqAgMCUgwqAg wqAgwqAtIGxldDxicj7CoCDCoCDCoCDCoCDCoCDCoDIgwqAgMCUgwqAgwqAgwqAgLSB3aGlsZTxi cj7CoCDCoCDCoCDCoCDCoCDCoDEgwqAgMCUgwqAgwqAgwqAgwqAtIGNvbnNwPGJyPsKgIMKgIMKg IMKgIMKgIMKgMSDCoCAwJSDCoCDCoCDCoCDCoCAtIHNldHE8YnI+wqAgwqAgwqAgwqAgwqAgwqAx IMKgIDAlIMKgIMKgIMKgIMKgIMKgIMKgY2FyLXNhZmU8YnI+wqAgwqAgwqAgwqAgwqAgNDkgwqAg MCUgwqAgwqAgLSBtb3VzZS13aGVlbC0tZ2V0LXNjcm9sbC13aW5kb3c8YnI+wqAgwqAgwqAgwqAg wqAgNDggwqAgMCUgwqAgwqAgwqAtIG9yPGJyPsKgIMKgIMKgIMKgIMKgIDQ3IMKgIDAlIMKgIMKg IMKgIC0gY2F0Y2g8YnI+wqAgwqAgwqAgwqAgwqAgNDUgwqAgMCUgwqAgwqAgwqAgwqAtIGxldCo8 YnI+wqAgwqAgwqAgwqAgwqAgNDQgwqAgMCUgwqAgwqAgwqAgwqAgLSBpZjxicj7CoCDCoCDCoCDC oCDCoCAzOSDCoCAwJSDCoCDCoCDCoCDCoCDCoCDCoHByb2duPGJyPsKgIMKgIMKgIMKgIMKgIMKg NCDCoCAwJSDCoCDCoCDCoCDCoCDCoCDCoG13aGVlbC1ldmVudC13aW5kb3c8YnI+wqAgwqAgwqAg wqAgwqAgwqAxIMKgIDAlIMKgIMKgIC0gZGVscTxicj7CoCDCoCDCoCDCoCDCoCDCoDEgwqAgMCUg wqAgwqAgwqAtIGRlbHE8YnI+wqAgwqAgwqAgwqAgwqAgwqAxIMKgIDAlIMKgIMKgIMKgIMKgIGRl bHE8YnI+wqAgwqAgwqAgwqAgwqAgwqA1IMKgIDAlIMKgIC0gZXZhbC1leHByZXNzaW9uPGJyPsKg IMKgIMKgIMKgIMKgIMKgNSDCoCAwJSDCoCDCoCDCoHByb2duPGJyPsKgIMKgIMKgIMKgIMKgIDQy IMKgIDAlIMKgLSBieXRlLWNvZGU8YnI+wqAgwqAgwqAgwqAgwqAgMjkgwqAgMCUgwqAgLSByZWFk LS1leHByZXNzaW9uPGJyPsKgIMKgIMKgIMKgIMKgIMKgMiDCoCAwJSDCoCDCoC0gcmVkaXNwbGF5 X2ludGVybmFsIChDIGZ1bmN0aW9uKTxicj7CoCDCoCDCoCDCoCDCoCDCoDIgwqAgMCUgwqAgwqAg LSBmdW5jYWxsPGJyPsKgIMKgIMKgIMKgIMKgIMKgMiDCoCAwJSDCoCDCoCDCoC0gIyZsdDtjb21w aWxlZCAweDRmOWRhYzdlMTg4MjRhJmd0Ozxicj7CoCDCoCDCoCDCoCDCoCDCoDIgwqAgMCUgwqAg wqAgwqAgLSBndWktYmFja2VuZC1zZWxlY3Rpb24tZXhpc3RzLXA8YnI+wqAgwqAgwqAgwqAgwqAg wqAyIMKgIDAlIMKgIMKgIMKgIMKgLSBhcHBseTxicj7CoCDCoCDCoCDCoCDCoCDCoDIgwqAgMCUg wqAgwqAgwqAgwqAgwqAgIyZsdDtjb21waWxlZCAtMHgxNjg4N2FkNmYzZWYxNTJkJmd0Ozxicj7C oCDCoCDCoCDCoCDCoCDCoDEgwqAgMCUgwqAgwqAtIGZyYW1lLXdpbmRvd3MtbWluLXNpemU8YnI+ wqAgwqAgwqAgwqAgwqAgwqAxIMKgIDAlIMKgIMKgIMKgIHdpbmRvdy1taW4tc2l6ZTxicj7CoCDC oCDCoCDCoCDCoDk3NiDCoCA3JSAtIC4uLjxicj7CoCDCoCDCoCDCoCDCoDk3NiDCoCA3JSDCoCDC oEF1dG9tYXRpYyBHQzxicj7CoCDCoCDCoCDCoCDCoCAxMyDCoCAwJSAtIHRpbWVyLWV2ZW50LWhh bmRsZXI8YnI+wqAgwqAgwqAgwqAgwqAgMTMgwqAgMCUgwqAtIGFwcGx5PGJyPsKgIMKgIMKgIMKg IMKgIDEzIMKgIDAlIMKgIC0gIyZsdDtzdWJyIEY2MTZlNmY2ZTc5NmQ2Zjc1NzMyZDZjNjE2ZDYy NjQ2MV9hbm9ueW1vdXNfbGFtYmRhXzExJmd0Ozxicj7CoCDCoCDCoCDCoCDCoCAxMyDCoCAwJSDC oCDCoC0gZWxkb2MtcHJpbnQtY3VycmVudC1zeW1ib2wtaW5mbzxicj7CoCDCoCDCoCDCoCDCoCAx MyDCoCAwJSDCoCDCoCAtIGVsZG9jLS1pbnZva2Utc3RyYXRlZ3k8YnI+wqAgwqAgwqAgwqAgwqAg MTMgwqAgMCUgwqAgwqAgwqAtIGVsZG9jLWRvY3VtZW50YXRpb24tZGVmYXVsdDxicj7CoCDCoCDC oCDCoCDCoCAxMyDCoCAwJSDCoCDCoCDCoCAtIGVsaXNwLWVsZG9jLWZ1bmNhbGw8YnI+wqAgwqAg wqAgwqAgwqAgMTMgwqAgMCUgwqAgwqAgwqAgwqAtIGVsaXNwLS1mbnN5bS1pbi1jdXJyZW50LXNl eHA8YnI+wqAgwqAgwqAgwqAgwqAgMTMgwqAgMCUgwqAgwqAgwqAgwqAgLSBlbGlzcC0tYmVnaW5u aW5nLW9mLXNleHA8YnI+wqAgwqAgwqAgwqAgwqAgMTMgwqAgMCUgwqAgwqAgwqAgwqAgwqAtIGZv cndhcmQtc2V4cDxicj7CoCDCoCDCoCDCoCDCoCDCoDQgwqAgMCUgwqAgwqAgwqAgwqAgwqAgLSBz Y2FuLXNleHBzPGJyPsKgIMKgIMKgIMKgIMKgIMKgNCDCoCAwJSDCoCDCoCDCoCDCoCDCoCDCoCDC oHN5bnRheC1wcHNzPGJyPsKgIMKgIMKgIMKgIMKgIDExIMKgIDAlIC0gaml0LWxvY2stLWFudGli bGluay1wb3N0LWNvbW1hbmQ8YnI+wqAgwqAgwqAgwqAgwqAgMTEgwqAgMCUgwqAgwqBzeW50YXgt cHBzczxicj7CoCDCoCDCoCDCoCDCoCDCoDUgwqAgMCUgLSB1bmRvLWF1dG8tLWFkZC1ib3VuZGFy eTxicj7CoCDCoCDCoCDCoCDCoCDCoDQgwqAgMCUgwqAtIHVuZG8tYXV0by0tYm91bmRhcmllczxi cj7CoCDCoCDCoCDCoCDCoCDCoDIgwqAgMCUgwqAgwqAgdW5kby1hdXRvLS1lbnN1cmUtYm91bmRh cnk8YnI+wqAgwqAgwqAgwqAgwqAgwqAzIMKgIDAlIC0gbXdoZWVsLWZpbHRlci1jbGljay1ldmVu dHM8YnI+wqAgwqAgwqAgwqAgwqAgwqAyIMKgIDAlIMKgLSBpZjxicj7CoCDCoCDCoCDCoCDCoCDC oDIgwqAgMCUgwqAgwqAgZXE8YnI+wqAgwqAgwqAgwqAgwqAgwqAzIMKgIDAlIMKgIGludGVybmFs LXRpbWVyLXN0YXJ0LWlkbGU8YnI+wqAgwqAgwqAgwqAgwqAgwqAzIMKgIDAlIMKgIHRvb2x0aXAt aGlkZTxicj7CoCDCoCDCoCDCoCDCoCDCoDIgwqAgMCUgLSByZWRpc3BsYXlfaW50ZXJuYWwgKEMg ZnVuY3Rpb24pPGJyPsKgIMKgIMKgIMKgIMKgIMKgMSDCoCAwJSDCoC0gZnVuY2FsbDxicj7CoCDC oCDCoCDCoCDCoCDCoDEgwqAgMCUgwqAgLSAjJmx0O2NvbXBpbGVkIDB4NGY5ZGFjN2UxODgyNGEm Z3Q7PGJyPsKgIMKgIMKgIMKgIMKgIMKgMSDCoCAwJSDCoCDCoC0gZ3VpLWJhY2tlbmQtc2VsZWN0 aW9uLWV4aXN0cy1wPGJyPsKgIMKgIMKgIMKgIMKgIMKgMSDCoCAwJSDCoCDCoCAtIGFwcGx5PGJy PsKgIMKgIMKgIMKgIMKgIMKgMSDCoCAwJSDCoCDCoCDCoCDCoCMmbHQ7Y29tcGlsZWQgLTB4MTY4 ODdhZDZmM2VmMTUyZCZndDs8YnI+wqAgwqAgwqAgwqAgwqAgwqAxIMKgIDAlIMKgLSBqaXQtbG9j ay1mdW5jdGlvbjxicj7CoCDCoCDCoCDCoCDCoCDCoDEgwqAgMCUgwqAgLSBqaXQtbG9jay1mb250 aWZ5LW5vdzxicj7CoCDCoCDCoCDCoCDCoCDCoDEgwqAgMCUgwqAgwqAtIGppdC1sb2NrLS1ydW4t ZnVuY3Rpb25zPGJyPsKgIMKgIMKgIMKgIMKgIMKgMSDCoCAwJSDCoCDCoCAtICMmbHQ7Y29tcGls ZWQgLTB4MTUyZjY0YWI5ODY0Yzg3YiZndDs8YnI+wqAgwqAgwqAgwqAgwqAgwqAxIMKgIDAlIMKg IMKgIMKgLSBmb250LWxvY2stZm9udGlmeS1yZWdpb248YnI+wqAgwqAgwqAgwqAgwqAgwqAxIMKg IDAlIMKgIMKgIMKgIC0gZm9udC1sb2NrLWRlZmF1bHQtZm9udGlmeS1yZWdpb248YnI+wqAgwqAg wqAgwqAgwqAgwqAxIMKgIDAlIMKgIMKgIMKgIMKgLSBmb250LWxvY2stZm9udGlmeS1zeW50YWN0 aWNhbGx5LXJlZ2lvbjxicj7CoCDCoCDCoCDCoCDCoCDCoDEgwqAgMCUgwqAgwqAgwqAgwqAgwqAg c3ludGF4LXBwc3M8YnI+wqAgwqAgwqAgwqAgwqAgwqAyIMKgIDAlIC0gIyZsdDtjb21waWxlZCAw eDFjZjE1ZjVhMGJlMDUyZDEmZ3Q7PGJyPsKgIMKgIMKgIMKgIMKgIMKgMSDCoCAwJSDCoC0gZmls dGVyLWJ1ZmZlci1zdWJzdHJpbmc8YnI+wqAgwqAgwqAgwqAgwqAgwqAxIMKgIDAlIMKgIC0gYnVm ZmVyLXN1YnN0cmluZy0tZmlsdGVyPGJyPsKgIMKgIMKgIMKgIMKgIMKgMSDCoCAwJSDCoCDCoC0g IyZsdDtjb21waWxlZCAweDFmODg5ODcxMjBiOTZhZGImZ3Q7PGJyPsKgIMKgIMKgIMKgIMKgIMKg MSDCoCAwJSDCoCDCoCDCoCBhcHBseTxicj48YnI+QWxzbywgSSYjMzk7dmUgYXR0YWNoZWQgYSB2 aWRlbyBvZiB3aGF0IEkmIzM5O20gZG9pbmcuPGJyPjxicj48ZGl2IGNsYXNzPSJnbWFpbF9jaGlw IGdtYWlsX2RyaXZlX2NoaXAiIHN0eWxlPSJ3aWR0aDozOTZweDtoZWlnaHQ6MThweDttYXgtaGVp Z2h0OjE4cHg7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O3BhZGRpbmc6NXB4O2NvbG9yOiMyMjI7 Zm9udC1mYW1pbHk6YXJpYWw7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6Ym9sZDtmb250 LXNpemU6MTNweDtib3JkZXI6MXB4IHNvbGlkICNkZGQ7bGluZS1oZWlnaHQ6MSI+PGEgaHJlZj0i aHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL2ZpbGUvZC8xOWRzZmRZX2YzMEZLUlRHSmxkMjh3dUJj SkIwVDhMclQvdmlldz91c3A9ZHJpdmVfd2ViIiB0YXJnZXQ9Il9ibGFuayIgc3R5bGU9ImRpc3Bs YXk6aW5saW5lLWJsb2NrO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3do aXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWRlY29yYXRpb246bm9uZTtwYWRkaW5nOjFweCAwcHg7Ym9y ZGVyOm1lZGl1bSBub25lO3dpZHRoOjEwMCUiPjxpbWcgc3R5bGU9InZlcnRpY2FsLWFsaWduOiBi b3R0b207IGJvcmRlcjogbm9uZTsiIHNyYz0iaHR0cHM6Ly9kcml2ZS10aGlyZHBhcnR5Lmdvb2ds ZXVzZXJjb250ZW50LmNvbS8xNi90eXBlL2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSI+wqA8c3Bh biBkaXI9Imx0ciIgc3R5bGU9ImNvbG9yOiMxNWM7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGlj YWwtYWxpZ246Ym90dG9tIj5WSURfMjAyMTAyMDZfMjExODE5LnRhci54ejwvc3Bhbj48L2E+PC9k aXY+PGJyPi0tIDxicj5CZXN0IHJlZ2FyZHMsPGJyPkFuZHJleSBMaXN0b3BhZG92PC9kaXY+DQo= --000000000000983dfe05baaf3052--