From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.bugs Subject: bug#64735: 29.0.92; find invocations are ~15x slower because of ignores Date: Tue, 12 Sep 2023 02:06:50 +0300 Message-ID: <14b26ff0-9d9b-3600-bf6e-133db4031622@gutov.dev> References: <83sf9eub9d.fsf@gnu.org> <2d844a34-857d-3d59-b897-73372baac480@gutov.dev> <83bkg2tsu6.fsf@gnu.org> <83bd4246-ac41-90ec-1df3-02d0bd59ca44@gutov.dev> <834jlttv1p.fsf@gnu.org> <937c3b8e-7742-91b7-c2cf-4cadd0782f0c@gutov.dev> <83a5vlsanw.fsf@gnu.org> <69a98e2a-5816-d36b-9d04-8609291333cd@gutov.dev> <87351cs8no.fsf@localhost> <35163e56-607d-9c5b-e3e8-5d5b548b3cb7@gutov.dev> <878rb3m43b.fsf@localhost> <83v8e6lyi4.fsf@gnu.org> <35f8b664-0241-9f96-1aa0-20ca51b2d34c@gutov.dev> <59c30342-a7e0-d83b-a128-0faae4cbd633@gutov.dev> <83pm4bi6qa.fsf@gnu.org> <83bkfs2tw5.fsf@gnu.org> <18a0b4d8-32bd-3ecd-8db4-32608a1ebba7@gutov.dev> <83il8lxjcu.fsf@gnu.org> <2e21ec81-8e4f-4c02-ea15-43bd6da3daa7@gutov.dev> <8334zmtwwi.fsf@gnu.org> <83tts0rkh5.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------I3MK6f5qXVUuZUbk3Nf06WpH" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="3563"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Cc: luangruo@yahoo.com, sbaugh@janestreet.com, yantar92@posteo.net, 64735@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Sep 12 01:08:25 2023 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 1qfq12-0000fo-P4 for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 12 Sep 2023 01:08:25 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qfq0d-0004Ae-Fz; Mon, 11 Sep 2023 19:07:59 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qfq0c-0004AL-2H for bug-gnu-emacs@gnu.org; Mon, 11 Sep 2023 19:07:58 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qfq0b-0004gb-QE for bug-gnu-emacs@gnu.org; Mon, 11 Sep 2023 19:07:57 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qfq0f-0002Xt-KW for bug-gnu-emacs@gnu.org; Mon, 11 Sep 2023 19:08:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 11 Sep 2023 23:08:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64735 X-GNU-PR-Package: emacs Original-Received: via spool by 64735-submit@debbugs.gnu.org id=B64735.16944736279702 (code B ref 64735); Mon, 11 Sep 2023 23:08:01 +0000 Original-Received: (at 64735) by debbugs.gnu.org; 11 Sep 2023 23:07:07 +0000 Original-Received: from localhost ([127.0.0.1]:55087 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfpzm-0002WQ-F8 for submit@debbugs.gnu.org; Mon, 11 Sep 2023 19:07:07 -0400 Original-Received: from out4-smtp.messagingengine.com ([66.111.4.28]:59347) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfpzi-0002Vt-Os for 64735@debbugs.gnu.org; Mon, 11 Sep 2023 19:07:04 -0400 Original-Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 51A0A5C00C3; Mon, 11 Sep 2023 19:06:53 -0400 (EDT) Original-Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Mon, 11 Sep 2023 19:06:53 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:sender :subject:subject:to:to; s=fm3; t=1694473613; x=1694560013; bh=0F hjaCLYH0J+BiznP34bJ0U1c7h84T2s2gXbd3fQUA0=; b=EQB0CXLV84MNmvrHWA P8M2DtSRAJbL36478imu7qFYttgDXebCq+papZYPQVgHqOS9x2CBpXZPGz1+QfHn rHAG4v1hafj3Q6Ig3SyiVPZn69uW8VCFCxW9+gC+5BcY/jgRboh188zliSchVuIt Qxnj70V5eG6reFBAaUKpz2Zh/DFoJvPKwOhY6kFNJuugiBTi/is/MSI2S92H9sLy hpKLeeEpxnicKCraM9RBDje9VMPUOWoKmvabjNiVUJrE73K+42h29fOx0l8HKcGc 10VOw9+ZNqZkgYzFUUrOK2kEzlCWzr5pe0Xk9+ICExcvvIftCfywf9DngxDHxnEz ENtg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; t=1694473613; x=1694560013; bh=0FhjaCLYH0J+B iznP34bJ0U1c7h84T2s2gXbd3fQUA0=; b=EfHaOo8SH2cS4tiE2YeR9C0jgaYG/ EnPlQ8hWL26KTGflOndIh3/P8473razPBYM91orNjqX8hWTYlgd9eDN7eXM9FbDH mZ+OxbBLQqC8AzmeUSSdJsZIcETU/XRgppB0/i19jFx3h0UXC3eHQElLfUg1Aehd CH1Sdt0noTs1n7yDmRNrZ7/QkNDpmi4hYmxlSmkOlDgUCGG132bmXyEOCXVFWTL4 kp+U30Gg9XryKco1cpuzVpZB7JSMCwEtjOSGT+U2avNoL3tFls1iukibD3Aobgwx Wu64Q4j056KH1b0umSgZA2QBlktUYKmECnYO5FLBN97s8cpESuyJfNhWg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrudeihedgudejucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurheptgfkffggfgfuvfevfhfhjgesmhdtreertdefjeenucfhrhhomhepffhmihht rhihucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvghvqeenucggtffrrghtth gvrhhnpeehteekgfetieeujeeuvddtvdelteffleejteduvdefffejieehheeuteffveei jeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegumh hithhrhiesghhuthhovhdruggvvh X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 11 Sep 2023 19:06:51 -0400 (EDT) Content-Language: en-US In-Reply-To: <83tts0rkh5.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-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:270097 Archived-At: This is a multi-part message in MIME format. --------------I3MK6f5qXVUuZUbk3Nf06WpH Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 11/09/2023 14:57, Eli Zaretskii wrote: >> Date: Mon, 11 Sep 2023 03:02:55 +0300 >> Cc: luangruo@yahoo.com, sbaugh@janestreet.com, yantar92@posteo.net, >> 64735@debbugs.gnu.org >> From: Dmitry Gutov >> >>> You could record its value in a local variable at the entry to >>> garbage_collect, and the expose that value to Lisp. >> >> That also doesn't seem to give much, given that the condition for >> entering 'maybe_garbage_collect' is (consing_until_gc < 0). I.e. we wait >> until it's down to 0, then garbage-collect. > > No, we don't wait until it's zero, we perform GC on the first > opportunity that we _notice_ that it crossed zero. So examining how > negative is the value of consing_until_gc when GC is actually > performed could tell us whether we checked the threshold with high > enough frequency, and comparing these values between different runs > could tell us whether the shorter time spend in GC means really less > garbage or less frequent checks for the need to GC. Good point, I'm attaching the same outputs with "last value of consing_until_gc" added to every line. There are some pretty low values in the "read-process-output-max 409600" part of the experiment, which probably means runtime staying in C accumulating the output into the (now larger) buffer? Not sure. >> What's in there? First of all, for find-directory-files-recursively-3, >> there are 0 garbage collections between the beginning of the function >> and when we start parsing the output (no GCs while the process is >> writing to the buffer synchronously). I guess inserting output in a >> buffer doesn't increase consing, so there's nothing to GC? > > No, we just don't count increasing size of buffer text in the "consing > since GC" counter. Basically, buffer text is never "garbage", except > when a buffer is killed. That makes sense. Perhaps it hints at a faster design for calling process asynchronously as well (more on another experiment later). >> Next: for find-directory-files-recursively-2, the process only finishes >> at the end, when all GC cycles are done for. I suppose that also means >> we block the process's output while Lisp is running, and also that >> whatever GC events occur might coincide with the chunks of output coming >> from the process, and however many of them turn out to be in total. > > We don't block the process when GC runs. We do stop reading from the > process, so if and when the pipe fills, the OS will block the process. Right. But the effect is almost the same, including the potential side-effect that (IIUC) when a process is waiting like that, it's just suspended and not rushing ahead using the CPU/disk/etc resources to the max. That's an orthogonal train of thought, sorry. --------------I3MK6f5qXVUuZUbk3Nf06WpH Content-Type: text/plain; charset=UTF-8; name="gcs2b.txt" Content-Disposition: attachment; filename="gcs2b.txt" Content-Transfer-Encoding: base64 ZmluZC1kaXJlY3RvcnktZmlsZXMtcmVjdXJzaXZlbHktMgoKVXNlcyBtYWtlLXByb2Nlc3Mg YW5kIDpmaWx0ZXIgdG8gcGFyc2UgdGhlIG91dHB1dApjb25jdXJyZW50bHkgd2l0aCB0aGUg cHJvY2Vzcy4KCldpdGggKHJlYWQtcHJvY2Vzcy1vdXRwdXQtbWF4IDQwOTYpOgoKc3RhcnQg bm93CmN1Z2MgLTI1NjAgY291bnRzIGRpZmYgKDQyMzQ1IDMgMTQwOTcgMiA0MDg1ODMgMTk2 NiA0NDc5KQpjdWdjIC00NDQ5IGNvdW50cyBkaWZmICgyNDU5OSAxIDM0MiAwIDg4MzI0NyAw IDYyNjYpCmN1Z2MgLTEwMCBjb3VudHMgZGlmZiAoMjQwNzAgMSAzNTQgMCA5NzczODcgMCA2 MDA5KQpjdWdjIC0xMTYgY291bnRzIGRpZmYgKDI3MjY2IDEgMjc4IDAgOTQwNzIzIDAgNzQ4 NSkKY3VnYyAtOTUgY291bnRzIGRpZmYgKDI3NDg2IDEgMjcwIDAgMTAxNDU5MSAwIDc1ODYp CmN1Z2MgLTExNyBjb3VudHMgZGlmZiAoMjcxNTcgMSAyOTQgMCAxMTIxMDY1IDAgNzMyOSkK Y3VnYyAtMTQ2IGNvdW50cyBkaWZmICgyODIzMyAxIDMxNiAwIDExODU1MjcgMCA3NTYyKQpj dWdjIC0xNDMgY291bnRzIGRpZmYgKDMwNTk3IDEgMzU0IDAgMTIxNzMyMCAwIDgxNDcpCmN1 Z2MgLTQ4MDcgY291bnRzIGRpZmYgKDI1OTI1IDEgMzgwIDAgMTQ3NDYxOCAwIDY0MDcpCmN1 Z2MgLTEyNyBjb3VudHMgZGlmZiAoMzMzNDQgMSAzNjggMCAxMzQxNDUzIDAgODk2NSkKY3Vn YyAtMTc3IGNvdW50cyBkaWZmICgzNDc4NSAxIDQ3OCAwIDE0MzQ0MzIgMCA4ODQyKQpjdWdj IC0yODAxIGNvdW50cyBkaWZmICgzNzA2OSAxIDQ2NCAwIDE0Nzc4MjUgMCA5Njc1KQpjdWdj IC0yMyBjb3VudHMgZGlmZiAoNDA4MTcgMSA0NDggMCAxNDc4NDQ1IDAgMTA5OTkpCmN1Z2Mg LTEyMTUgY291bnRzIGRpZmYgKDQ0NTI2IDEgNTAwIDAgMTUwMzYwNCAwIDExOTY0KQpjdWdj IC00MTg5IGNvdW50cyBkaWZmICg0MjMwNSAxIDQ2OCAwIDE3MDE5ODkgMCAxMTM1NCkKY3Vn YyAtNDcxNSBjb3VudHMgZGlmZiAoMzY2NDQgMSA1MzIgMCAyMDM2Nzc4IDAgOTA4MikKY3Vn YyAtODUgY291bnRzIGRpZmYgKDM4MjM0IDEgNTQyIDAgMjEzMTc1NiAwIDk1MzUpCmN1Z2Mg LTg2MSBjb3VudHMgZGlmZiAoNDE2MzIgMSA1NzggMCAyMTg4MTg2IDAgMTA0NzQpCmN1Z2Mg LTExNyBjb3VudHMgZGlmZiAoNDYwMjkgMSA1ODAgMCAyMjExNjg1IDAgMTE5MjEpCmN1Z2Mg LTM4IGNvdW50cyBkaWZmICg1MDM1MyAxIDcyOCAwIDIyODAzODggMCAxMjU2OCkKY3VnYyAt MjUzNyBjb3VudHMgZGlmZiAoNTcxNjggMSA4ODggMCAyMjg2MzgxIDAgMTM5NzQpCmN1Z2Mg LTM2NzYgY291bnRzIGRpZmYgKDYxNTcwIDEgOTI0IDAgMjM0MTQwMiAwIDE1MjQ2KQpjdWdj IC0xNzQgY291bnRzIGRpZmYgKDU2NTA0IDEgOTI0IDAgMjY4OTMwMCAwIDEzNTAyKQpjdWdj IC0xMDAxIGNvdW50cyBkaWZmICg1NzA2NiAxIDg0MiAwIDI4NTUwMjggMCAxNDA5OCkKY3Vn YyAtMTQ2IGNvdW50cyBkaWZmICg1NzcxNiAxIDkxNiAwIDMwNjMyMzggMCAxMzg5MSkKY3Vn YyAtMTQ4IGNvdW50cyBkaWZmICg2Mjg2OCAxIDk4MiAwIDMxMzkxMTEgMCAxNTI0NCkKY3Vn YyAtMTczMCBjb3VudHMgZGlmZiAoNjQ4MDkgMSA4NTYgMCAzMjgzODU1IDAgMTY1MzUpCmN1 Z2MgLTE2MiBjb3VudHMgZGlmZiAoNjkxODMgMSA4NzAgMCAzMzk0MDMxIDAgMTc5MDIpCjxm aW5pc2hlZFxuPgp0b3RhbCBjaHVua3MgNjY1MgpFbGFwc2VkIHRpbWU6IDEuMjMzMDE2cyAo MC42Njg4MTlzIGluIDI4IEdDcykKCkFuZCBoZXJlJ3Mgd2l0aCAocmVhZC1wcm9jZXNzLW91 dHB1dC1tYXggNDA5NjAwKToKCnN0YXJ0IG5vdwpjdWdjIC0xMiBjb3VudHMgZGlmZiAoNTkx NjAgNSAyMjU0NyAxMTYgMTU1NDM0IDIwNDYgMjEwMykKY3VnYyAtMTU0MDAxIGNvdW50cyBk aWZmICgxODY3MSAxIDE2IDAgMTAzNDUzOCAwIDYxNzIpCmN1Z2MgLTEwMCBjb3VudHMgZGlm ZiAoMjAyNTAgMSAxNCAwIDEwMDM5NjYgMCA2NzA4KQpjdWdjIC0xOTAyOTQgY291bnRzIGRp ZmYgKDE5NjIzIDEgMTYgMCAxMjQ0NDQxIDAgNjQ4OSkKY3VnYyAtNTggY291bnRzIGRpZmYg KDI2MTYwIDEgMTQgMCAxMDE1MTI4IDAgODY3OCkKY3VnYyAtMjkzMDY3IGNvdW50cyBkaWZm ICgyMjczNyAxIDE2IDAgMTQyNjg3NCAwIDc1MjcpCmN1Z2MgLTkyIGNvdW50cyBkaWZmICgy ODMwOCAxIDE0IDAgMTE2MDIxMyAwIDkzOTQpCmN1Z2MgLTI1IGNvdW50cyBkaWZmICgyMTYy MCAxIDE2IDAgMTUzNTY4NiAwIDcxNTMpCmN1Z2MgLTIxIGNvdW50cyBkaWZmICgyMzI1MSAx IDE2IDAgMTU1NDcyMCAwIDc2OTgpCmN1Z2MgLTE0MyBjb3VudHMgZGlmZiAoMjk5ODggMSAx NiAwIDE0NjI2MzkgMCA5OTQzKQpjdWdjIC0xMTcgY291bnRzIGRpZmYgKDI4ODI3IDEgMTYg MCAxNjIyNTYyIDAgOTU1NikKY3VnYyAtMjYgY291bnRzIGRpZmYgKDMzOTU5IDEgMTYgMCAx NjA2ODE1IDAgMTEyNjYpCmN1Z2MgLTE3IGNvdW50cyBkaWZmICgzNzQ3NiAxIDE2IDAgMTYz OTg1MyAwIDEyNDM5KQpjdWdjIC0yNTA5OTIgY291bnRzIGRpZmYgKDMxMzQ1IDEgMTggMCAy MDgxNjYzIDAgMTAzODMpCmN1Z2MgLTI4OTE0MiBjb3VudHMgZGlmZiAoMjk5MDQgMSAxOCAw IDI0NDg0MTAgMCA5OTAxKQpjdWdjIC0yOTAyMjcgY291bnRzIGRpZmYgKDMwNjc1IDEgMTgg MCAyNDQ4MTU2IDAgMTAxNTkpCmN1Z2MgLTI2NDMxNSBjb3VudHMgZGlmZiAoMzU0MTggMSAx OCAwIDI0NDY1MDggMCAxMTc0MSkKY3VnYyAtMzIgY291bnRzIGRpZmYgKDQxNzQxIDEgMTgg MCAyMzQzOTAwIDAgMTM4NDcpCmN1Z2MgLTIyMDEgY291bnRzIGRpZmYgKDQ0NTIzIDEgMTEy IDAgMjQ3ODMxMCAwIDE0MjM5KQpjdWdjIC0xNTY3MyBjb3VudHMgZGlmZiAoNDk2MjIgMSAx NzAgMCAyNTI4MjIxIDAgMTU1OTIpCmN1Z2MgLTQwMjY3IGNvdW50cyBkaWZmICg0MTk5MCAx IDU4IDAgMjk3MjAxNSAwIDEzNjkzKQpjdWdjIC0xNTkgY291bnRzIGRpZmYgKDQxMDEwIDEg MjIgMCAzMTc3OTk0IDAgMTM1ODApCmN1Z2MgLTQyIGNvdW50cyBkaWZmICg0NzYwMiAxIDE1 NiAwIDMyNTk4MzMgMCAxNTAwOSkKY3VnYyAtMzU4ODg0IGNvdW50cyBkaWZmICg0Mzc0MCAx IDM0IDAgMzY4NzE0NSAwIDE0NDM2KQpjdWdjIC0yMiBjb3VudHMgZGlmZiAoNTU1OTggMSAy MCAwIDM0OTQxOTAgMCAxODQ1NCkKY3VnYyAtMTI3MCBjb3VudHMgZGlmZiAoNjAxMjggMSAx OTAgMCAzNjgzNDYxIDAgMTg5ODApCjxmaW5pc2hlZFxuPgp0b3RhbCBjaHVua3MgMjczCkVs YXBzZWQgdGltZTogMC45MzI2MjVzICgwLjYwODcxM3MgaW4gMjYgR0NzKQo= --------------I3MK6f5qXVUuZUbk3Nf06WpH Content-Type: text/plain; charset=UTF-8; name="gcs3b.txt" Content-Disposition: attachment; filename="gcs3b.txt" Content-Transfer-Encoding: base64 ZmluZC1kaXJlY3RvcnktZmlsZXMtcmVjdXJzaXZlbHktMwoKVXNlcyBwcm9jZXNzLWZpbGUs IHBhcnNlcyB0aGUgYnVmZmVyCndpdGggc2VhcmNoLWZvcndhcmQgYXQgdGhlIGVuZC4KCnN0 YXJ0IG5vdwo8cHJvY2VzcyBmaW5pc2hlZCwgbm93IHBhcnNpbmc+CmN1Z2MgLTEyOSBjb3Vu dHMgZGlmZiAoMTc2NjcgMSAxNTY1IDEgNzc5MDgxIDkzIDEwNDY1KQpjdWdjIC0xMzkgY291 bnRzIGRpZmYgKDEyNzg5IDEgMTIgMCA5MTIzNjQgMCAxMjY5NikKY3VnYyAtODQgY291bnRz IGRpZmYgKDEzNDk2IDEgMTIgMCAxMDI4MDYwIDAgMTM0MDMpCmN1Z2MgLTMzIGNvdW50cyBk aWZmICgxNDExMiAxIDEyIDAgMTE2ODUyMiAwIDE0MDE5KQpjdWdjIC0xNTMgY291bnRzIGRp ZmYgKDE0MzU0IDEgMTIgMCAxMzQ3MjQxIDAgMTQyNjEpCmN1Z2MgLTcyIGNvdW50cyBkaWZm ICgxNzAwNSAxIDEyIDAgMTQwMTA3NSAwIDE2OTEyKQpjdWdjIC0xNyBjb3VudHMgZGlmZiAo MjA4MTAgMSAxMiAwIDE0MDMzOTYgMCAyMDcxNykKY3VnYyAtOTQgY291bnRzIGRpZmYgKDE4 NTE2IDEgMTIgMCAxNzkyNTA4IDAgMTg0MjMpCmN1Z2MgLTEyMCBjb3VudHMgZGlmZiAoMTc5 ODEgMSAxMiAwIDIxMDg0NTggMCAxNzg4OCkKY3VnYyAtNTAgY291bnRzIGRpZmYgKDIyMDkw IDEgMTIgMCAyMTY5ODM1IDAgMjE5OTcpCmN1Z2MgLTEzNiBjb3VudHMgZGlmZiAoMjY3NDkg MSAxMiAwIDIyMzEwMzcgMCAyNjY1NikKY3VnYyAtOTMgY291bnRzIGRpZmYgKDI1MzAwIDEg MTIgMCAyNjg3ODQzIDAgMjUyMDcpCmN1Z2MgLTcyIGNvdW50cyBkaWZmICgyNjE2NSAxIDEy IDAgMzA0NjE0MCAwIDI2MDcyKQpjdWdjIC0xNDIgY291bnRzIGRpZmYgKDMwOTY4IDEgMTIg MCAzMjA1MzA2IDAgMzA4NzUpCkVsYXBzZWQgdGltZTogMC45MzgxODBzICgwLjMxNDYzMHMg aW4gMTQgR0NzKQo= --------------I3MK6f5qXVUuZUbk3Nf06WpH--