From debbugs-submit-bounces@debbugs.gnu.org Tue Jul 28 05:38:38 2020 Received: (at submit) by debbugs.gnu.org; 28 Jul 2020 09:38:38 +0000 Received: from localhost ([127.0.0.1]:57272 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k0M4D-00050w-PM for submit@debbugs.gnu.org; Tue, 28 Jul 2020 05:38:38 -0400 Received: from lists.gnu.org ([209.51.188.17]:46760) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k0M4C-00050o-1T for submit@debbugs.gnu.org; Tue, 28 Jul 2020 05:38:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38454) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k0M4B-0001FU-Qt for bug-guile@gnu.org; Tue, 28 Jul 2020 05:38:35 -0400 Received: from mail-pj1-x1042.google.com ([2607:f8b0:4864:20::1042]:37638) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1k0M49-0002dD-Of for bug-guile@gnu.org; Tue, 28 Jul 2020 05:38:35 -0400 Received: by mail-pj1-x1042.google.com with SMTP id lx9so311656pjb.2 for ; Tue, 28 Jul 2020 02:38:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=3M0t4a2WWSrLoto7FHJKg4plV7Nyo5VFnk0sXrp/sF8=; b=ekZeFn3kTjntrqBawpMQRZA1Po+bVKYb7kez0mszFmWH/k2+ehQoE5T2ecGcwwxRxm +gGK6hmL1VXH7QEo8tZ+HYZlcEl+UqvolCfrm9eDtTUiIX13oYUxfKVgCnolCeOgiDyj PcEN9oQlL+aLGPzl/9/LPp+oo7o8L/zfqsaX7oyyn6g1QEHrS+cH259rkrsSFQQZ5VpD NkjKheOmBB01RW86Ju1PdM2QLn69a6uXzm0AOW7S+e/8qbPpKDuh3iUOWrWIp/vQQc6a RWD0YsnRBXosmtMDGkgCP1lN3EOjyhZlF6J9sgG6t3zE7agGe1Z1wvxVRdVlFDC6FbHr 8Qhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=3M0t4a2WWSrLoto7FHJKg4plV7Nyo5VFnk0sXrp/sF8=; b=YWbOzTCy6qkc5l1FE2RHFS48LXMU3QbZHYfZFnOhlwz0CeUINzwA6OompTEeyO7KJl t35Bl8zrF90m36iTv6q9OdR6W3kf4EmhVNWiOjebB6SlItsYV1cW1qukQxGlxRao1kMS mm5KdmnOxEKjsXd67l2aXVVnYE5qjRoHoTwM+rFZWorMYBKh7iES2CTEsJ0MbDfq+ZgO yCEjzbcedb+YA2UiLAtnBvT0gu4oApwul/6HIeT4ZKbtiRRp8PSWPEuaTGe8MRS3/v7S Fb77MIsUkYSxj+zfCWgmhFcCwKja1cMgT2x0pvIOyotHey5qzaNAMo6kEM4PUG8if2vV yw9w== X-Gm-Message-State: AOAM533vG0EHZUF63oCOiyxoGvkIRcg2OuWfsgUm8yiK91HPuqTPHE8k sQNhiUvu660JbkOMYd6BipMSFzvtWz4T5CH6or/BRUf6Kyk= X-Google-Smtp-Source: ABdhPJw9W4z4MRvqvVEOggRK7jdcvL+zPnANppIqO80Pbw+30GrJc4wgUtWba7Mevl9ED4K3AptXN7wSm4P5mUO04NY= X-Received: by 2002:a17:902:a416:: with SMTP id p22mr22094932plq.341.1595929111443; Tue, 28 Jul 2020 02:38:31 -0700 (PDT) MIME-Version: 1.0 From: Prafulla Giri Date: Tue, 28 Jul 2020 15:23:19 +0545 Message-ID: Subject: Probable (system vm trace) bug To: bug-guile@gnu.org Content-Type: multipart/alternative; boundary="000000000000c63cba05ab7d33e2" Received-SPF: pass client-ip=2607:f8b0:4864:20::1042; envelope-from=pratheblackdiamond@gmail.com; helo=mail-pj1-x1042.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) --000000000000c63cba05ab7d33e2 Content-Type: text/plain; charset="UTF-8" Esteemed Maintainers, I am quite positive that what I am experiencing is not quite a bug but just some mis-step on my part. But I have been encouraged to report this as a possible bug. Thus, here it is. Context: Guile version: 3.0.2 (installed using guix) Loaded Files: simply.scm ( https://github.com/hosoe-masaki/SimplyScheme/blob/master/simply.scm) Reverse function (referred to in the report, assumes 'simply.scm' has been loaded): (define (reverse wd) (if (equal? wd "") "" (word (reverse (bf wd)) (first wd)))) ;; (reverse 'asdf) -> 'fdsa This started with my first wanting to run a (trace) of a recursive procedure as seen in Chapter 13 of the book 'Simply Scheme' ( https://people.eecs.berkeley.edu/~bh/ssch13/convince-recur.html). I looked for a waay to (trace) in guile, but couldn't find anything except ,trace, which was giving a trace of everything that the function (reverse) called from inside of it, thus making the trace 'polluted'. I then looked around and found that a (trace) function, much like the one being demonstrated in the book used to exist once in guile: https://www.gnu.org/software/guile/docs/docs-1.8/guile-ref/Tracing.html and then found that for guile3 there was something that looked similarly promising: the (trace-calls-to-procedure) function ( https://www.gnu.org/software/guile/docs/master/guile.html/Tracing-Traps.html). However, > (trace-calls-to-procedure reverse) > (reverse 'asdf) fdsa produced no trace. This led me to ask around IRC for some guidance regarding it. Someone from #emacs suggested I try doing this: http://ix.io/2suZ When I attempted to do the same thing, however, I encountered the following error, at the sight of which, it was recommended that I file a (possible) bug report: https://termbin.com/6nm5 The following `script` typescript might also be of interest to the maintainers (to be replayed using `scriptreplay`): typescript - https://termbin.com/sx5o timing file - https://termbin.com/73ei (This one records the (call-with-trace) call with both #:call? #f and without the specification). I must confess, I don't understand a whole lot of this. All I would like to say is that I have a feeling (trace-calls-to-procedure procedure) should have worked like (trace) as shown in chapter 13 section 'trace' in the book (https://people.eecs.berkeley.edu/~bh/ssch13/convince-recur.html); it just seems 'right' by the name of it. I was expecting the trace from (trace-call-to-procedure reverse) (reverse 'asdf) to be basically like ,trace (reverse 'asdf) but without the traces of all other procedures. Please do let me know if I have left out any important details. And please do let me know if I am doing something wrong here. I am almost quite certain this is just a minor error on my part, rather than a bug (and I'd really like to be able to trace those procedures). --000000000000c63cba05ab7d33e2 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Esteemed Maintainers,

I am q= uite positive that what I am experiencing is not quite a bug but just some = mis-step on my part. But I have been encouraged to report this as a possibl= e bug. Thus, here it is.

Context:
Guile = version: 3.0.2 (installed using guix)
Loaded Files: simply.scm (<= a href=3D"https://github.com/hosoe-masaki/SimplyScheme/blob/master/simply.s= cm">https://github.com/hosoe-masaki/SimplyScheme/blob/master/simply.scm= )
Reverse function (referred to in the report, assumes 'simpl= y.scm' has been loaded):
(define (reverse wd) (if (equal? wd "") "" (word (rev= erse (bf wd)) (first wd))))
;; (reverse 'asdf) -> 'fdsa

This started with my first wanting to run a (trace) of a recursive = procedure as seen in Chapter 13 of the book 'Simply Scheme' (https= ://people.eecs.berkeley.edu/~bh/ssch13/convince-recur.html). I looked f= or a waay to (trace) in guile, but couldn't find anything except ,trace= , which was giving a trace of everything that the function (reverse) called= from inside of it, thus making the trace 'polluted'.
I then looked around and found that a (trace) function, much li= ke the one being demonstrated in the book used to exist once in guile: https://www.gnu.org/software/guile/docs/docs-1.8/guile-ref/Tracing.htm= l and then found that for guile3 there was something that looked simila= rly promising: the (trace-calls-to-procedure) function (https= ://www.gnu.org/software/guile/docs/master/guile.html/Tracing-Traps.html= ). However,
> (trace-cal= ls-to-procedure reverse)
> (reverse 'asdf)
fdsa
produced no trace. This led me to ask around IRC= for some guidance regarding it. Someone from #emacs suggested I try doing = this: http://ix.io/2suZ
When I attempted to do the same thing, however, I encountered the followi= ng error, at the sight of which, it was recommended that I file a (possible= ) bug report: https://termbin.com/6nm5=

The following `script` type= script might also be of interest to the maintainers (to be replayed using `= scriptreplay`):
timing file - https://termbin.com/73ei
(This one records the (call-with-trace) call with both #:call? #f a= nd without the specification).

<= div>I= must confess, I don't understand a whole lot of this. All I would like= to say is that I have a feeling (tra= ce-calls-to-procedure procedure) should have worked like (trace) as shown in chapter 13 section &#= 39;trace' in the book (https://people.eecs.berkeley.edu/~bh/ssch13/con= vince-recur.html); it just seems 'right' by the name of it. I w= as expecting the trace from (trace-ca= ll-to-procedure reverse) (reverse 'asdf) to be basically like ,trace (reverse 'asdf) but w= ithout the traces of all other procedures.

Please do let me know if I have left out any important = details. And please do let me know if I am doing something wrong here. I am= almost quite certain this is just a minor error on my part, rather than a = bug (and I'd really like to be able to trace those procedures).
--000000000000c63cba05ab7d33e2-- From debbugs-submit-bounces@debbugs.gnu.org Wed Jul 29 11:04:27 2020 Received: (at 42574) by debbugs.gnu.org; 29 Jul 2020 15:04:27 +0000 Received: from localhost ([127.0.0.1]:33473 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k0nd4-0005Im-47 for submit@debbugs.gnu.org; Wed, 29 Jul 2020 11:04:27 -0400 Received: from mail-pl1-f180.google.com ([209.85.214.180]:33217) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k0nd1-0005IZ-KT for 42574@debbugs.gnu.org; Wed, 29 Jul 2020 11:04:25 -0400 Received: by mail-pl1-f180.google.com with SMTP id t1so2743081plq.0 for <42574@debbugs.gnu.org>; Wed, 29 Jul 2020 08:04:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=DpojiFIIGb4iWPisWSdDQF2yFJ9gp60D/KYs3h8RXFA=; b=FOHclkSVkJt+q11VOLqVmR/2HUHcTs8lqw/HxPtxg0Q3AvZIoPN86FzMju14cwDDEE paE3If9a1cznXijNisnCHdQTi9d1r/ZIbYybIIUAqiz7OR3mtOXeyBDOveztu42h0XMq UkZIZ2rZLLlliN8dSdGTCCOshQKqqLtVKxpKqTfOLV/ZclDl2HFsGtS8RhtUfwkuNC8c VQVu7+NQviyhbU5WGU9WcW+2otjmzaS4S7nnQdwP4j3zPtjBGwOi0ZuELTOPcebk7BJN sK8tLhKbP0b1zm9EdOGl72L2L8xIePGP2qHc7bEv/IG8b1fVl3GWCDrguf/XwXbIVMUS X6AA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=DpojiFIIGb4iWPisWSdDQF2yFJ9gp60D/KYs3h8RXFA=; b=J24H/2ub3BjvVdtDXd9i+oxEs6vk7VUvWLfKXVYuF1zyV4MMhv+FS6HZrw/RWhzo7t fMGX+RlilXFPK3hBLw7PBdlZ1UOGztffaReS3JoeeCABT9qbk9ywDJ9rSYxW1ECN4iA0 +rJNDBOKZCssUOD12QMMHzzbLyRcih068yPPCaJDzWfjCbPJTxMHWlYMYmQi8c78o5n3 ahKER+D9ZUmAIoYz5bpMK5NCevWoN+iklBDtRziOnbcij2N6DDSHSCHsHJAsUBVnH4Kd O9Dx/zCoo/ZKrl0lSHEpLxFMiNjB+/g8dr+dKHHPCWPLwIPbXex3D1Et55LVzhJzT33b Yhdw== X-Gm-Message-State: AOAM531peq1jw0bxJWfeMU4AEn6DaRkpNxFlXc9NUL/HuTWGZ7VYvKGr PDZ/RBr+k4BEuMGByBZ06jn5Ka3SP3wwQW/5K0cYxvMs X-Google-Smtp-Source: ABdhPJyyrHguwtCsoZVyHNPtUz3mgWM9gDtJZ1EpigHePlf5ILz5EObRMQinkYeGkYQkt/C8VAbLrTe2ZlZenyVTDg4= X-Received: by 2002:a17:90b:1812:: with SMTP id lw18mr10809810pjb.70.1596035057325; Wed, 29 Jul 2020 08:04:17 -0700 (PDT) MIME-Version: 1.0 From: Prafulla Giri Date: Wed, 29 Jul 2020 20:49:06 +0545 Message-ID: Subject: Permanent Records To: 42574@debbugs.gnu.org Content-Type: multipart/mixed; boundary="000000000000a484f005ab95de50" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 42574 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --000000000000a484f005ab95de50 Content-Type: multipart/alternative; boundary="000000000000a484ef05ab95de4e" --000000000000a484ef05ab95de4e Content-Type: text/plain; charset="UTF-8" I just realized that the termbin links are going to expire in a month or so. Therefore I am attaching files containing the contents of the links here. Please pardon the inconvenience. --000000000000a484ef05ab95de4e Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I just realized that the termbin links are going to e= xpire in a month or so. Therefore I am attaching files containing the conte= nts of the links here.

Please pardon the inconveni= ence.


--000000000000a484ef05ab95de4e-- --000000000000a484f005ab95de50 Content-Type: application/octet-stream; name=emacs_suggestion Content-Disposition: attachment; filename=emacs_suggestion Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kd7i1xwv0 c2NoZW1lQChndWlsZS11c2VyKT4gKHVzZS1tb2R1bGVzIChzeXN0ZW0gdm0gdHJhY2UpKQpzY2hl bWVAKGd1aWxlLXVzZXIpPiAoZGVmaW5lICh0ZXN0KSAoc3ltYm9sLT5zdHJpbmcgJ2ZvbykpCnNj aGVtZUAoZ3VpbGUtdXNlcik+ICh0cmFjZS1jYWxscy10by1wcm9jZWR1cmUgdGVzdCAjOnByZWZp eCAiWFhYOiAiKQokMSA9ICM8cHJvY2VkdXJlIDdlZmNlMGI1MjVhMCBhdCBzeXN0ZW0vdm0vdHJh cHMuc2NtOjU4NDo2ICgjOm9wdGlvbmFsIGZyYW1lKT4Kc2NoZW1lQChndWlsZS11c2VyKT4gKGNh bGwtd2l0aC10cmFjZSAobGFtYmRhICgpICh0ZXN0KSkpCnRyYWNlOiAodGVzdCkKWFhYOiAodGVz dCkKdHJhY2U6IChzeW1ib2wtPnN0cmluZyBmb28pClhYWDogImZvbyIKdHJhY2U6ICJmb28iCiQy ID0gImZvbyIKc2NoZW1lQChndWlsZS11c2VyKT4gKGNhbGwtd2l0aC10cmFjZSAobGFtYmRhICgp ICh0ZXN0KSkgIzpjYWxscz8gI2YpClhYWDogKHRlc3QpClhYWDogImZvbyIKJDMgPSAiZm9vIgpz Y2hlbWVAKGd1aWxlLXVzZXIpPiAK --000000000000a484f005ab95de50 Content-Type: text/x-scheme; charset="US-ASCII"; name="simply.scm" Content-Disposition: attachment; filename="simply.scm" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kd7i1xxp2 Ozs7IHNpbXBseS5zY20gdmVyc2lvbiAzLjEzICg4LzExLzk4KQo7OzsgKE51bWJlcmVkIHRvIGFn cmVlIHdpdGggYmVya2VsZXkuc2NtIHZlcnNpb24uKQoKCjs7OyBUaGlzIGZpbGUgdXNlcyBTY2hl bWUgZmVhdHVyZXMgd2UgZG9uJ3QgdGFsayBhYm91dCBpbiBfU2ltcGx5X1NjaGVtZV8uCjs7OyBS ZWFkIGF0IHlvdXIgb3duIHJpc2suCgooaWYgKGVxdWFsPyAnZm9vIChzeW1ib2wtPnN0cmluZyAn Zm9vKSkKICAgIChlcnJvciAiU2ltcGx5LnNjbSBhbHJlYWR5IGxvYWRlZCEhIikKICAgICNmKQoK OzsgTWFrZSBudW1iZXItPnN0cmluZyByZW1vdmUgbGVhZGluZyAiKyIgaWYgbmVjZXNzYXJ5Cgoo aWYgKGNoYXI9PyAjXCsgKHN0cmluZy1yZWYgKG51bWJlci0+c3RyaW5nIDEuMCkgMCkpCiAgICAo bGV0ICgob2xkLW5zIG51bWJlci0+c3RyaW5nKQoJICAoY2hhcj0/IGNoYXI9PykKCSAgKHN0cmlu Zy1yZWYgc3RyaW5nLXJlZikKCSAgKHN1YnN0cmluZyBzdWJzdHJpbmcpCgkgIChzdHJpbmctbGVu Z3RoIHN0cmluZy1sZW5ndGgpKQogICAgICAoc2V0ISBudW1iZXItPnN0cmluZwoJICAgIChsYW1i ZGEgYXJncwoJICAgICAgKGxldCAoKHJlc3VsdCAoYXBwbHkgb2xkLW5zIGFyZ3MpKSkKCQkoaWYg KGNoYXI9PyAjXCsgKHN0cmluZy1yZWYgcmVzdWx0IDApKQoJCSAgICAoc3Vic3RyaW5nIHJlc3Vs dCAxIChzdHJpbmctbGVuZ3RoIHJlc3VsdCkpCgkJICAgIHJlc3VsdCkpKSkpCiAgICAnbm8tcHJv YmxlbSkKCihkZWZpbmUgbnVtYmVyLT5zdHJpbmcKICAobGV0ICgob2xkLW5zIG51bWJlci0+c3Ry aW5nKQoJKHN0cmluZz8gc3RyaW5nPykpCiAgICAobGFtYmRhIGFyZ3MKICAgICAgKGlmIChzdHJp bmc/IChjYXIgYXJncykpCgkgIChjYXIgYXJncykKCSAgKGFwcGx5IG9sZC1ucyBhcmdzKSkpKSkK Cjs7IEdldCBzdHJpbmdzIGluIGVycm9yIG1lc3NhZ2VzIHRvIHByaW50IG5pY2VseSAoZXNwZWNp YWxseSAiIikKCihkZWZpbmUgd2hvb3BzCiAgKGxldCAoKHN0cmluZz8gc3RyaW5nPykKCShzdHJp bmctYXBwZW5kIHN0cmluZy1hcHBlbmQpCgkoZXJyb3IgZXJyb3IpCgkoY29ucyBjb25zKQoJKG1h cCBtYXApCgkoYXBwbHkgYXBwbHkpKQogICAgKGRlZmluZSAoZXJyb3ItcHJpbnRmb3JtIHgpCiAg ICAgIChpZiAoc3RyaW5nPyB4KQoJICAoc3RyaW5nLWFwcGVuZCAiXCIiIHggIlwiIikKCSAgeCkp CjsgICAgKGRlZmluZSAoZXJyb3ItcHJpbnRmb3JtIHgpIHgpCiAgICAobGFtYmRhIChzdHJpbmcg LiBhcmdzKQogICAgICAoYXBwbHkgZXJyb3IgKGNvbnMgc3RyaW5nIChtYXAgZXJyb3ItcHJpbnRm b3JtIGFyZ3MpKSkpKSkKCgo7OyBST1VORCByZXR1cm5zIGFuIGluZXhhY3QgaW50ZWdlciBpZiBp dHMgYXJndW1lbnQgaXMgaW5leGFjdCwKOzsgYnV0IHdlIHRoaW5rIGl0IHNob3VsZCBhbHdheXMg cmV0dXJuIGFuIGV4YWN0IGludGVnZXIuCjs7IChJdCBtYXR0ZXJzIGJlY2F1c2Ugc29tZSBTY2hl bWVzIHByaW50IGluZXhhY3QgaW50ZWdlcnMgYXMgIisxLjAiLikKOzsgVGhlIChleGFjdCAxKSB0 ZXN0IGlzIGZvciBQQyBTY2hlbWUsIGluIHdoaWNoIG5vdGhpbmcgaXMgZXhhY3QuCihpZiAoYW5k IChpbmV4YWN0PyAocm91bmQgKHNxcnQgMikpKSAoZXhhY3Q/IDEpKQogICAgKGxldCAoKG9sZC1y b3VuZCByb3VuZCkKCSAgKGluZXhhY3QtPmV4YWN0IGluZXhhY3QtPmV4YWN0KSkKICAgICAgKHNl dCEgcm91bmQKCSAgICAobGFtYmRhIChudW1iZXIpCgkgICAgICAoaW5leGFjdC0+ZXhhY3QgKG9s ZC1yb3VuZCBudW1iZXIpKSkpKQogICAgJ25vLXByb2JsZW0pCgo7OyBSZW1haW5kZXIgYW5kIHF1 b3RpZW50IGJsb3cgdXAgaWYgdGhlaXIgYXJndW1lbnQgaXNuJ3QgYW4gaW50ZWdlci4KOzsgVW5m b3J0dW5hdGVseSwgaW4gU0NNLCAoKiAzNjUuMjUgMjQgNjAgNjApICppc24ndCogYW4gaW50ZWdl ci4KCihpZiAoaW5leGFjdD8gKCogLjI1IDQpKQogICAgKGxldCAoKHJlbSByZW1haW5kZXIpCgkg IChxdW8gcXVvdGllbnQpCgkgIChpbmV4YWN0LT5leGFjdCBpbmV4YWN0LT5leGFjdCkKCSAgKGlu dGVnZXI/IGludGVnZXI/KSkKICAgICAgKHNldCEgcmVtYWluZGVyCgkgICAgKGxhbWJkYSAoeCB5 KQoJICAgICAgKHJlbSAoaWYgKGludGVnZXI/IHgpIChpbmV4YWN0LT5leGFjdCB4KSB4KQoJCSAg IChpZiAoaW50ZWdlcj8geSkgKGluZXhhY3QtPmV4YWN0IHkpIHkpKSkpCiAgICAgIChzZXQhIHF1 b3RpZW50CgkgICAgKGxhbWJkYSAoeCB5KQoJICAgICAgKHF1byAoaWYgKGludGVnZXI/IHgpIChp bmV4YWN0LT5leGFjdCB4KSB4KQoJCSAgIChpZiAoaW50ZWdlcj8geSkgKGluZXhhY3QtPmV4YWN0 IHkpIHkpKSkpKQogICAgJ2RvbmUpCgoKOzsgUmFuZG9tCjs7IElmIHlvdXIgdmVyc2lvbiBvZiBT Y2hlbWUgaGFzIFJBTkRPTSwgeW91IHNob3VsZCB0YWtlIHRoaXMgb3V0Lgo7OyAoSXQgZ2l2ZXMg dGhlIHNhbWUgc2VxdWVuY2Ugb2YgcmFuZG9tIG51bWJlcnMgZXZlcnkgdGltZS4pIAoKOyhkZWZp bmUgcmFuZG9tCjsgIChsZXQgKCgqc2VlZCogMSkgKHF1b3RpZW50IHF1b3RpZW50KSAobW9kdWxv IG1vZHVsbykgKCsgKykgKC0gLSkgKCogKikgKD4gPikpCjsgICAgKGxhbWJkYSAoeCkKOyAgICAg IChsZXQqICgoaGkgKHF1b3RpZW50ICpzZWVkKiAxMjc3NzMpKQo7CSAgICAgKGxvdyAobW9kdWxv ICpzZWVkKiAxMjc3NzMpKQo7CSAgICAgKHRlc3QgKC0gKCogMTY4MDcgbG93KSAoKiAyODM2IGhp KSkpKQo7CShpZiAoPiB0ZXN0IDApCjsJICAgIChzZXQhICpzZWVkKiB0ZXN0KQo7CSAgICAoc2V0 ISAqc2VlZCogKCsgdGVzdCAyMTQ3NDgzNjQ3KSkpKQo7ICAgICAgKG1vZHVsbyAqc2VlZCogeCkp KSkKCgo7OzsgTG9nby1zdHlsZSB3b3JkL3NlbnRlbmNlIGltcGxlbWVudGF0aW9uCgooZGVmaW5l IHdvcmQ/CiAgKGxldCAoKG51bWJlcj8gbnVtYmVyPykKCShzeW1ib2w/IHN5bWJvbD8pCgkoc3Ry aW5nPyBzdHJpbmc/KSkKICAgIChsYW1iZGEgKHgpCiAgICAgIChvciAoc3ltYm9sPyB4KSAobnVt YmVyPyB4KSAoc3RyaW5nPyB4KSkpKSkKCihkZWZpbmUgc2VudGVuY2U/CiAgKGxldCAoKG51bGw/ IG51bGw/KQoJKHBhaXI/IHBhaXI/KQoJKHdvcmQ/IHdvcmQ/KQoJKGNhciBjYXIpCgkoY2RyIGNk cikpICAgIAogICAgKGRlZmluZSAobGlzdC1vZi13b3Jkcz8gbCkKICAgICAgKGNvbmQgKChudWxs PyBsKSAjdCkKCSAgICAoKHBhaXI/IGwpCgkgICAgIChhbmQgKHdvcmQ/IChjYXIgbCkpIChsaXN0 LW9mLXdvcmRzPyAoY2RyIGwpKSkpCgkgICAgKGVsc2UgI2YpKSkKICAgIGxpc3Qtb2Ytd29yZHM/ KSkKCihkZWZpbmUgZW1wdHk/CiAgKGxldCAoKG51bGw/IG51bGw/KQoJKHN0cmluZz8gc3RyaW5n PykKCShzdHJpbmc9PyBzdHJpbmc9PykpCiAgICAobGFtYmRhICh4KQogICAgICAob3IgKG51bGw/ IHgpCgkgIChhbmQgKHN0cmluZz8geCkgKHN0cmluZz0/IHggIiIpKSkpKSkKCgooZGVmaW5lIGNo YXItcmFuawogIDs7IDAgTGV0dGVyIGluIGdvb2QgY2FzZSBvciBzcGVjaWFsIGluaXRpYWwKICA7 OyAxIC4sICsgb3IgLQogIDs7IDIgRGlnaXQKICA7OyAzIExldHRlciBpbiBiYWQgY2FzZSBvciB3 ZWlyZCBjaGFyYWN0ZXIKICAobGV0ICgoKnRoZS1jaGFyLXJhbmtzKiAobWFrZS12ZWN0b3IgMjU2 IDMpKQoJKD0gPSkKCSgrICspCgkoc3RyaW5nLXJlZiBzdHJpbmctcmVmKQoJKHN0cmluZy1sZW5n dGggc3RyaW5nLWxlbmd0aCkKCSh2ZWN0b3Itc2V0ISB2ZWN0b3Itc2V0ISkKCShjaGFyLT5pbnRl Z2VyIGNoYXItPmludGVnZXIpCgkoc3ltYm9sLT5zdHJpbmcgc3ltYm9sLT5zdHJpbmcpCgkodmVj dG9yLXJlZiB2ZWN0b3ItcmVmKSkKICAgIChkZWZpbmUgKHJhbmstc3RyaW5nIHN0ciByYW5rKQog ICAgICAoZGVmaW5lIChoZWxwZXIgaSBsZW4pCgkoaWYgKD0gaSBsZW4pCgkgICAgJ2RvbmUKCSAg ICAoYmVnaW4gKHZlY3Rvci1zZXQhICp0aGUtY2hhci1yYW5rcyoKCQkJCShjaGFyLT5pbnRlZ2Vy IChzdHJpbmctcmVmIHN0ciBpKSkKCQkJCXJhbmspCgkJICAgKGhlbHBlciAoKyBpIDEpIGxlbikp KSkKICAgICAgKGhlbHBlciAwIChzdHJpbmctbGVuZ3RoIHN0cikpKQogICAgKHJhbmstc3RyaW5n IChzeW1ib2wtPnN0cmluZyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXopIDApCiAgICAocmFu ay1zdHJpbmcgIiEkJSYqLzo8PT4/fl9eIiAwKQogICAgKHJhbmstc3RyaW5nICIrLS4iIDEpCiAg ICAocmFuay1zdHJpbmcgIjAxMjM0NTY3ODkiIDIpCiAgICAobGFtYmRhIChjaGFyKQkJICAgIDs7 IHZhbHVlIG9mIGNoYXItcmFuawogICAgICAodmVjdG9yLXJlZiAqdGhlLWNoYXItcmFua3MqIChj aGFyLT5pbnRlZ2VyIGNoYXIpKSkpKQoKKGRlZmluZSBzdHJpbmctPndvcmQKICAobGV0ICgoPSA9 KSAoPD0gPD0pICgrICspICgtIC0pCgkoY2hhci1yYW5rIGNoYXItcmFuaykKCShzdHJpbmctcmVm IHN0cmluZy1yZWYpCgkoc3RyaW5nLWxlbmd0aCBzdHJpbmctbGVuZ3RoKQoJKHN0cmluZz0/IHN0 cmluZz0/KQoJKG5vdCBub3QpCgkoY2hhcj0/IGNoYXI9PykKCShzdHJpbmctPm51bWJlciBzdHJp bmctPm51bWJlcikKCShzdHJpbmctPnN5bWJvbCBzdHJpbmctPnN5bWJvbCkpCiAgICAobGFtYmRh IChzdHJpbmcpCiAgICAgIChkZWZpbmUgKHN1YnNlcXVlbnRzPyBzdHJpbmcgaSBsZW5ndGgpCgko Y29uZCAoKD0gaSBsZW5ndGgpICN0KQoJICAgICAgKCg8PSAoY2hhci1yYW5rIChzdHJpbmctcmVm IHN0cmluZyBpKSkgMikKCSAgICAgICAoc3Vic2VxdWVudHM/IHN0cmluZyAoKyBpIDEpIGxlbmd0 aCkpCgkgICAgICAoZWxzZSAjZikpKQogICAgICAoZGVmaW5lIChzcGVjaWFsLWlkPyBzdHJpbmcp Cgkob3IgKHN0cmluZz0/IHN0cmluZyAiKyIpCgkgICAgKHN0cmluZz0/IHN0cmluZyAiLSIpCgkg ICAgKHN0cmluZz0/IHN0cmluZyAiLi4uIikpKQogICAgICAoZGVmaW5lIChvay1zeW1ib2w/IHN0 cmluZykKCShpZiAoc3RyaW5nPT8gc3RyaW5nICIiKQoJICAgICNmCgkgICAgKGxldCAoKHJhbmsx IChjaGFyLXJhbmsgKHN0cmluZy1yZWYgc3RyaW5nIDApKSkpCgkgICAgICAoY29uZCAoKD0gcmFu azEgMCkgKHN1YnNlcXVlbnRzPyBzdHJpbmcgMSAoc3RyaW5nLWxlbmd0aCBzdHJpbmcpKSkKCQkg ICAgKCg9IHJhbmsxIDEpIChzcGVjaWFsLWlkPyBzdHJpbmcpKQoJCSAgICAoZWxzZSAjZikpKSkp CiAgICAgIChkZWZpbmUgKG5uLWhlbHBlciBzdHJpbmcgaSBsZW4gc2Vlbi1wb2ludD8pCgkoY29u ZCAoKD0gaSBsZW4pCgkgICAgICAgKGlmIHNlZW4tcG9pbnQ/CgkJICAgKG5vdCAoY2hhcj0/IChz dHJpbmctcmVmIHN0cmluZyAoLSBsZW4gMSkpICNcMCkpCgkJICAgI3QpKQoJICAgICAgKChjaGFy PT8gI1wuIChzdHJpbmctcmVmIHN0cmluZyBpKSkKCSAgICAgICAoY29uZCAoc2Vlbi1wb2ludD8g I2YpCgkJICAgICAoKD0gKCsgaSAyKSBsZW4pICN0KSAgOyBBY2NlcHRzICIyMy4wIgoJCSAgICAg KGVsc2UgKG5uLWhlbHBlciBzdHJpbmcgKCsgaSAxKSBsZW4gI3QpKSkpCgkgICAgICAoKD0gMiAo Y2hhci1yYW5rIChzdHJpbmctcmVmIHN0cmluZyBpKSkpCgkgICAgICAgKG5uLWhlbHBlciBzdHJp bmcgKCsgaSAxKSBsZW4gc2Vlbi1wb2ludD8pKQoJICAgICAgKGVsc2UgI2YpKSkKICAgICAgKGRl ZmluZSAobmFycm93LW51bWJlcj8gc3RyaW5nKQoJKGlmIChzdHJpbmc9PyBzdHJpbmcgIiIpCgkg ICAgI2YKCSAgICAobGV0KiAoKGMwIChzdHJpbmctcmVmIHN0cmluZyAwKSkKCQkgICAoc3RhcnQg MCkKCQkgICAobGVuIChzdHJpbmctbGVuZ3RoIHN0cmluZykpCgkJICAgKGNuIChzdHJpbmctcmVm IHN0cmluZyAoLSBsZW4gMSkpKSkKCSAgICAgIChpZiAoYW5kIChjaGFyPT8gYzAgI1wtKSAobm90 ICg9IGxlbiAxKSkpCgkJICAoYmVnaW4KCQkgICAoc2V0ISBzdGFydCAxKQoJCSAgIChzZXQhIGMw IChzdHJpbmctcmVmIHN0cmluZyAxKSkpCgkJICAjZikKCSAgICAgIChjb25kICgobm90ICg9IChj aGFyLXJhbmsgY24pIDIpKSAjZikgIDsgUmVqZWN0cyAiLSIgYW1vbmcgb3RoZXJzCgkJICAgICgo Y2hhcj0/IGMwICNcLikgI2YpCgkJICAgICgoY2hhcj0/IGMwICNcMCkKCQkgICAgIChjb25kICgo PSBsZW4gMSkgI3QpICA7IEFjY2VwdHMgIjAiIGJ1dCBub3QgIi0wIgoJCQkgICAoKD0gbGVuIDIp ICNmKSAgOyBSZWplY3RzICItMCIgYW5kICIwMyIKCQkJICAgKChjaGFyPT8gKHN0cmluZy1yZWYg c3RyaW5nICgrIHN0YXJ0IDEpKSAjXC4pCgkJCSAgICAobm4taGVscGVyIHN0cmluZyAoKyBzdGFy dCAyKSBsZW4gI3QpKQoJCQkgICAoZWxzZSAjZikpKQoJCSAgICAoZWxzZSAobm4taGVscGVyIHN0 cmluZyBzdGFydCBsZW4gI2YpKSkpKSkgCgogICAgICA7OyBUaGUgYm9keSBvZiBzdHJpbmctPndv cmQ6CiAgICAgIChjb25kICgobmFycm93LW51bWJlcj8gc3RyaW5nKSAoc3RyaW5nLT5udW1iZXIg c3RyaW5nKSkKCSAgICAoKG9rLXN5bWJvbD8gc3RyaW5nKSAoc3RyaW5nLT5zeW1ib2wgc3RyaW5n KSkKCSAgICAoZWxzZSBzdHJpbmcpKSkpKQoKKGRlZmluZSBjaGFyLT53b3JkCiAgKGxldCAoKD0g PSkKCShjaGFyLXJhbmsgY2hhci1yYW5rKQoJKG1ha2Utc3RyaW5nIG1ha2Utc3RyaW5nKQoJKHN0 cmluZy0+c3ltYm9sIHN0cmluZy0+c3ltYm9sKQoJKHN0cmluZy0+bnVtYmVyIHN0cmluZy0+bnVt YmVyKQoJKGNoYXI9PyBjaGFyPT8pKQogICAgKGxhbWJkYSAoY2hhcikKICAgICAgKGxldCAoKHJh bmsgKGNoYXItcmFuayBjaGFyKSkKCSAgICAoc3RyaW5nIChtYWtlLXN0cmluZyAxIGNoYXIpKSkK CShjb25kICgoPSByYW5rIDApIChzdHJpbmctPnN5bWJvbCBzdHJpbmcpKQoJICAgICAgKCg9IHJh bmsgMikgKHN0cmluZy0+bnVtYmVyIHN0cmluZykpCgkgICAgICAoKGNoYXI9PyBjaGFyICNcKykg JyspCgkgICAgICAoKGNoYXI9PyBjaGFyICNcLSkgJy0pCgkgICAgICAoZWxzZSBzdHJpbmcpKSkp KSkKCihkZWZpbmUgd29yZC0+c3RyaW5nCiAgKGxldCAoKG51bWJlcj8gbnVtYmVyPykKCShzdHJp bmc/IHN0cmluZz8pCgkobnVtYmVyLT5zdHJpbmcgbnVtYmVyLT5zdHJpbmcpCgkoc3ltYm9sLT5z dHJpbmcgc3ltYm9sLT5zdHJpbmcpKQogICAgKGxhbWJkYSAod2QpCiAgICAgIChjb25kICgoc3Ry aW5nPyB3ZCkgd2QpCgkgICAgKChudW1iZXI/IHdkKSAobnVtYmVyLT5zdHJpbmcgd2QpKQoJICAg IChlbHNlIChzeW1ib2wtPnN0cmluZyB3ZCkpKSkpKQoKKGRlZmluZSBjb3VudAogIChsZXQgKCh3 b3JkPyB3b3JkPykKCShzdHJpbmctbGVuZ3RoIHN0cmluZy1sZW5ndGgpCgkod29yZC0+c3RyaW5n IHdvcmQtPnN0cmluZykKCShsZW5ndGggbGVuZ3RoKSkKICAgIChsYW1iZGEgKHN0dWZmKQogICAg ICAoaWYgKHdvcmQ/IHN0dWZmKQoJICAoc3RyaW5nLWxlbmd0aCAod29yZC0+c3RyaW5nIHN0dWZm KSkKCSAgKGxlbmd0aCBzdHVmZikpKSkpCgooZGVmaW5lIHdvcmQKICAobGV0ICgoc3RyaW5nLT53 b3JkIHN0cmluZy0+d29yZCkKCShhcHBseSBhcHBseSkKCShzdHJpbmctYXBwZW5kIHN0cmluZy1h cHBlbmQpCgkobWFwIG1hcCkKCSh3b3JkPyB3b3JkPykKCSh3b3JkLT5zdHJpbmcgd29yZC0+c3Ry aW5nKQoJKHdob29wcyB3aG9vcHMpKQogICAgKGxhbWJkYSB4CiAgICAgIChzdHJpbmctPndvcmQK ICAgICAgIChhcHBseSBzdHJpbmctYXBwZW5kCgkgICAgICAobWFwIChsYW1iZGEgKGFyZykKCQkg ICAgIChpZiAod29yZD8gYXJnKQoJCQkgKHdvcmQtPnN0cmluZyBhcmcpCgkJCSAod2hvb3BzICJJ bnZhbGlkIGFyZ3VtZW50IHRvIFdPUkQ6ICIgYXJnKSkpCgkJICAgeCkpKSkpKQoKKGRlZmluZSBz ZQogIChsZXQgKChwYWlyPyBwYWlyPykKCShudWxsPyBudWxsPykKCSh3b3JkPyB3b3JkPykKCShj YXIgY2FyKQoJKGNvbnMgY29ucykKCShjZHIgY2RyKQoJKHdob29wcyB3aG9vcHMpKQogICAgKGRl ZmluZSAocGFyYW5vaWQtYXBwZW5kIGEgb3JpZ2luYWwtYSBiKQogICAgICAoY29uZCAoKG51bGw/ IGEpIGIpCgkgICAgKCh3b3JkPyAoY2FyIGEpKQoJICAgICAoY29ucyAoY2FyIGEpIChwYXJhbm9p ZC1hcHBlbmQgKGNkciBhKSBvcmlnaW5hbC1hIGIpKSkKCSAgICAoZWxzZSAod2hvb3BzICJBcmd1 bWVudCB0byBTRU5URU5DRSBub3QgYSB3b3JkIG9yIHNlbnRlbmNlIgoJCQkgb3JpZ2luYWwtYSAp KSkpCiAgICAoZGVmaW5lIChjb21iaW5lLXR3byBhIGIpICAgICAgICAgICAgICAgIDs7IE5vdGU6 IGIgaXMgYWx3YXlzIGEgbGlzdAogICAgICAoY29uZCAoKHBhaXI/IGEpIChwYXJhbm9pZC1hcHBl bmQgYSBhIGIpKQoJICAgICgobnVsbD8gYSkgYikKCSAgICAoKHdvcmQ/IGEpIChjb25zIGEgYikp CgkgICAgKGVsc2UgKHdob29wcyAiQXJndW1lbnQgdG8gU0VOVEVOQ0Ugbm90IGEgd29yZCBvciBz ZW50ZW5jZToiIGEpKSkpCiAgICA7OyBIZWxwZXIgZnVuY3Rpb24gc28gcmVjdXJzaXZlIGNhbGxz IGRvbid0IHNob3cgdXAgaW4gVFJBQ0UKICAgIChkZWZpbmUgKHJlYWwtc2UgYXJncykKICAgICAg KGlmIChudWxsPyBhcmdzKQoJICAnKCkKCSAgKGNvbWJpbmUtdHdvIChjYXIgYXJncykgKHJlYWwt c2UgKGNkciBhcmdzKSkpKSkKICAgIChsYW1iZGEgYXJncwogICAgICAocmVhbC1zZSBhcmdzKSkp KQoKKGRlZmluZSBzZW50ZW5jZSBzZSkKCihkZWZpbmUgZmlyc3QKICAobGV0ICgocGFpcj8gcGFp cj8pCgkoY2hhci0+d29yZCBjaGFyLT53b3JkKQoJKHN0cmluZy1yZWYgc3RyaW5nLXJlZikKCSh3 b3JkLT5zdHJpbmcgd29yZC0+c3RyaW5nKQoJKGNhciBjYXIpCgkoZW1wdHk/IGVtcHR5PykKCSh3 aG9vcHMgd2hvb3BzKQoJKHdvcmQ/IHdvcmQ/KSkKICAgIChkZWZpbmUgKHdvcmQtZmlyc3Qgd2Qp CiAgICAgIChjaGFyLT53b3JkIChzdHJpbmctcmVmICh3b3JkLT5zdHJpbmcgd2QpIDApKSkKICAg IChsYW1iZGEgKHgpCiAgICAgIChjb25kICgocGFpcj8geCkgKGNhciB4KSkKCSAgICAoKGVtcHR5 PyB4KSAod2hvb3BzICJJbnZhbGlkIGFyZ3VtZW50IHRvIEZJUlNUOiAiIHgpKQoJICAgICgod29y ZD8geCkgKHdvcmQtZmlyc3QgeCkpCgkgICAgKGVsc2UgKHdob29wcyAiSW52YWxpZCBhcmd1bWVu dCB0byBGSVJTVDogIiB4KSkpKSkpCgooZGVmaW5lIGxhc3QKICAobGV0ICgocGFpcj8gcGFpcj8p CgkoLSAtKQoJKHdvcmQtPnN0cmluZyB3b3JkLT5zdHJpbmcpCgkoY2hhci0+d29yZCBjaGFyLT53 b3JkKQoJKHN0cmluZy1yZWYgc3RyaW5nLXJlZikKCShzdHJpbmctbGVuZ3RoIHN0cmluZy1sZW5n dGgpCgkoZW1wdHk/IGVtcHR5PykKCShjZHIgY2RyKQoJKGNhciBjYXIpCgkod2hvb3BzIHdob29w cykKCSh3b3JkPyB3b3JkPykpCiAgICAoZGVmaW5lICh3b3JkLWxhc3Qgd2QpCiAgICAgIChsZXQg KChzICh3b3JkLT5zdHJpbmcgd2QpKSkKCShjaGFyLT53b3JkIChzdHJpbmctcmVmIHMgKC0gKHN0 cmluZy1sZW5ndGggcykgMSkpKSkpCiAgICAoZGVmaW5lIChsaXN0LWxhc3QgbHN0KSAgICAgIAog ICAgICAoaWYgKGVtcHR5PyAoY2RyIGxzdCkpCgkgIChjYXIgbHN0KQoJICAobGlzdC1sYXN0IChj ZHIgbHN0KSkpKQogICAgKGxhbWJkYSAoeCkKICAgICAgKGNvbmQgKChwYWlyPyB4KSAobGlzdC1s YXN0IHgpKQoJICAgICgoZW1wdHk/IHgpICh3aG9vcHMgIkludmFsaWQgYXJndW1lbnQgdG8gTEFT VDogIiB4KSkKCSAgICAoKHdvcmQ/IHgpICh3b3JkLWxhc3QgeCkpCgkgICAgKGVsc2UgKHdob29w cyAiSW52YWxpZCBhcmd1bWVudCB0byBMQVNUOiAiIHgpKSkpKSkKCihkZWZpbmUgYmYKICAobGV0 ICgocGFpcj8gcGFpcj8pCgkoc3Vic3RyaW5nIHN1YnN0cmluZykKCShzdHJpbmctbGVuZ3RoIHN0 cmluZy1sZW5ndGgpCgkoc3RyaW5nLT53b3JkIHN0cmluZy0+d29yZCkKCSh3b3JkLT5zdHJpbmcg d29yZC0+c3RyaW5nKQoJKGNkciBjZHIpCgkoZW1wdHk/IGVtcHR5PykKCSh3aG9vcHMgd2hvb3Bz KQoJKHdvcmQ/IHdvcmQ/KSkKICAgIChkZWZpbmUgc3RyaW5nLWJmCiAgICAgIChsYW1iZGEgKHMp CiAgICAgIChzdWJzdHJpbmcgcyAxIChzdHJpbmctbGVuZ3RoIHMpKSkpCiAgICAoZGVmaW5lICh3 b3JkLWJmIHdkKQogICAgICAoc3RyaW5nLT53b3JkIChzdHJpbmctYmYgKHdvcmQtPnN0cmluZyB3 ZCkpKSkKICAgIChsYW1iZGEgKHgpCiAgICAgIChjb25kICgocGFpcj8geCkgKGNkciB4KSkKCSAg ICAoKGVtcHR5PyB4KSAod2hvb3BzICJJbnZhbGlkIGFyZ3VtZW50IHRvIEJVVEZJUlNUOiAiIHgp KQoJICAgICgod29yZD8geCkgKHdvcmQtYmYgeCkpCgkgICAgKGVsc2UgKHdob29wcyAiSW52YWxp ZCBhcmd1bWVudCB0byBCVVRGSVJTVDogIiB4KSkpKSkpCgooZGVmaW5lIGJ1dGZpcnN0IGJmKQoK KGRlZmluZSBibAogIChsZXQgKChwYWlyPyBwYWlyPykgKC0gLSkKCShjZHIgY2RyKQoJKGNvbnMg Y29ucykKCShjYXIgY2FyKQoJKHN1YnN0cmluZyBzdWJzdHJpbmcpCgkoc3RyaW5nLWxlbmd0aCBz dHJpbmctbGVuZ3RoKQoJKHN0cmluZy0+d29yZCBzdHJpbmctPndvcmQpCgkod29yZC0+c3RyaW5n IHdvcmQtPnN0cmluZykKCShlbXB0eT8gZW1wdHk/KQoJKHdob29wcyB3aG9vcHMpCgkod29yZD8g d29yZD8pKQogICAgKGRlZmluZSAobGlzdC1ibCBsaXN0KQogICAgICAoaWYgKG51bGw/IChjZHIg bGlzdCkpCgkgICcoKQoJICAoY29ucyAoY2FyIGxpc3QpIChsaXN0LWJsIChjZHIgbGlzdCkpKSkp CiAgICAoZGVmaW5lIChzdHJpbmctYmwgcykKICAgICAgKHN1YnN0cmluZyBzIDAgKC0gKHN0cmlu Zy1sZW5ndGggcykgMSkpKSAgCiAgICAoZGVmaW5lICh3b3JkLWJsIHdkKQogICAgICAoc3RyaW5n LT53b3JkIChzdHJpbmctYmwgKHdvcmQtPnN0cmluZyB3ZCkpKSkKICAgIChsYW1iZGEgKHgpCiAg ICAgIChjb25kICgocGFpcj8geCkgKGxpc3QtYmwgeCkpCgkgICAgKChlbXB0eT8geCkgKHdob29w cyAiSW52YWxpZCBhcmd1bWVudCB0byBCVVRMQVNUOiAiIHgpKQoJICAgICgod29yZD8geCkgKHdv cmQtYmwgeCkpCgkgICAgKGVsc2UgKHdob29wcyAiSW52YWxpZCBhcmd1bWVudCB0byBCVVRMQVNU OiAiIHgpKSkpKSkKCihkZWZpbmUgYnV0bGFzdCBibCkKCihkZWZpbmUgaXRlbQogIChsZXQgKCg+ ID4pICgtIC0pICg8IDwpIChpbnRlZ2VyPyBpbnRlZ2VyPykgKGxpc3QtcmVmIGxpc3QtcmVmKQoJ KGNoYXItPndvcmQgY2hhci0+d29yZCkKCShzdHJpbmctcmVmIHN0cmluZy1yZWYpCgkod29yZC0+ c3RyaW5nIHdvcmQtPnN0cmluZykKCShub3Qgbm90KQoJKHdob29wcyB3aG9vcHMpCgkoY291bnQg Y291bnQpCgkod29yZD8gd29yZD8pCgkobGlzdD8gbGlzdD8pKQogICAgKGRlZmluZSAod29yZC1p dGVtIG4gd2QpCiAgICAgIChjaGFyLT53b3JkIChzdHJpbmctcmVmICh3b3JkLT5zdHJpbmcgd2Qp ICgtIG4gMSkpKSkKICAgIChsYW1iZGEgKG4gc3R1ZmYpCiAgICAgIChjb25kICgobm90IChpbnRl Z2VyPyBuKSkKCSAgICAgKHdob29wcyAiSW52YWxpZCBmaXJzdCBhcmd1bWVudCB0byBJVEVNICht dXN0IGJlIGFuIGludGVnZXIpOiAiCgkJICAgICBuKSkKCSAgICAoKDwgbiAxKQoJICAgICAod2hv b3BzICJJbnZhbGlkIGZpcnN0IGFyZ3VtZW50IHRvIElURU0gKG11c3QgYmUgcG9zaXRpdmUpOiAi CgkJICAgICBuKSkKCSAgICAoKD4gbiAoY291bnQgc3R1ZmYpKQoJICAgICAod2hvb3BzICJObyBz dWNoIGl0ZW06ICIgbiBzdHVmZikpCgkgICAgKCh3b3JkPyBzdHVmZikgKHdvcmQtaXRlbSBuIHN0 dWZmKSkKCSAgICAoKGxpc3Q/IHN0dWZmKSAobGlzdC1yZWYgc3R1ZmYgKC0gbiAxKSkpCgkgICAg KGVsc2UgKHdob29wcyAiSW52YWxpZCBzZWNvbmQgYXJndW1lbnQgdG8gSVRFTTogIiBzdHVmZikp KSkpKQoKKGRlZmluZSBlcXVhbD8KICA7OyBOb3RlIHRoYXQgRVFVQUw/IGFzc3VtZXMgc3RyaW5n cyBhcmUgbnVtYmVycy4KICA7OyAoc3RyaW5ncy1hcmUtbnVtYmVycyAjZikgZG9lc24ndCBjaGFu Z2UgdGhpcyBiZWhhdmlvci4KICAobGV0ICgodmVjdG9yLWxlbmd0aCB2ZWN0b3ItbGVuZ3RoKQoJ KD0gPSkKCSh2ZWN0b3ItcmVmIHZlY3Rvci1yZWYpCgkoKyArKQoJKHN0cmluZz8gc3RyaW5nPykK CShzeW1ib2w/IHN5bWJvbD8pCgkobnVsbD8gbnVsbD8pCgkocGFpcj8gcGFpcj8pCgkoY2FyIGNh cikKCShjZHIgY2RyKQoJKGVxPyBlcT8pCgkoc3RyaW5nPT8gc3RyaW5nPT8pCgkoc3ltYm9sLT5z dHJpbmcgc3ltYm9sLT5zdHJpbmcpCgkobnVtYmVyPyBudW1iZXI/KQoJKHN0cmluZy0+d29yZCBz dHJpbmctPndvcmQpCgkodmVjdG9yPyB2ZWN0b3I/KQoJKGVxdj8gZXF2PykpCiAgICAoZGVmaW5l ICh2ZWN0b3ItZXF1YWw/IHYxIHYyKQogICAgICAobGV0ICgobGVuMSAodmVjdG9yLWxlbmd0aCB2 MSkpCgkgICAgKGxlbjIgKHZlY3Rvci1sZW5ndGggdjIpKSkKCShkZWZpbmUgKGhlbHBlciBpKQoJ ICAoaWYgKD0gaSBsZW4xKQoJICAgICAgI3QKCSAgICAgIChhbmQgKGVxdWFsPyAodmVjdG9yLXJl ZiB2MSBpKSAodmVjdG9yLXJlZiB2MiBpKSkKCQkgICAoaGVscGVyICgrIGkgMSkpKSkpCgkoaWYg KD0gbGVuMSBsZW4yKQoJICAgIChoZWxwZXIgMCkKCSAgICAjZikpKQogICAgKGxhbWJkYSAoeCB5 KQogICAgICAoY29uZCAoKG51bGw/IHgpIChudWxsPyB5KSkKCSAgICAoKG51bGw/IHkpICNmKQoJ ICAgICgocGFpcj8geCkKCSAgICAgKGFuZCAocGFpcj8geSkKCQkgIChlcXVhbD8gKGNhciB4KSAo Y2FyIHkpKQoJCSAgKGVxdWFsPyAoY2RyIHgpIChjZHIgeSkpKSkKCSAgICAoKHBhaXI/IHkpICNm KQoJICAgICgoc3ltYm9sPyB4KQoJICAgICAob3IgKGFuZCAoc3ltYm9sPyB5KSAoZXE/IHggeSkp CgkJIChhbmQgKHN0cmluZz8geSkgKHN0cmluZz0/IChzeW1ib2wtPnN0cmluZyB4KSB5KSkpKQoJ ICAgICgoc3ltYm9sPyB5KQoJICAgICAoYW5kIChzdHJpbmc/IHgpIChzdHJpbmc9PyB4IChzeW1i b2wtPnN0cmluZyB5KSkpKQoJICAgICgobnVtYmVyPyB4KQoJICAgICAob3IgKGFuZCAobnVtYmVy PyB5KSAoPSB4IHkpKQoJCSAoYW5kIChzdHJpbmc/IHkpCgkJICAgICAgKGxldCAoKHBvc3NpYmxl LW51bSAoc3RyaW5nLT53b3JkIHkpKSkKCQkJKGFuZCAobnVtYmVyPyBwb3NzaWJsZS1udW0pCgkJ CSAgICAgKD0geCBwb3NzaWJsZS1udW0pKSkpKSkKCSAgICAoKG51bWJlcj8geSkKCSAgICAgKGFu ZCAoc3RyaW5nPyB4KQoJCSAgKGxldCAoKHBvc3NpYmxlLW51bSAoc3RyaW5nLT53b3JkIHgpKSkK CQkgICAgKGFuZCAobnVtYmVyPyBwb3NzaWJsZS1udW0pCgkJCSAoPSBwb3NzaWJsZS1udW0geSkp KSkpCgkgICAgKChzdHJpbmc/IHgpIChhbmQgKHN0cmluZz8geSkgKHN0cmluZz0/IHggeSkpKQoJ ICAgICgoc3RyaW5nPyB5KSAjZikKCSAgICAoKHZlY3Rvcj8geCkgKGFuZCAodmVjdG9yPyB5KSAo dmVjdG9yLWVxdWFsPyB4IHkpKSkKCSAgICAoKHZlY3Rvcj8geSkgI2YpCgkgICAgKGVsc2UgKGVx dj8geCB5KSkpKSkpCgooZGVmaW5lIG1lbWJlcj8KICAobGV0ICgoPiA+KSAoLSAtKSAoPCA8KQoJ KG51bGw/IG51bGw/KQoJKHN5bWJvbD8gc3ltYm9sPykKCShlcT8gZXE/KQoJKGNhciBjYXIpCgko bm90IG5vdCkKCShzeW1ib2wtPnN0cmluZyBzeW1ib2wtPnN0cmluZykKCShzdHJpbmc9PyBzdHJp bmc9PykKCShjZHIgY2RyKQoJKGVxdWFsPyBlcXVhbD8pCgkod29yZC0+c3RyaW5nIHdvcmQtPnN0 cmluZykKCShzdHJpbmctbGVuZ3RoIHN0cmluZy1sZW5ndGgpCgkod2hvb3BzIHdob29wcykKCShz dHJpbmctcmVmIHN0cmluZy1yZWYpCgkoY2hhcj0/IGNoYXI9PykKCShsaXN0PyBsaXN0PykKCShu dW1iZXI/IG51bWJlcj8pCgkoZW1wdHk/IGVtcHR5PykKCSh3b3JkPyB3b3JkPykKCShzdHJpbmc/ IHN0cmluZz8pKQogICAgKGRlZmluZSAoc3ltYm9sLWluLWxpc3Q/IHN5bWJvbCBzdHJpbmcgbHN0 KQogICAgICAoY29uZCAoKG51bGw/IGxzdCkgI2YpCgkgICAgKChhbmQgKHN5bWJvbD8gKGNhciBs c3QpKQoJCSAgKGVxPyBzeW1ib2wgKGNhciBsc3QpKSkpCgkgICAgKChzdHJpbmc/IChjYXIgbHN0 KSkKCSAgICAgKGNvbmQgKChub3Qgc3RyaW5nKQoJCSAgICAoc3ltYm9sLWluLWxpc3Q/IHN5bWJv bCAoc3ltYm9sLT5zdHJpbmcgc3ltYm9sKSBsc3QpKQoJCSAgICgoc3RyaW5nPT8gc3RyaW5nIChj YXIgbHN0KSkgI3QpCgkJICAgKGVsc2UgKHN5bWJvbC1pbi1saXN0PyBzeW1ib2wgc3RyaW5nIChj ZHIgbHN0KSkpKSkKCSAgICAoZWxzZSAoc3ltYm9sLWluLWxpc3Q/IHN5bWJvbCBzdHJpbmcgKGNk ciBsc3QpKSkpKQogICAgKGRlZmluZSAod29yZC1pbi1saXN0PyB3ZCBsc3QpCiAgICAgIChjb25k ICgobnVsbD8gbHN0KSAjZikKCSAgICAoKGVxdWFsPyB3ZCAoY2FyIGxzdCkpICN0KQoJICAgIChl bHNlICh3b3JkLWluLWxpc3Q/IHdkIChjZHIgbHN0KSkpKSkKICAgIChkZWZpbmUgKHdvcmQtaW4t d29yZD8gc21hbGwgYmlnKQogICAgICAobGV0ICgob25lLWxldHRlci1zdHIgKHdvcmQtPnN0cmlu ZyBzbWFsbCkpKQoJKGlmICg+IChzdHJpbmctbGVuZ3RoIG9uZS1sZXR0ZXItc3RyKSAxKQoJICAg ICh3aG9vcHMgIkludmFsaWQgYXJndW1lbnRzIHRvIE1FTUJFUj86ICIgc21hbGwgYmlnKQoJICAg IChsZXQgKChiaWctc3RyICh3b3JkLT5zdHJpbmcgYmlnKSkpCgkgICAgICAoY2hhci1pbi1zdHJp bmc/IChzdHJpbmctcmVmIG9uZS1sZXR0ZXItc3RyIDApCgkJCSAgICAgICBiaWctc3RyCgkJCSAg ICAgICAoLSAoc3RyaW5nLWxlbmd0aCBiaWctc3RyKSAxKSkpKSkpCiAgICAoZGVmaW5lIChjaGFy LWluLXN0cmluZz8gY2hhciBzdHJpbmcgaSkKICAgICAgKGNvbmQgKCg8IGkgMCkgI2YpCgkgICAg KChjaGFyPT8gY2hhciAoc3RyaW5nLXJlZiBzdHJpbmcgaSkpICN0KQoJICAgIChlbHNlIChjaGFy LWluLXN0cmluZz8gY2hhciBzdHJpbmcgKC0gaSAxKSkpKSkKICAgIChsYW1iZGEgKHggc3R1ZmYp CiAgICAgIChjb25kICgoZW1wdHk/IHN0dWZmKSAjZikKCSAgICAoKHdvcmQ/IHN0dWZmKSAod29y ZC1pbi13b3JkPyB4IHN0dWZmKSkKCSAgICAoKG5vdCAobGlzdD8gc3R1ZmYpKQoJICAgICAod2hv b3BzICJJbnZhbGlkIHNlY29uZCBhcmd1bWVudCB0byBNRU1CRVI/OiAiIHN0dWZmKSkKCSAgICAo KHN5bWJvbD8geCkgKHN5bWJvbC1pbi1saXN0PyB4ICNmIHN0dWZmKSkKCSAgICAoKG9yIChudW1i ZXI/IHgpIChzdHJpbmc/IHgpKQoJICAgICAod29yZC1pbi1saXN0PyB4IHN0dWZmKSkKCSAgICAo ZWxzZSAod2hvb3BzICJJbnZhbGlkIGZpcnN0IGFyZ3VtZW50IHRvIE1FTUJFUj86ICIgeCkpKSkp KQoKKGRlZmluZSBiZWZvcmU/CiAgKGxldCAoKG5vdCBub3QpCgkod29yZD8gd29yZD8pCgkod2hv b3BzIHdob29wcykKCShzdHJpbmc8PyBzdHJpbmc8PykKCSh3b3JkLT5zdHJpbmcgd29yZC0+c3Ry aW5nKSkKICAgIChsYW1iZGEgKHdkMSB3ZDIpCiAgICAgIChjb25kICgobm90ICh3b3JkPyB3ZDEp KQoJICAgICAod2hvb3BzICJJbnZhbGlkIGZpcnN0IGFyZ3VtZW50IHRvIEJFRk9SRT8gKG5vdCBh IHdvcmQpOiAiIHdkMSkpCgkgICAgKChub3QgKHdvcmQ/IHdkMikpCgkgICAgICh3aG9vcHMgIklu dmFsaWQgc2Vjb25kIGFyZ3VtZW50IHRvIEJFRk9SRT8gKG5vdCBhIHdvcmQpOiAiIHdkMikpCgkg ICAgKGVsc2UgKHN0cmluZzw/ICh3b3JkLT5zdHJpbmcgd2QxKSAod29yZC0+c3RyaW5nIHdkMikp KSkpKSkKCgo7OzsgSGlnaGVyIE9yZGVyIEZ1bmN0aW9ucwoKKGRlZmluZSBmaWx0ZXIKICAobGV0 ICgobnVsbD8gbnVsbD8pCgkoY2FyIGNhcikKCShjb25zIGNvbnMpCgkoY2RyIGNkcikKCShub3Qg bm90KQoJKHByb2NlZHVyZT8gcHJvY2VkdXJlPykKCSh3aG9vcHMgd2hvb3BzKQoJKGxpc3Q/IGxp c3Q/KSkKICAgIChsYW1iZGEgKHByZWQgbCkKICAgICAgOzsgSGVscGVyIGZ1bmN0aW9uIHNvIHJl Y3Vyc2l2ZSBjYWxscyBkb24ndCBzaG93IHVwIGluIFRSQUNFCiAgICAgIChkZWZpbmUgKHJlYWwt ZmlsdGVyIGwpCgkoY29uZCAoKG51bGw/IGwpICcoKSkKCSAgICAgICgocHJlZCAoY2FyIGwpKQoJ ICAgICAgIChjb25zIChjYXIgbCkgKHJlYWwtZmlsdGVyIChjZHIgbCkpKSkKCSAgICAgIChlbHNl IChyZWFsLWZpbHRlciAoY2RyIGwpKSkpKQogICAgICAoY29uZCAoKG5vdCAocHJvY2VkdXJlPyBw cmVkKSkKCSAgICAgKHdob29wcyAiSW52YWxpZCBmaXJzdCBhcmd1bWVudCB0byBGSUxURVIgKG5v dCBhIHByb2NlZHVyZSk6ICIKCQkgICAgIHByZWQpKQoJICAgICgobm90IChsaXN0PyBsKSkKCSAg ICAgKHdob29wcyAiSW52YWxpZCBzZWNvbmQgYXJndW1lbnQgdG8gRklMVEVSIChub3QgYSBsaXN0 KTogIiBsKSkKCSAgICAoZWxzZSAocmVhbC1maWx0ZXIgbCkpKSkpKQoKKGRlZmluZSBrZWVwCiAg KGxldCAoKCsgKykgKD0gPSkgKHBhaXI/IHBhaXI/KQoJKHN1YnN0cmluZyBzdWJzdHJpbmcpCgko Y2hhci0+d29yZCBjaGFyLT53b3JkKQoJKHN0cmluZy1yZWYgc3RyaW5nLXJlZikKCShzdHJpbmct c2V0ISBzdHJpbmctc2V0ISkKCSh3b3JkLT5zdHJpbmcgd29yZC0+c3RyaW5nKQoJKHN0cmluZy1s ZW5ndGggc3RyaW5nLWxlbmd0aCkKCShzdHJpbmctPndvcmQgc3RyaW5nLT53b3JkKQoJKG1ha2Ut c3RyaW5nIG1ha2Utc3RyaW5nKQoJKHByb2NlZHVyZT8gcHJvY2VkdXJlPykKCSh3aG9vcHMgd2hv b3BzKQoJKHdvcmQ/IHdvcmQ/KQoJKG51bGw/IG51bGw/KSkKICAgIChsYW1iZGEgKHByZWQgdy1v ci1zKQogICAgICAoZGVmaW5lIChrZWVwLXN0cmluZyBpbiBpIG91dCBvdXQtbGVuIGxlbikKCShj b25kICgoPSBpIGxlbikgKHN1YnN0cmluZyBvdXQgMCBvdXQtbGVuKSkKCSAgICAgICgocHJlZCAo Y2hhci0+d29yZCAoc3RyaW5nLXJlZiBpbiBpKSkpCgkgICAgICAgKHN0cmluZy1zZXQhIG91dCBv dXQtbGVuIChzdHJpbmctcmVmIGluIGkpKQoJICAgICAgIChrZWVwLXN0cmluZyBpbiAoKyBpIDEp IG91dCAoKyBvdXQtbGVuIDEpIGxlbikpCgkgICAgICAoZWxzZSAoa2VlcC1zdHJpbmcgaW4gKCsg aSAxKSBvdXQgb3V0LWxlbiBsZW4pKSkpCiAgICAgIChkZWZpbmUgKGtlZXAtd29yZCB3ZCkKCShs ZXQqICgoc3RyaW5nICh3b3JkLT5zdHJpbmcgd2QpKQoJICAgICAgIChsZW4gKHN0cmluZy1sZW5n dGggc3RyaW5nKSkpCgkgIChzdHJpbmctPndvcmQKCSAgIChrZWVwLXN0cmluZyBzdHJpbmcgMCAo bWFrZS1zdHJpbmcgbGVuKSAwIGxlbikpKSkKICAgICAgKGNvbmQgKChub3QgKHByb2NlZHVyZT8g cHJlZCkpCgkgICAgICh3aG9vcHMgIkludmFsaWQgZmlyc3QgYXJndW1lbnQgdG8gS0VFUCAobm90 IGEgcHJvY2VkdXJlKTogIgoJCSAgICBwcmVkKSkKCSAgICAoKHBhaXI/IHctb3ItcykgKGZpbHRl ciBwcmVkIHctb3ItcykpCgkgICAgKCh3b3JkPyB3LW9yLXMpIChrZWVwLXdvcmQgdy1vci1zKSkK CSAgICAoKG51bGw/IHctb3ItcykgJygpKQoJICAgIChlbHNlCgkgICAgICh3aG9vcHMgIkJhZCBz ZWNvbmQgYXJndW1lbnQgdG8gS0VFUCAobm90IGEgd29yZCBvciBzZW50ZW5jZSk6ICIKCQkgICAg IHctb3ItcykpKSkpKQoKKGRlZmluZSBhcHBlYXJhbmNlcwogIChsZXQgKChjb3VudCBjb3VudCkK CShrZWVwIGtlZXApCgkoZXF1YWw/IGVxdWFsPykpCiAgICAobGFtYmRhIChpdGVtIGFnZ3JlZ2F0 ZSkKICAgICAgKGNvdW50IChrZWVwIChsYW1iZGEgKGVsZW1lbnQpIChlcXVhbD8gaXRlbSBlbGVt ZW50KSkgYWdncmVnYXRlKSkpKSkKCihkZWZpbmUgZXZlcnkKICAobGV0ICgoPSA9KSAoKyArKQoJ KHNlIHNlKQoJKGNoYXItPndvcmQgY2hhci0+d29yZCkKCShzdHJpbmctcmVmIHN0cmluZy1yZWYp CgkoZW1wdHk/IGVtcHR5PykKCShmaXJzdCBmaXJzdCkKCShiZiBiZikKCShub3Qgbm90KQoJKHBy b2NlZHVyZT8gcHJvY2VkdXJlPykKCSh3aG9vcHMgd2hvb3BzKQoJKHdvcmQ/IHdvcmQ/KQoJKHdv cmQtPnN0cmluZyB3b3JkLT5zdHJpbmcpCgkoc3RyaW5nLWxlbmd0aCBzdHJpbmctbGVuZ3RoKSkK ICAgIChsYW1iZGEgKGZuIHN0dWZmKQogICAgICAoZGVmaW5lIChzdHJpbmctZXZlcnkgc3RyaW5n IGkgbGVuZ3RoKQoJKGlmICg9IGkgbGVuZ3RoKQoJICAgICcoKQoJICAgIChzZSAoZm4gKGNoYXIt PndvcmQgKHN0cmluZy1yZWYgc3RyaW5nIGkpKSkKCQkoc3RyaW5nLWV2ZXJ5IHN0cmluZyAoKyBp IDEpIGxlbmd0aCkpKSkKICAgICAgKGRlZmluZSAoc2VudC1ldmVyeSBzZW50KQoJOzsgVGhpcyBw cm9jLiBjYW4ndCBiZSBvcHRpbWl6ZWQgb3IgZWxzZSBpdCB3aWxsIGJyZWFrIHRoZQoJOzsgZXhl cmNpc2Ugd2hlcmUgd2UgYXNrIHRoZW0gdG8gcmVpbXBsZW1lbnQgc2VudGVuY2VzIGFzCgk7OyB2 ZWN0b3JzIGFuZCB0aGVuIHNlZSBpZiBldmVyeSBzdGlsbCB3b3Jrcy4KCShpZiAoZW1wdHk/IHNl bnQpCgkgICAgc2VudAkJOyBDYW4ndCBiZSAnKCkgb3IgZXhlcmNpc2UgYnJlYWtzLgoJICAgIChz ZSAoZm4gKGZpcnN0IHNlbnQpKSAgICAKCQkoc2VudC1ldmVyeSAoYmYgc2VudCkpKSkpCiAgICAg IChjb25kICgobm90IChwcm9jZWR1cmU/IGZuKSkKCSAgICAgKHdob29wcyAiSW52YWxpZCBmaXJz dCBhcmd1bWVudCB0byBFVkVSWSAobm90IGEgcHJvY2VkdXJlKToiCgkJICAgICBmbikpCgkgICAg KCh3b3JkPyBzdHVmZikKCSAgICAgKGxldCAoKHN0cmluZyAod29yZC0+c3RyaW5nIHN0dWZmKSkp CgkgICAgICAgKHN0cmluZy1ldmVyeSBzdHJpbmcgMCAoc3RyaW5nLWxlbmd0aCBzdHJpbmcpKSkp CgkgICAgKGVsc2UgKHNlbnQtZXZlcnkgc3R1ZmYpKSkpKSkKCihkZWZpbmUgYWNjdW11bGF0ZQog IChsZXQgKChub3Qgbm90KQoJKGVtcHR5PyBlbXB0eT8pCgkoYmYgYmYpCgkoZmlyc3QgZmlyc3Qp CgkocHJvY2VkdXJlPyBwcm9jZWR1cmU/KQoJKHdob29wcyB3aG9vcHMpCgkobWVtYmVyIG1lbWJl cikKCShsaXN0IGxpc3QpKQogICAgKGxhbWJkYSAoY29tYmluZXIgc3R1ZmYpCiAgICAgIChkZWZp bmUgKHJlYWwtYWNjdW11bGF0ZSBzdHVmZikKCShpZiAoZW1wdHk/IChiZiBzdHVmZikpCgkgICAg KGZpcnN0IHN0dWZmKQoJICAgIChjb21iaW5lciAoZmlyc3Qgc3R1ZmYpIChyZWFsLWFjY3VtdWxh dGUgKGJmIHN0dWZmKSkpKSkKICAgICAgKGNvbmQgKChub3QgKHByb2NlZHVyZT8gY29tYmluZXIp KQoJICAgICAod2hvb3BzICJJbnZhbGlkIGZpcnN0IGFyZ3VtZW50IHRvIEFDQ1VNVUxBVEUgKG5v dCBhIHByb2NlZHVyZSk6IgoJCSAgICAgY29tYmluZXIpKQoJICAgICgobm90IChlbXB0eT8gc3R1 ZmYpKSAocmVhbC1hY2N1bXVsYXRlIHN0dWZmKSkKCSAgICAoKG1lbWJlciBjb21iaW5lciAobGlz dCArICogd29yZCBzZSkpIChjb21iaW5lcikpCgkgICAgKGVsc2UKCSAgICAgKHdob29wcyAiQ2Fu J3QgYWNjdW11bGF0ZSBlbXB0eSBpbnB1dCB3aXRoIHRoYXQgY29tYmluZXIiKSkpKSkpCgooZGVm aW5lIHJlZHVjZQogIChsZXQgKChudWxsPyBudWxsPykKCShjZHIgY2RyKQoJKGNhciBjYXIpCgko bm90IG5vdCkKCShwcm9jZWR1cmU/IHByb2NlZHVyZT8pCgkod2hvb3BzIHdob29wcykKCShtZW1i ZXIgbWVtYmVyKQoJKGxpc3QgbGlzdCkpCiAgICAobGFtYmRhIChjb21iaW5lciBzdHVmZikKICAg ICAgKGRlZmluZSAocmVhbC1yZWR1Y2Ugc3R1ZmYpCgkoaWYgKG51bGw/IChjZHIgc3R1ZmYpKQoJ ICAgIChjYXIgc3R1ZmYpCgkgICAgKGNvbWJpbmVyIChjYXIgc3R1ZmYpIChyZWFsLXJlZHVjZSAo Y2RyIHN0dWZmKSkpKSkKICAgICAgKGNvbmQgKChub3QgKHByb2NlZHVyZT8gY29tYmluZXIpKQoJ ICAgICAod2hvb3BzICJJbnZhbGlkIGZpcnN0IGFyZ3VtZW50IHRvIFJFRFVDRSAobm90IGEgcHJv Y2VkdXJlKToiCgkJICAgICBjb21iaW5lcikpCgkgICAgKChub3QgKG51bGw/IHN0dWZmKSkgKHJl YWwtcmVkdWNlIHN0dWZmKSkKCSAgICAoKG1lbWJlciBjb21iaW5lciAobGlzdCArICogd29yZCBz ZSBhcHBlbmQpKSAoY29tYmluZXIpKQoJICAgIChlbHNlICh3aG9vcHMgIkNhbid0IHJlZHVjZSBl bXB0eSBpbnB1dCB3aXRoIHRoYXQgY29tYmluZXIiKSkpKSkpCgooZGVmaW5lIHJlcGVhdGVkCiAg KGxldCAoKD0gPSkgKC0gLSkpCiAgICAobGFtYmRhIChmbiBudW1iZXIpCiAgICAgIChpZiAoPSBu dW1iZXIgMCkKCSAgKGxhbWJkYSAoeCkgeCkKCSAgKGxhbWJkYSAoeCkKCSAgICAoKHJlcGVhdGVk IGZuICgtIG51bWJlciAxKSkgKGZuIHgpKSkpKSkpCgoKOzsgVHJlZSBzdHVmZgooZGVmaW5lIG1h a2Utbm9kZSBjb25zKQooZGVmaW5lIGRhdHVtIGNhcikKKGRlZmluZSBjaGlsZHJlbiBjZHIpCgoK OzsgSS9PCiAgICAgICAgCihkZWZpbmUgc2hvdwogIChsZXQgKCg9ID0pCgkobGVuZ3RoIGxlbmd0 aCkKCShkaXNwbGF5IGRpc3BsYXkpCgkoY2FyIGNhcikKCShuZXdsaW5lIG5ld2xpbmUpCgkobm90 IG5vdCkKCShvdXRwdXQtcG9ydD8gb3V0cHV0LXBvcnQ/KQoJKGFwcGx5IGFwcGx5KQoJKHdob29w cyB3aG9vcHMpKQogICAgKGxhbWJkYSBhcmdzCiAgICAgIChjb25kCiAgICAgICAoKD0gKGxlbmd0 aCBhcmdzKSAxKQoJKGRpc3BsYXkgKGNhciBhcmdzKSkKCShuZXdsaW5lKSkKICAgICAgICgoPSAo bGVuZ3RoIGFyZ3MpIDIpCgkoaWYgKG5vdCAob3V0cHV0LXBvcnQ/IChjYXIgKGNkciBhcmdzKSkp KQoJICAgICh3aG9vcHMgIkludmFsaWQgc2Vjb25kIGFyZ3VtZW50IHRvIFNIT1cgKG5vdCBhbiBv dXRwdXQgcG9ydCk6ICIKCQkgICAgKGNhciAoY2RyIGFyZ3MpKSkpCgkoYXBwbHkgZGlzcGxheSBh cmdzKQoJKG5ld2xpbmUgKGNhciAoY2RyIGFyZ3MpKSkpCiAgICAgICAoZWxzZSAod2hvb3BzICJJ bmNvcnJlY3QgbnVtYmVyIG9mIGFyZ3VtZW50cyB0byBwcm9jZWR1cmUgU0hPVyIpKSkpKSkKCihk ZWZpbmUgc2hvdy1saW5lCiAgKGxldCAoKD49ID49KQoJKGxlbmd0aCBsZW5ndGgpCgkod2hvb3Bz IHdob29wcykKCShudWxsPyBudWxsPykKCShjdXJyZW50LW91dHB1dC1wb3J0IGN1cnJlbnQtb3V0 cHV0LXBvcnQpCgkoY2FyIGNhcikKCShub3Qgbm90KQoJKGxpc3Q/IGxpc3Q/KQoJKGRpc3BsYXkg ZGlzcGxheSkKCShmb3ItZWFjaCBmb3ItZWFjaCkKCShjZHIgY2RyKQoJKG5ld2xpbmUgbmV3bGlu ZSkpCiAgICAobGFtYmRhIChsaW5lIC4gYXJncykKICAgICAgKGlmICg+PSAobGVuZ3RoIGFyZ3Mp IDIpCgkgICh3aG9vcHMgIlRvbyBtYW55IGFyZ3VtZW50cyB0byBzaG93LWxpbmUiKQoJICAobGV0 ICgocG9ydCAoaWYgKG51bGw/IGFyZ3MpIChjdXJyZW50LW91dHB1dC1wb3J0KSAoY2FyIGFyZ3Mp KSkpCgkgICAgKGNvbmQgKChub3QgKGxpc3Q/IGxpbmUpKQoJCSAgICh3aG9vcHMgIkludmFsaWQg YXJndW1lbnQgdG8gU0hPVy1MSU5FIChub3QgYSBsaXN0KToiIGxpbmUpKQoJCSAgKChudWxsPyBs aW5lKSAjZikKCQkgIChlbHNlCgkJICAgKGRpc3BsYXkgKGNhciBsaW5lKSBwb3J0KQoJCSAgIChm b3ItZWFjaCAobGFtYmRhICh3ZCkgKGRpc3BsYXkgIiAiIHBvcnQpIChkaXNwbGF5IHdkIHBvcnQp KQoJCQkgICAgIChjZHIgbGluZSkpKSkKCSAgICAobmV3bGluZSBwb3J0KSkpKSkpCgooZGVmaW5l IHJlYWQtc3RyaW5nCiAgKGxldCAoKHJlYWQtY2hhciByZWFkLWNoYXIpCgkoZXF2PyBlcXY/KQoJ KGFwcGx5IGFwcGx5KQoJKHN0cmluZy1hcHBlbmQgc3RyaW5nLWFwcGVuZCkKCShzdWJzdHJpbmcg c3Vic3RyaW5nKQoJKHJldmVyc2UgcmV2ZXJzZSkKCShjb25zIGNvbnMpCgkoPj0gPj0pICgrICsp Cgkoc3RyaW5nLXNldCEgc3RyaW5nLXNldCEpCgkobGVuZ3RoIGxlbmd0aCkKCSh3aG9vcHMgd2hv b3BzKQoJKG51bGw/IG51bGw/KQoJKGN1cnJlbnQtaW5wdXQtcG9ydCBjdXJyZW50LWlucHV0LXBv cnQpCgkoY2FyIGNhcikKCShjZHIgY2RyKQoJKGVvZi1vYmplY3Q/IGVvZi1vYmplY3Q/KQoJKGxp c3QgbGlzdCkKCShtYWtlLXN0cmluZyBtYWtlLXN0cmluZykKCShwZWVrLWNoYXIgcGVlay1jaGFy KSkKICAgIChkZWZpbmUgKHJlYWQtc3RyaW5nLWhlbHBlciBjaGFycyBhbGwtbGVuZ3RoIGNodW5r LWxlbmd0aCBwb3J0KQogICAgICAobGV0ICgoY2hhciAocmVhZC1jaGFyIHBvcnQpKQoJICAgIChz dHJpbmcgKGNhciBjaGFycykpKQoJKGNvbmQgKChvciAoZW9mLW9iamVjdD8gY2hhcikgKGVxdj8g Y2hhciAjXG5ld2xpbmUpKQoJICAgICAgIChhcHBseSBzdHJpbmctYXBwZW5kCgkJICAgICAgKHJl dmVyc2UKCQkgICAgICAgKGNvbnMKCQkJKHN1YnN0cmluZyAoY2FyIGNoYXJzKSAwIGNodW5rLWxl bmd0aCkKCQkJKGNkciBjaGFycykpKSkpCgkgICAgICAoKD49IGNodW5rLWxlbmd0aCA4MCkKCSAg ICAgICAobGV0ICgobmV3c3RyaW5nIChtYWtlLXN0cmluZyA4MCkpKQoJCSAoc3RyaW5nLXNldCEg bmV3c3RyaW5nIDAgY2hhcikKCQkgKHJlYWQtc3RyaW5nLWhlbHBlciAoY29ucyBuZXdzdHJpbmcg Y2hhcnMpCgkJCQkgICAgICgrIGFsbC1sZW5ndGggMSkKCQkJCSAgICAgMQoJCQkJICAgICBwb3J0 KSkpCgkgICAgICAoZWxzZQoJICAgICAgIChzdHJpbmctc2V0ISBzdHJpbmcgY2h1bmstbGVuZ3Ro IGNoYXIpCgkgICAgICAgKHJlYWQtc3RyaW5nLWhlbHBlciBjaGFycwoJCQkJICAgKCsgYWxsLWxl bmd0aCAxKQoJCQkJICAgKCsgY2h1bmstbGVuZ3RoIDEpCgkJCQkgICBwb3J0KSkpKSkKICAgIChs YW1iZGEgYXJncwogICAgICAoaWYgKD49IChsZW5ndGggYXJncykgMikKCSAgKHdob29wcyAiVG9v IG1hbnkgYXJndW1lbnRzIHRvIHJlYWQtc3RyaW5nIikKCSAgKGxldCAoKHBvcnQgKGlmIChudWxs PyBhcmdzKSAoY3VycmVudC1pbnB1dC1wb3J0KSAoY2FyIGFyZ3MpKSkpCgkgICAgKGlmIChlb2Yt b2JqZWN0PyAocGVlay1jaGFyIHBvcnQpKQoJCShyZWFkLWNoYXIgcG9ydCkKCQkocmVhZC1zdHJp bmctaGVscGVyIChsaXN0IChtYWtlLXN0cmluZyA4MCkpIDAgMCBwb3J0KSkpKSkpKQoKKGRlZmlu ZSByZWFkLWxpbmUKICAobGV0ICgoPSA9KQoJKGxpc3QgbGlzdCkKCShzdHJpbmctPndvcmQgc3Ry aW5nLT53b3JkKQoJKHN1YnN0cmluZyBzdWJzdHJpbmcpCgkoY2hhci13aGl0ZXNwYWNlPyBjaGFy LXdoaXRlc3BhY2U/KQoJKHN0cmluZy1yZWYgc3RyaW5nLXJlZikKCSgrICspCgkoc3RyaW5nLWxl bmd0aCBzdHJpbmctbGVuZ3RoKQoJKGFwcGx5IGFwcGx5KQoJKHJlYWQtc3RyaW5nIHJlYWQtc3Ry aW5nKSkKICAgIChsYW1iZGEgYXJncwogICAgICAoZGVmaW5lICh0b2tlbml6ZSBzdHJpbmcpCgko ZGVmaW5lIChoZWxwZXIgaSBzdGFydCBsZW4pCgkgIChjb25kICgoPSBpIGxlbikKCQkgKGlmICg9 IGkgc3RhcnQpCgkJICAgICAnKCkKCQkgICAgIChsaXN0IChzdHJpbmctPndvcmQgKHN1YnN0cmlu ZyBzdHJpbmcgc3RhcnQgaSkpKSkpCgkJKChjaGFyLXdoaXRlc3BhY2U/IChzdHJpbmctcmVmIHN0 cmluZyBpKSkKCQkgKGlmICg9IGkgc3RhcnQpCgkJICAgICAoaGVscGVyICgrIGkgMSkgKCsgaSAx KSBsZW4pCgkJICAgICAoY29ucyAoc3RyaW5nLT53b3JkIChzdWJzdHJpbmcgc3RyaW5nIHN0YXJ0 IGkpKQoJCQkgICAoaGVscGVyICgrIGkgMSkgKCsgaSAxKSBsZW4pKSkpCgkJKGVsc2UgKGhlbHBl ciAoKyBpIDEpIHN0YXJ0IGxlbikpKSkKICAgICAgICAoaWYgKGVvZi1vYmplY3Q/IHN0cmluZykK ICAgICAgICAgICAgc3RyaW5nCiAgICAgICAgICAgIChoZWxwZXIgMCAwIChzdHJpbmctbGVuZ3Ro IHN0cmluZykpKSkKICAgICAgKHRva2VuaXplIChhcHBseSByZWFkLXN0cmluZyBhcmdzKSkpKSkK CihkZWZpbmUgKnRoZS1vcGVuLWlucG9ydHMqICcoKSkKKGRlZmluZSAqdGhlLW9wZW4tb3V0cG9y dHMqICcoKSkKCihkZWZpbmUgYWxpZ24KICAobGV0ICgoPCA8KSAoYWJzIGFicykgKCogKikgKGV4 cHQgZXhwdCkgKD49ID49KSAoLSAtKSAoKyArKSAoPSA9KQoJKG51bGw/IG51bGw/KQoJKGNhciBj YXIpCgkocm91bmQgcm91bmQpCgkobnVtYmVyLT5zdHJpbmcgbnVtYmVyLT5zdHJpbmcpCgkoc3Ry aW5nLWxlbmd0aCBzdHJpbmctbGVuZ3RoKQoJKHN0cmluZy1hcHBlbmQgc3RyaW5nLWFwcGVuZCkK CShtYWtlLXN0cmluZyBtYWtlLXN0cmluZykKCShzdWJzdHJpbmcgc3Vic3RyaW5nKQoJKHN0cmlu Zy1zZXQhIHN0cmluZy1zZXQhKQoJKG51bWJlcj8gbnVtYmVyPykKCSh3b3JkLT5zdHJpbmcgd29y ZC0+c3RyaW5nKSkKICAgIChsYW1iZGEgKG9iaiB3aWR0aCAuIHJlc3QpCiAgICAgIChkZWZpbmUg KGFsaWduLW51bWJlciBvYmogd2lkdGggcmVzdCkKCShsZXQqICgoc2lnbiAoPCBvYmogMCkpCgkg ICAgICAgKG51bSAoYWJzIG9iaikpCgkgICAgICAgKHByZWMgKGlmIChudWxsPyByZXN0KSAwIChj YXIgcmVzdCkpKQoJICAgICAgIChiaWcgKHJvdW5kICgqIG51bSAoZXhwdCAxMCBwcmVjKSkpKQoJ ICAgICAgIChjdnQwIChudW1iZXItPnN0cmluZyBiaWcpKQoJICAgICAgIChjdnQgKGlmICg8IG51 bSAxKSAoc3RyaW5nLWFwcGVuZCAiMCIgY3Z0MCkgY3Z0MCkpCgkgICAgICAgKHBvcy1zdHIgKGlm ICg+PSAoc3RyaW5nLWxlbmd0aCBjdnQwKSBwcmVjKQoJCQkgICAgY3Z0CgkJCSAgICAoc3RyaW5n LWFwcGVuZAoJCQkgICAgIChtYWtlLXN0cmluZyAoLSBwcmVjIChzdHJpbmctbGVuZ3RoIGN2dDAp KSAjXDApCgkJCSAgICAgY3Z0KSkpCgkgICAgICAgKHN0cmluZyAoaWYgc2lnbiAoc3RyaW5nLWFw cGVuZCAiLSIgcG9zLXN0cikgcG9zLXN0cikpCgkgICAgICAgKGxlbmd0aCAoKyAoc3RyaW5nLWxl bmd0aCBzdHJpbmcpCgkJCSAgKGlmICg9IHByZWMgMCkgMCAxKSkpCgkgICAgICAgKGxlZnQgKC0g bGVuZ3RoICgrIDEgcHJlYykpKQoJICAgICAgIChyZXN1bHQgKGlmICg9IHByZWMgMCkKCQkJICAg c3RyaW5nCgkJCSAgIChzdHJpbmctYXBwZW5kCgkJCSAgICAoc3Vic3RyaW5nIHN0cmluZyAwIGxl ZnQpCgkJCSAgICAiLiIKCQkJICAgIChzdWJzdHJpbmcgc3RyaW5nIGxlZnQgKC0gbGVuZ3RoIDEp KSkpKSkKCSAgKGNvbmQgKCg9IGxlbmd0aCB3aWR0aCkgcmVzdWx0KQoJCSgoPCBsZW5ndGggd2lk dGgpCgkJIChzdHJpbmctYXBwZW5kIChtYWtlLXN0cmluZyAoLSB3aWR0aCBsZW5ndGgpICNcc3Bh Y2UpIHJlc3VsdCkpCgkJKGVsc2UgKGxldCAoKG5ldyAoc3Vic3RyaW5nIHJlc3VsdCAwIHdpZHRo KSkpCgkJCShzdHJpbmctc2V0ISBuZXcgKC0gd2lkdGggMSkgI1wrKQoJCQluZXcpKSkpKQogICAg ICAoZGVmaW5lIChhbGlnbi13b3JkIHN0cmluZykKCShsZXQgKChsZW5ndGggKHN0cmluZy1sZW5n dGggc3RyaW5nKSkpCgkgIChjb25kICgoPSBsZW5ndGggd2lkdGgpIHN0cmluZykKCQkoKDwgbGVu Z3RoIHdpZHRoKQoJCSAoc3RyaW5nLWFwcGVuZCBzdHJpbmcgKG1ha2Utc3RyaW5nICgtIHdpZHRo IGxlbmd0aCkgI1xzcGFjZSkpKQoJCShlbHNlIChsZXQgKChuZXcgKHN1YnN0cmluZyBzdHJpbmcg MCB3aWR0aCkpKQoJCQkoc3RyaW5nLXNldCEgbmV3ICgtIHdpZHRoIDEpICNcKykKCQkJbmV3KSkp KSkKICAgICAgKGlmIChudW1iZXI/IG9iaikKCSAgKGFsaWduLW51bWJlciBvYmogd2lkdGggcmVz dCkKCSAgKGFsaWduLXdvcmQgKHdvcmQtPnN0cmluZyBvYmopKSkpKSkKCihkZWZpbmUgb3Blbi1v dXRwdXQtZmlsZQogIChsZXQgKChvb2Ygb3Blbi1vdXRwdXQtZmlsZSkKCShjb25zIGNvbnMpKQog ICAgKGxhbWJkYSAoZmlsZW5hbWUpCiAgICAgIChsZXQgKChwb3J0IChvb2YgZmlsZW5hbWUpKSkK CShzZXQhICp0aGUtb3Blbi1vdXRwb3J0cyogKGNvbnMgcG9ydCAqdGhlLW9wZW4tb3V0cG9ydHMq KSkKCXBvcnQpKSkpCgooZGVmaW5lIG9wZW4taW5wdXQtZmlsZQogIChsZXQgKChvaWYgb3Blbi1p bnB1dC1maWxlKQoJKGNvbnMgY29ucykpCiAgICAobGFtYmRhIChmaWxlbmFtZSkKICAgICAgKGxl dCAoKHBvcnQgKG9pZiBmaWxlbmFtZSkpKQoJKHNldCEgKnRoZS1vcGVuLWlucG9ydHMqIChjb25z IHBvcnQgKnRoZS1vcGVuLWlucG9ydHMqKSkKCXBvcnQpKSkpCgooZGVmaW5lIHJlbW92ZSEKICAo bGV0ICgobnVsbD8gbnVsbD8pCgkoY2RyIGNkcikKCShlcT8gZXE/KQoJKHNldC1jZHIhIHNldC1j ZHIhKQoJKGNhciBjYXIpKQogICAgKGxhbWJkYSAodGhpbmcgbHN0KQogICAgICAoZGVmaW5lIChy ISBwcmV2KQoJKGNvbmQgKChudWxsPyAoY2RyIHByZXYpKSBsc3QpCgkgICAgICAoKGVxPyB0aGlu ZyAoY2FyIChjZHIgcHJldikpKQoJICAgICAgIChzZXQtY2RyISBwcmV2IChjZHIgKGNkciBwcmV2 KSkpCgkgICAgICAgbHN0KQoJICAgICAgKGVsc2UgKHIhIChjZHIgcHJldikpKSkpCiAgICAgIChj b25kICgobnVsbD8gbHN0KSBsc3QpCgkgICAgKChlcT8gdGhpbmcgKGNhciBsc3QpKSAoY2RyIGxz dCkpCgkgICAgKGVsc2UgKHIhIGxzdCkpKSkpKQoKKGRlZmluZSBjbG9zZS1pbnB1dC1wb3J0CiAg KGxldCAoKGNpcCBjbG9zZS1pbnB1dC1wb3J0KQoJKHJlbW92ZSEgcmVtb3ZlISkpCiAgICAobGFt YmRhIChwb3J0KQogICAgICAoc2V0ISAqdGhlLW9wZW4taW5wb3J0cyogKHJlbW92ZSEgcG9ydCAq dGhlLW9wZW4taW5wb3J0cyopKQogICAgICAoY2lwIHBvcnQpKSkpCgooZGVmaW5lIGNsb3NlLW91 dHB1dC1wb3J0CiAgKGxldCAoKGNvcCBjbG9zZS1vdXRwdXQtcG9ydCkKCShyZW1vdmUhIHJlbW92 ZSEpKQogICAgKGxhbWJkYSAocG9ydCkKICAgICAgKHNldCEgKnRoZS1vcGVuLW91dHBvcnRzKiAo cmVtb3ZlISBwb3J0ICp0aGUtb3Blbi1vdXRwb3J0cyopKQogICAgICAoY29wIHBvcnQpKSkpCgoo ZGVmaW5lIGNsb3NlLWFsbC1wb3J0cwogIChsZXQgKChmb3ItZWFjaCBmb3ItZWFjaCkKCShjbG9z ZS1pbnB1dC1wb3J0IGNsb3NlLWlucHV0LXBvcnQpCgkoY2xvc2Utb3V0cHV0LXBvcnQgY2xvc2Ut b3V0cHV0LXBvcnQpKQogICAgKGxhbWJkYSAoKQogICAgICAoZm9yLWVhY2ggY2xvc2UtaW5wdXQt cG9ydCAqdGhlLW9wZW4taW5wb3J0cyopCiAgICAgIChmb3ItZWFjaCBjbG9zZS1vdXRwdXQtcG9y dCAqdGhlLW9wZW4tb3V0cG9ydHMqKQogICAgICAnY2xvc2VkKSkpCgo7OyBNYWtlIGFyaXRobWV0 aWMgd29yayBvbiBudW1iZXJzIGluIHN0cmluZyBmb3JtOgooZGVmaW5lIG1heWJlLW51bQogIChs ZXQgKChzdHJpbmc/IHN0cmluZz8pCiAgICAJKHN0cmluZy0+bnVtYmVyIHN0cmluZy0+bnVtYmVy KSkKICAgIChsYW1iZGEgKGFyZykKICAgICAgKGlmIChzdHJpbmc/IGFyZykKCSAgKGxldCAoKG51 bSAoc3RyaW5nLT5udW1iZXIgYXJnKSkpCgkgICAgKGlmIG51bSBudW0gYXJnKSkKCSAgYXJnKSkp KQoKKGRlZmluZSBsb2dvaXplCiAgKGxldCAoKGFwcGx5IGFwcGx5KQoJKG1hcCBtYXApCgkobWF5 YmUtbnVtIG1heWJlLW51bSkpCiAgICAobGFtYmRhIChmbikKICAgICAgKGxhbWJkYSBhcmdzCgko YXBwbHkgZm4gKG1hcCBtYXliZS1udW0gYXJncykpKSkpKQoKOzsgc3BlY2lhbCBjYXNlIHZlcnNp b25zIG9mIGxvZ29pemUsIHNpbmNlIChsYW1iZGEgYXJncyAuLi4pIGlzIGV4cGVuc2l2ZQooZGVm aW5lIGxvZ29pemUtMQogIChsZXQgKChtYXliZS1udW0gbWF5YmUtbnVtKSkKICAgIChsYW1iZGEg KGZuKQogICAgICAobGFtYmRhICh4KSAoZm4gKG1heWJlLW51bSB4KSkpKSkpCgooZGVmaW5lIGxv Z29pemUtMgogIChsZXQgKChtYXliZS1udW0gbWF5YmUtbnVtKSkKICAgIChsYW1iZGEgKGZuKQog ICAgICAobGFtYmRhICh4IHkpIChmbiAobWF5YmUtbnVtIHgpIChtYXliZS1udW0geSkpKSkpKQoK KGRlZmluZSBzdHJpbmdzLWFyZS1udW1iZXJzCiAgKGxldCAoKGFyZS10aGV5PyAjZikKICAgICAg ICAocmVhbC0qICopCiAgICAgICAgKHJlYWwtKyArKQogICAgICAgIChyZWFsLS0gLSkKICAgICAg ICAocmVhbC0vIC8pCiAgICAgICAgKHJlYWwtPCA8KQogICAgICAgIChyZWFsLTw9IDw9KQogICAg ICAgIChyZWFsLT0gPSkKICAgICAgICAocmVhbC0+ID4pCiAgICAgICAgKHJlYWwtPj0gPj0pCiAg ICAgICAgKHJlYWwtYWJzIGFicykKICAgICAgICAocmVhbC1hY29zIGFjb3MpCiAgICAgICAgKHJl YWwtYXNpbiBhc2luKQogICAgICAgIChyZWFsLWF0YW4gYXRhbikKICAgICAgICAocmVhbC1jZWls aW5nIGNlaWxpbmcpCiAgICAgICAgKHJlYWwtY29zIGNvcykKICAgICAgICAocmVhbC1ldmVuPyBl dmVuPykKICAgICAgICAocmVhbC1leHAgZXhwKQogICAgICAgIChyZWFsLWV4cHQgZXhwdCkKICAg ICAgICAocmVhbC1mbG9vciBmbG9vcikKCShyZWFsLWFsaWduIGFsaWduKQogICAgICAgIChyZWFs LWdjZCBnY2QpCiAgICAgICAgKHJlYWwtaW50ZWdlcj8gaW50ZWdlcj8pCiAgICAgICAgKHJlYWwt aXRlbSBpdGVtKQogICAgICAgIChyZWFsLWxjbSBsY20pCiAgICAgICAgKHJlYWwtbGlzdC1yZWYg bGlzdC1yZWYpCiAgICAgICAgKHJlYWwtbG9nIGxvZykKICAgICAgICAocmVhbC1tYWtlLXZlY3Rv ciBtYWtlLXZlY3RvcikKICAgICAgICAocmVhbC1tYXggbWF4KQogICAgICAgIChyZWFsLW1pbiBt aW4pCiAgICAgICAgKHJlYWwtbW9kdWxvIG1vZHVsbykKICAgICAgICAocmVhbC1uZWdhdGl2ZT8g bmVnYXRpdmU/KQogICAgICAgIChyZWFsLW51bWJlcj8gbnVtYmVyPykKICAgICAgICAocmVhbC1v ZGQ/IG9kZD8pCiAgICAgICAgKHJlYWwtcG9zaXRpdmU/IHBvc2l0aXZlPykKICAgICAgICAocmVh bC1xdW90aWVudCBxdW90aWVudCkKICAgICAgICAocmVhbC1yYW5kb20gcmFuZG9tKQogICAgICAg IChyZWFsLXJlbWFpbmRlciByZW1haW5kZXIpCiAgICAgICAgKHJlYWwtcmVwZWF0ZWQgcmVwZWF0 ZWQpCiAgICAgICAgKHJlYWwtcm91bmQgcm91bmQpCiAgICAgICAgKHJlYWwtc2luIHNpbikKICAg ICAgICAocmVhbC1zcXJ0IHNxcnQpCiAgICAgICAgKHJlYWwtdGFuIHRhbikKICAgICAgICAocmVh bC10cnVuY2F0ZSB0cnVuY2F0ZSkKICAgICAgICAocmVhbC12ZWN0b3ItcmVmIHZlY3Rvci1yZWYp CiAgICAgICAgKHJlYWwtdmVjdG9yLXNldCEgdmVjdG9yLXNldCEpCiAgICAgICAgKHJlYWwtemVy bz8gemVybz8pCgkobWF5YmUtbnVtIG1heWJlLW51bSkKCShudW1iZXItPnN0cmluZyBudW1iZXIt PnN0cmluZykKCShjb25zIGNvbnMpCgkoY2FyIGNhcikKCShjZHIgY2RyKQoJKGVxPyBlcT8pCgko c2hvdyBzaG93KQoJKGxvZ29pemUgbG9nb2l6ZSkKCShsb2dvaXplLTEgbG9nb2l6ZS0xKQoJKGxv Z29pemUtMiBsb2dvaXplLTIpCgkobm90IG5vdCkKCSh3aG9vcHMgd2hvb3BzKSkKCiAgICAobGFt YmRhICh5ZXNubykKICAgICAgKGNvbmQgKChhbmQgYXJlLXRoZXk/IChlcT8geWVzbm8gI3QpKQoJ ICAgICAoc2hvdyAiU3RyaW5ncyBhcmUgYWxyZWFkeSBudW1iZXJzIikpCgkgICAgKChlcT8geWVz bm8gI3QpCgkgICAgIChzZXQhIGFyZS10aGV5PyAjdCkKCSAgICAgKHNldCEgKiAobG9nb2l6ZSBy ZWFsLSopKQoJICAgICAoc2V0ISArIChsb2dvaXplIHJlYWwtKykpCgkgICAgIChzZXQhIC0gKGxv Z29pemUgcmVhbC0tKSkKCSAgICAgKHNldCEgLyAobG9nb2l6ZSByZWFsLS8pKQoJICAgICAoc2V0 ISA8IChsb2dvaXplIHJlYWwtPCkpCgkgICAgIChzZXQhIDw9IChsb2dvaXplIHJlYWwtPD0pKQoJ ICAgICAoc2V0ISA9IChsb2dvaXplIHJlYWwtPSkpCgkgICAgIChzZXQhID4gKGxvZ29pemUgcmVh bC0+KSkKCSAgICAgKHNldCEgPj0gKGxvZ29pemUgcmVhbC0+PSkpCgkgICAgIChzZXQhIGFicyAo bG9nb2l6ZS0xIHJlYWwtYWJzKSkKCSAgICAgKHNldCEgYWNvcyAobG9nb2l6ZS0xIHJlYWwtYWNv cykpCgkgICAgIChzZXQhIGFzaW4gKGxvZ29pemUtMSByZWFsLWFzaW4pKQoJICAgICAoc2V0ISBh dGFuIChsb2dvaXplIHJlYWwtYXRhbikpCgkgICAgIChzZXQhIGNlaWxpbmcgKGxvZ29pemUtMSBy ZWFsLWNlaWxpbmcpKQoJICAgICAoc2V0ISBjb3MgKGxvZ29pemUtMSByZWFsLWNvcykpCgkgICAg IChzZXQhIGV2ZW4/IChsb2dvaXplLTEgcmVhbC1ldmVuPykpCgkgICAgIChzZXQhIGV4cCAobG9n b2l6ZS0xIHJlYWwtZXhwKSkKCSAgICAgKHNldCEgZXhwdCAobG9nb2l6ZS0yIHJlYWwtZXhwdCkp CgkgICAgIChzZXQhIGZsb29yIChsb2dvaXplLTEgcmVhbC1mbG9vcikpCgkgICAgIChzZXQhIGFs aWduIChsb2dvaXplIGFsaWduKSkKCSAgICAgKHNldCEgZ2NkIChsb2dvaXplIHJlYWwtZ2NkKSkK CSAgICAgKHNldCEgaW50ZWdlcj8gKGxvZ29pemUtMSByZWFsLWludGVnZXI/KSkKCSAgICAgKHNl dCEgaXRlbSAobGFtYmRhIChuIHN0dWZmKQoJCQkgIChyZWFsLWl0ZW0gKG1heWJlLW51bSBuKSBz dHVmZikpKQoJICAgICAoc2V0ISBsY20gKGxvZ29pemUgcmVhbC1sY20pKQoJICAgICAoc2V0ISBs aXN0LXJlZiAobGFtYmRhIChsc3QgaykgCgkJCSAgICAgIChyZWFsLWxpc3QtcmVmIGxzdCAobWF5 YmUtbnVtIGspKSkpCgkgICAgIChzZXQhIGxvZyAobG9nb2l6ZS0xIHJlYWwtbG9nKSkKCSAgICAg KHNldCEgbWF4IChsb2dvaXplIHJlYWwtbWF4KSkKCSAgICAgKHNldCEgbWluIChsb2dvaXplIHJl YWwtbWluKSkKCSAgICAgKHNldCEgbW9kdWxvIChsb2dvaXplLTIgcmVhbC1tb2R1bG8pKQoJICAg ICAoc2V0ISBuZWdhdGl2ZT8gKGxvZ29pemUtMSByZWFsLW5lZ2F0aXZlPykpCgkgICAgIChzZXQh IG51bWJlcj8gKGxvZ29pemUtMSByZWFsLW51bWJlcj8pKQoJICAgICAoc2V0ISBvZGQ/IChsb2dv aXplLTEgcmVhbC1vZGQ/KSkKCSAgICAgKHNldCEgcG9zaXRpdmU/IChsb2dvaXplLTEgcmVhbC1w b3NpdGl2ZT8pKQoJICAgICAoc2V0ISBxdW90aWVudCAobG9nb2l6ZS0yIHJlYWwtcXVvdGllbnQp KQoJICAgICAoc2V0ISByYW5kb20gKGxvZ29pemUgcmVhbC1yYW5kb20pKQoJICAgICAoc2V0ISBy ZW1haW5kZXIgKGxvZ29pemUtMiByZWFsLXJlbWFpbmRlcikpCgkgICAgIChzZXQhIHJvdW5kIChs b2dvaXplLTEgcmVhbC1yb3VuZCkpCgkgICAgIChzZXQhIHNpbiAobG9nb2l6ZS0xIHJlYWwtc2lu KSkKCSAgICAgKHNldCEgc3FydCAobG9nb2l6ZS0xIHJlYWwtc3FydCkpCgoJICAgICAoc2V0ISB0 YW4gKGxvZ29pemUtMSByZWFsLXRhbikpCgkgICAgIChzZXQhIHRydW5jYXRlIChsb2dvaXplLTEg cmVhbC10cnVuY2F0ZSkpCgkgICAgIChzZXQhIHplcm8/IChsb2dvaXplLTEgcmVhbC16ZXJvPykp CgkgICAgIChzZXQhIHZlY3Rvci1yZWYKCQkgICAobGFtYmRhICh2ZWMgaSkgKHJlYWwtdmVjdG9y LXJlZiB2ZWMgKG1heWJlLW51bSBpKSkpKQoJICAgICAoc2V0ISB2ZWN0b3Itc2V0IQoJCSAgIChs YW1iZGEgKHZlYyBpIHZhbCkKCQkgICAgIChyZWFsLXZlY3Rvci1zZXQhIHZlYyAobWF5YmUtbnVt IGkpIHZhbCkpKQoJICAgICAoc2V0ISBtYWtlLXZlY3RvcgoJCSAgIChsYW1iZGEgKG51bSAuIGFy Z3MpCgkJICAgICAoYXBwbHkgcmVhbC1tYWtlLXZlY3RvciAoY29ucyAobWF5YmUtbnVtIG51bSkK CQkJCQkJICAgYXJncykpKSkKCSAgICAgKHNldCEgbGlzdC1yZWYKCQkgICAobGFtYmRhIChsc3Qg aSkgKHJlYWwtbGlzdC1yZWYgbHN0IChtYXliZS1udW0gaSkpKSkKCSAgICAgKHNldCEgcmVwZWF0 ZWQKCQkgICAobGFtYmRhIChmbiBuKSAocmVhbC1yZXBlYXRlZCBmbiAobWF5YmUtbnVtIG4pKSkp KQoJICAgICgoYW5kIChub3QgYXJlLXRoZXk/KSAobm90IHllc25vKSkKCSAgICAgKHNob3cgIlN0 cmluZ3MgYXJlIGFscmVhZHkgbm90IG51bWJlcnMiKSkKCSAgICAoKG5vdCB5ZXNubykKCSAgICAg KHNldCEgYXJlLXRoZXk/ICNmKSAoc2V0ISAqIHJlYWwtKikgKHNldCEgKyByZWFsLSspCgkgICAg IChzZXQhIC0gcmVhbC0tKSAoc2V0ISAvIHJlYWwtLykgKHNldCEgPCByZWFsLTwpCgkgICAgIChz ZXQhIDw9IHJlYWwtPD0pIChzZXQhID0gcmVhbC09KSAoc2V0ISA+IHJlYWwtPikKCSAgICAgKHNl dCEgPj0gcmVhbC0+PSkgKHNldCEgYWJzIHJlYWwtYWJzKSAoc2V0ISBhY29zIHJlYWwtYWNvcykK CSAgICAgKHNldCEgYXNpbiByZWFsLWFzaW4pIChzZXQhIGF0YW4gcmVhbC1hdGFuKQoJICAgICAo c2V0ISBjZWlsaW5nIHJlYWwtY2VpbGluZykgKHNldCEgY29zIHJlYWwtY29zKQoJICAgICAoc2V0 ISBldmVuPyByZWFsLWV2ZW4/KQoJICAgICAoc2V0ISBleHAgcmVhbC1leHApIChzZXQhIGV4cHQg cmVhbC1leHB0KQoJICAgICAoc2V0ISBmbG9vciByZWFsLWZsb29yKSAoc2V0ISBhbGlnbiByZWFs LWFsaWduKQoJICAgICAoc2V0ISBnY2QgcmVhbC1nY2QpIChzZXQhIGludGVnZXI/IHJlYWwtaW50 ZWdlcj8pCgkgICAgIChzZXQhIGl0ZW0gcmVhbC1pdGVtKQoJICAgICAoc2V0ISBsY20gcmVhbC1s Y20pIChzZXQhIGxpc3QtcmVmIHJlYWwtbGlzdC1yZWYpCgkgICAgIChzZXQhIGxvZyByZWFsLWxv ZykgKHNldCEgbWF4IHJlYWwtbWF4KSAoc2V0ISBtaW4gcmVhbC1taW4pCgkgICAgIChzZXQhIG1v ZHVsbyByZWFsLW1vZHVsbykgKHNldCEgb2RkPyByZWFsLW9kZD8pCgkgICAgIChzZXQhIHF1b3Rp ZW50IHJlYWwtcXVvdGllbnQpIChzZXQhIHJhbmRvbSByZWFsLXJhbmRvbSkKCSAgICAgKHNldCEg cmVtYWluZGVyIHJlYWwtcmVtYWluZGVyKSAoc2V0ISByb3VuZCByZWFsLXJvdW5kKQoJICAgICAo c2V0ISBzaW4gcmVhbC1zaW4pIChzZXQhIHNxcnQgcmVhbC1zcXJ0KSAoc2V0ISB0YW4gcmVhbC10 YW4pCgkgICAgIChzZXQhIHRydW5jYXRlIHJlYWwtdHJ1bmNhdGUpIChzZXQhIHplcm8/IHJlYWwt emVybz8pCgkgICAgIChzZXQhIHBvc2l0aXZlPyByZWFsLXBvc2l0aXZlPykgKHNldCEgbmVnYXRp dmU/IHJlYWwtbmVnYXRpdmU/KQoJICAgICAoc2V0ISBudW1iZXI/IHJlYWwtbnVtYmVyPykgKHNl dCEgdmVjdG9yLXJlZiByZWFsLXZlY3Rvci1yZWYpCgkgICAgIChzZXQhIHZlY3Rvci1zZXQhIHJl YWwtdmVjdG9yLXNldCEpCgkgICAgIChzZXQhIG1ha2UtdmVjdG9yIHJlYWwtbWFrZS12ZWN0b3Ip CgkgICAgIChzZXQhIGxpc3QtcmVmIHJlYWwtbGlzdC1yZWYpIChzZXQhIGl0ZW0gcmVhbC1pdGVt KQoJICAgICAoc2V0ISByZXBlYXRlZCByZWFsLXJlcGVhdGVkKSkKCSAgICAoZWxzZSAod2hvb3Bz ICJTdHJpbmdzLWFyZS1udW1iZXJzOiBnaXZlIGEgI3Qgb3IgYSAjZiIpKSkKCSAgICBhcmUtdGhl eT8pKSkKCgo7OyBCeSBkZWZhdWx0LCBzdHJpbmdzIGFyZSBudW1iZXJzOgooc3RyaW5ncy1hcmUt bnVtYmVycyAjdCkK --000000000000a484f005ab95de50 Content-Type: application/octet-stream; name=possible-bug Content-Disposition: attachment; filename=possible-bug Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kd7i1xxd1 Y2hlbWVAKGd1aWxlLXVzZXIpPiAoZGVmaW5lIChyZXZlcnNlIHdkKSAoaWYgKGVxdWFsPyB3ZCAi IikgIiIgKHdvcmQgKHJldmVyc2UgKGJmIHdkKSkgKGZpcnN0IHdkKSkpKQpzY2hlbWVAKGd1aWxl LXVzZXIpPiAodXNlLW1vZHVsZXMgKHN5c3RlbSB2bSB0cmFjZSkpCnNjaGVtZUAoZ3VpbGUtdXNl cik+ICh0cmFjZS1jYWxscy10by1wcm9jZWR1cmUgcmV2ZXJzZSAjOnByZWZpeCAiWFhYOiAiKQok MSA9ICM8cHJvY2VkdXJlIDdmMWE3MDMzYzc0MCBhdCBzeXN0ZW0vdm0vdHJhcHMuc2NtOjU5OTo2 ICgjOm9wdGlvbmFsIGZyYW1lKT4Kc2NoZW1lQChndWlsZS11c2VyKT4gKHJldmVyc2UgJ2FzZGYp CiQyID0gZmRzYQpzY2hlbWVAKGd1aWxlLXVzZXIpPiAoY2FsbC13aXRoLXRyYWNlIChsYW1iZGEg KCkgKHJldmVyc2UgJ2FzZGYpKSAjOmNhbGxzPyAjZikKWFhYOiAocmV2ZXJzZSBhc2RmKQpYWFg6 IHwgIChyZXZlcnNlIHNkZikKWFhYOiB8ICB8ICAocmV2ZXJzZSBkZikKWFhYOiB8ICB8ICB8ICAo cmV2ZXJzZSBmKQpYWFg6IHwgIHwgIHwgIHwgIChyZXZlcnNlICIiKQppY2UtOS9ib290LTkuc2Nt OjE2Njk6MTY6IEluIHByb2NlZHVyZSByYWlzZS1leGNlcHRpb246Cldyb25nIG51bWJlciBvZiBh cmd1bWVudHMgdG8gIzxwcm9jZWR1cmUgcmV0dXJuLWhhbmRsZXIgKGZyYW1lIGRlcHRoIHZhbHVl cyk+CgpFbnRlcmluZyBhIG5ldyBwcm9tcHQuICBUeXBlIGAsYnQnIGZvciBhIGJhY2t0cmFjZSBv ciBgLHEnIHRvIGNvbnRpbnVlLgpzY2hlbWVAKGd1aWxlLXVzZXIpIFsxXT4gLHEKc2NoZW1lQChn dWlsZS11c2VyKT4gKGNhbGwtd2l0aC10cmFjZSAobGFtYmRhICgpIChyZXZlcnNlICdhc2RmKSkg IzpjYWxscz8gI2YpCmljZS05L2Jvb3QtOS5zY206MTY2OToxNjogSW4gcHJvY2VkdXJlIHJhaXNl LWV4Y2VwdGlvbjoKV3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cyB0byAjPHByb2NlZHVyZSByZXR1 cm4taGFuZGxlciAoZnJhbWUgZGVwdGggdmFsdWVzKT4KCkVudGVyaW5nIGEgbmV3IHByb21wdC4g IFR5cGUgYCxidCcgZm9yIGEgYmFja3RyYWNlIG9yIGAscScgdG8gY29udGludWUuCnNjaGVtZUAo Z3VpbGUtdXNlcikgWzFdPiAKCg== --000000000000a484f005ab95de50 Content-Type: application/octet-stream; name=typescript Content-Disposition: attachment; filename=typescript Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kd7i1xyy4 U2NyaXB0IHN0YXJ0ZWQgb24gMjAyMC0wNy0yOCAxMzo0NTozNSswNTQ1ChtdMDtzaW1wbHlfc2No ZW1lBxtbMDE7MzJtYXNkZkBSVFIbWzAwbTobWzAxOzM0bX4vUHVibGljL3NpbXBseV9zY2hlbWUb WzAwbSQgZ3VpbGUgLWwgc2ltcGx5LnNjbSANChtdMDtndWlsZSAtbCBzaW1wbHkuc2NtB0dOVSBH dWlsZSAzLjAuMg0KQ29weXJpZ2h0IChDKSAxOTk1LTIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuDQoNCkd1aWxlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWTsgZm9y IGRldGFpbHMgdHlwZSBgLHNob3cgdycuDQpUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZSwg YW5kIHlvdSBhcmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXQNCnVuZGVyIGNlcnRhaW4gY29u ZGl0aW9uczsgdHlwZSBgLHNob3cgYycgZm9yIGRldGFpbHMuDQoNCkVudGVyIGAsaGVscCcgZm9y IGhlbHAuDQobWz8yMDA0aHNjaGVtZUAoZ3VpbGUtdXNlcik+ICxxCAgoY2FsbC13aXRoLXRyYWNl IChsYW1iZGEgKCkgKHJldmVyc2UgJ2FzZGYpKSAjOmNhbGxzPyAjZikNG1tDG1tDG1tDG1tDG1tD G1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDLHEbW0sICChj YWxsLXdpdGgtdHJhY2UgKGxhbWJkYSAoKSAocmV2ZXJzZSAnYXNkZikpKQ0bW0MbW0MbW0MbW0Mb W0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0N0cmFj ZS1jYWxscy10by1wcm9jZWR1cmUgcmV2ZXJzZSAjOnByZWZpeCAiWFhYOiAiKQ0bW0MbW0MbW0Mb W0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0Ny ZXZlcnNlICdhc2RmKRtbSwgICAgICAgICAgICAgIZGVmaW5lIChyZXZlcnNlIHdkKSAoaWYgKGVx dWFsPyB3ZCAiIikgIiIgKHdvcmQgKHJldmVyc2UgKGJmIHdkKSkgKGZpcnN0IHdkKSkpKQ0bW0Mb W0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0Mb W0MbW0MbWzQ5UHVzZS1tb2R1bGVzIChzeXN0ZW0gdm0gdHJhY2UpKQ0bW0MbW0MbW0MbW0MbW0Mb W0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0NkZWZpbmUg KHJldmVyc2Ugd2QpIChpZiAoZXF1YWw/IHdkICIiKSAiIiAod29yZCAocmV2ZXJzZSAoYmYgd2Qp KSAoZmlyc3Qgd2QpKSkpDRtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtb QxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbNDlQdXNlLW1vZHVsZXMgKHN5c3RlbSB2bSB0cmFj ZSkpDQobWz8yMDA0bA0bWz8yMDA0aHNjaGVtZUAoZ3VpbGUtdXNlcik+ICh1c2UtbW9kdWxlcyAo c3lzdGVtIHZtIHRyYWNlKSkNG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tD G1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDLHEbW0sICChjYWxsLXdpdGgtdHJhY2UgKGxhbWJkYSAo KSAocmV2ZXJzZSAnYXNkZikpICM6Y2FsbHM/ICNmKQ0bW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0Mb W0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MscRtbSwgIKGNhbGwtd2l0aC10 cmFjZSAobGFtYmRhICgpIChyZXZlcnNlICdhc2RmKSkpDRtbQxtbQxtbQxtbQxtbQxtbQxtbQxtb QxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQ3RyYWNlLWNhbGxzLXRv LXByb2NlZHVyZSByZXZlcnNlICM6cHJlZml4ICJYWFg6ICIpDRtbQxtbQxtbQxtbQxtbQxtbQxtb QxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQ3JldmVyc2UgJ2Fz ZGYpG1tLCAgICAgICAgICAgICAhkZWZpbmUgKHJldmVyc2Ugd2QpIChpZiAoZXF1YWw/IHdkICIi KSAiIiAod29yZCAocmV2ZXJzZSAoYmYgd2QpKSAoZmlyc3Qgd2QpKSkpDRtbQxtbQxtbQxtbQxtb QxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbNDlQ dXNlLW1vZHVsZXMgKHN5c3RlbSB2bSB0cmFjZSkpDRtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtb QxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQ2RlZmluZSAocmV2ZXJzZSB3 ZCkgKGlmIChlcXVhbD8gd2QgIiIpICIiICh3b3JkIChyZXZlcnNlIChiZiB3ZCkpIChmaXJzdCB3 ZCkpKSkNChtbPzIwMDRsDRtbPzIwMDRoc2NoZW1lQChndWlsZS11c2VyKT4gKGRlZmluZSAocmV2 ZXJzZSB3ZCkgKGlmIChlcXVhbD8gd2QgIiIpICIiICh3b3JkIChyZXZlcnNlIChiZiB3ZCkpIChm aXJzdCB3ZCkpKSkNG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tD G1tDG1tDG1tDG1tDG1tDG1tDG1tDG1s0OVB1c2UtbW9kdWxlcyAoc3lzdGVtIHZtIHRyYWNlKSkN G1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tD G1tDG1tDLHEbW0sICChjYWxsLXdpdGgtdHJhY2UgKGxhbWJkYSAoKSAocmV2ZXJzZSAnYXNkZikp ICM6Y2FsbHM/ICNmKQ0bW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0Mb W0MbW0MbW0MbW0MbW0MbW0MbW0MscRtbSwgIKGNhbGwtd2l0aC10cmFjZSAobGFtYmRhICgpIChy ZXZlcnNlICdhc2RmKSkpDRtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtb QxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQ3RyYWNlLWNhbGxzLXRvLXByb2NlZHVyZSByZXZlcnNl ICM6cHJlZml4ICJYWFg6ICIpDRtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtb QxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQ3JldmVyc2UgJ2FzZGYpG1tLDQobWz8yMDA0bA0k MSA9IGZkc2ENChtbPzIwMDRoc2NoZW1lQChndWlsZS11c2VyKT4gKHJldmVyc2UgJ2FzZGYpCAgI CAgICAgICAgICAhkZWZpbmUgKHJldmVyc2Ugd2QpIChpZiAoZXF1YWw/IHdkICIiKSAiIiAod29y ZCAocmV2ZXJzZSAoYmYgd2QpKSAoZmlyc3Qgd2QpKSkpDRtbQxtbQxtbQxtbQxtbQxtbQxtbQxtb QxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbNDlQdXNlLW1vZHVs ZXMgKHN5c3RlbSB2bSB0cmFjZSkpDRtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtb QxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQyxxG1tLCAgoY2FsbC13aXRoLXRyYWNlIChsYW1i ZGEgKCkgKHJldmVyc2UgJ2FzZGYpKSAjOmNhbGxzPyAjZikNG1tDG1tDG1tDG1tDG1tDG1tDG1tD G1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDLHEbW0sICChjYWxsLXdp dGgtdHJhY2UgKGxhbWJkYSAoKSAocmV2ZXJzZSAnYXNkZikpKQ0bW0MbW0MbW0MbW0MbW0MbW0Mb W0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0N0cmFjZS1jYWxs cy10by1wcm9jZWR1cmUgcmV2ZXJzZSAjOnByZWZpeCAiWFhYOiAiKQ0KG1s/MjAwNGwNJDIgPSAj PHByb2NlZHVyZSA3Zjc5ZWE5ZmU1YzAgYXQgc3lzdGVtL3ZtL3RyYXBzLnNjbTo1OTk6NiAoIzpv cHRpb25hbCBmcmFtZSk+DQobWz8yMDA0aHNjaGVtZUAoZ3VpbGUtdXNlcik+ICh0cmFjZS1jYWxs cy10by1wcm9jZWR1cmUgcmV2ZXJzZSAjOnByZWZpeCAiWFhYOiAiKQ0bW0MbW0MbW0MbW0MbW0Mb W0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0NyZXZlcnNl ICdhc2RmKRtbSwgICAgICAgICAgICAgIZGVmaW5lIChyZXZlcnNlIHdkKSAoaWYgKGVxdWFsPyB3 ZCAiIikgIiIgKHdvcmQgKHJldmVyc2UgKGJmIHdkKSkgKGZpcnN0IHdkKSkpKQ0bW0MbW0MbW0Mb W0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0Mb WzQ5UHVzZS1tb2R1bGVzIChzeXN0ZW0gdm0gdHJhY2UpKQ0bW0MbW0MbW0MbW0MbW0MbW0MbW0Mb W0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MscRtbSwgIKGNhbGwtd2l0 aC10cmFjZSAobGFtYmRhICgpIChyZXZlcnNlICdhc2RmKSkgIzpjYWxscz8gI2YpDRtbQxtbQxtb QxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQyxx G1tLCAgoY2FsbC13aXRoLXRyYWNlIChsYW1iZGEgKCkgKHJldmVyc2UgJ2FzZGYpKSkNChtbPzIw MDRsDXRyYWNlOiB8ICAocmV2ZXJzZSBhc2RmKQ0KWFhYOiAocmV2ZXJzZSBhc2RmKQ0KdHJhY2U6 IHwgIHwgIChfIGFzZGYgIiIpDQp0cmFjZTogfCAgfCAgfCAgKHN5bWJvbC0+c3RyaW5nIGFzZGYp DQp0cmFjZTogfCAgfCAgfCAgImFzZGYiDQp0cmFjZTogfCAgfCAgKHN0cmluZz0/ICJhc2RmIiAi IikNCnRyYWNlOiB8ICB8ICAjZg0KdHJhY2U6IHwgIHwgIChfIGFzZGYpDQp0cmFjZTogfCAgfCAg fCAgKF8gYXNkZikNCnRyYWNlOiB8ICB8ICB8ICAjZg0KdHJhY2U6IHwgIHwgIHwgIChfIGFzZGYp DQp0cmFjZTogfCAgfCAgfCAgI3QNCnRyYWNlOiB8ICB8ICB8ICAoXyBhc2RmKQ0KdHJhY2U6IHwg IHwgIHwgIHwgIChfIGFzZGYpDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgKF8gYXNkZikNCnRyYWNl OiB8ICB8ICB8ICB8ICB8ICBhc2RmDQp0cmFjZTogfCAgfCAgfCAgfCAgKG51bWJlcj8gYXNkZikN CnRyYWNlOiB8ICB8ICB8ICB8ICAjZg0KdHJhY2U6IHwgIHwgIHwgIChzeW1ib2wtPnN0cmluZyBh c2RmKQ0KdHJhY2U6IHwgIHwgIHwgICJhc2RmIg0KdHJhY2U6IHwgIHwgIHwgIChzdWJzdHJpbmcg ImFzZGYiIDEgNCkNCnRyYWNlOiB8ICB8ICB8ICAic2RmIg0KdHJhY2U6IHwgIHwgIChfICJzZGYi KQ0KdHJhY2U6IHwgIHwgIHwgIChzdHJpbmc9PyAic2RmIiAiIikNCnRyYWNlOiB8ICB8ICB8ICAj Zg0KdHJhY2U6IHwgIHwgIHwgIChjaGFyPT8gI1xzICNcLSkNCnRyYWNlOiB8ICB8ICB8ICAjZg0K dHJhY2U6IHwgIHwgIHwgIChfICNcZikNCnRyYWNlOiB8ICB8ICB8ICAwDQp0cmFjZTogfCAgfCAg fCAgKHN0cmluZz0/ICJzZGYiICIiKQ0KdHJhY2U6IHwgIHwgIHwgICNmDQp0cmFjZTogfCAgfCAg fCAgKF8gI1xzKQ0KdHJhY2U6IHwgIHwgIHwgIDANCnRyYWNlOiB8ICB8ICB8ICAoXyAjXGQpDQp0 cmFjZTogfCAgfCAgfCAgMA0KdHJhY2U6IHwgIHwgIHwgIChfICNcZikNCnRyYWNlOiB8ICB8ICB8 ICAwDQp0cmFjZTogfCAgfCAgc2RmDQp0cmFjZTogfCAgfCAgKHJldmVyc2Ugc2RmKQ0KWFhYOiB8 ICAocmV2ZXJzZSBzZGYpDQp0cmFjZTogfCAgfCAgfCAgKF8gc2RmICIiKQ0KdHJhY2U6IHwgIHwg IHwgIHwgIChzeW1ib2wtPnN0cmluZyBzZGYpDQp0cmFjZTogfCAgfCAgfCAgfCAgInNkZiINCnRy YWNlOiB8ICB8ICB8ICAoc3RyaW5nPT8gInNkZiIgIiIpDQp0cmFjZTogfCAgfCAgfCAgI2YNCnRy YWNlOiB8ICB8ICB8ICAoXyBzZGYpDQp0cmFjZTogfCAgfCAgfCAgfCAgKF8gc2RmKQ0KdHJhY2U6 IHwgIHwgIHwgIHwgICNmDQp0cmFjZTogfCAgfCAgfCAgfCAgKF8gc2RmKQ0KdHJhY2U6IHwgIHwg IHwgIHwgICN0DQp0cmFjZTogfCAgfCAgfCAgfCAgKF8gc2RmKQ0KdHJhY2U6IHwgIHwgIHwgIHwg IHwgIChfIHNkZikNCnRyYWNlOiB8ICB8ICB8ICB8ICB8ICB8ICAoXyBzZGYpDQp0cmFjZTogfCAg fCAgfCAgfCAgfCAgfCAgc2RmDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgKG51bWJlcj8gc2RmKQ0K dHJhY2U6IHwgIHwgIHwgIHwgIHwgICNmDQp0cmFjZTogfCAgfCAgfCAgfCAgKHN5bWJvbC0+c3Ry aW5nIHNkZikNCnRyYWNlOiB8ICB8ICB8ICB8ICAic2RmIg0KdHJhY2U6IHwgIHwgIHwgIHwgIChz dWJzdHJpbmcgInNkZiIgMSAzKQ0KdHJhY2U6IHwgIHwgIHwgIHwgICJkZiINCnRyYWNlOiB8ICB8 ICB8ICAoXyAiZGYiKQ0KdHJhY2U6IHwgIHwgIHwgIHwgIChzdHJpbmc9PyAiZGYiICIiKQ0KdHJh Y2U6IHwgIHwgIHwgIHwgICNmDQp0cmFjZTogfCAgfCAgfCAgfCAgKGNoYXI9PyAjXGQgI1wtKQ0K dHJhY2U6IHwgIHwgIHwgIHwgICNmDQp0cmFjZTogfCAgfCAgfCAgfCAgKF8gI1xmKQ0KdHJhY2U6 IHwgIHwgIHwgIHwgIDANCnRyYWNlOiB8ICB8ICB8ICB8ICAoc3RyaW5nPT8gImRmIiAiIikNCnRy YWNlOiB8ICB8ICB8ICB8ICAjZg0KdHJhY2U6IHwgIHwgIHwgIHwgIChfICNcZCkNCnRyYWNlOiB8 ICB8ICB8ICB8ICAwDQp0cmFjZTogfCAgfCAgfCAgfCAgKF8gI1xmKQ0KdHJhY2U6IHwgIHwgIHwg IHwgIDANCnRyYWNlOiB8ICB8ICB8ICBkZg0KdHJhY2U6IHwgIHwgIHwgIChyZXZlcnNlIGRmKQ0K WFhYOiB8ICB8ICAocmV2ZXJzZSBkZikNCnRyYWNlOiB8ICB8ICB8ICB8ICAoXyBkZiAiIikNCnRy YWNlOiB8ICB8ICB8ICB8ICB8ICAoc3ltYm9sLT5zdHJpbmcgZGYpDQp0cmFjZTogfCAgfCAgfCAg fCAgfCAgImRmIg0KdHJhY2U6IHwgIHwgIHwgIHwgIChzdHJpbmc9PyAiZGYiICIiKQ0KdHJhY2U6 IHwgIHwgIHwgIHwgICNmDQp0cmFjZTogfCAgfCAgfCAgfCAgKF8gZGYpDQp0cmFjZTogfCAgfCAg fCAgfCAgfCAgKF8gZGYpDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgI2YNCnRyYWNlOiB8ICB8ICB8 ICB8ICB8ICAoXyBkZikNCnRyYWNlOiB8ICB8ICB8ICB8ICB8ICAjdA0KdHJhY2U6IHwgIHwgIHwg IHwgIHwgIChfIGRmKQ0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIHwgIChfIGRmKQ0KdHJhY2U6IHwg IHwgIHwgIHwgIHwgIHwgIHwgIChfIGRmKQ0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIHwgIHwgIGRm DQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgfCAgKG51bWJlcj8gZGYpDQp0cmFjZTogfCAgfCAgfCAg fCAgfCAgfCAgI2YNCnRyYWNlOiB8ICB8ICB8ICB8ICB8ICAoc3ltYm9sLT5zdHJpbmcgZGYpDQp0 cmFjZTogfCAgfCAgfCAgfCAgfCAgImRmIg0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIChzdWJzdHJp bmcgImRmIiAxIDIpDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgImYiDQp0cmFjZTogfCAgfCAgfCAg fCAgKF8gImYiKQ0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIChzdHJpbmc9PyAiZiIgIiIpDQp0cmFj ZTogfCAgfCAgfCAgfCAgfCAgI2YNCnRyYWNlOiB8ICB8ICB8ICB8ICB8ICAoY2hhcj0/ICNcZiAj XC0pDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgI2YNCnRyYWNlOiB8ICB8ICB8ICB8ICB8ICAoXyAj XGYpDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgMA0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIChzdHJp bmc9PyAiZiIgIiIpDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgI2YNCnRyYWNlOiB8ICB8ICB8ICB8 ICB8ICAoXyAjXGYpDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgMA0KdHJhY2U6IHwgIHwgIHwgIHwg IGYNCnRyYWNlOiB8ICB8ICB8ICB8ICAocmV2ZXJzZSBmKQ0KWFhYOiB8ICB8ICB8ICAocmV2ZXJz ZSBmKQ0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIChfIGYgIiIpDQp0cmFjZTogfCAgfCAgfCAgfCAg fCAgfCAgKHN5bWJvbC0+c3RyaW5nIGYpDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgfCAgImYiDQp0 cmFjZTogfCAgfCAgfCAgfCAgfCAgKHN0cmluZz0/ICJmIiAiIikNCnRyYWNlOiB8ICB8ICB8ICB8 ICB8ICAjZg0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIChfIGYpDQp0cmFjZTogfCAgfCAgfCAgfCAg fCAgfCAgKF8gZikNCnRyYWNlOiB8ICB8ICB8ICB8ICB8ICB8ICAjZg0KdHJhY2U6IHwgIHwgIHwg IHwgIHwgIHwgIChfIGYpDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgfCAgI3QNCnRyYWNlOiB8ICB8 ICB8ICB8ICB8ICB8ICAoXyBmKQ0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIHwgIHwgIChfIGYpDQp0 cmFjZTogfCAgfCAgfCAgfCAgfCAgfCAgfCAgfCAgKF8gZikNCnRyYWNlOiB8ICB8ICB8ICB8ICB8 ICB8ICB8ICB8ICBmDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgfCAgfCAgKG51bWJlcj8gZikNCnRy YWNlOiB8ICB8ICB8ICB8ICB8ICB8ICB8ICAjZg0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIHwgIChz eW1ib2wtPnN0cmluZyBmKQ0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIHwgICJmIg0KdHJhY2U6IHwg IHwgIHwgIHwgIHwgIHwgIChzdWJzdHJpbmcgImYiIDEgMSkNCnRyYWNlOiB8ICB8ICB8ICB8ICB8 ICB8ICAiIg0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIChfICIiKQ0KdHJhY2U6IHwgIHwgIHwgIHwg IHwgIHwgIChzdHJpbmc9PyAiIiAiIikNCnRyYWNlOiB8ICB8ICB8ICB8ICB8ICB8ICAjdA0KdHJh Y2U6IHwgIHwgIHwgIHwgIHwgIHwgIChzdHJpbmc9PyAiIiAiIikNCnRyYWNlOiB8ICB8ICB8ICB8 ICB8ICB8ICAjdA0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgICIiDQp0cmFjZTogfCAgfCAgfCAgfCAg fCAgKHJldmVyc2UgIiIpDQpYWFg6IHwgIHwgIHwgIHwgIChyZXZlcnNlICIiKQ0KdHJhY2U6IHwg IHwgIHwgIHwgIHwgIHwgIChfICIiICIiKQ0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIHwgIHwgIChf ICIiKQ0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIHwgIHwgIHwgIChfICIiKQ0KdHJhY2U6IHwgIHwg IHwgIHwgIHwgIHwgIHwgIHwgICIiDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgfCAgfCAgKG51bWJl cj8gIiIpDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgfCAgfCAgI2YNCnRyYWNlOiB8ICB8ICB8ICB8 ICB8ICB8ICB8ICAoXyAiIikNCnRyYWNlOiB8ICB8ICB8ICB8ICB8ICB8ICB8ICB8ICAoXyAiIikN CnRyYWNlOiB8ICB8ICB8ICB8ICB8ICB8ICB8ICB8ICAiIg0KdHJhY2U6IHwgIHwgIHwgIHwgIHwg IHwgIHwgIChudW1iZXI/ICIiKQ0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIHwgIHwgICNmDQp0cmFj ZTogfCAgfCAgfCAgfCAgfCAgfCAgKHN0cmluZz0/ICIiICIiKQ0KdHJhY2U6IHwgIHwgIHwgIHwg IHwgIHwgICN0DQppY2UtOS9ib290LTkuc2NtOjE2Njk6MTY6IEluIHByb2NlZHVyZSByYWlzZS1l eGNlcHRpb246DQpXcm9uZyBudW1iZXIgb2YgYXJndW1lbnRzIHRvICM8cHJvY2VkdXJlIHJldHVy bi1oYW5kbGVyIChmcmFtZSBkZXB0aCB2YWx1ZXMpPg0KDQpFbnRlcmluZyBhIG5ldyBwcm9tcHQu ICBUeXBlIGAsYnQnIGZvciBhIGJhY2t0cmFjZSBvciBgLHEnIHRvIGNvbnRpbnVlLg0KG1s/MjAw NGhzY2hlbWVAKGd1aWxlLXVzZXIpIFsxXT4gLHENChtbPzIwMDRsDRtbPzIwMDRoc2NoZW1lQChn dWlsZS11c2VyKT4gLHEICChjYWxsLXdpdGgtdHJhY2UgKGxhbWJkYSAoKSAocmV2ZXJzZSAnYXNk ZikpKQ0bW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0Mb W0MbW0MbW0MbW0MbW0N0cmFjZS1jYWxscy10by1wcm9jZWR1cmUgcmV2ZXJzZSAjOnByZWZpeCAi WFhYOiAiKQ0bW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0Mb W0MbW0MbW0MbW0MbW0MbW0MbWzZQY2FsbC13aXRoLXRyYWNlIChsYW1iZGEgKCkgKHJldmVyc2Ug J2FzZGYpKSkNG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tD G1tDG1tDG1tDG1tDG1tDG1tDdHJhY2UtY2FsbHMtdG8tcHJvY2VkdXJlIHJldmVyc2UgIzpwcmVm aXggIlhYWDogIikNG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tD G1tDG1tDG1tDG1tDG1tDG1tDG1tDcmV2ZXJzZSAnYXNkZikbW0sICAgICAgICAgICAgICGRlZmlu ZSAocmV2ZXJzZSB3ZCkgKGlmIChlcXVhbD8gd2QgIiIpICIiICh3b3JkIChyZXZlcnNlIChiZiB3 ZCkpIChmaXJzdCB3ZCkpKSkNG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tD G1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1s0OVB1c2UtbW9kdWxlcyAoc3lzdGVtIHZtIHRy YWNlKSkNG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tD G1tDG1tDG1tDG1tDLHEbW0sICCh1c2UtbW9kdWxlcyAoc3lzdGVtIHZtIHRyYWNlKSkNG1tDG1tD G1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tD LHEbW0sICChjYWxsLXdpdGgtdHJhY2UgKGxhbWJkYSAoKSAocmV2ZXJzZSAnYXNkZikpICM6Y2Fs bHM/ICNmKQ0KG1s/MjAwNGwNaWNlLTkvYm9vdC05LnNjbToxNjY5OjE2OiBJbiBwcm9jZWR1cmUg cmFpc2UtZXhjZXB0aW9uOg0KV3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cyB0byAjPHByb2NlZHVy ZSByZXR1cm4taGFuZGxlciAoZnJhbWUgZGVwdGggdmFsdWVzKT4NCg0KRW50ZXJpbmcgYSBuZXcg cHJvbXB0LiAgVHlwZSBgLGJ0JyBmb3IgYSBiYWNrdHJhY2Ugb3IgYCxxJyB0byBjb250aW51ZS4N ChtbPzIwMDRoc2NoZW1lQChndWlsZS11c2VyKSBbMV0+ICxxDQobWz8yMDA0bA0bWz8yMDA0aHNj aGVtZUAoZ3VpbGUtdXNlcik+IBtbPzIwMDRsDQ0KDQobXTA7c2ltcGx5X3NjaGVtZTogZ3VpbGUH G1swMTszMm1hc2RmQFJUUhtbMDBtOhtbMDE7MzRtfi9QdWJsaWMvc2ltcGx5X3NjaGVtZRtbMDBt JCBleGl0DQoKU2NyaXB0IGRvbmUgb24gMjAyMC0wNy0yOCAxMzo0NjozNyswNTQ1Cg== --000000000000a484f005ab95de50 Content-Type: application/octet-stream; name=timingfile Content-Disposition: attachment; filename=timingfile Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kd7i1xxz3 MC4wNTUxODMgNzcKOS4wMjQ0NjkgMQowLjA3ODU5NSAxCjAuMTUxMTkyIDEKMC4wODk4NDMgMQow LjA0NjIxNCAxCjAuMzI4NjEwIDEKMC4xNTE0MDcgMQowLjIxNDgxMyAxCjAuMTE5OTAxIDEKMC4y NjY4MzEgMQowLjA3ODQ5MyAxCjAuMTIyMDk2IDEKMC4xMTc3MDggOAowLjMzMTg5OSAyCjAuMDE3 NzY4IDI0CjAuMDYzNjY1IDI3MwowLjAwMDAxOSAyNQowLjAwMTA3MSA4CjAuMDAwMDIwIDIxCjEu OTEyMTYwIDIKMC4yMjQ0NTQgNTkKMC4xNjU5NTMgNjkKMC4xOTg0MzMgNDcKMC40NDYxNzUgMTE3 CjAuMzM0ODQ3IDg0CjAuMzQ5ODcxIDkzCjAuMzUzNTM4IDEwMgoxLjQ0MjE2MiAxNDYKMC43MzQy OTcgMTAyCjAuMzk4NzM4IDExCjAuMDU4OTkyIDI5CjAuMzk1MjMzIDMxCjAuMTYyMTQ1IDY5CjAu MTcxOTI2IDU5CjAuMTY0NzI3IDY5CjAuMTUyMDM2IDQ3CjAuMzA3OTc0IDExNwowLjQ1ODc3NyA4 NAowLjUxNDAyNiA5MwozLjIzODczMSAxMDIKMC44NTIxNzcgMTQ2CjAuNTQ4ODk2IDExCjAuMDUz NjY3IDI5CjAuNDAwODUxIDgwCjAuMTk3MDc4IDEwMgowLjE4Mjg2NSA2OQowLjIyMDE0NiA1OQow LjIxNDA5NCA2OQowLjIyNjg3NiA0NwowLjQyMTkxNCAxMTcKMC4zNzczMTkgODQKMC44OTA0MTMg MTEKMC4wMTEwNjcgMTEKMC4wMDAxNzcgMjkKMC42OTM5NjUgMTUKMC4zMDAxNzMgOTMKMC4yOTE5 NzkgMTAyCjEuMDU3NTY0IDY5CjAuNDA4Nzk0IDU5CjAuOTAwMTA5IDY5CjAuMzYzNzM4IDQ3CjAu ODIzNjEzIDExNwoxLjU4NTUxMiAxMQowLjAyNDA3MyA1CjAuMDAyMDQzIDIKMC4wMDAwMTQgMwow LjAwMDAwOCAxCjAuMDAwMDMyIDUKMC4wMDAwMzkgMQowLjAwMDAyOCAxMgowLjAwMDAyNSA0CjAu MDAwMDIxIDIwCjAuMDAwMDEyIDQKMC4wMDAwMjggMQowLjAwMDA1NyAxOQowLjAwMDAxNiAzCjAu MDAyNTA5IDI5CjAuNzg5Njk2IDUxCjAuMjY5MDA0IDg0CjAuMzE4MzE0IDkzCjAuODU5MDk4IDEw MgowLjc2NTM3OSA2OQowLjQ1NDIwMCA1OQozLjkwNzM4OSA2OQowLjYyMTM4NiA0NwoxLjkxMDQx MyAxMQowLjAyNjQ5MCAxMAowLjAwMDE1MyAxNgowLjAwMDIwNyA1CjAuMDAwMDgyIDE2CjAuMDAw MjI1IDEzCjAuMDAwMDg1IDEzCjAuMDAwMDkyIDE2CjAuMDAwMDY3IDIzCjAuMDAwMDUzIDE2CjAu MDAwMDgzIDgKMC4wMDAwNTEgMTMKMC4wMDAxNTEgMjIKMC4wMDAwNjEgMTMKMC4wMDAwNTYgNAow LjAwMDQyMCAxMwowLjAwMDA4NyAxMAowLjAwMDM1MSAxNgowLjAwMDEwNiAxMAowLjAwMDA0OSAx NgowLjAwMDA1NCA0CjAuMDAwNTg2IDE2CjAuMDAwMDczIDEwCjAuMDAwMDUyIDE2CjAuMDAwMDU3 IDQKMC4wMDAzMjYgMTYKMC4wMDAxNjAgMTAKMC4wMDA1OTEgMTkKMC4wMDA1NDQgMTAKMC4wMDAz MzEgMjIKMC4wMDAwNjkgMTAKMC4wMDAwNjIgMjIKMC4wMDAwNTkgNgowLjAwMDA2NiAxOQowLjAw MDA4MSAxNgowLjAwMDA0NSAxOQowLjAwMDA1MCA0CjAuMDAwMDU5IDE2CjAuMDAwMDk2IDIzCjAu MDAwMDYzIDE2CjAuMDAwMDgzIDgKMC4wMDAwNjUgMTYKMC4wMDAxMDQgMjQKMC4wMDAwNTMgMTYK MC4wMDAwNTcgNwowLjAwMDQwNyAxMwowLjAwMDEwNSAxMQowLjAwMDM1MSAxNgowLjAwMDEzMSAy MQowLjAwMDA2MCAxNgowLjAwMDA0NCA0CjAuMDAwMDY1IDE2CjAuMDAwMDc5IDE4CjAuMDAwMDg0 IDE2CjAuMDAwMDQ3IDQKMC4wMDAyNTMgMTYKMC4wMDAwNTYgOQowLjAwMDA0MCAxNgowLjAwMDA1 MCAzCjAuMDAwMDY5IDE2CjAuMDAwMDg2IDIxCjAuMDAwMDM1IDE2CjAuMDAwMDU0IDQKMC4wMDAy NzMgMTYKMC4wMDAwNzEgOQowLjAwMDA0OSAxNgowLjAwMDA1MyAxCjAuMDAwMDEyIDIKMC4wMDA0 MzYgMTYKMC4wMDAwNjYgNwowLjAwMDAxMyAyCjAuMDAwMDM2IDE2CjAuMDAwMjM3IDMKMC4wMDAx ODggMTYKMC4wMDAwNDYgOQowLjAwMDAzOCAxNgowLjAwMDAyOSAzCjAuMDAwMDQxIDEzCjAuMDAw MDQ0IDUKMC4wMDAxNjYgMTMKMC4wMDAwNDYgMTUKMC4wMDAxNTggOAowLjAwMDA0NyAxNQowLjAw MDE4OSAxNgowLjAwMDA1MiAxMgowLjAwMDA3NyAxOQowLjAwMDA0NSAyMgowLjAwMDA1MCAxOQow LjAwMDA0MSA3CjAuMDAwMDkzIDE2CjAuMDAwMDc1IDIxCjAuMDAwMDMyIDE2CjAuMDAwMDM3IDQK MC4wMDAxOTMgMTYKMC4wMDAwNDUgOQowLjAwMDE2NyAxOQowLjAwMDA4OSA5CjAuMDAwMDM4IDE5 CjAuMDAwMDM0IDQKMC4wMDAxNjQgMTkKMC4wMDAwNDQgOQowLjAwMDAzMiAxOQowLjAwMDAzNCA0 CjAuMDAwMjA5IDE5CjAuMDAwMDQ1IDkKMC4wMDAxODkgMjIKMC4wMDAwNDUgOQowLjAwMDE1OSAy NQowLjAwMDA0NiA5CjAuMDAwMDMyIDI1CjAuMDAwMDM0IDUKMC4wMDAwNjUgMjIKMC4wMDAwNDQg MTUKMC4wMDAwMzAgMjIKMC4wMDAwMzUgNAowLjAwMDIyMiAxOQowLjAwMDA0NSAyMgowLjAwMDA1 MSAxOQowLjAwMDAzNyA3CjAuMDAwMDUxIDE5CjAuMDAwMDUzIDIzCjAuMDAwMDYxIDE5CjAuMDAw MDM2IDYKMC4wMDAxOTEgMTYKMC4wMDAwNDYgMTAKMC4wMDAwNDAgMTkKMC4wMDAwNDYgMjAKMC4w MDAwMzIgMTkKMC4wMDAwMzUgNAowLjAwMDA0MSAxOQowLjAwMDA0NSAxOAowLjAwMDAzNCAxOQow LjAwMDAzNCA0CjAuMDAwMTYyIDE5CjAuMDAwMDQyIDkKMC4wMDAwMzQgMTkKMC4wMDAwMzUgMwow LjAwMDAzNyAxOQowLjAwMDA0OCAyMAowLjAwMDAzNSAxOQowLjAwMDAzNSA0CjAuMDAwMTkxIDE5 CjAuMDAwMDQ1IDkKMC4wMDAwMzEgMTkKMC4wMDAwMzMgMwowLjAwMDE2MSAxOQowLjAwMDA0NCA5 CjAuMDAwMDMwIDE5CjAuMDAwMDM2IDMKMC4wMDAwMzYgMTYKMC4wMDAwMjkgNAowLjAwMDE1NCAx NgowLjAwMDA0NCAxNAowLjAwMDE0NyAxMQowLjAwMDA0NCAxNAowLjAwMDE1MSAxOQowLjAwMDA0 NyAxMQowLjAwMDA0NyAyMgowLjAwMDA0NCAyMQowLjAwMDA2MCAyMgowLjAwMDAzOCA2CjAuMDAw MDM4IDE5CjAuMDAwMDQ2IDIwCjAuMDAwMDM3IDE5CjAuMDAwMDMyIDQKMC4wMDAxNTYgMTkKMC4w MDAwNDMgOAowLjAwMDE2MyAyMgowLjAwMDA0NSA4CjAuMDAwMDM0IDIyCjAuMDAwMDMyIDQKMC4w MDAxNTYgMjIKMC4wMDAwNDEgOAowLjAwMDA4OSAyMgowLjAwMDAzOCA0CjAuMDAwMTU2IDIyCjAu MDAwMDQwIDgKMC4wMDAxOTEgMjUKMC4wMDAwNDQgOAowLjAwMDE1NyAyOAowLjAwMDA0MSA4CjAu MDAwMDMzIDI4CjAuMDAwMDUwIDQKMC4wMDAwNDAgMjUKMC4wMDAwNDEgMTQKMC4wMDAwMzMgMjUK MC4wMDAwMzEgNAowLjAwMDA0MCAyMgowLjAwMDA0NSAyMQowLjAwMDAyOSAyMgowLjAwMDAzOSA2 CjAuMDAwMDQ5IDIyCjAuMDAwMDUzIDIyCjAuMDAwMDM3IDIyCjAuMDAwMDM0IDUKMC4wMDAxNjUg MTkKMC4wMDAwNDMgOQowLjAwMDA0MSAyMgowLjAwMDA1MCAxOQowLjAwMDAzMyAyMgowLjAwMDAz MiA0CjAuMDAwMDQwIDIyCjAuMDAwMDQ5IDE4CjAuMDAwMDM0IDIyCjAuMDAwMDMxIDQKMC4wMDAx NTggMjIKMC4wMDAwNDMgOQowLjAwMDAzNSAyMgowLjAwMDAzNSAzCjAuMDAwMDQxIDIyCjAuMDAw MDQ1IDE5CjAuMDAwMDMwIDIyCjAuMDAwMDM0IDQKMC4wMDAxNTIgMjIKMC4wMDAwNDMgOQowLjAw MDAzNSAyMgowLjAwMDAzMCAzCjAuMDAwMDMyIDE5CjAuMDAwMDM4IDMKMC4wMDAxNTEgMTkKMC4w MDAwNDcgMTMKMC4wMDAxNDggMTQKMC4wMDAwNDMgMTMKMC4wMDAxNTkgMjIKMC4wMDAwNTEgMTAK MC4wMDAwNDEgMjUKMC4wMDAwNDEgMjAKMC4wMDAwMzEgMjUKMC4wMDAwMzYgNQowLjAwMDA0MCAy MgowLjAwNzAzNCAxOQowLjAwMDA2MCAyMgowLjAwMDA2MiA0CjAuMDAwMjQzIDIyCjAuMDAwMDUw IDcKMC4wMDAxODkgMjUKMC4wMDAwNDQgNwowLjAwMDA0NiAyNQowLjAwMDA0MSA0CjAuMDAwMTc5 IDI1CjAuMDAwMDQ0IDUKMC4wMDAwMTEgMgowLjAwMDAyNSAyNQowLjAwMDA0MCA0CjAuMDAwMTc1 IDI1CjAuMDAwMDQwIDcKMC4wMDAxNzggMjgKMC4wMDAwNDcgNwowLjAwMDE3NyAzMQowLjAwMDA0 MSA3CjAuMDAwMDQwIDMxCjAuMDAwMDQxIDMKMC4wMDAwNTAgMjgKMC4wMDAwNDggMTMKMC4wMDAw MzEgMjgKMC4wMDAwMzcgMgowLjAwMDAwOSAyCjAuMDAwMDQwIDI1CjAuMDAwMDU2IDIwCjAuMDAw MDMxIDI1CjAuMDAwMDM3IDUKMC4wMDAwNTAgMjUKMC4wMDAwNzAgMjEKMC4wMDAwMjggMjUKMC4w MDAwNjIgNAowLjAwMDE5NSAyMgowLjAwMDA0MSA4CjAuMDAwMDUxIDI1CjAuMDAwMDYwIDE4CjAu MDAwMDMyIDI1CjAuMDAwMDM2IDIKMC4wMDAwMDkgMgowLjAwMDA0MCAyNQowLjAwMDA2MSAxOAow LjAwMDAyOSAyNQowLjAwMDAzNyAyCjAuMDAwMDEwIDIKMC4wMDAwMjAgMjIKMC4wMDAwNDEgNAow LjAwMDE2NiAyMgowLjAwMDAzNSAxMgowLjAwMDAxMCAyCjAuMDAwMTYwIDE3CjAuMDAwMDQzIDE0 CjAuMDAwMjM3IDI1CjAuMDAwMDU1IDExCjAuMDAwMjMyIDI4CjAuMDAwMDQ1IDgKMC4wMDAyMjcg MzEKMC4wMDAwNDkgOAowLjAwMDAzNCAzMQowLjAwMDAzNiA0CjAuMDAwMDQyIDI4CjAuMDAwMDQz IDE0CjAuMDAwMDMxIDI4CjAuMDAwMDM0IDQKMC4wMDAyMjkgMjgKMC4wMDAwNDcgOAowLjAwMDIw MSAzMQowLjAwMDA1MSA4CjAuMDAwMDM3IDMxCjAuMDAwMDM0IDQKMC4wMDAwNDEgMjgKMC4wMDAw MzkgMTQKMC4wMDAwMzAgMjgKMC4wMDAwMzAgNAowLjAwMDA0MCAyNQowLjAwMDA1NiAxOAowLjAw MDAzNyAyNQowLjAwMDAzNCAyCjAuMDAwMDA5IDIKMC4wMDI1NTEgMTM4CjAuMDAwMDI0IDcKMC4w MDAwMDggMQowLjAwMDAxMSAzCjAuMDAwMDEzIDMKMC4wMDAwMTIgMwowLjAwMDAxMSAyCjAuMDAw MDA5IDMKMC4wMDAwMTMgMgowLjAwMDAyOSA2CjAuMDAwMDEyIDMKMC4wMDAwMDkgMwowLjAwMDAx MiAzCjAuMDAwMDEyIDIKMC4wMDAwMTAgMwowLjAwMDAxMiAzCjAuMDAwMDA5IDMKMC4wMDAwMDkg MgowLjAwMDAxMCAzCjAuMDAwMDExIDEKMC4wMDAwMTEgNQowLjAwMDAwOSAzCjAuMDAwMDEyIDIK MC4wMDAwMTAgMwowLjAwMDAxMCAyCjAuMDAwMDExIDIKMC4wMDAyMjIgOAowLjAwMDAxMSAyNQow Ljg3Nzc1OSAxCjAuMDg2NjMyIDEKMC42ODkwOTggMgowLjAwMDA3NSA5CjAuMDAwOTE4IDI5CjAu NTEyODI5IDIKMC4zNTczMDkgNDcKMC4zOTc5MzYgMTE3CjAuNjMxMjI2IDExNQoyLjkwMzUwMSAx MTcKMC4zOTYzMTAgODQKMC4zODE4MzUgOTMKMS4xMDQzMTUgMTAyCjIuNDM5NjY2IDY5CjAuNjIw NzgzIDMzCjAuNTkzNTc0IDY5CjAuMjA5NDA1IDU5CjEuNDE5NjkyIDExCjAuMDIwNTIzIDE1Ngow LjAwMDAyNSA2CjAuMDAwMDMwIDcKMC4wMDAwMTEgMgowLjAwMDAxMCAyCjAuMDAwMDA5IDIKMC4w MDAwMTEgMwowLjAwMDAyMSA2CjAuMDAwMDA5IDMKMC4wMDAwMDcgMQowLjAwMDAxMSAzCjAuMDAw MDI1IDcKMC4wMDAwMTEgMQowLjAwMDAxMCA1CjAuMDAwMDExIDMKMC4wMDAwMDggMQowLjAwMDAx MCAzCjAuMDAwMTcyIDgKMC4wMDAwMTcgMjUKMS42NTI2NzIgMQowLjEwMjAzMyAxCjAuMzAxOTEy IDIKMC4wMDAwNDMgOQowLjAwMDc1MSAyOQowLjcwMjA4MiAxMQowLjAwMDExOSAyCjAuMDEzMTY4 IDg0CjAuOTA2MTI2IDYK --000000000000a484f005ab95de50-- From debbugs-submit-bounces@debbugs.gnu.org Sat Aug 01 09:05:58 2020 Received: (at submit) by debbugs.gnu.org; 1 Aug 2020 13:05:58 +0000 Received: from localhost ([127.0.0.1]:39946 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k1rD3-0000ue-Lu for submit@debbugs.gnu.org; Sat, 01 Aug 2020 09:05:58 -0400 Received: from lists.gnu.org ([209.51.188.17]:41370) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k1rD0-0000uV-S1 for submit@debbugs.gnu.org; Sat, 01 Aug 2020 09:05:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36948) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k1rD0-0004VW-NK for bug-guile@gnu.org; Sat, 01 Aug 2020 09:05:54 -0400 Received: from mail-pf1-x432.google.com ([2607:f8b0:4864:20::432]:34859) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1k1rCy-00032v-G6 for bug-guile@gnu.org; Sat, 01 Aug 2020 09:05:54 -0400 Received: by mail-pf1-x432.google.com with SMTP id d188so9751840pfd.2 for ; Sat, 01 Aug 2020 06:05:51 -0700 (PDT) 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; bh=lDGyFqko0xvLqZZbk5B6VdabgNH6j8LmY0hPWZY31QA=; b=dL5zHm3EfGnM6ToSV6vzyjxEr+JRNDOYEtTXOLASjoI0QtU6kwz6EjQ7WNypemq05I bevEOfI4IlwvYHpbUsLINFJQnvmf5An0GvJwdZHeS6YL6e5IN+/sH6UTPw3xhWbM/gRd rl2FHpWJklWnL27N3eG/C+f5xiyktP/ncJ31iMIPDU220EfS5YeN9QZSTzpTV1qcy1Rg u4e2s+5QkEQHvEvvdvoJTsCZeLXttWJLicic9NFNJGEmmmJkOE/GQw4d6VA5V2Vq3XFy ZRQI379B7bOJ5NnqcVc+CR2NFDLow3M7VI+r2/5crAlt3eLrNWzOuAdkgnY7nik+geJB TTgw== 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; bh=lDGyFqko0xvLqZZbk5B6VdabgNH6j8LmY0hPWZY31QA=; b=HHqtxPlYwOYMPcgk7uRsVkfpqZyas1cpeX3fSlpp71AykbRKHGN07VF4FFNR+LHWwR AjjZ+oH3PvSl/gL1PIvTOjmUTDTeO15/Qj01cb/IUfLR/Rd3CY8rxkOIuPMA89hKFTrK u+di4YSJfCtMyGEuMAa5Jupy6YT5OvGx2H5hNgnEaJk+UkEbuQ2o0SLfsm2hkq/OiwU1 prel8QyIkrmdbEiEnt2pqiU3Rk0HVSOiPDMB87HHYAzeAXuJLrN74wWNIk0gxxQvovD1 OF3DDmdlnoJjj84gYi4rwxmgAfrQS9U0YIwsamGUeuaqJRJdSfarviTJ2h5tIFALqEte Gq6Q== X-Gm-Message-State: AOAM532P7RtaIF7X89HqlyeAysNFsL32CFFALjwU95jI2mUIdiGBT9oa JlhMeCCL/SfRHGv3HaVPThFJ/hMKkAU7nExrSRNIScT2olo= X-Google-Smtp-Source: ABdhPJyzXihu2wyvbAfGGCShthm3swTMpqtyt/e4DK+0koxlBQga8Gc/4RC1Yt8g1UXiEAuIWA4p/S3rOaredpsj9GA= X-Received: by 2002:a63:fa15:: with SMTP id y21mr7729928pgh.339.1596287150472; Sat, 01 Aug 2020 06:05:50 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Prafulla Giri Date: Sat, 1 Aug 2020 18:50:38 +0545 Message-ID: Subject: Re: Probable (system vm trace) bug To: bug-guile@gnu.org Content-Type: multipart/mixed; boundary="0000000000009054d705abd090b5" Received-SPF: pass client-ip=2607:f8b0:4864:20::432; envelope-from=pratheblackdiamond@gmail.com; helo=mail-pf1-x432.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) --0000000000009054d705abd090b5 Content-Type: multipart/alternative; boundary="0000000000009054d505abd090b3" --0000000000009054d505abd090b3 Content-Type: text/plain; charset="UTF-8" Attached is a patch to fix this issue. I would like to acknowledge RhodiumToad, who actually figured out what was causing this issue. On Tue, Jul 28, 2020 at 3:23 PM Prafulla Giri wrote: > Esteemed Maintainers, > > I am quite positive that what I am experiencing is not quite a bug but > just some mis-step on my part. But I have been encouraged to report this as > a possible bug. Thus, here it is. > > Context: > Guile version: 3.0.2 (installed using guix) > Loaded Files: simply.scm ( > https://github.com/hosoe-masaki/SimplyScheme/blob/master/simply.scm) > Reverse function (referred to in the report, assumes 'simply.scm' has been > loaded): > (define (reverse wd) (if (equal? wd "") "" (word (reverse (bf wd)) (first > wd)))) > ;; (reverse 'asdf) -> 'fdsa > > This started with my first wanting to run a (trace) of a recursive > procedure as seen in Chapter 13 of the book 'Simply Scheme' ( > https://people.eecs.berkeley.edu/~bh/ssch13/convince-recur.html). I > looked for a waay to (trace) in guile, but couldn't find anything except > ,trace, which was giving a trace of everything that the function (reverse) > called from inside of it, thus making the trace 'polluted'. > > I then looked around and found that a (trace) function, much like the one > being demonstrated in the book used to exist once in guile: > https://www.gnu.org/software/guile/docs/docs-1.8/guile-ref/Tracing.html > and then found that for guile3 there was something that looked similarly > promising: the (trace-calls-to-procedure) function ( > https://www.gnu.org/software/guile/docs/master/guile.html/Tracing-Traps.html). > However, > > (trace-calls-to-procedure reverse) > > (reverse 'asdf) > fdsa > produced no trace. This led me to ask around IRC for some guidance > regarding it. Someone from #emacs suggested I try doing this: > http://ix.io/2suZ > When I attempted to do the same thing, however, I encountered the > following error, at the sight of which, it was recommended that I file a > (possible) bug report: https://termbin.com/6nm5 > > The following `script` typescript might also be of interest to the > maintainers (to be replayed using `scriptreplay`): > typescript - https://termbin.com/sx5o > timing file - https://termbin.com/73ei > (This one records the (call-with-trace) call with both #:call? #f and > without the specification). > > I must confess, I don't understand a whole lot of this. All I would like > to say is that I have a feeling (trace-calls-to-procedure procedure) > should have worked like (trace) as shown in chapter 13 section 'trace' in > the book (https://people.eecs.berkeley.edu/~bh/ssch13/convince-recur.html); > it just seems 'right' by the name of it. I was expecting the trace from (trace-call-to-procedure > reverse) (reverse 'asdf) to be basically like ,trace (reverse 'asdf) but > without the traces of all other procedures. > > Please do let me know if I have left out any important details. And please > do let me know if I am doing something wrong here. I am almost quite > certain this is just a minor error on my part, rather than a bug (and I'd > really like to be able to trace those procedures). > --0000000000009054d505abd090b3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Attached is a patch to fix this issue. I would l= ike to acknowledge RhodiumToad, who actually figured out what was causing t= his issue.

On Tue, Jul 28, 2020 at 3:23 PM= Prafulla Giri <prathebl= ackdiamond@gmail.com> wrote:
Esteemed Maintainers,
<= br>
I am quite positive that what I am experiencing is not quite = a bug but just some mis-step on my part. But I have been encouraged to repo= rt this as a possible bug. Thus, here it is.

Conte= xt:
Guile version: 3.0.2 (installed using guix)
Reverse function (referre= d to in the report, assumes 'simply.scm' has been loaded):
(define (reverse wd) (if (equal? wd= "") "" (word (reverse (bf wd)) (first wd))))
;; (reverse 'asdf) -> = 'fdsa

This started with my first wa= nting to run a (trace) of a recursive procedure as seen in Chapter 13 of th= e book 'Simply Scheme' (https://people.eecs.berk= eley.edu/~bh/ssch13/convince-recur.html). I looked for a waay to (trace= ) in guile, but couldn't find anything except ,trace, which was giving = a trace of everything that the function (reverse) called from inside of it,= thus making the trace 'polluted'.

I then = looked around and found that a (trace) function, much like the one being de= monstrated in the book used to exist once in guile: https://www.gnu.org/software/guile/docs/docs-1.8/guile-ref/Tracing.html= and then found that for guile3 there was something that looked similar= ly promising: the (trace-calls-to-procedure) function (https://www.gnu.org/software/guile/docs/master/guile.html/Traci= ng-Traps.html). However,
> (trace-calls-to-procedure reverse)
> (reverse 'asdf)
fdsa
produced no trace. This led me = to ask around IRC for some guidance regarding it. Someone from #emacs sugge= sted I try doing this: http= ://ix.io/2suZ
When I attempted to do the same thing,= however, I encountered the following error, at the sight of which, it was = recommended that I file a (possible) bug report: https://termbin.com/6nm5

The following `script` typescript might also be o= f interest to the maintainers (to be replayed using `scriptreplay`):=
I must confess, I don't understand a whole lot of this. Al= l I would like to say is that I have a feeling (trace-calls-to-procedure procedure) should have worked li= ke (trace) as shown in chapter= 13 section 'trace' in the book (https://people.= eecs.berkeley.edu/~bh/ssch13/convince-recur.html); it just seems 'r= ight' by the name of it. I was expecting the trace from (trace-call-to-procedure reverse) (reverse 'asdf= ) to be basically like ,trace = (reverse 'asdf) but without the traces of all other procedures.<= br>

Please do let me know i= f I have left out any important details. And please do let me know if I am = doing something wrong here. I am almost quite certain this is just a minor = error on my part, rather than a bug (and I'd really like to be able to = trace those procedures).
--0000000000009054d505abd090b3-- --0000000000009054d705abd090b5 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Fix-return-handler-of-trace-calls-to-procedure.patch" Content-Disposition: attachment; filename="0001-Fix-return-handler-of-trace-calls-to-procedure.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kdbo4m4n0 RnJvbSBjOTA3ZTlmN2VjYzQ3NjRmNmNkY2Y1ZjZiMmNkNmNlZDgwYWQ5NWE5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQcmFmdWxsYSBHaXJpIDxwcmF0aGVibGFja2RpYW1vbmRAZ21h aWwuY29tPgpEYXRlOiBTYXQsIDEgQXVnIDIwMjAgMTU6Mzk6MjIgKzA1NDUKU3ViamVjdDogW1BB VENIXSBGaXggcmV0dXJuLWhhbmRsZXIgb2YgdHJhY2UtY2FsbHMtdG8tcHJvY2VkdXJlCgpUaGlz IGNoYW5nZSByZW1vdmVzIHRoZSBleHRyYS91bnVzZWQgZm9ybWFsIHBhcmFtZXRlciAndmFsdWVz JyBmcm9tCnRoZSBkZWZpbml0aW9uIG9mIHJldHVybi1oYW5kbGVyIGluIHRyYWNlLWNhbGxzLXRv LXByb2NlZHVyZS4gVGhpcwpleHRyYSBwYXJhbWV0ZXIgd2FzIGNhdXNpbmcgdHJhY2UtY2FsbHMt dG8tcHJvY2VkdXJlIHRvIGZhaWwgZm9yIHRoZQpsYWNrIG9mIGFuIGFyZ3VtZW50IHRoYXQgd2Fz IG5ldmVyIHBhc3NlZCB0byBpdC4gVGhhbmtzIHRvIE1yLiBBbmRyZXcKKFJob2RpdW1Ub2FkKSBm b3IgZmlndXJpbmcgdGhpcyBvdXQuIEZpeGVzICM0MjU3NC4KCiogbW9kdWxlL3N5c3RlbS92bS90 cmFjZS5zY20gKHRyYWNlLWNhbGxzLXRvLXByb2NlZHVyZSAocmV0dXJuLWhhbmRsZXIpKToKICBS ZW1vdmUgdW5uZWNlc3NhcnkgZm9ybWFsIHBhcmFtZXRlciAndmFsdWVzJy4KLS0tCiBtb2R1bGUv c3lzdGVtL3ZtL3RyYWNlLnNjbSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL21vZHVsZS9zeXN0ZW0vdm0vdHJhY2Uuc2Nt IGIvbW9kdWxlL3N5c3RlbS92bS90cmFjZS5zY20KaW5kZXggZTlmMTdkYWU4Li41NDg0MGQ4ZmQg MTAwNjQ0Ci0tLSBhL21vZHVsZS9zeXN0ZW0vdm0vdHJhY2Uuc2NtCisrKyBiL21vZHVsZS9zeXN0 ZW0vdm0vdHJhY2Uuc2NtCkBAIC03Myw3ICs3Myw3IEBACiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChtYXgtaW5kZW50ICgtIHdpZHRoIDQwKSkpCiAgIChkZWZpbmUgKGFwcGx5 LWhhbmRsZXIgZnJhbWUgZGVwdGgpCiAgICAgKHByaW50LWFwcGxpY2F0aW9uIGZyYW1lIGRlcHRo IHdpZHRoIHByZWZpeCBtYXgtaW5kZW50KSkKLSAgKGRlZmluZSAocmV0dXJuLWhhbmRsZXIgZnJh bWUgZGVwdGggdmFsdWVzKQorICAoZGVmaW5lIChyZXR1cm4taGFuZGxlciBmcmFtZSBkZXB0aCkK ICAgICAocHJpbnQtcmV0dXJuIGZyYW1lIGRlcHRoIHdpZHRoIHByZWZpeCBtYXgtaW5kZW50KSkK ICAgKHRyYXAtY2FsbHMtdG8tcHJvY2VkdXJlIHByb2MgYXBwbHktaGFuZGxlciByZXR1cm4taGFu ZGxlcikpCiAKLS0gCjIuMjYuMgoK --0000000000009054d705abd090b5-- From debbugs-submit-bounces@debbugs.gnu.org Fri May 21 14:38:02 2021 Received: (at 42574-done) by debbugs.gnu.org; 21 May 2021 18:38:02 +0000 Received: from localhost ([127.0.0.1]:37568 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lkA25-0003i3-Rb for submit@debbugs.gnu.org; Fri, 21 May 2021 14:38:01 -0400 Received: from mta-09-3.privateemail.com ([68.65.122.19]:11225) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lkA24-0003hZ-HV for 42574-done@debbugs.gnu.org; Fri, 21 May 2021 14:38:00 -0400 Received: from MTA-09.privateemail.com (localhost [127.0.0.1]) by MTA-09.privateemail.com (Postfix) with ESMTP id 8F4DF6004C; Fri, 21 May 2021 14:37:54 -0400 (EDT) Received: from [192.168.1.105] (unknown [10.20.151.233]) by MTA-09.privateemail.com (Postfix) with ESMTPA id 09BDF6003F; Fri, 21 May 2021 14:37:53 -0400 (EDT) From: lloda Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.4\)) Subject: Re: bug#42574: Probable (system vm trace) bug Message-Id: Date: Fri, 21 May 2021 20:38:33 +0200 To: 42574-done@debbugs.gnu.org X-Mailer: Apple Mail (2.3608.120.23.2.4) X-Virus-Scanned: ClamAV using ClamSMTP X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 42574-done Cc: pratheblackdiamond@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This has been fixed in f9f55b9ce74898d1b0a77dcc9b4aa260e5cd208d. = Apologies for not noticing the earlier patch... there were a couple = later duplicates. Thanks!= From unknown Sat Jun 14 03:54:04 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 19 Jun 2021 11:24:07 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator