From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Alex =?UTF-8?Q?Benn=C3=A9e?= Newsgroups: gmane.emacs.bugs Subject: bug#48337: Fwd: 28.0.50; Emacs crashing randomly (possibly minibuffer activity related) Date: Fri, 14 May 2021 17:52:46 +0100 Message-ID: References: <87tunasd2u.fsf@linaro.org> <83fsyu57oj.fsf@gnu.org> <87y2ckgby0.fsf@linaro.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0000000000007b6df705c24d1323" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="23196"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 48337@debbugs.gnu.org To: Alan Mackenzie Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri May 14 19:36:17 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lhbjU-0005ow-NK for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 14 May 2021 19:36:17 +0200 Original-Received: from localhost ([::1]:60772 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lhbjS-0002v8-Pv for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 14 May 2021 13:36:15 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:59532) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lhb4c-0005FD-O6 for bug-gnu-emacs@gnu.org; Fri, 14 May 2021 12:54:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:35405) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lhb4c-0001LE-Gv for bug-gnu-emacs@gnu.org; Fri, 14 May 2021 12:54:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lhb4c-0005R5-Fq for bug-gnu-emacs@gnu.org; Fri, 14 May 2021 12:54:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Alex =?UTF-8?Q?Benn=C3=A9e?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 14 May 2021 16:54:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48337 X-GNU-PR-Package: emacs Original-Received: via spool by 48337-submit@debbugs.gnu.org id=B48337.162101119120811 (code B ref 48337); Fri, 14 May 2021 16:54:02 +0000 Original-Received: (at 48337) by debbugs.gnu.org; 14 May 2021 16:53:11 +0000 Original-Received: from localhost ([127.0.0.1]:46946 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lhb3k-0005PZ-Th for submit@debbugs.gnu.org; Fri, 14 May 2021 12:53:11 -0400 Original-Received: from mail-lf1-f48.google.com ([209.85.167.48]:46064) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lhb3g-0005P2-PH for 48337@debbugs.gnu.org; Fri, 14 May 2021 12:53:07 -0400 Original-Received: by mail-lf1-f48.google.com with SMTP id j10so43933374lfb.12 for <48337@debbugs.gnu.org>; Fri, 14 May 2021 09:53:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=4fCyYNFK5I5mFIgEBtJQdQoBYpw1Mhn40F/IwGDNOIo=; b=Z6tdJQXjvNFXHZnG9R/WRmVDyqSj0QW338zBx+NYVyIAGZLRrBGVw7/OZKdKSCSik/ zzLH3QfVgfjO9OduWBjArOeRtuZaAxsrh/LOknpnWbLwjE8bgiA2fxkmt7yDxAahC+La C0FffIvC3UW8pUhxXLMRO7FR8vpoFTqmg9cc48sbwhfMj+0UqWw7FRQEWlYRq8pE4rh9 FFA9zZcwKlcaSCTKD2TtMDBMcN/SIy1ICIpSwG2v+X/iLWDEwcYwx6LAJks/hbzzqj9Z I8JEJMV6gJB70fmfwZdj7MV7Q31BU3CGLJTOt6vvELmzWFXrK3ULkIQha9F4b3EGFM1w MY3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=4fCyYNFK5I5mFIgEBtJQdQoBYpw1Mhn40F/IwGDNOIo=; b=O3Bv/g2MMb88OGy9t8Dn+gw4hbCyF4enFGZmjY/B0e1VvpL/gQd21725p/xz1XQTDO +18jR609sadFyrj9hf0dYZKN2Z8gst4GPrG9FtAzXyQXNGC1RnJTnNFfih1lCg5+vXJM lyGtMs7PgjeSlvekGB/wbvzBnv/NSA9Ru4oU/VarSqyGUVPmvmk8s/3Cy073FpaMw1ns tSo9KK4m68hamv/lbYXWy9ji1JnoyllqXq7B2L/t8xwtLt8INjwsAOQLIYM+clY1kfG3 VDOJUFhK8MxXhz96drPu/+xfbAZTyqxbOE0DmXHCbmwS6SxUDA+21FdAbjt/gTWh7Qlx 225w== X-Gm-Message-State: AOAM5331i23pvAdT1yovnaP4qxMIEVVNWocXOJPYSaDbAkWufthUnbvv D+eOhGuk7IYt6Irl6eHc5wpDIfzmueCFlkDLn8eCOw== X-Google-Smtp-Source: ABdhPJwAem4/w/btXhQ/svRo3QxKqMQSnWxl2rKBGPVyRKrHx6S53FSPpz9B7q11CKEC9twPOLeaPcFfH7mgz4yveuw= X-Received: by 2002:a05:6512:203a:: with SMTP id s26mr31859781lfs.252.1621011178630; Fri, 14 May 2021 09:52:58 -0700 (PDT) In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:206543 Archived-At: --0000000000007b6df705c24d1323 Content-Type: multipart/alternative; boundary="0000000000007b6df605c24d1321" --0000000000007b6df605c24d1321 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sadly not, testing with 780b1db126fcfdbb50da5c1acf24b3c6e614dd9f I got a crash when I tried to switch buffer. On Fri, 14 May 2021 at 17:31, Alan Mackenzie wrote: > Hello, Alex. > > On Tue, May 11, 2021 at 23:07:01 +0100, Alex Benn=C3=A9e wrote: > > > Alan Mackenzie writes: > > > > On Tue, May 11, 2021 at 07:51:20 +0100, Alex Benn=C3=A9e wrote: > > >> I can now recreate at will with a magit sequence (l o hackbox/ TAB) > which > > >> triggers a minibuffer re-size to accommodate the list of git branche= s: > > > > Could you possibly give us a precise recipe to reproduce this bug, an= d > a > > > GDB backtrace with Emacs compiled with CFLAGS=3D'-O0 g3' (or similar)= ? > So > > > much of the needed information in your large dump post has been > > > optimised away by the compiler. Would you please also make sure that > > > the Lisp backtrace is at the end of the GDB backtrace. I think this > > > should happen automatically if you have an Emacs .gdbinit in the > > > directory where you start GDB from. > > I now understand what the bug was, and have just committed a patch which > should have fixed it. Could you please update your Emacs and test your > bug scenario, and either confirm to me that the bug is fixed, or say what > is still wrong. If this has to wait until Monday that's OK, but please > let us know that. > > Then, hopefully, we can close the bug. > > > The later rr dumps have more symbols but didn't have the benefit of the > > Emacs' .gdbinit Lips backtrace. However I'm fairly confident it's being > > triggered by doom-modeline: > > The actual trigger was something on buffer-list-update-hook. That should > now no longer cause a problem. > > [ .... ] > > > -- > > Alex Benn=C3=A9e > > -- > Alan Mackenzie (Nuremberg, Germany). > --=20 Alex Benn=C3=A9e KVM/QEMU Hacker for Linaro --0000000000007b6df605c24d1321 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Sadly not, testing with 780b1db126fcfdbb50da5c1acf24b= 3c6e614dd9f I got a crash when I tried to switch buffer.



On Fri, 14 May 2021 at 17:31, Alan Mackenzie <acm@muc.de> wrote:
Hello, Alex.

On Tue, May 11, 2021 at 23:07:01 +0100, Alex Benn=C3=A9e wrote:

> Alan Mackenzie <acm= @muc.de> writes:

> > On Tue, May 11, 2021 at 07:51:20 +0100, Alex Benn=C3=A9e wrote: > >> I can now recreate at will with a magit sequence (l o hackbox= / TAB) which
> >> triggers a minibuffer re-size to accommodate the list of git = branches:

> > Could you possibly give us a precise recipe to reproduce this bug= , and a
> > GDB backtrace with Emacs compiled with CFLAGS=3D'-O0 g3' = (or similar)?=C2=A0 So
> > much of the needed information in your large dump post has been > > optimised away by the compiler.=C2=A0 Would you please also make = sure that
> > the Lisp backtrace is at the end of the GDB backtrace.=C2=A0 I th= ink this
> > should happen automatically if you have an Emacs .gdbinit in the<= br> > > directory where you start GDB from.

I now understand what the bug was, and have just committed a patch which should have fixed it.=C2=A0 Could you please update your Emacs and test you= r
bug scenario, and either confirm to me that the bug is fixed, or say what is still wrong.=C2=A0 If this has to wait until Monday that's OK, but p= lease
let us know that.

Then, hopefully, we can close the bug.

> The later rr dumps have more symbols but didn't have the benefit o= f the
> Emacs' .gdbinit Lips backtrace. However I'm fairly confident i= t's being
> triggered by doom-modeline:

The actual trigger was something on buffer-list-update-hook.=C2=A0 That sho= uld
now no longer cause a problem.

[ .... ]

> --
> Alex Benn=C3=A9e

--
Alan Mackenzie (Nuremberg, Germany).


--
Alex Benn=C3=A9e
KVM/QEMU Hacker for Linaro
--0000000000007b6df605c24d1321-- --0000000000007b6df705c24d1323 Content-Type: text/plain; charset="US-ASCII"; name="testing.txt" Content-Disposition: attachment; filename="testing.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kook6kis0 K2J0CiMwICAweDAwMDA3ZmZmZjRlOTU1Y2IgaW4gcmFpc2UgKHNpZz02KSBhdCAuLi9zeXNkZXBz L3VuaXgvc3lzdi9saW51eC9yYWlzZS5jOjUwCiMxICAweDAwMDA1NTU1NTU3Mjg3MDggaW4gdGVy bWluYXRlX2R1ZV90b19zaWduYWwgKHNpZz02LCBiYWNrdHJhY2VfbGltaXQ9NDApIGF0IGVtYWNz LmM6NDM3CiMyICAweDAwMDA1NTU1NTU3NWRhYTAgaW4gZW1hY3NfYWJvcnQgKCkgYXQgc3lzZGVw LmM6MjI4MgojMyAgMHgwMDAwNTU1NTU1NzgzMDgwIGluIEZhY3RpdmVfbWluaWJ1ZmZlcl93aW5k b3cgKCkgYXQgbWluaWJ1Zi5jOjIzMQojNCAgMHgwMDAwNTU1NTU1ODEwYTZlIGluIGZ1bmNhbGxf c3ViciAoc3Vicj0weDU1NTU1NWUwYzZjMCA8U2FjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdz4sIG51 bWFyZ3M9MCwgYXJncz0weDdmZmZmZmZmYWQ3MCkgYXQgZXZhbC5jOjMxMDkKIzUgIDB4MDAwMDU1 NTU1NTgxMDUzZSBpbiBGZnVuY2FsbCAobmFyZ3M9MSwgYXJncz0weDdmZmZmZmZmYWQ2OCkgYXQg ZXZhbC5jOjMwMzYKIzYgIDB4MDAwMDU1NTU1NTg2YWQ1YiBpbiBleGVjX2J5dGVfY29kZSAoYnl0 ZXN0cj0uLi4sIHZlY3Rvcj0uLi4sIG1heGRlcHRoPS4uLiwgYXJnc190ZW1wbGF0ZT0uLi4sIG5h cmdzPTEsIGFyZ3M9MHg3ZmZmZmZmZmIyMzgpIGF0IGJ5dGVjb2RlLmM6NjMyCiM3ICAweDAwMDA1 NTU1NTU4MTBkMDYgaW4gZmV0Y2hfYW5kX2V4ZWNfYnl0ZV9jb2RlIChmdW49Li4uLCBzeW1zX2xl ZnQ9Li4uLCBuYXJncz0xLCBhcmdzPTB4N2ZmZmZmZmZiMjMwKSBhdCBldmFsLmM6MzE2MAojOCAg MHgwMDAwNTU1NTU1ODExMThjIGluIGZ1bmNhbGxfbGFtYmRhIChmdW49Li4uLCBuYXJncz0xLCBh cmdfdmVjdG9yPTB4N2ZmZmZmZmZiMjMwKSBhdCBldmFsLmM6MzI0MQojOSAgMHgwMDAwNTU1NTU1 ODEwNTkyIGluIEZmdW5jYWxsIChuYXJncz0yLCBhcmdzPTB4N2ZmZmZmZmZiMjI4KSBhdCBldmFs LmM6MzA0MAojMTAgMHgwMDAwNTU1NTU1ODZhZDViIGluIGV4ZWNfYnl0ZV9jb2RlIChieXRlc3Ry PS4uLiwgdmVjdG9yPS4uLiwgbWF4ZGVwdGg9Li4uLCBhcmdzX3RlbXBsYXRlPS4uLiwgbmFyZ3M9 MCwgYXJncz0weDdmZmZmZmZmYjdhMCkgYXQgYnl0ZWNvZGUuYzo2MzIKIzExIDB4MDAwMDU1NTU1 NTgxMGQwNiBpbiBmZXRjaF9hbmRfZXhlY19ieXRlX2NvZGUgKGZ1bj0uLi4sIHN5bXNfbGVmdD0u Li4sIG5hcmdzPTAsIGFyZ3M9MHg3ZmZmZmZmZmI3YTApIGF0IGV2YWwuYzozMTYwCiMxMiAweDAw MDA1NTU1NTU4MTExOGMgaW4gZnVuY2FsbF9sYW1iZGEgKGZ1bj0uLi4sIG5hcmdzPTAsIGFyZ192 ZWN0b3I9MHg3ZmZmZmZmZmI3YTApIGF0IGV2YWwuYzozMjQxCiMxMyAweDAwMDA1NTU1NTU4MTA1 OTIgaW4gRmZ1bmNhbGwgKG5hcmdzPTEsIGFyZ3M9MHg3ZmZmZmZmZmI3OTgpIGF0IGV2YWwuYzoz MDQwCiMxNCAweDAwMDA1NTU1NTU4MGY3YTQgaW4gZnVuY2FsbF9uaWwgKG5hcmdzPTEsIGFyZ3M9 MHg3ZmZmZmZmZmI3OTgpIGF0IGV2YWwuYzoyNjc3CiMxNSAweDAwMDA1NTU1NTU4MGZjY2UgaW4g cnVuX2hvb2tfd2l0aF9hcmdzIChuYXJncz0xLCBhcmdzPTB4N2ZmZmZmZmZiNzk4LCBmdW5jYWxs PTB4NTU1NTU1ODBmNzgxIDxmdW5jYWxsX25pbD4pIGF0IGV2YWwuYzoyODU0CiMxNiAweDAwMDA1 NTU1NTU4MGY4MmEgaW4gRnJ1bl9ob29rX3dpdGhfYXJncyAobmFyZ3M9MSwgYXJncz0weDdmZmZm ZmZmYjc5OCkgYXQgZXZhbC5jOjI3MTkKIzE3IDB4MDAwMDU1NTU1NTgwZmQ2NiBpbiBydW5faG9v ayAoaG9vaz0uLi4pIGF0IGV2YWwuYzoyODY3CiMxOCAweDAwMDA1NTU1NTU4MGY3ZTUgaW4gRnJ1 bl9ob29rcyAobmFyZ3M9MSwgYXJncz0weDdmZmZmZmZmYjhmOCkgYXQgZXZhbC5jOjI3MDEKIzE5 IDB4MDAwMDU1NTU1NTgxMDk3OCBpbiBmdW5jYWxsX3N1YnIgKHN1YnI9MHg1NTU1NTVlMTU2NjAg PFNydW5faG9va3M+LCBudW1hcmdzPTEsIGFyZ3M9MHg3ZmZmZmZmZmI4ZjgpIGF0IGV2YWwuYzoz MDkxCiMyMCAweDAwMDA1NTU1NTU4MTA1M2UgaW4gRmZ1bmNhbGwgKG5hcmdzPTIsIGFyZ3M9MHg3 ZmZmZmZmZmI4ZjApIGF0IGV2YWwuYzozMDM2CiMyMSAweDAwMDA1NTU1NTU4MGZlNWIgaW4gY2Fs bDEgKGZuPS4uLiwgYXJnMT0uLi4pIGF0IGV2YWwuYzoyODk2CiMyMiAweDAwMDA1NTU1NTU3NjUw YTAgaW4gcnVuX2J1ZmZlcl9saXN0X3VwZGF0ZV9ob29rIChidWY9MHg1NTU1NTVmNGJhNjApIGF0 IGJ1ZmZlci5jOjUyOQojMjMgMHgwMDAwNTU1NTU1NzY1NTA0IGluIEZnZXRfYnVmZmVyX2NyZWF0 ZSAoYnVmZmVyX29yX25hbWU9Li4uLCBpbmhpYml0X2J1ZmZlcl9ob29rcz0uLi4pIGF0IGJ1ZmZl ci5jOjYzNQojMjQgMHgwMDAwNTU1NTU1Nzg1ZDk0IGluIGdldF9taW5pYnVmZmVyIChkZXB0aD0x KSBhdCBtaW5pYnVmLmM6MTAyOAojMjUgMHgwMDAwNTU1NTU1Nzg0MWZkIGluIHJlYWRfbWluaWJ1 ZiAobWFwPS4uLiwgaW5pdGlhbD0uLi4sIHByb21wdD0uLi4sIGV4cGZsYWc9ZmFsc2UsIGhpc3R2 YXI9Li4uLCBoaXN0cG9zPS4uLiwgZGVmYWx0PS4uLiwgYWxsb3dfcHJvcHM9ZmFsc2UsIGluaGVy aXRfaW5wdXRfbWV0aG9kPWZhbHNlKSBhdCBtaW5pYnVmLmM6NjYwCiMyNiAweDAwMDA1NTU1NTU3 ODZhY2YgaW4gRnJlYWRfZnJvbV9taW5pYnVmZmVyIChwcm9tcHQ9Li4uLCBpbml0aWFsX2NvbnRl bnRzPS4uLiwga2V5bWFwPS4uLiwgcmVhZD0uLi4sIGhpc3Q9Li4uLCBkZWZhdWx0X3ZhbHVlPS4u LiwgaW5oZXJpdF9pbnB1dF9tZXRob2Q9Li4uKSBhdCBtaW5pYnVmLmM6MTM1MAojMjcgMHgwMDAw NTU1NTU1ODBlZjJhIGluIGV2YWxfc3ViIChmb3JtPS4uLikgYXQgZXZhbC5jOjI1MzUKIzI4IDB4 MDAwMDU1NTU1NTgwYmYxNyBpbiBpbnRlcm5hbF9saXNwX2NvbmRpdGlvbl9jYXNlICh2YXI9Li4u LCBib2R5Zm9ybT0uLi4sIGhhbmRsZXJzPS4uLikgYXQgZXZhbC5jOjE0MjkKIzI5IDB4MDAwMDU1 NTU1NTgwYjgxMCBpbiBGY29uZGl0aW9uX2Nhc2UgKGFyZ3M9Li4uKSBhdCBldmFsLmM6MTM0Nwoj MzAgMHgwMDAwNTU1NTU1ODBlOWRjIGluIGV2YWxfc3ViIChmb3JtPS4uLikgYXQgZXZhbC5jOjI0 NjQKIzMxIDB4MDAwMDU1NTU1NTgwOGMzYiBpbiBGcHJvZ24gKGJvZHk9Li4uKSBhdCBldmFsLmM6 NDcxCiMzMiAweDAwMDA1NTU1NTU4MDg5ZmQgaW4gRmlmIChhcmdzPS4uLikgYXQgZXZhbC5jOjQy NwojMzMgMHgwMDAwNTU1NTU1ODBlOWRjIGluIGV2YWxfc3ViIChmb3JtPS4uLikgYXQgZXZhbC5j OjI0NjQKIzM0IDB4MDAwMDU1NTU1NTgwOGMzYiBpbiBGcHJvZ24gKGJvZHk9Li4uKSBhdCBldmFs LmM6NDcxCiMzNSAweDAwMDA1NTU1NTU4MGE4N2YgaW4gRmxldFggKGFyZ3M9Li4uKSBhdCBldmFs LmM6OTg5CiMzNiAweDAwMDA1NTU1NTU4MGU5ZGMgaW4gZXZhbF9zdWIgKGZvcm09Li4uKSBhdCBl dmFsLmM6MjQ2NAojMzcgMHgwMDAwNTU1NTU1ODA4YzNiIGluIEZwcm9nbiAoYm9keT0uLi4pIGF0 IGV2YWwuYzo0NzEKIzM4IDB4MDAwMDU1NTU1NTgwZTlkYyBpbiBldmFsX3N1YiAoZm9ybT0uLi4p IGF0IGV2YWwuYzoyNDY0CiMzOSAweDAwMDA1NTU1NTU4MGI2MmYgaW4gRnVud2luZF9wcm90ZWN0 IChhcmdzPS4uLikgYXQgZXZhbC5jOjEzMDUKIzQwIDB4MDAwMDU1NTU1NTgwZTlkYyBpbiBldmFs X3N1YiAoZm9ybT0uLi4pIGF0IGV2YWwuYzoyNDY0CiM0MSAweDAwMDA1NTU1NTU4MDhjM2IgaW4g RnByb2duIChib2R5PS4uLikgYXQgZXZhbC5jOjQ3MQojNDIgMHgwMDAwNTU1NTU1ODBhZDkyIGlu IEZsZXQgKGFyZ3M9Li4uKSBhdCBldmFsLmM6MTA1NwojNDMgMHgwMDAwNTU1NTU1ODBlOWRjIGlu IGV2YWxfc3ViIChmb3JtPS4uLikgYXQgZXZhbC5jOjI0NjQKIzQ0IDB4MDAwMDU1NTU1NTgwYjYy ZiBpbiBGdW53aW5kX3Byb3RlY3QgKGFyZ3M9Li4uKSBhdCBldmFsLmM6MTMwNQojNDUgMHgwMDAw NTU1NTU1ODBlOWRjIGluIGV2YWxfc3ViIChmb3JtPS4uLikgYXQgZXZhbC5jOjI0NjQKIzQ2IDB4 MDAwMDU1NTU1NTgwOGMzYiBpbiBGcHJvZ24gKGJvZHk9Li4uKSBhdCBldmFsLmM6NDcxCiM0NyAw eDAwMDA1NTU1NTU4MGE4N2YgaW4gRmxldFggKGFyZ3M9Li4uKSBhdCBldmFsLmM6OTg5CiM0OCAw eDAwMDA1NTU1NTU4MGU5ZGMgaW4gZXZhbF9zdWIgKGZvcm09Li4uKSBhdCBldmFsLmM6MjQ2NAoj NDkgMHgwMDAwNTU1NTU1ODA4YzNiIGluIEZwcm9nbiAoYm9keT0uLi4pIGF0IGV2YWwuYzo0NzEK IzUwIDB4MDAwMDU1NTU1NTgwZTlkYyBpbiBldmFsX3N1YiAoZm9ybT0uLi4pIGF0IGV2YWwuYzoy NDY0CiM1MSAweDAwMDA1NTU1NTU4MDhjM2IgaW4gRnByb2duIChib2R5PS4uLikgYXQgZXZhbC5j OjQ3MQojNTIgMHgwMDAwNTU1NTU1ODBlOWRjIGluIGV2YWxfc3ViIChmb3JtPS4uLikgYXQgZXZh bC5jOjI0NjQKIzUzIDB4MDAwMDU1NTU1NTgwOGMzYiBpbiBGcHJvZ24gKGJvZHk9Li4uKSBhdCBl dmFsLmM6NDcxCiM1NCAweDAwMDA1NTU1NTU4MGE4N2YgaW4gRmxldFggKGFyZ3M9Li4uKSBhdCBl dmFsLmM6OTg5CiM1NSAweDAwMDA1NTU1NTU4MGU5ZGMgaW4gZXZhbF9zdWIgKGZvcm09Li4uKSBh dCBldmFsLmM6MjQ2NAojNTYgMHgwMDAwNTU1NTU1ODA4YzNiIGluIEZwcm9nbiAoYm9keT0uLi4p IGF0IGV2YWwuYzo0NzEKIzU3IDB4MDAwMDU1NTU1NTgxMTY3NyBpbiBmdW5jYWxsX2xhbWJkYSAo ZnVuPS4uLiwgbmFyZ3M9MTIsIGFyZ192ZWN0b3I9MHgwKSBhdCBldmFsLmM6MzMxMwojNTggMHgw MDAwNTU1NTU1ODEwZWIwIGluIGFwcGx5X2xhbWJkYSAoZnVuPS4uLiwgYXJncz0uLi4sIGNvdW50 PTE2KSBhdCBldmFsLmM6MzE4NQojNTkgMHgwMDAwNTU1NTU1ODBmMWYzIGluIGV2YWxfc3ViIChm b3JtPS4uLikgYXQgZXZhbC5jOjI1ODgKIzYwIDB4MDAwMDU1NTU1NTgwOGMzYiBpbiBGcHJvZ24g KGJvZHk9Li4uKSBhdCBldmFsLmM6NDcxCiM2MSAweDAwMDA1NTU1NTU4MTE2NzcgaW4gZnVuY2Fs bF9sYW1iZGEgKGZ1bj0uLi4sIG5hcmdzPTAsIGFyZ192ZWN0b3I9MHgwKSBhdCBldmFsLmM6MzMx MwojNjIgMHgwMDAwNTU1NTU1ODEwZWIwIGluIGFwcGx5X2xhbWJkYSAoZnVuPS4uLiwgYXJncz0u Li4sIGNvdW50PTE0KSBhdCBldmFsLmM6MzE4NQojNjMgMHgwMDAwNTU1NTU1ODBmMWYzIGluIGV2 YWxfc3ViIChmb3JtPS4uLikgYXQgZXZhbC5jOjI1ODgKIzY0IDB4MDAwMDU1NTU1NTgwOGMzYiBp biBGcHJvZ24gKGJvZHk9Li4uKSBhdCBldmFsLmM6NDcxCiM2NSAweDAwMDA1NTU1NTU4MGFkOTIg aW4gRmxldCAoYXJncz0uLi4pIGF0IGV2YWwuYzoxMDU3CiM2NiAweDAwMDA1NTU1NTU4MGU5ZGMg aW4gZXZhbF9zdWIgKGZvcm09Li4uKSBhdCBldmFsLmM6MjQ2NAojNjcgMHgwMDAwNTU1NTU1ODA4 YzNiIGluIEZwcm9nbiAoYm9keT0uLi4pIGF0IGV2YWwuYzo0NzEKIzY4IDB4MDAwMDU1NTU1NTgx MTY3NyBpbiBmdW5jYWxsX2xhbWJkYSAoZnVuPS4uLiwgbmFyZ3M9MCwgYXJnX3ZlY3Rvcj0weDAp IGF0IGV2YWwuYzozMzEzCiM2OSAweDAwMDA1NTU1NTU4MTA2YTUgaW4gRmZ1bmNhbGwgKG5hcmdz PTEsIGFyZ3M9MHg3ZmZmZmZmZmRhMTgpIGF0IGV2YWwuYzozMDUyCiM3MCAweDAwMDA1NTU1NTU4 MDQxODkgaW4gRmZ1bmNhbGxfaW50ZXJhY3RpdmVseSAobmFyZ3M9MSwgYXJncz0weDdmZmZmZmZm ZGExOCkgYXQgY2FsbGludC5jOjI2MAojNzEgMHgwMDAwNTU1NTU1ODEwOTc4IGluIGZ1bmNhbGxf c3ViciAoc3Vicj0weDU1NTU1NWUxNGEwMCA8U2Z1bmNhbGxfaW50ZXJhY3RpdmVseT4sIG51bWFy Z3M9MSwgYXJncz0weDdmZmZmZmZmZGExOCkgYXQgZXZhbC5jOjMwOTEKIzcyIDB4MDAwMDU1NTU1 NTgxMDUzZSBpbiBGZnVuY2FsbCAobmFyZ3M9MiwgYXJncz0weDdmZmZmZmZmZGExMCkgYXQgZXZh bC5jOjMwMzYKIzczIDB4MDAwMDU1NTU1NTgwZjMyYyBpbiBGYXBwbHkgKG5hcmdzPTMsIGFyZ3M9 MHg3ZmZmZmZmZmRhMTApIGF0IGV2YWwuYzoyNjE5CiM3NCAweDAwMDA1NTU1NTU4MDQ2MTEgaW4g RmNhbGxfaW50ZXJhY3RpdmVseSAoZnVuY3Rpb249Li4uLCByZWNvcmRfZmxhZz0uLi4sIGtleXM9 Li4uKSBhdCBjYWxsaW50LmM6MzUzCiM3NSAweDAwMDA1NTU1NTU4MTBhZDEgaW4gZnVuY2FsbF9z dWJyIChzdWJyPTB4NTU1NTU1ZTE0YTYwIDxTY2FsbF9pbnRlcmFjdGl2ZWx5PiwgbnVtYXJncz0z LCBhcmdzPTB4N2ZmZmZmZmZkY2QwKSBhdCBldmFsLmM6MzExNgojNzYgMHgwMDAwNTU1NTU1ODEw NTNlIGluIEZmdW5jYWxsIChuYXJncz00LCBhcmdzPTB4N2ZmZmZmZmZkY2M4KSBhdCBldmFsLmM6 MzAzNgojNzcgMHgwMDAwNTU1NTU1ODZhZDViIGluIGV4ZWNfYnl0ZV9jb2RlIChieXRlc3RyPS4u LiwgdmVjdG9yPS4uLiwgbWF4ZGVwdGg9Li4uLCBhcmdzX3RlbXBsYXRlPS4uLiwgbmFyZ3M9MSwg YXJncz0weDdmZmZmZmZmZTI0MCkgYXQgYnl0ZWNvZGUuYzo2MzIKIzc4IDB4MDAwMDU1NTU1NTgx MGQwNiBpbiBmZXRjaF9hbmRfZXhlY19ieXRlX2NvZGUgKGZ1bj0uLi4sIHN5bXNfbGVmdD0uLi4s IG5hcmdzPTEsIGFyZ3M9MHg3ZmZmZmZmZmUyMzgpIGF0IGV2YWwuYzozMTYwCiM3OSAweDAwMDA1 NTU1NTU4MTExOGMgaW4gZnVuY2FsbF9sYW1iZGEgKGZ1bj0uLi4sIG5hcmdzPTEsIGFyZ192ZWN0 b3I9MHg3ZmZmZmZmZmUyMzgpIGF0IGV2YWwuYzozMjQxCiM4MCAweDAwMDA1NTU1NTU4MTA1OTIg aW4gRmZ1bmNhbGwgKG5hcmdzPTIsIGFyZ3M9MHg3ZmZmZmZmZmUyMzApIGF0IGV2YWwuYzozMDQw CiM4MSAweDAwMDA1NTU1NTU4MGZlNWIgaW4gY2FsbDEgKGZuPS4uLiwgYXJnMT0uLi4pIGF0IGV2 YWwuYzoyODk2CiM4MiAweDAwMDA1NTU1NTU3MzBjMjAgaW4gY29tbWFuZF9sb29wXzEgKCkgYXQg a2V5Ym9hcmQuYzoxNDY2CiM4MyAweDAwMDA1NTU1NTU4MGMwOWQgaW4gaW50ZXJuYWxfY29uZGl0 aW9uX2Nhc2UgKGJmdW49MHg1NTU1NTU3MzAzYzcgPGNvbW1hbmRfbG9vcF8xPiwgaGFuZGxlcnM9 Li4uLCBoZnVuPTB4NTU1NTU1NzJmOWQ2IDxjbWRfZXJyb3I+KSBhdCBldmFsLmM6MTQ3NQojODQg MHgwMDAwNTU1NTU1NzJmZmFjIGluIGNvbW1hbmRfbG9vcF8yIChpZ25vcmU9Li4uKSBhdCBrZXli b2FyZC5jOjEwOTQKIzg1IDB4MDAwMDU1NTU1NTgwYjI0MSBpbiBpbnRlcm5hbF9jYXRjaCAodGFn PS4uLiwgZnVuYz0weDU1NTU1NTcyZmY3ZiA8Y29tbWFuZF9sb29wXzI+LCBhcmc9Li4uKSBhdCBl dmFsLmM6MTE5OAojODYgMHgwMDAwNTU1NTU1NzJmZjRhIGluIGNvbW1hbmRfbG9vcCAoKSBhdCBr ZXlib2FyZC5jOjEwNzMKIzg3IDB4MDAwMDU1NTU1NTcyZjRiZCBpbiByZWN1cnNpdmVfZWRpdF8x ICgpIGF0IGtleWJvYXJkLmM6NzIwCiM4OCAweDAwMDA1NTU1NTU3MmY2YjUgaW4gRnJlY3Vyc2l2 ZV9lZGl0ICgpIGF0IGtleWJvYXJkLmM6Nzg5CiM4OSAweDAwMDA1NTU1NTU3MmI1NGEgaW4gbWFp biAoYXJnYz0xLCBhcmd2PTB4N2ZmZmZmZmZlNzU4KSBhdCBlbWFjcy5jOjIyOTcKK3NvdXJjZSBz cmMvLmdkYmluaXQgCitzZXQgJGR1bW15ID0gbWFpbiArIDgKK3NldCAkZHVtbXkgPSBGbWFrZV9z eW1ib2wgKyA4CitkaXIgLi4vbHdsaWIKV2FybmluZzogL2hvbWUvYWxleC9zcmMvZW1hY3MvZW1h Y3MuZ2l0Ly4uL2x3bGliOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5LgoraGFuZGxlIDIgbm9w cmludCBwYXNzClNJR0lOVCBpcyB1c2VkIGJ5IHRoZSBkZWJ1Z2dlci4KQXJlIHlvdSBzdXJlIHlv dSB3YW50IHRvIGNoYW5nZSBpdD8gKHkgb3IgbikgW2Fuc3dlcmVkIFk7IGlucHV0IG5vdCBmcm9t IHRlcm1pbmFsXQoraGFuZGxlIFNJR1RTVFAgbm9wYXNzCitoYW5kbGUgU0lHVVNSMSBub3ByaW50 IHBhc3MKK2hhbmRsZSBTSUdVU1IyIG5vcHJpbnQgcGFzcworaGFuZGxlIFNJR0FMUk0gaWdub3Jl CitkZWZpbmUgeGdldHB0cgorZGVmaW5lIHhnZXRpbnQKK2RlZmluZSB4Z2V0dHlwZQorZGVmaW5l IHhnZXRzeW0KK2RlZmluZSB4c3ltbmFtZQorZGVmaW5lIHByCitkb2N1bWVudCBwcgorZGVmaW5l IHBwCitkb2N1bWVudCBwcAorZGVmaW5lIHB2Citkb2N1bWVudCBwdgorZGVmaW5lIHhmbXQKK2Rl ZmluZSBwcHQKK2RvY3VtZW50IHBwdAorZGVmaW5lIHBpdG1ldGhvZAorZG9jdW1lbnQgcGl0bWV0 aG9kCitkZWZpbmUgcGl0eAorZG9jdW1lbnQgcGl0eAorZGVmaW5lIHBpdAorZG9jdW1lbnQgcGl0 CitkZWZpbmUgcHJvd3gKK2RvY3VtZW50IHByb3d4CitkZWZpbmUgcHJvdworZG9jdW1lbnQgcHJv dworZGVmaW5lIHBjdXJzb3J4Citkb2N1bWVudCBwY3Vyc29yeAorZGVmaW5lIHBjdXJzb3IKK2Rv Y3VtZW50IHBjdXJzb3IKK2RlZmluZSBwd2lueAorZG9jdW1lbnQgcHdpbngKK2RlZmluZSBwd2lu Citkb2N1bWVudCBwd2luCitkZWZpbmUgcGJpZGl0eXBlCitkb2N1bWVudCBwYmlkaXR5cGUKK2Rl ZmluZSBwZ3gKK2RvY3VtZW50IHBneAorZGVmaW5lIHBnCitkb2N1bWVudCBwZworZGVmaW5lIHBn aQorZG9jdW1lbnQgcGdpCitkZWZpbmUgcGduCitkb2N1bWVudCBwZ24KK2RlZmluZSBwZ3Jvd3gK K2RvY3VtZW50IHBncm93eAorZGVmaW5lIHBncm93Citkb2N1bWVudCBwZ3JvdworZGVmaW5lIHBn cm93aXQKK2RvY3VtZW50IHBncm93aXQKK2RlZmluZSBwcm93bGltcworZG9jdW1lbnQgcHJvd2xp bXMKK2RlZmluZSBwbXR4cm93cworZG9jdW1lbnQgcG10eHJvd3MKK2RlZmluZSB4dHlwZQorZG9j dW1lbnQgeHR5cGUKK2RlZmluZSBwdmVjdHlwZQorZG9jdW1lbnQgcHZlY3R5cGUKK2RlZmluZSB4 dmVjdHlwZQorZG9jdW1lbnQgeHZlY3R5cGUKK2RlZmluZSBwdmVjc2l6ZQorZG9jdW1lbnQgcHZl Y3NpemUKK2RlZmluZSB4dmVjc2l6ZQorZG9jdW1lbnQgeHZlY3NpemUKK2RlZmluZSB4aW50Citk b2N1bWVudCB4aW50CitkZWZpbmUgeHB0cgorZG9jdW1lbnQgeHB0cgorZGVmaW5lIHhtYXJrZXIK K2RvY3VtZW50IHhtYXJrZXIKK2RlZmluZSB4b3ZlcmxheQorZG9jdW1lbnQgeG92ZXJsYXkKK2Rl ZmluZSB4c3ltYm9sCitkb2N1bWVudCB4c3ltYm9sCitkZWZpbmUgeHN0cmluZworZG9jdW1lbnQg eHN0cmluZworZGVmaW5lIHh2ZWN0b3IKK2RvY3VtZW50IHh2ZWN0b3IKK2RlZmluZSB4cHJvY2Vz cworZG9jdW1lbnQgeHByb2Nlc3MKK2RlZmluZSB4ZnJhbWUKK2RvY3VtZW50IHhmcmFtZQorZGVm aW5lIHhjb21waWxlZAorZG9jdW1lbnQgeGNvbXBpbGVkCitkZWZpbmUgeHdpbmRvdworZG9jdW1l bnQgeHdpbmRvdworZGVmaW5lIHh3aW5jb25maWcKK2RvY3VtZW50IHh3aW5jb25maWcKK2RlZmlu ZSB4c3VicgorZG9jdW1lbnQgeHN1YnIKK2RlZmluZSB4Y2hhcnRhYmxlCitkb2N1bWVudCB4Y2hh cnRhYmxlCitkZWZpbmUgeHN1YmNoYXJ0YWJsZQorZG9jdW1lbnQgeHN1YmNoYXJ0YWJsZQorZGVm aW5lIHhib29sdmVjdG9yCitkb2N1bWVudCB4Ym9vbHZlY3RvcgorZGVmaW5lIHhidWZmZXIKK2Rv Y3VtZW50IHhidWZmZXIKK2RlZmluZSB4aGFzaHRhYmxlCitkb2N1bWVudCB4aGFzaHRhYmxlCitk ZWZpbmUgeGNvbnMKK2RvY3VtZW50IHhjb25zCitkZWZpbmUgbmV4dGNvbnMKK2RvY3VtZW50IG5l eHRjb25zCitkZWZpbmUgeGNhcgorZG9jdW1lbnQgeGNhcgorZGVmaW5lIHhjZHIKK2RvY3VtZW50 IHhjZHIKK2RlZmluZSB4bGlzdAorZG9jdW1lbnQgeGxpc3QKK2RlZmluZSB4ZmxvYXQKK2RvY3Vt ZW50IHhmbG9hdAorZGVmaW5lIHhzY3JvbGxiYXIKK2RvY3VtZW50IHhzY3JvbGxiYXIKK2RlZmlu ZSB4cHIKK2RvY3VtZW50IHhwcgorZGVmaW5lIHhwcmludHN0cgorZGVmaW5lIHhwcmludHN5bQor ZG9jdW1lbnQgeHByaW50c3ltCitkZWZpbmUgeGNvZGluZworZG9jdW1lbnQgeGNvZGluZworZGVm aW5lIHhjaGFyc2V0Citkb2N1bWVudCB4Y2hhcnNldAorZGVmaW5lIHhmb250c2V0CitkZWZpbmUg eGZvbnQKK2RvY3VtZW50IHhmb250CitkZWZpbmUgeGJhY2t0cmFjZQorZG9jdW1lbnQgeGJhY2t0 cmFjZQorZGVmaW5lIHhwcmludGJ5dGVzdHIKK2RvY3VtZW50IHhwcmludGJ5dGVzdHIKK2RlZmlu ZSB4d2hpY2hzeW1ib2xzCitkb2N1bWVudCB4d2hpY2hzeW1ib2xzCitkZWZpbmUgaG9va3Bvc3Qt YmFja3RyYWNlCitkZWZpbmUgZmYKK2RvY3VtZW50IGZmCitzZXQgcHJpbnQgcHJldHR5IG9uCitz ZXQgcHJpbnQgc2V2ZW5iaXQtc3RyaW5ncworc2hvdyBlbnZpcm9ubWVudCBESVNQTEFZCkRJU1BM QVkgPSA6MAorc2hvdyBlbnZpcm9ubWVudCBURVJNClRFUk0gPSBzY3JlZW4tMjU2Y29sb3IKK2Jy ZWFrIHRlcm1pbmF0ZV9kdWVfdG9fc2lnbmFsCkJyZWFrcG9pbnQgMSBhdCAweDU1NTU1NTcyODYw MTogZmlsZSBlbWFjcy5jLCBsaW5lIDQwMC4KK2lmIGRlZmluZWRfSEFWRV9YX1dJTkRPV1MKKyti cmVhayB4X2Vycm9yX3F1aXR0ZXIKQnJlYWtwb2ludCAyIGF0IDB4NTU1NTU1NmY1Yjc4OiBmaWxl IHh0ZXJtLmMsIGxpbmUgMTAyNTkuK3B5dGhvbgorYnQKIzAgIDB4MDAwMDdmZmZmNGU5NTVjYiBp biByYWlzZSAoc2lnPTYpIGF0IC4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3JhaXNlLmM6NTAK IzEgIDB4MDAwMDU1NTU1NTcyODcwOCBpbiB0ZXJtaW5hdGVfZHVlX3RvX3NpZ25hbCAoc2lnPTYs IGJhY2t0cmFjZV9saW1pdD00MCkgYXQgZW1hY3MuYzo0MzcKIzIgIDB4MDAwMDU1NTU1NTc1ZGFh MCBpbiBlbWFjc19hYm9ydCAoKSBhdCBzeXNkZXAuYzoyMjgyCiMzICAweDAwMDA1NTU1NTU3ODMw ODAgaW4gRmFjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdyAoKSBhdCBtaW5pYnVmLmM6MjMxCiM0ICAw eDAwMDA1NTU1NTU4MTBhNmUgaW4gZnVuY2FsbF9zdWJyIChzdWJyPTB4NTU1NTU1ZTBjNmMwIDxT YWN0aXZlX21pbmlidWZmZXJfd2luZG93PiwgbnVtYXJncz0wLCBhcmdzPTB4N2ZmZmZmZmZhZDcw KSBhdCBldmFsLmM6MzEwOQojNSAgMHgwMDAwNTU1NTU1ODEwNTNlIGluIEZmdW5jYWxsIChuYXJn cz0xLCBhcmdzPTB4N2ZmZmZmZmZhZDY4KSBhdCBldmFsLmM6MzAzNgojNiAgMHgwMDAwNTU1NTU1 ODZhZDViIGluIGV4ZWNfYnl0ZV9jb2RlIChieXRlc3RyPVhJTCgweDdmZmZlZWNkOWNkNCksIHZl Y3Rvcj1YSUwoMHg3ZmZmZWVjZDljNmQpLCBtYXhkZXB0aD1tYWtlX2ZpeG51bSgzKSwgYXJnc190 ZW1wbGF0ZT1tYWtlX2ZpeG51bSgyNTcpLCBuYXJncz0xLCBhcmdzPTB4N2ZmZmZmZmZiMjM4KSBh dCBieXRlY29kZS5jOjYzMgojNyAgMHgwMDAwNTU1NTU1ODEwZDA2IGluIGZldGNoX2FuZF9leGVj X2J5dGVfY29kZSAoZnVuPVhJTCgweDdmZmZlZWNkOWMzZCksIHN5bXNfbGVmdD1tYWtlX2ZpeG51 bSgyNTcpLCBuYXJncz0xLCBhcmdzPTB4N2ZmZmZmZmZiMjMwKSBhdCBldmFsLmM6MzE2MAojOCAg MHgwMDAwNTU1NTU1ODExMThjIGluIGZ1bmNhbGxfbGFtYmRhIChmdW49WElMKDB4N2ZmZmVlY2Q5 YzNkKSwgbmFyZ3M9MSwgYXJnX3ZlY3Rvcj0weDdmZmZmZmZmYjIzMCkgYXQgZXZhbC5jOjMyNDEK IzkgIDB4MDAwMDU1NTU1NTgxMDU5MiBpbiBGZnVuY2FsbCAobmFyZ3M9MiwgYXJncz0weDdmZmZm ZmZmYjIyOCkgYXQgZXZhbC5jOjMwNDAKIzEwIDB4MDAwMDU1NTU1NTg2YWQ1YiBpbiBleGVjX2J5 dGVfY29kZSAoYnl0ZXN0cj1YSUwoMHg1NTU1NTljZWJkNjQpLCB2ZWN0b3I9WElMKDB4NTU1NTU5 ZTI1Y2E1KSwgbWF4ZGVwdGg9bWFrZV9maXhudW0oNCksIGFyZ3NfdGVtcGxhdGU9bWFrZV9maXhu dW0oMTI4KSwgbmFyZ3M9MCwgYXJncz0weDdmZmZmZmZmYjdhMCkgYXQgYnl0ZWNvZGUuYzo2MzIK IzExIDB4MDAwMDU1NTU1NTgxMGQwNiBpbiBmZXRjaF9hbmRfZXhlY19ieXRlX2NvZGUgKGZ1bj1Y SUwoMHg1NTU1NTllM2FlMjUpLCBzeW1zX2xlZnQ9bWFrZV9maXhudW0oMTI4KSwgbmFyZ3M9MCwg YXJncz0weDdmZmZmZmZmYjdhMCkgYXQgZXZhbC5jOjMxNjAKIzEyIDB4MDAwMDU1NTU1NTgxMTE4 YyBpbiBmdW5jYWxsX2xhbWJkYSAoZnVuPVhJTCgweDU1NTU1OWUzYWUyNSksIG5hcmdzPTAsIGFy Z192ZWN0b3I9MHg3ZmZmZmZmZmI3YTApIGF0IGV2YWwuYzozMjQxCiMxMyAweDAwMDA1NTU1NTU4 MTA1OTIgaW4gRmZ1bmNhbGwgKG5hcmdzPTEsIGFyZ3M9MHg3ZmZmZmZmZmI3OTgpIGF0IGV2YWwu YzozMDQwCiMxNCAweDAwMDA1NTU1NTU4MGY3YTQgaW4gZnVuY2FsbF9uaWwgKG5hcmdzPTEsIGFy Z3M9MHg3ZmZmZmZmZmI3OTgpIGF0IGV2YWwuYzoyNjc3CiMxNSAweDAwMDA1NTU1NTU4MGZjY2Ug aW4gcnVuX2hvb2tfd2l0aF9hcmdzIChuYXJncz0xLCBhcmdzPTB4N2ZmZmZmZmZiNzk4LCBmdW5j YWxsPTB4NTU1NTU1ODBmNzgxIDxmdW5jYWxsX25pbD4pIGF0IGV2YWwuYzoyODU0CiMxNiAweDAw MDA1NTU1NTU4MGY4MmEgaW4gRnJ1bl9ob29rX3dpdGhfYXJncyAobmFyZ3M9MSwgYXJncz0weDdm ZmZmZmZmYjc5OCkgYXQgZXZhbC5jOjI3MTkKIzE3IDB4MDAwMDU1NTU1NTgwZmQ2NiBpbiBydW5f aG9vayAoaG9vaz1YSUwoMHg0MzFjZGEwKSkgYXQgZXZhbC5jOjI4NjcKIzE4IDB4MDAwMDU1NTU1 NTgwZjdlNSBpbiBGcnVuX2hvb2tzIChuYXJncz0xLCBhcmdzPTB4N2ZmZmZmZmZiOGY4KSBhdCBl dmFsLmM6MjcwMQojMTkgMHgwMDAwNTU1NTU1ODEwOTc4IGluIGZ1bmNhbGxfc3ViciAoc3Vicj0w eDU1NTU1NWUxNTY2MCA8U3J1bl9ob29rcz4sIG51bWFyZ3M9MSwgYXJncz0weDdmZmZmZmZmYjhm OCkgYXQgZXZhbC5jOjMwOTEKIzIwIDB4MDAwMDU1NTU1NTgxMDUzZSBpbiBGZnVuY2FsbCAobmFy Z3M9MiwgYXJncz0weDdmZmZmZmZmYjhmMCkgYXQgZXZhbC5jOjMwMzYKIzIxIDB4MDAwMDU1NTU1 NTgwZmU1YiBpbiBjYWxsMSAoZm49WElMKDB4MmFhYTk4ZTQ0NzI4KSwgYXJnMT1YSUwoMHgzN2Iw KSkgYXQgZXZhbC5jOjI4OTYKIzIyIDB4MDAwMDU1NTU1NTc2NTBhMCBpbiBydW5fYnVmZmVyX2xp c3RfdXBkYXRlX2hvb2sgKGJ1Zj0weDU1NTU1NWY0YmE2MCkgYXQgYnVmZmVyLmM6NTI5CiMyMyAw eDAwMDA1NTU1NTU3NjU1MDQgaW4gRmdldF9idWZmZXJfY3JlYXRlIChidWZmZXJfb3JfbmFtZT1Y SUwoMHg3ZmZmZmZmZmI5ZTQpLCBpbmhpYml0X2J1ZmZlcl9ob29rcz1YSUwoMCkpIGF0IGJ1ZmZl ci5jOjYzNQojMjQgMHgwMDAwNTU1NTU1Nzg1ZDk0IGluIGdldF9taW5pYnVmZmVyIChkZXB0aD0x KSBhdCBtaW5pYnVmLmM6MTAyOAojMjUgMHgwMDAwNTU1NTU1Nzg0MWZkIGluIHJlYWRfbWluaWJ1 ZiAobWFwPVhJTCgweDU1NTU1YTM1NzRkMyksIGluaXRpYWw9WElMKDApLCBwcm9tcHQ9WElMKDB4 NTU1NTU3NGE0YTY0KSwgZXhwZmxhZz1mYWxzZSwgaGlzdHZhcj1YSUwoMHgxNWQ3NjQwKSwgaGlz dHBvcz1tYWtlX2ZpeG51bSgwKSwgZGVmYWx0PVhJTCgwKSwgYWxsb3dfcHJvcHM9ZmFsc2UsIGlu aGVyaXRfaW5wdXRfbWV0aG9kPWZhbHNlKSBhdCBtaW5pYnVmLmM6NjYwCiMyNiAweDAwMDA1NTU1 NTU3ODZhY2YgaW4gRnJlYWRfZnJvbV9taW5pYnVmZmVyIChwcm9tcHQ9WElMKDB4NTU1NTU3NGE0 YTY0KSwgaW5pdGlhbF9jb250ZW50cz1YSUwoMCksIGtleW1hcD1YSUwoMHg1NTU1NWEzNTc0ZDMp LCByZWFkPVhJTCgwKSwgaGlzdD1YSUwoMHgxNWQ3NjQwKSwgZGVmYXVsdF92YWx1ZT1YSUwoMCks IGluaGVyaXRfaW5wdXRfbWV0aG9kPVhJTCgwKSkgYXQgbWluaWJ1Zi5jOjEzNTAKIzI3IDB4MDAw MDU1NTU1NTgwZWYyYSBpbiBldmFsX3N1YiAoZm9ybT1YSUwoMHg1NTU1NTc1NDUzNTMpKSBhdCBl dmFsLmM6MjUzNQojMjggMHgwMDAwNTU1NTU1ODBiZjE3IGluIGludGVybmFsX2xpc3BfY29uZGl0 aW9uX2Nhc2UgKHZhcj1YSUwoMHgxMjVkNGEwKSwgYm9keWZvcm09WElMKDB4NTU1NTU3NTQ1MzUz KSwgaGFuZGxlcnM9WElMKDB4NTU1NTU3NTQ1MDgzKSkgYXQgZXZhbC5jOjE0MjkKIzI5IDB4MDAw MDU1NTU1NTgwYjgxMCBpbiBGY29uZGl0aW9uX2Nhc2UgKGFyZ3M9WElMKDB4NTU1NTU3NTQ1MDYz KSkgYXQgZXZhbC5jOjEzNDcKIzMwIDB4MDAwMDU1NTU1NTgwZTlkYyBpbiBldmFsX3N1YiAoZm9y bT1YSUwoMHg1NTU1NTc1NDUwNTMpKSBhdCBldmFsLmM6MjQ2NAojMzEgMHgwMDAwNTU1NTU1ODA4 YzNiIGluIEZwcm9nbiAoYm9keT1YSUwoMCkpIGF0IGV2YWwuYzo0NzEKIzMyIDB4MDAwMDU1NTU1 NTgwODlmZCBpbiBGaWYgKGFyZ3M9WElMKDB4NTU1NTU3NTQ2MWUzKSkgYXQgZXZhbC5jOjQyNwoj MzMgMHgwMDAwNTU1NTU1ODBlOWRjIGluIGV2YWxfc3ViIChmb3JtPVhJTCgweDU1NTU1NzU0NjI0 MykpIGF0IGV2YWwuYzoyNDY0CiMzNCAweDAwMDA1NTU1NTU4MDhjM2IgaW4gRnByb2duIChib2R5 PVhJTCgweDU1NTU1NzU0NGVjMykpIGF0IGV2YWwuYzo0NzEKIzM1IDB4MDAwMDU1NTU1NTgwYTg3 ZiBpbiBGbGV0WCAoYXJncz1YSUwoMHg1NTU1NTc1NDRlYjMpKSBhdCBldmFsLmM6OTg5CiMzNiAw eDAwMDA1NTU1NTU4MGU5ZGMgaW4gZXZhbF9zdWIgKGZvcm09WElMKDB4NTU1NTU3NTQ0ZWEzKSkg YXQgZXZhbC5jOjI0NjQKIzM3IDB4MDAwMDU1NTU1NTgwOGMzYiBpbiBGcHJvZ24gKGJvZHk9WElM KDApKSBhdCBldmFsLmM6NDcxCiMzOCAweDAwMDA1NTU1NTU4MGU5ZGMgaW4gZXZhbF9zdWIgKGZv cm09WElMKDB4NTU1NTU3NTQ0ZTkzKSkgYXQgZXZhbC5jOjI0NjQKIzM5IDB4MDAwMDU1NTU1NTgw YjYyZiBpbiBGdW53aW5kX3Byb3RlY3QgKGFyZ3M9WElMKDB4NTU1NTU3NTQ0ZTUzKSkgYXQgZXZh bC5jOjEzMDUKIzQwIDB4MDAwMDU1NTU1NTgwZTlkYyBpbiBldmFsX3N1YiAoZm9ybT1YSUwoMHg1 NTU1NTc1NDRlNjMpKSBhdCBldmFsLmM6MjQ2NAojNDEgMHgwMDAwNTU1NTU1ODA4YzNiIGluIEZw cm9nbiAoYm9keT1YSUwoMCkpIGF0IGV2YWwuYzo0NzEKIzQyIDB4MDAwMDU1NTU1NTgwYWQ5MiBp biBGbGV0IChhcmdzPVhJTCgweDU1NTU1NzU0NmViMykpIGF0IGV2YWwuYzoxMDU3CiM0MyAweDAw MDA1NTU1NTU4MGU5ZGMgaW4gZXZhbF9zdWIgKGZvcm09WElMKDB4NTU1NTU3NTQ2ZWEzKSkgYXQg ZXZhbC5jOjI0NjQKIzQ0IDB4MDAwMDU1NTU1NTgwYjYyZiBpbiBGdW53aW5kX3Byb3RlY3QgKGFy Z3M9WElMKDB4NTU1NTU3NTQ2ZTAzKSkgYXQgZXZhbC5jOjEzMDUKIzQ1IDB4MDAwMDU1NTU1NTgw ZTlkYyBpbiBldmFsX3N1YiAoZm9ybT1YSUwoMHg1NTU1NTc1NDZlMTMpKSBhdCBldmFsLmM6MjQ2 NAojNDYgMHgwMDAwNTU1NTU1ODA4YzNiIGluIEZwcm9nbiAoYm9keT1YSUwoMHg1NTU1NTc1MzFk ZjMpKSBhdCBldmFsLmM6NDcxCiM0NyAweDAwMDA1NTU1NTU4MGE4N2YgaW4gRmxldFggKGFyZ3M9 WElMKDB4NTU1NTU3NTRlOWEzKSkgYXQgZXZhbC5jOjk4OQojNDggMHgwMDAwNTU1NTU1ODBlOWRj IGluIGV2YWxfc3ViIChmb3JtPVhJTCgweDU1NTU1NzU0ZTk5MykpIGF0IGV2YWwuYzoyNDY0CiM0 OSAweDAwMDA1NTU1NTU4MDhjM2IgaW4gRnByb2duIChib2R5PVhJTCgwKSkgYXQgZXZhbC5jOjQ3 MQojNTAgMHgwMDAwNTU1NTU1ODBlOWRjIGluIGV2YWxfc3ViIChmb3JtPVhJTCgweDU1NTU1NzU0 YTQ3MykpIGF0IGV2YWwuYzoyNDY0CiM1MSAweDAwMDA1NTU1NTU4MDhjM2IgaW4gRnByb2duIChi b2R5PVhJTCgwKSkgYXQgZXZhbC5jOjQ3MQojNTIgMHgwMDAwNTU1NTU1ODBlOWRjIGluIGV2YWxf c3ViIChmb3JtPVhJTCgweDU1NTU1NzU0ZTk1MykpIGF0IGV2YWwuYzoyNDY0CiM1MyAweDAwMDA1 NTU1NTU4MDhjM2IgaW4gRnByb2duIChib2R5PVhJTCgwKSkgYXQgZXZhbC5jOjQ3MQojNTQgMHgw MDAwNTU1NTU1ODBhODdmIGluIEZsZXRYIChhcmdzPVhJTCgweDU1NTU1NzU0ZTkxMykpIGF0IGV2 YWwuYzo5ODkKIzU1IDB4MDAwMDU1NTU1NTgwZTlkYyBpbiBldmFsX3N1YiAoZm9ybT1YSUwoMHg1 NTU1NTc1NGU5MDMpKSBhdCBldmFsLmM6MjQ2NAojNTYgMHgwMDAwNTU1NTU1ODA4YzNiIGluIEZw cm9nbiAoYm9keT1YSUwoMCkpIGF0IGV2YWwuYzo0NzEKIzU3IDB4MDAwMDU1NTU1NTgxMTY3NyBp biBmdW5jYWxsX2xhbWJkYSAoZnVuPVhJTCgweDU1NTU1NzU0ZTdiMyksIG5hcmdzPTEyLCBhcmdf dmVjdG9yPTB4MCkgYXQgZXZhbC5jOjMzMTMKIzU4IDB4MDAwMDU1NTU1NTgxMGViMCBpbiBhcHBs eV9sYW1iZGEgKGZ1bj1YSUwoMHg1NTU1NTc1NGU3YTMpLCBhcmdzPVhJTCgweDU1NTU1N2E2NTA5 MyksIGNvdW50PTE2KSBhdCBldmFsLmM6MzE4NQojNTkgMHgwMDAwNTU1NTU1ODBmMWYzIGluIGV2 YWxfc3ViIChmb3JtPVhJTCgweDU1NTU1N2E2NTBhMykpIGF0IGV2YWwuYzoyNTg4CiM2MCAweDAw MDA1NTU1NTU4MDhjM2IgaW4gRnByb2duIChib2R5PVhJTCgwKSkgYXQgZXZhbC5jOjQ3MQojNjEg MHgwMDAwNTU1NTU1ODExNjc3IGluIGZ1bmNhbGxfbGFtYmRhIChmdW49WElMKDB4NTU1NTU3YTY0 YmIzKSwgbmFyZ3M9MCwgYXJnX3ZlY3Rvcj0weDApIGF0IGV2YWwuYzozMzEzCiM2MiAweDAwMDA1 NTU1NTU4MTBlYjAgaW4gYXBwbHlfbGFtYmRhIChmdW49WElMKDB4NTU1NTU3YTY0YmEzKSwgYXJn cz1YSUwoMCksIGNvdW50PTE0KSBhdCBldmFsLmM6MzE4NQojNjMgMHgwMDAwNTU1NTU1ODBmMWYz IGluIGV2YWxfc3ViIChmb3JtPVhJTCgweDU1NTU1N2I5MDljMykpIGF0IGV2YWwuYzoyNTg4CiM2 NCAweDAwMDA1NTU1NTU4MDhjM2IgaW4gRnByb2duIChib2R5PVhJTCgwKSkgYXQgZXZhbC5jOjQ3 MQojNjUgMHgwMDAwNTU1NTU1ODBhZDkyIGluIEZsZXQgKGFyZ3M9WElMKDB4NTU1NTU3YjkwOWQz KSkgYXQgZXZhbC5jOjEwNTcKIzY2IDB4MDAwMDU1NTU1NTgwZTlkYyBpbiBldmFsX3N1YiAoZm9y bT1YSUwoMHg1NTU1NTdiOTBiNTMpKSBhdCBldmFsLmM6MjQ2NAojNjcgMHgwMDAwNTU1NTU1ODA4 YzNiIGluIEZwcm9nbiAoYm9keT1YSUwoMCkpIGF0IGV2YWwuYzo0NzEKIzY4IDB4MDAwMDU1NTU1 NTgxMTY3NyBpbiBmdW5jYWxsX2xhbWJkYSAoZnVuPVhJTCgweDU1NTU1N2I5MDdkMyksIG5hcmdz PTAsIGFyZ192ZWN0b3I9MHgwKSBhdCBldmFsLmM6MzMxMwojNjkgMHgwMDAwNTU1NTU1ODEwNmE1 IGluIEZmdW5jYWxsIChuYXJncz0xLCBhcmdzPTB4N2ZmZmZmZmZkYTE4KSBhdCBldmFsLmM6MzA1 MgojNzAgMHgwMDAwNTU1NTU1ODA0MTg5IGluIEZmdW5jYWxsX2ludGVyYWN0aXZlbHkgKG5hcmdz PTEsIGFyZ3M9MHg3ZmZmZmZmZmRhMTgpIGF0IGNhbGxpbnQuYzoyNjAKIzcxIDB4MDAwMDU1NTU1 NTgxMDk3OCBpbiBmdW5jYWxsX3N1YnIgKHN1YnI9MHg1NTU1NTVlMTRhMDAgPFNmdW5jYWxsX2lu dGVyYWN0aXZlbHk+LCBudW1hcmdzPTEsIGFyZ3M9MHg3ZmZmZmZmZmRhMTgpIGF0IGV2YWwuYzoz MDkxCiM3MiAweDAwMDA1NTU1NTU4MTA1M2UgaW4gRmZ1bmNhbGwgKG5hcmdzPTIsIGFyZ3M9MHg3 ZmZmZmZmZmRhMTApIGF0IGV2YWwuYzozMDM2CiM3MyAweDAwMDA1NTU1NTU4MGYzMmMgaW4gRmFw cGx5IChuYXJncz0zLCBhcmdzPTB4N2ZmZmZmZmZkYTEwKSBhdCBldmFsLmM6MjYxOQojNzQgMHgw MDAwNTU1NTU1ODA0NjExIGluIEZjYWxsX2ludGVyYWN0aXZlbHkgKGZ1bmN0aW9uPVhJTCgweDU3 NDRmMCksIHJlY29yZF9mbGFnPVhJTCgwKSwga2V5cz1YSUwoMHg3ZmZmZWYzOWMyNTUpKSBhdCBj YWxsaW50LmM6MzUzCiM3NSAweDAwMDA1NTU1NTU4MTBhZDEgaW4gZnVuY2FsbF9zdWJyIChzdWJy PTB4NTU1NTU1ZTE0YTYwIDxTY2FsbF9pbnRlcmFjdGl2ZWx5PiwgbnVtYXJncz0zLCBhcmdzPTB4 N2ZmZmZmZmZkY2QwKSBhdCBldmFsLmM6MzExNgojNzYgMHgwMDAwNTU1NTU1ODEwNTNlIGluIEZm dW5jYWxsIChuYXJncz00LCBhcmdzPTB4N2ZmZmZmZmZkY2M4KSBhdCBldmFsLmM6MzAzNgojNzcg MHgwMDAwNTU1NTU1ODZhZDViIGluIGV4ZWNfYnl0ZV9jb2RlIChieXRlc3RyPVhJTCgweDdmZmZl ZWRjZGZmYyksIHZlY3Rvcj1YSUwoMHg3ZmZmZWVkY2RjNjUpLCBtYXhkZXB0aD1tYWtlX2ZpeG51 bSgxMyksIGFyZ3NfdGVtcGxhdGU9bWFrZV9maXhudW0oMTAyNSksIG5hcmdzPTEsIGFyZ3M9MHg3 ZmZmZmZmZmUyNDApIGF0IGJ5dGVjb2RlLmM6NjMyCiM3OCAweDAwMDA1NTU1NTU4MTBkMDYgaW4g ZmV0Y2hfYW5kX2V4ZWNfYnl0ZV9jb2RlIChmdW49WElMKDB4N2ZmZmVlZGNkYzM1KSwgc3ltc19s ZWZ0PW1ha2VfZml4bnVtKDEwMjUpLCBuYXJncz0xLCBhcmdzPTB4N2ZmZmZmZmZlMjM4KSBhdCBl dmFsLmM6MzE2MAojNzkgMHgwMDAwNTU1NTU1ODExMThjIGluIGZ1bmNhbGxfbGFtYmRhIChmdW49 WElMKDB4N2ZmZmVlZGNkYzM1KSwgbmFyZ3M9MSwgYXJnX3ZlY3Rvcj0weDdmZmZmZmZmZTIzOCkg YXQgZXZhbC5jOjMyNDEKIzgwIDB4MDAwMDU1NTU1NTgxMDU5MiBpbiBGZnVuY2FsbCAobmFyZ3M9 MiwgYXJncz0weDdmZmZmZmZmZTIzMCkgYXQgZXZhbC5jOjMwNDAKIzgxIDB4MDAwMDU1NTU1NTgw ZmU1YiBpbiBjYWxsMSAoZm49WElMKDB4NDU2MCksIGFyZzE9WElMKDB4NTc0NGYwKSkgYXQgZXZh bC5jOjI4OTYKIzgyIDB4MDAwMDU1NTU1NTczMGMyMCBpbiBjb21tYW5kX2xvb3BfMSAoKSBhdCBr ZXlib2FyZC5jOjE0NjYKIzgzIDB4MDAwMDU1NTU1NTgwYzA5ZCBpbiBpbnRlcm5hbF9jb25kaXRp b25fY2FzZSAoYmZ1bj0weDU1NTU1NTczMDNjNyA8Y29tbWFuZF9sb29wXzE+LCBoYW5kbGVycz1Y SUwoMHg5MCksIGhmdW49MHg1NTU1NTU3MmY5ZDYgPGNtZF9lcnJvcj4pIGF0IGV2YWwuYzoxNDc1 CiM4NCAweDAwMDA1NTU1NTU3MmZmYWMgaW4gY29tbWFuZF9sb29wXzIgKGlnbm9yZT1YSUwoMCkp IGF0IGtleWJvYXJkLmM6MTA5NAojODUgMHgwMDAwNTU1NTU1ODBiMjQxIGluIGludGVybmFsX2Nh dGNoICh0YWc9WElMKDB4ZTRmMCksIGZ1bmM9MHg1NTU1NTU3MmZmN2YgPGNvbW1hbmRfbG9vcF8y PiwgYXJnPVhJTCgwKSkgYXQgZXZhbC5jOjExOTgKIzg2IDB4MDAwMDU1NTU1NTcyZmY0YSBpbiBj b21tYW5kX2xvb3AgKCkgYXQga2V5Ym9hcmQuYzoxMDczCiM4NyAweDAwMDA1NTU1NTU3MmY0YmQg aW4gcmVjdXJzaXZlX2VkaXRfMSAoKSBhdCBrZXlib2FyZC5jOjcyMAojODggMHgwMDAwNTU1NTU1 NzJmNmI1IGluIEZyZWN1cnNpdmVfZWRpdCAoKSBhdCBrZXlib2FyZC5jOjc4OQojODkgMHgwMDAw NTU1NTU1NzJiNTRhIGluIG1haW4gKGFyZ2M9MSwgYXJndj0weDdmZmZmZmZmZTc1OCkgYXQgZW1h Y3MuYzoyMjk3Cisrc2V0ICRidCA9IGJhY2t0cmFjZV90b3AgKCkKKytpZiBiYWNrdHJhY2VfcCAo JGJ0KQorKytlY2hvIFxuCgorKytlY2hvIExpc3AgQmFja3RyYWNlOlxuCkxpc3AgQmFja3RyYWNl OgorKyt4YmFja3RyYWNlCisrKytzZXQgJGJ0ID0gYmFja3RyYWNlX3RvcCAoKQorKysrd2hpbGUg YmFja3RyYWNlX3AgKCRidCkKKysrKytzZXQgJGZ1biA9IGJhY2t0cmFjZV9mdW5jdGlvbiAoJGJ0 KQorKysrK3hnZXR0eXBlICRmdW4KKysrKysraWYgKENIRUNLX0xJU1BfT0JKRUNUX1RZUEUpCisr KysrKytzZXQgJGJ1Z2ZpeCA9ICRmdW4uaQorKysrKytzZXQgJHR5cGUgPSAoZW51bSBMaXNwX1R5 cGUpIChVU0VfTFNCX1RBRyA/IChFTUFDU19JTlQpICRidWdmaXggJiAoMSA8PCBHQ1RZUEVCSVRT KSAtIDEgOiAoRU1BQ1NfVUlOVCkgJGJ1Z2ZpeCA+PiBWQUxCSVRTKQorKysrK2lmICR0eXBlID09 IExpc3BfU3ltYm9sCisrKysrK3hwcmludHN5bSAkZnVuCisrKysrKyt4c3ltbmFtZSAkZnVuCisr KysrKysreGdldHN5bSAkZnVuCisrKysrKysrK3hnZXRwdHIgJGZ1bgorKysrKysrKysraWYgKENI RUNLX0xJU1BfT0JKRUNUX1RZUEUpCisrKysrKysrKysrc2V0ICRidWdmaXggPSAkZnVuLmkKKysr KysrKysrK3NldCAkcHRyID0gKEVNQUNTX0lOVCkgJGJ1Z2ZpeCAmIFZBTE1BU0sKKysrKysrKysr c2V0ICRwdHIgPSAoKHN0cnVjdCBMaXNwX1N5bWJvbCAqKSAoKGNoYXIgKikgJmxpc3BzeW0gKyAk cHRyKSkKKysrKysrKytzZXQgJHN5bW5hbWUgPSAkcHRyLT51LnMubmFtZQorKysrKysreGdldHB0 ciAkc3ltbmFtZQorKysrKysrK2lmIChDSEVDS19MSVNQX09CSkVDVF9UWVBFKQorKysrKysrKytz ZXQgJGJ1Z2ZpeCA9ICRzeW1uYW1lLmkKKysrKysrKytzZXQgJHB0ciA9IChFTUFDU19JTlQpICRi dWdmaXggJiBWQUxNQVNLCisrKysrKytpZiAkcHRyICE9IDAKKysrKysrKytzZXQgJHN5bV9uYW1l ID0gKHN0cnVjdCBMaXNwX1N0cmluZyAqKSAkcHRyCisrKysrKysreHByaW50c3RyICRzeW1fbmFt ZQorKysrKysrKytpZiAoISAkYXJnMCkKKysrKysrKysrK3NldCAkZGF0YSA9IChjaGFyICopICRz eW1fbmFtZS0+dS5zLmRhdGEKKysrKysrKysrK3NldCAkc3Ryc2l6ZSA9ICgkc3ltX25hbWUtPnUu cy5zaXplX2J5dGUgPCAwKSA/ICgkc3ltX25hbWUtPnUucy5zaXplICYgfkFSUkFZX01BUktfRkxB RykgOiAkc3ltX25hbWUtPnUucy5zaXplX2J5dGUKKysrKysrKysrK2lmICRzdHJzaXplID09IDAK KysrKysrKysrKytvdXRwdXQgKCRzeW1fbmFtZS0+dS5zLnNpemUgPiAxMDAwKSA/IDAgOiAoJGRh dGFbMF0pQCgkc3Ryc2l6ZSkKImFjdGl2ZS1taW5pYnVmZmVyLXdpbmRvdyIrKysrKytwcmludGYg IiAoMHgleClcbiIsIGJhY2t0cmFjZV9hcmdzICgkYnQpCiAoMHhmZmZmYWQ3MCkKKysrKytzZXQg JGJ0ID0gYmFja3RyYWNlX25leHQgKCRidCkKKysrKytzZXQgJGZ1biA9IGJhY2t0cmFjZV9mdW5j dGlvbiAoJGJ0KQorKysrK3hnZXR0eXBlICRmdW4KKysrKysraWYgKENIRUNLX0xJU1BfT0JKRUNU X1RZUEUpCisrKysrKytzZXQgJGJ1Z2ZpeCA9ICRmdW4uaQorKysrKytzZXQgJHR5cGUgPSAoZW51 bSBMaXNwX1R5cGUpIChVU0VfTFNCX1RBRyA/IChFTUFDU19JTlQpICRidWdmaXggJiAoMSA8PCBH Q1RZUEVCSVRTKSAtIDEgOiAoRU1BQ1NfVUlOVCkgJGJ1Z2ZpeCA+PiBWQUxCSVRTKQorKysrK2lm ICR0eXBlID09IExpc3BfU3ltYm9sCisrKysrK3hwcmludHN5bSAkZnVuCisrKysrKyt4c3ltbmFt ZSAkZnVuCisrKysrKysreGdldHN5bSAkZnVuCisrKysrKysrK3hnZXRwdHIgJGZ1bgorKysrKysr KysraWYgKENIRUNLX0xJU1BfT0JKRUNUX1RZUEUpCisrKysrKysrKysrc2V0ICRidWdmaXggPSAk ZnVuLmkKKysrKysrKysrK3NldCAkcHRyID0gKEVNQUNTX0lOVCkgJGJ1Z2ZpeCAmIFZBTE1BU0sK KysrKysrKysrc2V0ICRwdHIgPSAoKHN0cnVjdCBMaXNwX1N5bWJvbCAqKSAoKGNoYXIgKikgJmxp c3BzeW0gKyAkcHRyKSkKKysrKysrKytzZXQgJHN5bW5hbWUgPSAkcHRyLT51LnMubmFtZQorKysr KysreGdldHB0ciAkc3ltbmFtZQorKysrKysrK2lmIChDSEVDS19MSVNQX09CSkVDVF9UWVBFKQor KysrKysrKytzZXQgJGJ1Z2ZpeCA9ICRzeW1uYW1lLmkKKysrKysrKytzZXQgJHB0ciA9IChFTUFD U19JTlQpICRidWdmaXggJiBWQUxNQVNLCisrKysrKytpZiAkcHRyICE9IDAKKysrKysrKytzZXQg JHN5bV9uYW1lID0gKHN0cnVjdCBMaXNwX1N0cmluZyAqKSAkcHRyCisrKysrKysreHByaW50c3Ry ICRzeW1fbmFtZQorKysrKysrKytpZiAoISAkYXJnMCkKKysrKysrKysrK3NldCAkZGF0YSA9IChj aGFyICopICRzeW1fbmFtZS0+dS5zLmRhdGEKKysrKysrKysrK3NldCAkc3Ryc2l6ZSA9ICgkc3lt X25hbWUtPnUucy5zaXplX2J5dGUgPCAwKSA/ICgkc3ltX25hbWUtPnUucy5zaXplICYgfkFSUkFZ X01BUktfRkxBRykgOiAkc3ltX25hbWUtPnUucy5zaXplX2J5dGUKKysrKysrKysrK2lmICRzdHJz aXplID09IDAKKysrKysrKysrKytvdXRwdXQgKCRzeW1fbmFtZS0+dS5zLnNpemUgPiAxMDAwKSA/ IDAgOiAoJGRhdGFbMF0pQCgkc3Ryc2l6ZSkKIm1pbmlidWZmZXItd2luZG93LWFjdGl2ZS1wIisr KysrK3ByaW50ZiAiICgweCV4KVxuIiwgYmFja3RyYWNlX2FyZ3MgKCRidCkKICgweGZmZmZiMjMw KQorKysrK3NldCAkYnQgPSBiYWNrdHJhY2VfbmV4dCAoJGJ0KQorKysrK3NldCAkZnVuID0gYmFj a3RyYWNlX2Z1bmN0aW9uICgkYnQpCisrKysreGdldHR5cGUgJGZ1bgorKysrKytpZiAoQ0hFQ0tf TElTUF9PQkpFQ1RfVFlQRSkKKysrKysrK3NldCAkYnVnZml4ID0gJGZ1bi5pCisrKysrK3NldCAk dHlwZSA9IChlbnVtIExpc3BfVHlwZSkgKFVTRV9MU0JfVEFHID8gKEVNQUNTX0lOVCkgJGJ1Z2Zp eCAmICgxIDw8IEdDVFlQRUJJVFMpIC0gMSA6IChFTUFDU19VSU5UKSAkYnVnZml4ID4+IFZBTEJJ VFMpCisrKysraWYgJHR5cGUgPT0gTGlzcF9TeW1ib2wKKysrKysreHByaW50c3ltICRmdW4KKysr KysrK3hzeW1uYW1lICRmdW4KKysrKysrKyt4Z2V0c3ltICRmdW4KKysrKysrKysreGdldHB0ciAk ZnVuCisrKysrKysrKytpZiAoQ0hFQ0tfTElTUF9PQkpFQ1RfVFlQRSkKKysrKysrKysrKytzZXQg JGJ1Z2ZpeCA9ICRmdW4uaQorKysrKysrKysrc2V0ICRwdHIgPSAoRU1BQ1NfSU5UKSAkYnVnZml4 ICYgVkFMTUFTSworKysrKysrKytzZXQgJHB0ciA9ICgoc3RydWN0IExpc3BfU3ltYm9sICopICgo Y2hhciAqKSAmbGlzcHN5bSArICRwdHIpKQorKysrKysrK3NldCAkc3ltbmFtZSA9ICRwdHItPnUu cy5uYW1lCisrKysrKyt4Z2V0cHRyICRzeW1uYW1lCisrKysrKysraWYgKENIRUNLX0xJU1BfT0JK RUNUX1RZUEUpCisrKysrKysrK3NldCAkYnVnZml4ID0gJHN5bW5hbWUuaQorKysrKysrK3NldCAk cHRyID0gKEVNQUNTX0lOVCkgJGJ1Z2ZpeCAmIFZBTE1BU0sKKysrKysrK2lmICRwdHIgIT0gMAor KysrKysrK3NldCAkc3ltX25hbWUgPSAoc3RydWN0IExpc3BfU3RyaW5nICopICRwdHIKKysrKysr Kyt4cHJpbnRzdHIgJHN5bV9uYW1lCisrKysrKysrK2lmICghICRhcmcwKQorKysrKysrKysrc2V0 ICRkYXRhID0gKGNoYXIgKikgJHN5bV9uYW1lLT51LnMuZGF0YQorKysrKysrKysrc2V0ICRzdHJz aXplID0gKCRzeW1fbmFtZS0+dS5zLnNpemVfYnl0ZSA8IDApID8gKCRzeW1fbmFtZS0+dS5zLnNp emUgJiB+QVJSQVlfTUFSS19GTEFHKSA6ICRzeW1fbmFtZS0+dS5zLnNpemVfYnl0ZQorKysrKysr KysraWYgJHN0cnNpemUgPT0gMAorKysrKysrKysrK291dHB1dCAoJHN5bV9uYW1lLT51LnMuc2l6 ZSA+IDEwMDApID8gMCA6ICgkZGF0YVswXSlAKCRzdHJzaXplKQoiZG9vbS1tb2RlbGluZS1zZXQt c2VsZWN0ZWQtd2luZG93IisrKysrK3ByaW50ZiAiICgweCV4KVxuIiwgYmFja3RyYWNlX2FyZ3Mg KCRidCkKICgweGZmZmZiN2EwKQorKysrK3NldCAkYnQgPSBiYWNrdHJhY2VfbmV4dCAoJGJ0KQor KysrK3NldCAkZnVuID0gYmFja3RyYWNlX2Z1bmN0aW9uICgkYnQpCisrKysreGdldHR5cGUgJGZ1 bgorKysrKytpZiAoQ0hFQ0tfTElTUF9PQkpFQ1RfVFlQRSkKKysrKysrK3NldCAkYnVnZml4ID0g JGZ1bi5pCisrKysrK3NldCAkdHlwZSA9IChlbnVtIExpc3BfVHlwZSkgKFVTRV9MU0JfVEFHID8g KEVNQUNTX0lOVCkgJGJ1Z2ZpeCAmICgxIDw8IEdDVFlQRUJJVFMpIC0gMSA6IChFTUFDU19VSU5U KSAkYnVnZml4ID4+IFZBTEJJVFMpCisrKysraWYgJHR5cGUgPT0gTGlzcF9TeW1ib2wKKysrKysr eHByaW50c3ltICRmdW4KKysrKysrK3hzeW1uYW1lICRmdW4KKysrKysrKyt4Z2V0c3ltICRmdW4K KysrKysrKysreGdldHB0ciAkZnVuCisrKysrKysrKytpZiAoQ0hFQ0tfTElTUF9PQkpFQ1RfVFlQ RSkKKysrKysrKysrKytzZXQgJGJ1Z2ZpeCA9ICRmdW4uaQorKysrKysrKysrc2V0ICRwdHIgPSAo RU1BQ1NfSU5UKSAkYnVnZml4ICYgVkFMTUFTSworKysrKysrKytzZXQgJHB0ciA9ICgoc3RydWN0 IExpc3BfU3ltYm9sICopICgoY2hhciAqKSAmbGlzcHN5bSArICRwdHIpKQorKysrKysrK3NldCAk c3ltbmFtZSA9ICRwdHItPnUucy5uYW1lCisrKysrKyt4Z2V0cHRyICRzeW1uYW1lCisrKysrKysr aWYgKENIRUNLX0xJU1BfT0JKRUNUX1RZUEUpCisrKysrKysrK3NldCAkYnVnZml4ID0gJHN5bW5h bWUuaQorKysrKysrK3NldCAkcHRyID0gKEVNQUNTX0lOVCkgJGJ1Z2ZpeCAmIFZBTE1BU0sKKysr KysrK2lmICRwdHIgIT0gMAorKysrKysrK3NldCAkc3ltX25hbWUgPSAoc3RydWN0IExpc3BfU3Ry aW5nICopICRwdHIKKysrKysrKyt4cHJpbnRzdHIgJHN5bV9uYW1lCisrKysrKysrK2lmICghICRh cmcwKQorKysrKysrKysrc2V0ICRkYXRhID0gKGNoYXIgKikgJHN5bV9uYW1lLT51LnMuZGF0YQor KysrKysrKysrc2V0ICRzdHJzaXplID0gKCRzeW1fbmFtZS0+dS5zLnNpemVfYnl0ZSA8IDApID8g KCRzeW1fbmFtZS0+dS5zLnNpemUgJiB+QVJSQVlfTUFSS19GTEFHKSA6ICRzeW1fbmFtZS0+dS5z LnNpemVfYnl0ZQorKysrKysrKysraWYgJHN0cnNpemUgPT0gMAorKysrKysrKysrK291dHB1dCAo JHN5bV9uYW1lLT51LnMuc2l6ZSA+IDEwMDApID8gMCA6ICgkZGF0YVswXSlAKCRzdHJzaXplKQoi cnVuLWhvb2tzIisrKysrK3ByaW50ZiAiICgweCV4KVxuIiwgYmFja3RyYWNlX2FyZ3MgKCRidCkK ICgweGZmZmZiOGY4KQorKysrK3NldCAkYnQgPSBiYWNrdHJhY2VfbmV4dCAoJGJ0KQorKysrK3Nl dCAkZnVuID0gYmFja3RyYWNlX2Z1bmN0aW9uICgkYnQpCisrKysreGdldHR5cGUgJGZ1bgorKysr KytpZiAoQ0hFQ0tfTElTUF9PQkpFQ1RfVFlQRSkKKysrKysrK3NldCAkYnVnZml4ID0gJGZ1bi5p CisrKysrK3NldCAkdHlwZSA9IChlbnVtIExpc3BfVHlwZSkgKFVTRV9MU0JfVEFHID8gKEVNQUNT X0lOVCkgJGJ1Z2ZpeCAmICgxIDw8IEdDVFlQRUJJVFMpIC0gMSA6IChFTUFDU19VSU5UKSAkYnVn Zml4ID4+IFZBTEJJVFMpCisrKysraWYgJHR5cGUgPT0gTGlzcF9TeW1ib2wKKysrKysreHByaW50 c3ltICRmdW4KKysrKysrK3hzeW1uYW1lICRmdW4KKysrKysrKyt4Z2V0c3ltICRmdW4KKysrKysr KysreGdldHB0ciAkZnVuCisrKysrKysrKytpZiAoQ0hFQ0tfTElTUF9PQkpFQ1RfVFlQRSkKKysr KysrKysrKytzZXQgJGJ1Z2ZpeCA9ICRmdW4uaQorKysrKysrKysrc2V0ICRwdHIgPSAoRU1BQ1Nf SU5UKSAkYnVnZml4ICYgVkFMTUFTSworKysrKysrKytzZXQgJHB0ciA9ICgoc3RydWN0IExpc3Bf U3ltYm9sICopICgoY2hhciAqKSAmbGlzcHN5bSArICRwdHIpKQorKysrKysrK3NldCAkc3ltbmFt ZSA9ICRwdHItPnUucy5uYW1lCisrKysrKyt4Z2V0cHRyICRzeW1uYW1lCisrKysrKysraWYgKENI RUNLX0xJU1BfT0JKRUNUX1RZUEUpCisrKysrKysrK3NldCAkYnVnZml4ID0gJHN5bW5hbWUuaQor KysrKysrK3NldCAkcHRyID0gKEVNQUNTX0lOVCkgJGJ1Z2ZpeCAmIFZBTE1BU0sKKysrKysrK2lm ICRwdHIgIT0gMAorKysrKysrK3NldCAkc3ltX25hbWUgPSAoc3RydWN0IExpc3BfU3RyaW5nICop ICRwdHIKKysrKysrKyt4cHJpbnRzdHIgJHN5bV9uYW1lCisrKysrKysrK2lmICghICRhcmcwKQor KysrKysrKysrc2V0ICRkYXRhID0gKGNoYXIgKikgJHN5bV9uYW1lLT51LnMuZGF0YQorKysrKysr Kysrc2V0ICRzdHJzaXplID0gKCRzeW1fbmFtZS0+dS5zLnNpemVfYnl0ZSA8IDApID8gKCRzeW1f bmFtZS0+dS5zLnNpemUgJiB+QVJSQVlfTUFSS19GTEFHKSA6ICRzeW1fbmFtZS0+dS5zLnNpemVf Ynl0ZQorKysrKysrKysraWYgJHN0cnNpemUgPT0gMAorKysrKysrKysrK291dHB1dCAoJHN5bV9u YW1lLT51LnMuc2l6ZSA+IDEwMDApID8gMCA6ICgkZGF0YVswXSlAKCRzdHJzaXplKQoicmVhZC1m cm9tLW1pbmlidWZmZXIiKysrKysrcHJpbnRmICIgKDB4JXgpXG4iLCBiYWNrdHJhY2VfYXJncyAo JGJ0KQogKDB4ZmZmZmJjYTApCisrKysrc2V0ICRidCA9IGJhY2t0cmFjZV9uZXh0ICgkYnQpCisr Kysrc2V0ICRmdW4gPSBiYWNrdHJhY2VfZnVuY3Rpb24gKCRidCkKKysrKyt4Z2V0dHlwZSAkZnVu CisrKysrK2lmIChDSEVDS19MSVNQX09CSkVDVF9UWVBFKQorKysrKysrc2V0ICRidWdmaXggPSAk ZnVuLmkKKysrKysrc2V0ICR0eXBlID0gKGVudW0gTGlzcF9UeXBlKSAoVVNFX0xTQl9UQUcgPyAo RU1BQ1NfSU5UKSAkYnVnZml4ICYgKDEgPDwgR0NUWVBFQklUUykgLSAxIDogKEVNQUNTX1VJTlQp ICRidWdmaXggPj4gVkFMQklUUykKKysrKytpZiAkdHlwZSA9PSBMaXNwX1N5bWJvbAorKysrKyt4 cHJpbnRzeW0gJGZ1bgorKysrKysreHN5bW5hbWUgJGZ1bgorKysrKysrK3hnZXRzeW0gJGZ1bgor KysrKysrKyt4Z2V0cHRyICRmdW4KKysrKysrKysrK2lmIChDSEVDS19MSVNQX09CSkVDVF9UWVBF KQorKysrKysrKysrK3NldCAkYnVnZml4ID0gJGZ1bi5pCisrKysrKysrKytzZXQgJHB0ciA9IChF TUFDU19JTlQpICRidWdmaXggJiBWQUxNQVNLCisrKysrKysrK3NldCAkcHRyID0gKChzdHJ1Y3Qg TGlzcF9TeW1ib2wgKikgKChjaGFyICopICZsaXNwc3ltICsgJHB0cikpCisrKysrKysrc2V0ICRz eW1uYW1lID0gJHB0ci0+dS5zLm5hbWUKKysrKysrK3hnZXRwdHIgJHN5bW5hbWUKKysrKysrKytp ZiAoQ0hFQ0tfTElTUF9PQkpFQ1RfVFlQRSkKKysrKysrKysrc2V0ICRidWdmaXggPSAkc3ltbmFt ZS5pCisrKysrKysrc2V0ICRwdHIgPSAoRU1BQ1NfSU5UKSAkYnVnZml4ICYgVkFMTUFTSworKysr KysraWYgJHB0ciAhPSAwCisrKysrKysrc2V0ICRzeW1fbmFtZSA9IChzdHJ1Y3QgTGlzcF9TdHJp bmcgKikgJHB0cgorKysrKysrK3hwcmludHN0ciAkc3ltX25hbWUKKysrKysrKysraWYgKCEgJGFy ZzApCisrKysrKysrKytzZXQgJGRhdGEgPSAoY2hhciAqKSAkc3ltX25hbWUtPnUucy5kYXRhCisr KysrKysrKytzZXQgJHN0cnNpemUgPSAoJHN5bV9uYW1lLT51LnMuc2l6ZV9ieXRlIDwgMCkgPyAo JHN5bV9uYW1lLT51LnMuc2l6ZSAmIH5BUlJBWV9NQVJLX0ZMQUcpIDogJHN5bV9uYW1lLT51LnMu c2l6ZV9ieXRlCisrKysrKysrKytpZiAkc3Ryc2l6ZSA9PSAwCisrKysrKysrKysrb3V0cHV0ICgk c3ltX25hbWUtPnUucy5zaXplID4gMTAwMCkgPyAwIDogKCRkYXRhWzBdKUAoJHN0cnNpemUpCiJj b25kaXRpb24tY2FzZSIrKysrKytwcmludGYgIiAoMHgleClcbiIsIGJhY2t0cmFjZV9hcmdzICgk YnQpCiAoMHhmZmZmYmY1MCkKKysrKytzZXQgJGJ0ID0gYmFja3RyYWNlX25leHQgKCRidCkKKysr KytzZXQgJGZ1biA9IGJhY2t0cmFjZV9mdW5jdGlvbiAoJGJ0KQorKysrK3hnZXR0eXBlICRmdW4K KysrKysraWYgKENIRUNLX0xJU1BfT0JKRUNUX1RZUEUpCisrKysrKytzZXQgJGJ1Z2ZpeCA9ICRm dW4uaQorKysrKytzZXQgJHR5cGUgPSAoZW51bSBMaXNwX1R5cGUpIChVU0VfTFNCX1RBRyA/IChF TUFDU19JTlQpICRidWdmaXggJiAoMSA8PCBHQ1RZUEVCSVRTKSAtIDEgOiAoRU1BQ1NfVUlOVCkg JGJ1Z2ZpeCA+PiBWQUxCSVRTKQorKysrK2lmICR0eXBlID09IExpc3BfU3ltYm9sCisrKysrK3hw cmludHN5bSAkZnVuCisrKysrKyt4c3ltbmFtZSAkZnVuCisrKysrKysreGdldHN5bSAkZnVuCisr KysrKysrK3hnZXRwdHIgJGZ1bgorKysrKysrKysraWYgKENIRUNLX0xJU1BfT0JKRUNUX1RZUEUp CisrKysrKysrKysrc2V0ICRidWdmaXggPSAkZnVuLmkKKysrKysrKysrK3NldCAkcHRyID0gKEVN QUNTX0lOVCkgJGJ1Z2ZpeCAmIFZBTE1BU0sKKysrKysrKysrc2V0ICRwdHIgPSAoKHN0cnVjdCBM aXNwX1N5bWJvbCAqKSAoKGNoYXIgKikgJmxpc3BzeW0gKyAkcHRyKSkKKysrKysrKytzZXQgJHN5 bW5hbWUgPSAkcHRyLT51LnMubmFtZQorKysrKysreGdldHB0ciAkc3ltbmFtZQorKysrKysrK2lm IChDSEVDS19MSVNQX09CSkVDVF9UWVBFKQorKysrKysrKytzZXQgJGJ1Z2ZpeCA9ICRzeW1uYW1l LmkKKysrKysrKytzZXQgJHB0ciA9IChFTUFDU19JTlQpICRidWdmaXggJiBWQUxNQVNLCisrKysr KytpZiAkcHRyICE9IDAKKysrKysrKytzZXQgJHN5bV9uYW1lID0gKHN0cnVjdCBMaXNwX1N0cmlu ZyAqKSAkcHRyCisrKysrKysreHByaW50c3RyICRzeW1fbmFtZQorKysrKysrKytpZiAoISAkYXJn MCkKKysrKysrKysrK3NldCAkZGF0YSA9IChjaGFyICopICRzeW1fbmFtZS0+dS5zLmRhdGEKKysr KysrKysrK3NldCAkc3Ryc2l6ZSA9ICgkc3ltX25hbWUtPnUucy5zaXplX2J5dGUgPCAwKSA/ICgk c3ltX25hbWUtPnUucy5zaXplICYgfkFSUkFZX01BUktfRkxBRykgOiAkc3ltX25hbWUtPnUucy5z aXplX2J5dGUKKysrKysrKysrK2lmICRzdHJzaXplID09IDAKKysrKysrKysrKytvdXRwdXQgKCRz eW1fbmFtZS0+dS5zLnNpemUgPiAxMDAwKSA/IDAgOiAoJGRhdGFbMF0pQCgkc3Ryc2l6ZSkKImlm IisrKysrK3ByaW50ZiAiICgweCV4KVxuIiwgYmFja3RyYWNlX2FyZ3MgKCRidCkKICgweGZmZmZj MGUwKQorKysrK3NldCAkYnQgPSBiYWNrdHJhY2VfbmV4dCAoJGJ0KQorKysrK3NldCAkZnVuID0g YmFja3RyYWNlX2Z1bmN0aW9uICgkYnQpCisrKysreGdldHR5cGUgJGZ1bgorKysrKytpZiAoQ0hF Q0tfTElTUF9PQkpFQ1RfVFlQRSkKKysrKysrK3NldCAkYnVnZml4ID0gJGZ1bi5pCisrKysrK3Nl dCAkdHlwZSA9IChlbnVtIExpc3BfVHlwZSkgKFVTRV9MU0JfVEFHID8gKEVNQUNTX0lOVCkgJGJ1 Z2ZpeCAmICgxIDw8IEdDVFlQRUJJVFMpIC0gMSA6IChFTUFDU19VSU5UKSAkYnVnZml4ID4+IFZB TEJJVFMpCisrKysraWYgJHR5cGUgPT0gTGlzcF9TeW1ib2wKKysrKysreHByaW50c3ltICRmdW4K KysrKysrK3hzeW1uYW1lICRmdW4KKysrKysrKyt4Z2V0c3ltICRmdW4KKysrKysrKysreGdldHB0 ciAkZnVuCisrKysrKysrKytpZiAoQ0hFQ0tfTElTUF9PQkpFQ1RfVFlQRSkKKysrKysrKysrKytz ZXQgJGJ1Z2ZpeCA9ICRmdW4uaQorKysrKysrKysrc2V0ICRwdHIgPSAoRU1BQ1NfSU5UKSAkYnVn Zml4ICYgVkFMTUFTSworKysrKysrKytzZXQgJHB0ciA9ICgoc3RydWN0IExpc3BfU3ltYm9sICop ICgoY2hhciAqKSAmbGlzcHN5bSArICRwdHIpKQorKysrKysrK3NldCAkc3ltbmFtZSA9ICRwdHIt PnUucy5uYW1lCisrKysrKyt4Z2V0cHRyICRzeW1uYW1lCisrKysrKysraWYgKENIRUNLX0xJU1Bf T0JKRUNUX1RZUEUpCisrKysrKysrK3NldCAkYnVnZml4ID0gJHN5bW5hbWUuaQorKysrKysrK3Nl dCAkcHRyID0gKEVNQUNTX0lOVCkgJGJ1Z2ZpeCAmIFZBTE1BU0sKKysrKysrK2lmICRwdHIgIT0g MAorKysrKysrK3NldCAkc3ltX25hbWUgPSAoc3RydWN0IExpc3BfU3RyaW5nICopICRwdHIKKysr KysrKyt4cHJpbnRzdHIgJHN5bV9uYW1lCisrKysrKysrK2lmICghICRhcmcwKQorKysrKysrKysr c2V0ICRkYXRhID0gKGNoYXIgKikgJHN5bV9uYW1lLT51LnMuZGF0YQorKysrKysrKysrc2V0ICRz dHJzaXplID0gKCRzeW1fbmFtZS0+dS5zLnNpemVfYnl0ZSA8IDApID8gKCRzeW1fbmFtZS0+dS5z LnNpemUgJiB+QVJSQVlfTUFSS19GTEFHKSA6ICRzeW1fbmFtZS0+dS5zLnNpemVfYnl0ZQorKysr KysrKysraWYgJHN0cnNpemUgPT0gMAorKysrKysrKysrK291dHB1dCAoJHN5bV9uYW1lLT51LnMu c2l6ZSA+IDEwMDApID8gMCA6ICgkZGF0YVswXSlAKCRzdHJzaXplKQoibGV0KiIrKysrKytwcmlu dGYgIiAoMHgleClcbiIsIGJhY2t0cmFjZV9hcmdzICgkYnQpCiAoMHhmZmZmYzJhMCkKKysrKytz ZXQgJGJ0ID0gYmFja3RyYWNlX25leHQgKCRidCkKKysrKytzZXQgJGZ1biA9IGJhY2t0cmFjZV9m dW5jdGlvbiAoJGJ0KQorKysrK3hnZXR0eXBlICRmdW4KKysrKysraWYgKENIRUNLX0xJU1BfT0JK RUNUX1RZUEUpCisrKysrKytzZXQgJGJ1Z2ZpeCA9ICRmdW4uaQorKysrKytzZXQgJHR5cGUgPSAo ZW51bSBMaXNwX1R5cGUpIChVU0VfTFNCX1RBRyA/IChFTUFDU19JTlQpICRidWdmaXggJiAoMSA8 PCBHQ1RZUEVCSVRTKSAtIDEgOiAoRU1BQ1NfVUlOVCkgJGJ1Z2ZpeCA+PiBWQUxCSVRTKQorKysr K2lmICR0eXBlID09IExpc3BfU3ltYm9sCisrKysrK3hwcmludHN5bSAkZnVuCisrKysrKyt4c3lt bmFtZSAkZnVuCisrKysrKysreGdldHN5bSAkZnVuCisrKysrKysrK3hnZXRwdHIgJGZ1bgorKysr KysrKysraWYgKENIRUNLX0xJU1BfT0JKRUNUX1RZUEUpCisrKysrKysrKysrc2V0ICRidWdmaXgg PSAkZnVuLmkKKysrKysrKysrK3NldCAkcHRyID0gKEVNQUNTX0lOVCkgJGJ1Z2ZpeCAmIFZBTE1B U0sKKysrKysrKysrc2V0ICRwdHIgPSAoKHN0cnVjdCBMaXNwX1N5bWJvbCAqKSAoKGNoYXIgKikg Jmxpc3BzeW0gKyAkcHRyKSkKKysrKysrKytzZXQgJHN5bW5hbWUgPSAkcHRyLT51LnMubmFtZQor KysrKysreGdldHB0ciAkc3ltbmFtZQorKysrKysrK2lmIChDSEVDS19MSVNQX09CSkVDVF9UWVBF KQorKysrKysrKytzZXQgJGJ1Z2ZpeCA9ICRzeW1uYW1lLmkKKysrKysrKytzZXQgJHB0ciA9IChF TUFDU19JTlQpICRidWdmaXggJiBWQUxNQVNLCisrKysrKytpZiAkcHRyICE9IDAKKysrKysrKytz ZXQgJHN5bV9uYW1lID0gKHN0cnVjdCBMaXNwX1N0cmluZyAqKSAkcHRyCisrKysrKysreHByaW50 c3RyICRzeW1fbmFtZQorKysrKysrKytpZiAoISAkYXJnMCkKKysrKysrKysrK3NldCAkZGF0YSA9 IChjaGFyICopICRzeW1fbmFtZS0+dS5zLmRhdGEKKysrKysrKysrK3NldCAkc3Ryc2l6ZSA9ICgk c3ltX25hbWUtPnUucy5zaXplX2J5dGUgPCAwKSA/ICgkc3ltX25hbWUtPnUucy5zaXplICYgfkFS UkFZX01BUktfRkxBRykgOiAkc3ltX25hbWUtPnUucy5zaXplX2J5dGUKKysrKysrKysrK2lmICRz dHJzaXplID09IDAKKysrKysrKysrKytvdXRwdXQgKCRzeW1fbmFtZS0+dS5zLnNpemUgPiAxMDAw KSA/IDAgOiAoJGRhdGFbMF0pQCgkc3Ryc2l6ZSkKInByb2duIisrKysrK3ByaW50ZiAiICgweCV4 KVxuIiwgYmFja3RyYWNlX2FyZ3MgKCRidCkKICgweGZmZmZjM2YwKQorKysrK3NldCAkYnQgPSBi YWNrdHJhY2VfbmV4dCAoJGJ0KQorKysrK3NldCAkZnVuID0gYmFja3RyYWNlX2Z1bmN0aW9uICgk YnQpCisrKysreGdldHR5cGUgJGZ1bgorKysrKytpZiAoQ0hFQ0tfTElTUF9PQkpFQ1RfVFlQRSkK KysrKysrK3NldCAkYnVnZml4ID0gJGZ1bi5pCisrKysrK3NldCAkdHlwZSA9IChlbnVtIExpc3Bf VHlwZSkgKFVTRV9MU0JfVEFHID8gKEVNQUNTX0lOVCkgJGJ1Z2ZpeCAmICgxIDw8IEdDVFlQRUJJ VFMpIC0gMSA6IChFTUFDU19VSU5UKSAkYnVnZml4ID4+IFZBTEJJVFMpCisrKysraWYgJHR5cGUg PT0gTGlzcF9TeW1ib2wKKysrKysreHByaW50c3ltICRmdW4KKysrKysrK3hzeW1uYW1lICRmdW4K KysrKysrKyt4Z2V0c3ltICRmdW4KKysrKysrKysreGdldHB0ciAkZnVuCisrKysrKysrKytpZiAo Q0hFQ0tfTElTUF9PQkpFQ1RfVFlQRSkKKysrKysrKysrKytzZXQgJGJ1Z2ZpeCA9ICRmdW4uaQor KysrKysrKysrc2V0ICRwdHIgPSAoRU1BQ1NfSU5UKSAkYnVnZml4ICYgVkFMTUFTSworKysrKysr KytzZXQgJHB0ciA9ICgoc3RydWN0IExpc3BfU3ltYm9sICopICgoY2hhciAqKSAmbGlzcHN5bSAr ICRwdHIpKQorKysrKysrK3NldCAkc3ltbmFtZSA9ICRwdHItPnUucy5uYW1lCisrKysrKyt4Z2V0 cHRyICRzeW1uYW1lCisrKysrKysraWYgKENIRUNLX0xJU1BfT0JKRUNUX1RZUEUpCisrKysrKysr K3NldCAkYnVnZml4ID0gJHN5bW5hbWUuaQorKysrKysrK3NldCAkcHRyID0gKEVNQUNTX0lOVCkg JGJ1Z2ZpeCAmIFZBTE1BU0sKKysrKysrK2lmICRwdHIgIT0gMAorKysrKysrK3NldCAkc3ltX25h bWUgPSAoc3RydWN0IExpc3BfU3RyaW5nICopICRwdHIKKysrKysrKyt4cHJpbnRzdHIgJHN5bV9u YW1lCisrKysrKysrK2lmICghICRhcmcwKQorKysrKysrKysrc2V0ICRkYXRhID0gKGNoYXIgKikg JHN5bV9uYW1lLT51LnMuZGF0YQorKysrKysrKysrc2V0ICRzdHJzaXplID0gKCRzeW1fbmFtZS0+ dS5zLnNpemVfYnl0ZSA8IDApID8gKCRzeW1fbmFtZS0+dS5zLnNpemUgJiB+QVJSQVlfTUFSS19G TEFHKSA6ICRzeW1fbmFtZS0+dS5zLnNpemVfYnl0ZQorKysrKysrKysraWYgJHN0cnNpemUgPT0g MAorKysrKysrKysrK291dHB1dCAoJHN5bV9uYW1lLT51LnMuc2l6ZSA+IDEwMDApID8gMCA6ICgk ZGF0YVswXSlAKCRzdHJzaXplKQoidW53aW5kLXByb3RlY3QiKysrKysrcHJpbnRmICIgKDB4JXgp XG4iLCBiYWNrdHJhY2VfYXJncyAoJGJ0KQogKDB4ZmZmZmM1NDApCisrKysrc2V0ICRidCA9IGJh Y2t0cmFjZV9uZXh0ICgkYnQpCisrKysrc2V0ICRmdW4gPSBiYWNrdHJhY2VfZnVuY3Rpb24gKCRi dCkKKysrKyt4Z2V0dHlwZSAkZnVuCisrKysrK2lmIChDSEVDS19MSVNQX09CSkVDVF9UWVBFKQor KysrKysrc2V0ICRidWdmaXggPSAkZnVuLmkKKysrKysrc2V0ICR0eXBlID0gKGVudW0gTGlzcF9U eXBlKSAoVVNFX0xTQl9UQUcgPyAoRU1BQ1NfSU5UKSAkYnVnZml4ICYgKDEgPDwgR0NUWVBFQklU UykgLSAxIDogKEVNQUNTX1VJTlQpICRidWdmaXggPj4gVkFMQklUUykKKysrKytpZiAkdHlwZSA9 PSBMaXNwX1N5bWJvbAorKysrKyt4cHJpbnRzeW0gJGZ1bgorKysrKysreHN5bW5hbWUgJGZ1bgor KysrKysrK3hnZXRzeW0gJGZ1bgorKysrKysrKyt4Z2V0cHRyICRmdW4KKysrKysrKysrK2lmIChD SEVDS19MSVNQX09CSkVDVF9UWVBFKQorKysrKysrKysrK3NldCAkYnVnZml4ID0gJGZ1bi5pCisr KysrKysrKytzZXQgJHB0ciA9IChFTUFDU19JTlQpICRidWdmaXggJiBWQUxNQVNLCisrKysrKysr K3NldCAkcHRyID0gKChzdHJ1Y3QgTGlzcF9TeW1ib2wgKikgKChjaGFyICopICZsaXNwc3ltICsg JHB0cikpCisrKysrKysrc2V0ICRzeW1uYW1lID0gJHB0ci0+dS5zLm5hbWUKKysrKysrK3hnZXRw dHIgJHN5bW5hbWUKKysrKysrKytpZiAoQ0hFQ0tfTElTUF9PQkpFQ1RfVFlQRSkKKysrKysrKysr c2V0ICRidWdmaXggPSAkc3ltbmFtZS5pCisrKysrKysrc2V0ICRwdHIgPSAoRU1BQ1NfSU5UKSAk YnVnZml4ICYgVkFMTUFTSworKysrKysraWYgJHB0ciAhPSAwCisrKysrKysrc2V0ICRzeW1fbmFt ZSA9IChzdHJ1Y3QgTGlzcF9TdHJpbmcgKikgJHB0cgorKysrKysrK3hwcmludHN0ciAkc3ltX25h bWUKKysrKysrKysraWYgKCEgJGFyZzApCisrKysrKysrKytzZXQgJGRhdGEgPSAoY2hhciAqKSAk c3ltX25hbWUtPnUucy5kYXRhCisrKysrKysrKytzZXQgJHN0cnNpemUgPSAoJHN5bV9uYW1lLT51 LnMuc2l6ZV9ieXRlIDwgMCkgPyAoJHN5bV9uYW1lLT51LnMuc2l6ZSAmIH5BUlJBWV9NQVJLX0ZM QUcpIDogJHN5bV9uYW1lLT51LnMuc2l6ZV9ieXRlCisrKysrKysrKytpZiAkc3Ryc2l6ZSA9PSAw CisrKysrKysrKysrb3V0cHV0ICgkc3ltX25hbWUtPnUucy5zaXplID4gMTAwMCkgPyAwIDogKCRk YXRhWzBdKUAoJHN0cnNpemUpCiJsZXQiKysrKysrcHJpbnRmICIgKDB4JXgpXG4iLCBiYWNrdHJh Y2VfYXJncyAoJGJ0KQogKDB4ZmZmZmM3NTApCisrKysrc2V0ICRidCA9IGJhY2t0cmFjZV9uZXh0 ICgkYnQpCisrKysrc2V0ICRmdW4gPSBiYWNrdHJhY2VfZnVuY3Rpb24gKCRidCkKKysrKyt4Z2V0 dHlwZSAkZnVuCisrKysrK2lmIChDSEVDS19MSVNQX09CSkVDVF9UWVBFKQorKysrKysrc2V0ICRi dWdmaXggPSAkZnVuLmkKKysrKysrc2V0ICR0eXBlID0gKGVudW0gTGlzcF9UeXBlKSAoVVNFX0xT Ql9UQUcgPyAoRU1BQ1NfSU5UKSAkYnVnZml4ICYgKDEgPDwgR0NUWVBFQklUUykgLSAxIDogKEVN QUNTX1VJTlQpICRidWdmaXggPj4gVkFMQklUUykKKysrKytpZiAkdHlwZSA9PSBMaXNwX1N5bWJv bAorKysrKyt4cHJpbnRzeW0gJGZ1bgorKysrKysreHN5bW5hbWUgJGZ1bgorKysrKysrK3hnZXRz eW0gJGZ1bgorKysrKysrKyt4Z2V0cHRyICRmdW4KKysrKysrKysrK2lmIChDSEVDS19MSVNQX09C SkVDVF9UWVBFKQorKysrKysrKysrK3NldCAkYnVnZml4ID0gJGZ1bi5pCisrKysrKysrKytzZXQg JHB0ciA9IChFTUFDU19JTlQpICRidWdmaXggJiBWQUxNQVNLCisrKysrKysrK3NldCAkcHRyID0g KChzdHJ1Y3QgTGlzcF9TeW1ib2wgKikgKChjaGFyICopICZsaXNwc3ltICsgJHB0cikpCisrKysr Kysrc2V0ICRzeW1uYW1lID0gJHB0ci0+dS5zLm5hbWUKKysrKysrK3hnZXRwdHIgJHN5bW5hbWUK KysrKysrKytpZiAoQ0hFQ0tfTElTUF9PQkpFQ1RfVFlQRSkKKysrKysrKysrc2V0ICRidWdmaXgg PSAkc3ltbmFtZS5pCisrKysrKysrc2V0ICRwdHIgPSAoRU1BQ1NfSU5UKSAkYnVnZml4ICYgVkFM TUFTSworKysrKysraWYgJHB0ciAhPSAwCisrKysrKysrc2V0ICRzeW1fbmFtZSA9IChzdHJ1Y3Qg TGlzcF9TdHJpbmcgKikgJHB0cgorKysrKysrK3hwcmludHN0ciAkc3ltX25hbWUKKysrKysrKysr aWYgKCEgJGFyZzApCisrKysrKysrKytzZXQgJGRhdGEgPSAoY2hhciAqKSAkc3ltX25hbWUtPnUu cy5kYXRhCisrKysrKysrKytzZXQgJHN0cnNpemUgPSAoJHN5bV9uYW1lLT51LnMuc2l6ZV9ieXRl IDwgMCkgPyAoJHN5bV9uYW1lLT51LnMuc2l6ZSAmIH5BUlJBWV9NQVJLX0ZMQUcpIDogJHN5bV9u YW1lLT51LnMuc2l6ZV9ieXRlCisrKysrKysrKytpZiAkc3Ryc2l6ZSA9PSAwCisrKysrKysrKysr b3V0cHV0ICgkc3ltX25hbWUtPnUucy5zaXplID4gMTAwMCkgPyAwIDogKCRkYXRhWzBdKUAoJHN0 cnNpemUpCiJ1bndpbmQtcHJvdGVjdCIrKysrKytwcmludGYgIiAoMHgleClcbiIsIGJhY2t0cmFj ZV9hcmdzICgkYnQpCiAoMHhmZmZmYzhhMCkKKysrKytzZXQgJGJ0ID0gYmFja3RyYWNlX25leHQg KCRidCkKKysrKytzZXQgJGZ1biA9IGJhY2t0cmFjZV9mdW5jdGlvbiAoJGJ0KQorKysrK3hnZXR0 eXBlICRmdW4KKysrKysraWYgKENIRUNLX0xJU1BfT0JKRUNUX1RZUEUpCisrKysrKytzZXQgJGJ1 Z2ZpeCA9ICRmdW4uaQorKysrKytzZXQgJHR5cGUgPSAoZW51bSBMaXNwX1R5cGUpIChVU0VfTFNC X1RBRyA/IChFTUFDU19JTlQpICRidWdmaXggJiAoMSA8PCBHQ1RZUEVCSVRTKSAtIDEgOiAoRU1B Q1NfVUlOVCkgJGJ1Z2ZpeCA+PiBWQUxCSVRTKQorKysrK2lmICR0eXBlID09IExpc3BfU3ltYm9s CisrKysrK3hwcmludHN5bSAkZnVuCisrKysrKyt4c3ltbmFtZSAkZnVuCisrKysrKysreGdldHN5 bSAkZnVuCisrKysrKysrK3hnZXRwdHIgJGZ1bgorKysrKysrKysraWYgKENIRUNLX0xJU1BfT0JK RUNUX1RZUEUpCisrKysrKysrKysrc2V0ICRidWdmaXggPSAkZnVuLmkKKysrKysrKysrK3NldCAk cHRyID0gKEVNQUNTX0lOVCkgJGJ1Z2ZpeCAmIFZBTE1BU0sKKysrKysrKysrc2V0ICRwdHIgPSAo KHN0cnVjdCBMaXNwX1N5bWJvbCAqKSAoKGNoYXIgKikgJmxpc3BzeW0gKyAkcHRyKSkKKysrKysr KytzZXQgJHN5bW5hbWUgPSAkcHRyLT51LnMubmFtZQorKysrKysreGdldHB0ciAkc3ltbmFtZQor KysrKysrK2lmIChDSEVDS19MSVNQX09CSkVDVF9UWVBFKQorKysrKysrKytzZXQgJGJ1Z2ZpeCA9 ICRzeW1uYW1lLmkKKysrKysrKytzZXQgJHB0ciA9IChFTUFDU19JTlQpICRidWdmaXggJiBWQUxN QVNLCisrKysrKytpZiAkcHRyICE9IDAKKysrKysrKytzZXQgJHN5bV9uYW1lID0gKHN0cnVjdCBM aXNwX1N0cmluZyAqKSAkcHRyCisrKysrKysreHByaW50c3RyICRzeW1fbmFtZQorKysrKysrKytp ZiAoISAkYXJnMCkKKysrKysrKysrK3NldCAkZGF0YSA9IChjaGFyICopICRzeW1fbmFtZS0+dS5z LmRhdGEKKysrKysrKysrK3NldCAkc3Ryc2l6ZSA9ICgkc3ltX25hbWUtPnUucy5zaXplX2J5dGUg PCAwKSA/ICgkc3ltX25hbWUtPnUucy5zaXplICYgfkFSUkFZX01BUktfRkxBRykgOiAkc3ltX25h bWUtPnUucy5zaXplX2J5dGUKKysrKysrKysrK2lmICRzdHJzaXplID09IDAKKysrKysrKysrKytv dXRwdXQgKCRzeW1fbmFtZS0+dS5zLnNpemUgPiAxMDAwKSA/IDAgOiAoJGRhdGFbMF0pQCgkc3Ry c2l6ZSkKImxldCoiKysrKysrcHJpbnRmICIgKDB4JXgpXG4iLCBiYWNrdHJhY2VfYXJncyAoJGJ0 KQogKDB4ZmZmZmNhNjApCisrKysrc2V0ICRidCA9IGJhY2t0cmFjZV9uZXh0ICgkYnQpCisrKysr c2V0ICRmdW4gPSBiYWNrdHJhY2VfZnVuY3Rpb24gKCRidCkKKysrKyt4Z2V0dHlwZSAkZnVuCisr KysrK2lmIChDSEVDS19MSVNQX09CSkVDVF9UWVBFKQorKysrKysrc2V0ICRidWdmaXggPSAkZnVu LmkKKysrKysrc2V0ICR0eXBlID0gKGVudW0gTGlzcF9UeXBlKSAoVVNFX0xTQl9UQUcgPyAoRU1B Q1NfSU5UKSAkYnVnZml4ICYgKDEgPDwgR0NUWVBFQklUUykgLSAxIDogKEVNQUNTX1VJTlQpICRi dWdmaXggPj4gVkFMQklUUykKKysrKytpZiAkdHlwZSA9PSBMaXNwX1N5bWJvbAorKysrKyt4cHJp bnRzeW0gJGZ1bgorKysrKysreHN5bW5hbWUgJGZ1bgorKysrKysrK3hnZXRzeW0gJGZ1bgorKysr KysrKyt4Z2V0cHRyICRmdW4KKysrKysrKysrK2lmIChDSEVDS19MSVNQX09CSkVDVF9UWVBFKQor KysrKysrKysrK3NldCAkYnVnZml4ID0gJGZ1bi5pCisrKysrKysrKytzZXQgJHB0ciA9IChFTUFD U19JTlQpICRidWdmaXggJiBWQUxNQVNLCisrKysrKysrK3NldCAkcHRyID0gKChzdHJ1Y3QgTGlz cF9TeW1ib2wgKikgKChjaGFyICopICZsaXNwc3ltICsgJHB0cikpCisrKysrKysrc2V0ICRzeW1u YW1lID0gJHB0ci0+dS5zLm5hbWUKKysrKysrK3hnZXRwdHIgJHN5bW5hbWUKKysrKysrKytpZiAo Q0hFQ0tfTElTUF9PQkpFQ1RfVFlQRSkKKysrKysrKysrc2V0ICRidWdmaXggPSAkc3ltbmFtZS5p CisrKysrKysrc2V0ICRwdHIgPSAoRU1BQ1NfSU5UKSAkYnVnZml4ICYgVkFMTUFTSworKysrKysr aWYgJHB0ciAhPSAwCisrKysrKysrc2V0ICRzeW1fbmFtZSA9IChzdHJ1Y3QgTGlzcF9TdHJpbmcg KikgJHB0cgorKysrKysrK3hwcmludHN0ciAkc3ltX25hbWUKKysrKysrKysraWYgKCEgJGFyZzAp CisrKysrKysrKytzZXQgJGRhdGEgPSAoY2hhciAqKSAkc3ltX25hbWUtPnUucy5kYXRhCisrKysr KysrKytzZXQgJHN0cnNpemUgPSAoJHN5bV9uYW1lLT51LnMuc2l6ZV9ieXRlIDwgMCkgPyAoJHN5 bV9uYW1lLT51LnMuc2l6ZSAmIH5BUlJBWV9NQVJLX0ZMQUcpIDogJHN5bV9uYW1lLT51LnMuc2l6 ZV9ieXRlCisrKysrKysrKytpZiAkc3Ryc2l6ZSA9PSAwCisrKysrKysrKysrb3V0cHV0ICgkc3lt X25hbWUtPnUucy5zaXplID4gMTAwMCkgPyAwIDogKCRkYXRhWzBdKUAoJHN0cnNpemUpCiJwcm9n biIrKysrKytwcmludGYgIiAoMHgleClcbiIsIGJhY2t0cmFjZV9hcmdzICgkYnQpCiAoMHhmZmZm Y2JiMCkKKysrKytzZXQgJGJ0ID0gYmFja3RyYWNlX25leHQgKCRidCkKKysrKytzZXQgJGZ1biA9 IGJhY2t0cmFjZV9mdW5jdGlvbiAoJGJ0KQorKysrK3hnZXR0eXBlICRmdW4KKysrKysraWYgKENI RUNLX0xJU1BfT0JKRUNUX1RZUEUpCisrKysrKytzZXQgJGJ1Z2ZpeCA9ICRmdW4uaQorKysrKytz ZXQgJHR5cGUgPSAoZW51bSBMaXNwX1R5cGUpIChVU0VfTFNCX1RBRyA/IChFTUFDU19JTlQpICRi dWdmaXggJiAoMSA8PCBHQ1RZUEVCSVRTKSAtIDEgOiAoRU1BQ1NfVUlOVCkgJGJ1Z2ZpeCA+PiBW QUxCSVRTKQorKysrK2lmICR0eXBlID09IExpc3BfU3ltYm9sCisrKysrK3hwcmludHN5bSAkZnVu CisrKysrKyt4c3ltbmFtZSAkZnVuCisrKysrKysreGdldHN5bSAkZnVuCisrKysrKysrK3hnZXRw dHIgJGZ1bgorKysrKysrKysraWYgKENIRUNLX0xJU1BfT0JKRUNUX1RZUEUpCisrKysrKysrKysr c2V0ICRidWdmaXggPSAkZnVuLmkKKysrKysrKysrK3NldCAkcHRyID0gKEVNQUNTX0lOVCkgJGJ1 Z2ZpeCAmIFZBTE1BU0sKKysrKysrKysrc2V0ICRwdHIgPSAoKHN0cnVjdCBMaXNwX1N5bWJvbCAq KSAoKGNoYXIgKikgJmxpc3BzeW0gKyAkcHRyKSkKKysrKysrKytzZXQgJHN5bW5hbWUgPSAkcHRy LT51LnMubmFtZQorKysrKysreGdldHB0ciAkc3ltbmFtZQorKysrKysrK2lmIChDSEVDS19MSVNQ X09CSkVDVF9UWVBFKQorKysrKysrKytzZXQgJGJ1Z2ZpeCA9ICRzeW1uYW1lLmkKKysrKysrKytz ZXQgJHB0ciA9IChFTUFDU19JTlQpICRidWdmaXggJiBWQUxNQVNLCisrKysrKytpZiAkcHRyICE9 IDAKKysrKysrKytzZXQgJHN5bV9uYW1lID0gKHN0cnVjdCBMaXNwX1N0cmluZyAqKSAkcHRyCisr KysrKysreHByaW50c3RyICRzeW1fbmFtZQorKysrKysrKytpZiAoISAkYXJnMCkKKysrKysrKysr K3NldCAkZGF0YSA9IChjaGFyICopICRzeW1fbmFtZS0+dS5zLmRhdGEKKysrKysrKysrK3NldCAk c3Ryc2l6ZSA9ICgkc3ltX25hbWUtPnUucy5zaXplX2J5dGUgPCAwKSA/ICgkc3ltX25hbWUtPnUu cy5zaXplICYgfkFSUkFZX01BUktfRkxBRykgOiAkc3ltX25hbWUtPnUucy5zaXplX2J5dGUKKysr KysrKysrK2lmICRzdHJzaXplID09IDAKKysrKysrKysrKytvdXRwdXQgKCRzeW1fbmFtZS0+dS5z LnNpemUgPiAxMDAwKSA/IDAgOiAoJGRhdGFbMF0pQCgkc3Ryc2l6ZSkKInByb2duIisrKysrK3By aW50ZiAiICgweCV4KVxuIiwgYmFja3RyYWNlX2FyZ3MgKCRidCkKICgweGZmZmZjZDAwKQorKysr K3NldCAkYnQgPSBiYWNrdHJhY2VfbmV4dCAoJGJ0KQorKysrK3NldCAkZnVuID0gYmFja3RyYWNl X2Z1bmN0aW9uICgkYnQpCisrKysreGdldHR5cGUgJGZ1bgorKysrKytpZiAoQ0hFQ0tfTElTUF9P QkpFQ1RfVFlQRSkKKysrKysrK3NldCAkYnVnZml4ID0gJGZ1bi5pCisrKysrK3NldCAkdHlwZSA9 IChlbnVtIExpc3BfVHlwZSkgKFVTRV9MU0JfVEFHID8gKEVNQUNTX0lOVCkgJGJ1Z2ZpeCAmICgx IDw8IEdDVFlQRUJJVFMpIC0gMSA6IChFTUFDU19VSU5UKSAkYnVnZml4ID4+IFZBTEJJVFMpCisr KysraWYgJHR5cGUgPT0gTGlzcF9TeW1ib2wKKysrKysreHByaW50c3ltICRmdW4KKysrKysrK3hz eW1uYW1lICRmdW4KKysrKysrKyt4Z2V0c3ltICRmdW4KKysrKysrKysreGdldHB0ciAkZnVuCisr KysrKysrKytpZiAoQ0hFQ0tfTElTUF9PQkpFQ1RfVFlQRSkKKysrKysrKysrKytzZXQgJGJ1Z2Zp eCA9ICRmdW4uaQorKysrKysrKysrc2V0ICRwdHIgPSAoRU1BQ1NfSU5UKSAkYnVnZml4ICYgVkFM TUFTSworKysrKysrKytzZXQgJHB0ciA9ICgoc3RydWN0IExpc3BfU3ltYm9sICopICgoY2hhciAq KSAmbGlzcHN5bSArICRwdHIpKQorKysrKysrK3NldCAkc3ltbmFtZSA9ICRwdHItPnUucy5uYW1l CisrKysrKyt4Z2V0cHRyICRzeW1uYW1lCisrKysrKysraWYgKENIRUNLX0xJU1BfT0JKRUNUX1RZ UEUpCisrKysrKysrK3NldCAkYnVnZml4ID0gJHN5bW5hbWUuaQorKysrKysrK3NldCAkcHRyID0g KEVNQUNTX0lOVCkgJGJ1Z2ZpeCAmIFZBTE1BU0sKKysrKysrK2lmICRwdHIgIT0gMAorKysrKysr K3NldCAkc3ltX25hbWUgPSAoc3RydWN0IExpc3BfU3RyaW5nICopICRwdHIKKysrKysrKyt4cHJp bnRzdHIgJHN5bV9uYW1lCisrKysrKysrK2lmICghICRhcmcwKQorKysrKysrKysrc2V0ICRkYXRh ID0gKGNoYXIgKikgJHN5bV9uYW1lLT51LnMuZGF0YQorKysrKysrKysrc2V0ICRzdHJzaXplID0g KCRzeW1fbmFtZS0+dS5zLnNpemVfYnl0ZSA8IDApID8gKCRzeW1fbmFtZS0+dS5zLnNpemUgJiB+ QVJSQVlfTUFSS19GTEFHKSA6ICRzeW1fbmFtZS0+dS5zLnNpemVfYnl0ZQorKysrKysrKysraWYg JHN0cnNpemUgPT0gMAorKysrKysrKysrK291dHB1dCAoJHN5bV9uYW1lLT51LnMuc2l6ZSA+IDEw MDApID8gMCA6ICgkZGF0YVswXSlAKCRzdHJzaXplKQoibGV0KiIrKysrKytwcmludGYgIiAoMHgl eClcbiIsIGJhY2t0cmFjZV9hcmdzICgkYnQpCiAoMHhmZmZmY2VjMCkKKysrKytzZXQgJGJ0ID0g YmFja3RyYWNlX25leHQgKCRidCkKKysrKytzZXQgJGZ1biA9IGJhY2t0cmFjZV9mdW5jdGlvbiAo JGJ0KQorKysrK3hnZXR0eXBlICRmdW4KKysrKysraWYgKENIRUNLX0xJU1BfT0JKRUNUX1RZUEUp CisrKysrKytzZXQgJGJ1Z2ZpeCA9ICRmdW4uaQorKysrKytzZXQgJHR5cGUgPSAoZW51bSBMaXNw X1R5cGUpIChVU0VfTFNCX1RBRyA/IChFTUFDU19JTlQpICRidWdmaXggJiAoMSA8PCBHQ1RZUEVC SVRTKSAtIDEgOiAoRU1BQ1NfVUlOVCkgJGJ1Z2ZpeCA+PiBWQUxCSVRTKQorKysrK2lmICR0eXBl ID09IExpc3BfU3ltYm9sCisrKysrK3hwcmludHN5bSAkZnVuCisrKysrKyt4c3ltbmFtZSAkZnVu CisrKysrKysreGdldHN5bSAkZnVuCisrKysrKysrK3hnZXRwdHIgJGZ1bgorKysrKysrKysraWYg KENIRUNLX0xJU1BfT0JKRUNUX1RZUEUpCisrKysrKysrKysrc2V0ICRidWdmaXggPSAkZnVuLmkK KysrKysrKysrK3NldCAkcHRyID0gKEVNQUNTX0lOVCkgJGJ1Z2ZpeCAmIFZBTE1BU0sKKysrKysr Kysrc2V0ICRwdHIgPSAoKHN0cnVjdCBMaXNwX1N5bWJvbCAqKSAoKGNoYXIgKikgJmxpc3BzeW0g KyAkcHRyKSkKKysrKysrKytzZXQgJHN5bW5hbWUgPSAkcHRyLT51LnMubmFtZQorKysrKysreGdl dHB0ciAkc3ltbmFtZQorKysrKysrK2lmIChDSEVDS19MSVNQX09CSkVDVF9UWVBFKQorKysrKysr KytzZXQgJGJ1Z2ZpeCA9ICRzeW1uYW1lLmkKKysrKysrKytzZXQgJHB0ciA9IChFTUFDU19JTlQp ICRidWdmaXggJiBWQUxNQVNLCisrKysrKytpZiAkcHRyICE9IDAKKysrKysrKytzZXQgJHN5bV9u YW1lID0gKHN0cnVjdCBMaXNwX1N0cmluZyAqKSAkcHRyCisrKysrKysreHByaW50c3RyICRzeW1f bmFtZQorKysrKysrKytpZiAoISAkYXJnMCkKKysrKysrKysrK3NldCAkZGF0YSA9IChjaGFyICop ICRzeW1fbmFtZS0+dS5zLmRhdGEKKysrKysrKysrK3NldCAkc3Ryc2l6ZSA9ICgkc3ltX25hbWUt PnUucy5zaXplX2J5dGUgPCAwKSA/ICgkc3ltX25hbWUtPnUucy5zaXplICYgfkFSUkFZX01BUktf RkxBRykgOiAkc3ltX25hbWUtPnUucy5zaXplX2J5dGUKKysrKysrKysrK2lmICRzdHJzaXplID09 IDAKKysrKysrKysrKytvdXRwdXQgKCRzeW1fbmFtZS0+dS5zLnNpemUgPiAxMDAwKSA/IDAgOiAo JGRhdGFbMF0pQCgkc3Ryc2l6ZSkKIml2eS1yZWFkIisrKysrK3ByaW50ZiAiICgweCV4KVxuIiwg YmFja3RyYWNlX2FyZ3MgKCRidCkKICgweGZmZmZkMDAwKQorKysrK3NldCAkYnQgPSBiYWNrdHJh Y2VfbmV4dCAoJGJ0KQorKysrK3NldCAkZnVuID0gYmFja3RyYWNlX2Z1bmN0aW9uICgkYnQpCisr KysreGdldHR5cGUgJGZ1bgorKysrKytpZiAoQ0hFQ0tfTElTUF9PQkpFQ1RfVFlQRSkKKysrKysr K3NldCAkYnVnZml4ID0gJGZ1bi5pCisrKysrK3NldCAkdHlwZSA9IChlbnVtIExpc3BfVHlwZSkg KFVTRV9MU0JfVEFHID8gKEVNQUNTX0lOVCkgJGJ1Z2ZpeCAmICgxIDw8IEdDVFlQRUJJVFMpIC0g MSA6IChFTUFDU19VSU5UKSAkYnVnZml4ID4+IFZBTEJJVFMpCisrKysraWYgJHR5cGUgPT0gTGlz cF9TeW1ib2wKKysrKysreHByaW50c3ltICRmdW4KKysrKysrK3hzeW1uYW1lICRmdW4KKysrKysr Kyt4Z2V0c3ltICRmdW4KKysrKysrKysreGdldHB0ciAkZnVuCisrKysrKysrKytpZiAoQ0hFQ0tf TElTUF9PQkpFQ1RfVFlQRSkKKysrKysrKysrKytzZXQgJGJ1Z2ZpeCA9ICRmdW4uaQorKysrKysr Kysrc2V0ICRwdHIgPSAoRU1BQ1NfSU5UKSAkYnVnZml4ICYgVkFMTUFTSworKysrKysrKytzZXQg JHB0ciA9ICgoc3RydWN0IExpc3BfU3ltYm9sICopICgoY2hhciAqKSAmbGlzcHN5bSArICRwdHIp KQorKysrKysrK3NldCAkc3ltbmFtZSA9ICRwdHItPnUucy5uYW1lCisrKysrKyt4Z2V0cHRyICRz eW1uYW1lCisrKysrKysraWYgKENIRUNLX0xJU1BfT0JKRUNUX1RZUEUpCisrKysrKysrK3NldCAk YnVnZml4ID0gJHN5bW5hbWUuaQorKysrKysrK3NldCAkcHRyID0gKEVNQUNTX0lOVCkgJGJ1Z2Zp eCAmIFZBTE1BU0sKKysrKysrK2lmICRwdHIgIT0gMAorKysrKysrK3NldCAkc3ltX25hbWUgPSAo c3RydWN0IExpc3BfU3RyaW5nICopICRwdHIKKysrKysrKyt4cHJpbnRzdHIgJHN5bV9uYW1lCisr KysrKysrK2lmICghICRhcmcwKQorKysrKysrKysrc2V0ICRkYXRhID0gKGNoYXIgKikgJHN5bV9u YW1lLT51LnMuZGF0YQorKysrKysrKysrc2V0ICRzdHJzaXplID0gKCRzeW1fbmFtZS0+dS5zLnNp emVfYnl0ZSA8IDApID8gKCRzeW1fbmFtZS0+dS5zLnNpemUgJiB+QVJSQVlfTUFSS19GTEFHKSA6 ICRzeW1fbmFtZS0+dS5zLnNpemVfYnl0ZQorKysrKysrKysraWYgJHN0cnNpemUgPT0gMAorKysr KysrKysrK291dHB1dCAoJHN5bV9uYW1lLT51LnMuc2l6ZSA+IDEwMDApID8gMCA6ICgkZGF0YVsw XSlAKCRzdHJzaXplKQoiaXZ5LXN3aXRjaC1idWZmZXIiKysrKysrcHJpbnRmICIgKDB4JXgpXG4i LCBiYWNrdHJhY2VfYXJncyAoJGJ0KQogKDB4ZmZmZmQyYzApCisrKysrc2V0ICRidCA9IGJhY2t0 cmFjZV9uZXh0ICgkYnQpCisrKysrc2V0ICRmdW4gPSBiYWNrdHJhY2VfZnVuY3Rpb24gKCRidCkK KysrKyt4Z2V0dHlwZSAkZnVuCisrKysrK2lmIChDSEVDS19MSVNQX09CSkVDVF9UWVBFKQorKysr Kysrc2V0ICRidWdmaXggPSAkZnVuLmkKKysrKysrc2V0ICR0eXBlID0gKGVudW0gTGlzcF9UeXBl KSAoVVNFX0xTQl9UQUcgPyAoRU1BQ1NfSU5UKSAkYnVnZml4ICYgKDEgPDwgR0NUWVBFQklUUykg LSAxIDogKEVNQUNTX1VJTlQpICRidWdmaXggPj4gVkFMQklUUykKKysrKytpZiAkdHlwZSA9PSBM aXNwX1N5bWJvbAorKysrKyt4cHJpbnRzeW0gJGZ1bgorKysrKysreHN5bW5hbWUgJGZ1bgorKysr KysrK3hnZXRzeW0gJGZ1bgorKysrKysrKyt4Z2V0cHRyICRmdW4KKysrKysrKysrK2lmIChDSEVD S19MSVNQX09CSkVDVF9UWVBFKQorKysrKysrKysrK3NldCAkYnVnZml4ID0gJGZ1bi5pCisrKysr KysrKytzZXQgJHB0ciA9IChFTUFDU19JTlQpICRidWdmaXggJiBWQUxNQVNLCisrKysrKysrK3Nl dCAkcHRyID0gKChzdHJ1Y3QgTGlzcF9TeW1ib2wgKikgKChjaGFyICopICZsaXNwc3ltICsgJHB0 cikpCisrKysrKysrc2V0ICRzeW1uYW1lID0gJHB0ci0+dS5zLm5hbWUKKysrKysrK3hnZXRwdHIg JHN5bW5hbWUKKysrKysrKytpZiAoQ0hFQ0tfTElTUF9PQkpFQ1RfVFlQRSkKKysrKysrKysrc2V0 ICRidWdmaXggPSAkc3ltbmFtZS5pCisrKysrKysrc2V0ICRwdHIgPSAoRU1BQ1NfSU5UKSAkYnVn Zml4ICYgVkFMTUFTSworKysrKysraWYgJHB0ciAhPSAwCisrKysrKysrc2V0ICRzeW1fbmFtZSA9 IChzdHJ1Y3QgTGlzcF9TdHJpbmcgKikgJHB0cgorKysrKysrK3hwcmludHN0ciAkc3ltX25hbWUK KysrKysrKysraWYgKCEgJGFyZzApCisrKysrKysrKytzZXQgJGRhdGEgPSAoY2hhciAqKSAkc3lt X25hbWUtPnUucy5kYXRhCisrKysrKysrKytzZXQgJHN0cnNpemUgPSAoJHN5bV9uYW1lLT51LnMu c2l6ZV9ieXRlIDwgMCkgPyAoJHN5bV9uYW1lLT51LnMuc2l6ZSAmIH5BUlJBWV9NQVJLX0ZMQUcp IDogJHN5bV9uYW1lLT51LnMuc2l6ZV9ieXRlCisrKysrKysrKytpZiAkc3Ryc2l6ZSA9PSAwCisr KysrKysrKysrb3V0cHV0ICgkc3ltX25hbWUtPnUucy5zaXplID4gMTAwMCkgPyAwIDogKCRkYXRh WzBdKUAoJHN0cnNpemUpCiJsZXQiKysrKysrcHJpbnRmICIgKDB4JXgpXG4iLCBiYWNrdHJhY2Vf YXJncyAoJGJ0KQogKDB4ZmZmZmQ1ZjApCisrKysrc2V0ICRidCA9IGJhY2t0cmFjZV9uZXh0ICgk YnQpCisrKysrc2V0ICRmdW4gPSBiYWNrdHJhY2VfZnVuY3Rpb24gKCRidCkKKysrKyt4Z2V0dHlw ZSAkZnVuCisrKysrK2lmIChDSEVDS19MSVNQX09CSkVDVF9UWVBFKQorKysrKysrc2V0ICRidWdm aXggPSAkZnVuLmkKKysrKysrc2V0ICR0eXBlID0gKGVudW0gTGlzcF9UeXBlKSAoVVNFX0xTQl9U QUcgPyAoRU1BQ1NfSU5UKSAkYnVnZml4ICYgKDEgPDwgR0NUWVBFQklUUykgLSAxIDogKEVNQUNT X1VJTlQpICRidWdmaXggPj4gVkFMQklUUykKKysrKytpZiAkdHlwZSA9PSBMaXNwX1N5bWJvbAor KysrKyt4cHJpbnRzeW0gJGZ1bgorKysrKysreHN5bW5hbWUgJGZ1bgorKysrKysrK3hnZXRzeW0g JGZ1bgorKysrKysrKyt4Z2V0cHRyICRmdW4KKysrKysrKysrK2lmIChDSEVDS19MSVNQX09CSkVD VF9UWVBFKQorKysrKysrKysrK3NldCAkYnVnZml4ID0gJGZ1bi5pCisrKysrKysrKytzZXQgJHB0 ciA9IChFTUFDU19JTlQpICRidWdmaXggJiBWQUxNQVNLCisrKysrKysrK3NldCAkcHRyID0gKChz dHJ1Y3QgTGlzcF9TeW1ib2wgKikgKChjaGFyICopICZsaXNwc3ltICsgJHB0cikpCisrKysrKysr c2V0ICRzeW1uYW1lID0gJHB0ci0+dS5zLm5hbWUKKysrKysrK3hnZXRwdHIgJHN5bW5hbWUKKysr KysrKytpZiAoQ0hFQ0tfTElTUF9PQkpFQ1RfVFlQRSkKKysrKysrKysrc2V0ICRidWdmaXggPSAk c3ltbmFtZS5pCisrKysrKysrc2V0ICRwdHIgPSAoRU1BQ1NfSU5UKSAkYnVnZml4ICYgVkFMTUFT SworKysrKysraWYgJHB0ciAhPSAwCisrKysrKysrc2V0ICRzeW1fbmFtZSA9IChzdHJ1Y3QgTGlz cF9TdHJpbmcgKikgJHB0cgorKysrKysrK3hwcmludHN0ciAkc3ltX25hbWUKKysrKysrKysraWYg KCEgJGFyZzApCisrKysrKysrKytzZXQgJGRhdGEgPSAoY2hhciAqKSAkc3ltX25hbWUtPnUucy5k YXRhCisrKysrKysrKytzZXQgJHN0cnNpemUgPSAoJHN5bV9uYW1lLT51LnMuc2l6ZV9ieXRlIDwg MCkgPyAoJHN5bV9uYW1lLT51LnMuc2l6ZSAmIH5BUlJBWV9NQVJLX0ZMQUcpIDogJHN5bV9uYW1l LT51LnMuc2l6ZV9ieXRlCisrKysrKysrKytpZiAkc3Ryc2l6ZSA9PSAwCisrKysrKysrKysrb3V0 cHV0ICgkc3ltX25hbWUtPnUucy5zaXplID4gMTAwMCkgPyAwIDogKCRkYXRhWzBdKUAoJHN0cnNp emUpCiJjb3Vuc2VsLXN3aXRjaC1idWZmZXIiKysrKysrcHJpbnRmICIgKDB4JXgpXG4iLCBiYWNr dHJhY2VfYXJncyAoJGJ0KQogKDB4ZmZmZmRhMjApCisrKysrc2V0ICRidCA9IGJhY2t0cmFjZV9u ZXh0ICgkYnQpCisrKysrc2V0ICRmdW4gPSBiYWNrdHJhY2VfZnVuY3Rpb24gKCRidCkKKysrKyt4 Z2V0dHlwZSAkZnVuCisrKysrK2lmIChDSEVDS19MSVNQX09CSkVDVF9UWVBFKQorKysrKysrc2V0 ICRidWdmaXggPSAkZnVuLmkKKysrKysrc2V0ICR0eXBlID0gKGVudW0gTGlzcF9UeXBlKSAoVVNF X0xTQl9UQUcgPyAoRU1BQ1NfSU5UKSAkYnVnZml4ICYgKDEgPDwgR0NUWVBFQklUUykgLSAxIDog KEVNQUNTX1VJTlQpICRidWdmaXggPj4gVkFMQklUUykKKysrKytpZiAkdHlwZSA9PSBMaXNwX1N5 bWJvbAorKysrKyt4cHJpbnRzeW0gJGZ1bgorKysrKysreHN5bW5hbWUgJGZ1bgorKysrKysrK3hn ZXRzeW0gJGZ1bgorKysrKysrKyt4Z2V0cHRyICRmdW4KKysrKysrKysrK2lmIChDSEVDS19MSVNQ X09CSkVDVF9UWVBFKQorKysrKysrKysrK3NldCAkYnVnZml4ID0gJGZ1bi5pCisrKysrKysrKytz ZXQgJHB0ciA9IChFTUFDU19JTlQpICRidWdmaXggJiBWQUxNQVNLCisrKysrKysrK3NldCAkcHRy ID0gKChzdHJ1Y3QgTGlzcF9TeW1ib2wgKikgKChjaGFyICopICZsaXNwc3ltICsgJHB0cikpCisr KysrKysrc2V0ICRzeW1uYW1lID0gJHB0ci0+dS5zLm5hbWUKKysrKysrK3hnZXRwdHIgJHN5bW5h bWUKKysrKysrKytpZiAoQ0hFQ0tfTElTUF9PQkpFQ1RfVFlQRSkKKysrKysrKysrc2V0ICRidWdm aXggPSAkc3ltbmFtZS5pCisrKysrKysrc2V0ICRwdHIgPSAoRU1BQ1NfSU5UKSAkYnVnZml4ICYg VkFMTUFTSworKysrKysraWYgJHB0ciAhPSAwCisrKysrKysrc2V0ICRzeW1fbmFtZSA9IChzdHJ1 Y3QgTGlzcF9TdHJpbmcgKikgJHB0cgorKysrKysrK3hwcmludHN0ciAkc3ltX25hbWUKKysrKysr KysraWYgKCEgJGFyZzApCisrKysrKysrKytzZXQgJGRhdGEgPSAoY2hhciAqKSAkc3ltX25hbWUt PnUucy5kYXRhCisrKysrKysrKytzZXQgJHN0cnNpemUgPSAoJHN5bV9uYW1lLT51LnMuc2l6ZV9i eXRlIDwgMCkgPyAoJHN5bV9uYW1lLT51LnMuc2l6ZSAmIH5BUlJBWV9NQVJLX0ZMQUcpIDogJHN5 bV9uYW1lLT51LnMuc2l6ZV9ieXRlCisrKysrKysrKytpZiAkc3Ryc2l6ZSA9PSAwCisrKysrKysr Kysrb3V0cHV0ICgkc3ltX25hbWUtPnUucy5zaXplID4gMTAwMCkgPyAwIDogKCRkYXRhWzBdKUAo JHN0cnNpemUpCiJmdW5jYWxsLWludGVyYWN0aXZlbHkiKysrKysrcHJpbnRmICIgKDB4JXgpXG4i LCBiYWNrdHJhY2VfYXJncyAoJGJ0KQogKDB4ZmZmZmRhMTgpCisrKysrc2V0ICRidCA9IGJhY2t0 cmFjZV9uZXh0ICgkYnQpCisrKysrc2V0ICRmdW4gPSBiYWNrdHJhY2VfZnVuY3Rpb24gKCRidCkK KysrKyt4Z2V0dHlwZSAkZnVuCisrKysrK2lmIChDSEVDS19MSVNQX09CSkVDVF9UWVBFKQorKysr Kysrc2V0ICRidWdmaXggPSAkZnVuLmkKKysrKysrc2V0ICR0eXBlID0gKGVudW0gTGlzcF9UeXBl KSAoVVNFX0xTQl9UQUcgPyAoRU1BQ1NfSU5UKSAkYnVnZml4ICYgKDEgPDwgR0NUWVBFQklUUykg LSAxIDogKEVNQUNTX1VJTlQpICRidWdmaXggPj4gVkFMQklUUykKKysrKytpZiAkdHlwZSA9PSBM aXNwX1N5bWJvbAorKysrKyt4cHJpbnRzeW0gJGZ1bgorKysrKysreHN5bW5hbWUgJGZ1bgorKysr KysrK3hnZXRzeW0gJGZ1bgorKysrKysrKyt4Z2V0cHRyICRmdW4KKysrKysrKysrK2lmIChDSEVD S19MSVNQX09CSkVDVF9UWVBFKQorKysrKysrKysrK3NldCAkYnVnZml4ID0gJGZ1bi5pCisrKysr KysrKytzZXQgJHB0ciA9IChFTUFDU19JTlQpICRidWdmaXggJiBWQUxNQVNLCisrKysrKysrK3Nl dCAkcHRyID0gKChzdHJ1Y3QgTGlzcF9TeW1ib2wgKikgKChjaGFyICopICZsaXNwc3ltICsgJHB0 cikpCisrKysrKysrc2V0ICRzeW1uYW1lID0gJHB0ci0+dS5zLm5hbWUKKysrKysrK3hnZXRwdHIg JHN5bW5hbWUKKysrKysrKytpZiAoQ0hFQ0tfTElTUF9PQkpFQ1RfVFlQRSkKKysrKysrKysrc2V0 ICRidWdmaXggPSAkc3ltbmFtZS5pCisrKysrKysrc2V0ICRwdHIgPSAoRU1BQ1NfSU5UKSAkYnVn Zml4ICYgVkFMTUFTSworKysrKysraWYgJHB0ciAhPSAwCisrKysrKysrc2V0ICRzeW1fbmFtZSA9 IChzdHJ1Y3QgTGlzcF9TdHJpbmcgKikgJHB0cgorKysrKysrK3hwcmludHN0ciAkc3ltX25hbWUK KysrKysrKysraWYgKCEgJGFyZzApCisrKysrKysrKytzZXQgJGRhdGEgPSAoY2hhciAqKSAkc3lt X25hbWUtPnUucy5kYXRhCisrKysrKysrKytzZXQgJHN0cnNpemUgPSAoJHN5bV9uYW1lLT51LnMu c2l6ZV9ieXRlIDwgMCkgPyAoJHN5bV9uYW1lLT51LnMuc2l6ZSAmIH5BUlJBWV9NQVJLX0ZMQUcp IDogJHN5bV9uYW1lLT51LnMuc2l6ZV9ieXRlCisrKysrKysrKytpZiAkc3Ryc2l6ZSA9PSAwCisr KysrKysrKysrb3V0cHV0ICgkc3ltX25hbWUtPnUucy5zaXplID4gMTAwMCkgPyAwIDogKCRkYXRh WzBdKUAoJHN0cnNpemUpCiJjYWxsLWludGVyYWN0aXZlbHkiKysrKysrcHJpbnRmICIgKDB4JXgp XG4iLCBiYWNrdHJhY2VfYXJncyAoJGJ0KQogKDB4ZmZmZmRjZDApCisrKysrc2V0ICRidCA9IGJh Y2t0cmFjZV9uZXh0ICgkYnQpCisrKysrc2V0ICRmdW4gPSBiYWNrdHJhY2VfZnVuY3Rpb24gKCRi dCkKKysrKyt4Z2V0dHlwZSAkZnVuCisrKysrK2lmIChDSEVDS19MSVNQX09CSkVDVF9UWVBFKQor KysrKysrc2V0ICRidWdmaXggPSAkZnVuLmkKKysrKysrc2V0ICR0eXBlID0gKGVudW0gTGlzcF9U eXBlKSAoVVNFX0xTQl9UQUcgPyAoRU1BQ1NfSU5UKSAkYnVnZml4ICYgKDEgPDwgR0NUWVBFQklU UykgLSAxIDogKEVNQUNTX1VJTlQpICRidWdmaXggPj4gVkFMQklUUykKKysrKytpZiAkdHlwZSA9 PSBMaXNwX1N5bWJvbAorKysrKyt4cHJpbnRzeW0gJGZ1bgorKysrKysreHN5bW5hbWUgJGZ1bgor KysrKysrK3hnZXRzeW0gJGZ1bgorKysrKysrKyt4Z2V0cHRyICRmdW4KKysrKysrKysrK2lmIChD SEVDS19MSVNQX09CSkVDVF9UWVBFKQorKysrKysrKysrK3NldCAkYnVnZml4ID0gJGZ1bi5pCisr KysrKysrKytzZXQgJHB0ciA9IChFTUFDU19JTlQpICRidWdmaXggJiBWQUxNQVNLCisrKysrKysr K3NldCAkcHRyID0gKChzdHJ1Y3QgTGlzcF9TeW1ib2wgKikgKChjaGFyICopICZsaXNwc3ltICsg JHB0cikpCisrKysrKysrc2V0ICRzeW1uYW1lID0gJHB0ci0+dS5zLm5hbWUKKysrKysrK3hnZXRw dHIgJHN5bW5hbWUKKysrKysrKytpZiAoQ0hFQ0tfTElTUF9PQkpFQ1RfVFlQRSkKKysrKysrKysr c2V0ICRidWdmaXggPSAkc3ltbmFtZS5pCisrKysrKysrc2V0ICRwdHIgPSAoRU1BQ1NfSU5UKSAk YnVnZml4ICYgVkFMTUFTSworKysrKysraWYgJHB0ciAhPSAwCisrKysrKysrc2V0ICRzeW1fbmFt ZSA9IChzdHJ1Y3QgTGlzcF9TdHJpbmcgKikgJHB0cgorKysrKysrK3hwcmludHN0ciAkc3ltX25h bWUKKysrKysrKysraWYgKCEgJGFyZzApCisrKysrKysrKytzZXQgJGRhdGEgPSAoY2hhciAqKSAk c3ltX25hbWUtPnUucy5kYXRhCisrKysrKysrKytzZXQgJHN0cnNpemUgPSAoJHN5bV9uYW1lLT51 LnMuc2l6ZV9ieXRlIDwgMCkgPyAoJHN5bV9uYW1lLT51LnMuc2l6ZSAmIH5BUlJBWV9NQVJLX0ZM QUcpIDogJHN5bV9uYW1lLT51LnMuc2l6ZV9ieXRlCisrKysrKysrKytpZiAkc3Ryc2l6ZSA9PSAw CisrKysrKysrKysrb3V0cHV0ICgkc3ltX25hbWUtPnUucy5zaXplID4gMTAwMCkgPyAwIDogKCRk YXRhWzBdKUAoJHN0cnNpemUpCiJjb21tYW5kLWV4ZWN1dGUiKysrKysrcHJpbnRmICIgKDB4JXgp XG4iLCBiYWNrdHJhY2VfYXJncyAoJGJ0KQogKDB4ZmZmZmUyMzgpCisrKysrc2V0ICRidCA9IGJh Y2t0cmFjZV9uZXh0ICgkYnQpCitmIDMKIzMgIDB4MDAwMDU1NTU1NTc4MzA4MCBpbiBGYWN0aXZl X21pbmlidWZmZXJfd2luZG93ICgpIGF0IG1pbmlidWYuYzoyMzEKMjMxCSAgICBlbWFjc19hYm9y dCAoKTsKK2YgNAojNCAgMHgwMDAwNTU1NTU1ODEwYTZlIGluIGZ1bmNhbGxfc3ViciAoc3Vicj0w eDU1NTU1NWUwYzZjMCA8U2FjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdz4sIG51bWFyZ3M9MCwgYXJn cz0weDdmZmZmZmZmYWQ3MCkgYXQgZXZhbC5jOjMxMDkKMzEwOQkgICAgICAgICAgcmV0dXJuIChz dWJyLT5mdW5jdGlvbi5hMCAoKSk7CitmIDMKIzMgIDB4MDAwMDU1NTU1NTc4MzA4MCBpbiBGYWN0 aXZlX21pbmlidWZmZXJfd2luZG93ICgpIGF0IG1pbmlidWYuYzoyMzEKMjMxCSAgICBlbWFjc19h Ym9ydCAoKTsKK2wgLTEwCjIxNgkKMjE3CURFRlVOICgiYWN0aXZlLW1pbmlidWZmZXItd2luZG93 IiwgRmFjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdywKMjE4CSAgICAgICBTYWN0aXZlX21pbmlidWZm ZXJfd2luZG93LCAwLCAwLCAwLAoyMTkJICAgICAgIGRvYzogLyogUmV0dXJuIHRoZSBjdXJyZW50 bHkgYWN0aXZlIG1pbmlidWZmZXIgd2luZG93LCBvciBuaWwgaWYgbm9uZS4gICovKQoyMjAJICAg ICAodm9pZCkKMjIxCXsKMjIyCSAgTGlzcF9PYmplY3QgZnJhbWVzLCBmcmFtZTsKMjIzCSAgc3Ry dWN0IGZyYW1lICpmOwoyMjQJICBMaXNwX09iamVjdCBpbm5lcm1vc3RfTUI7CjIyNQkKK2wKMjI2 CSAgaWYgKCFtaW5pYnVmX2xldmVsKQoyMjcJICAgIHJldHVybiBRbmlsOwoyMjgJCjIyOQkgIGlu bmVybW9zdF9NQiA9IG50aF9taW5pYnVmZmVyIChtaW5pYnVmX2xldmVsKTsKMjMwCSAgaWYgKE5J TFAgKGlubmVybW9zdF9NQikpCjIzMQkgICAgZW1hY3NfYWJvcnQgKCk7CjIzMgkgIEZPUl9FQUNI X0ZSQU1FIChmcmFtZXMsIGZyYW1lKQoyMzMJICAgIHsKMjM0CSAgICAgIGYgPSBYRlJBTUUgKGZy YW1lKTsKMjM1CSAgICAgIGlmIChGUkFNRV9MSVZFX1AgKGYpCitwIGlubmVybW9zdF9NQgokMSA9 IFhJTCgwKQorcCBtaW5pYnVmX2xldmVsIAokMiA9IDEKK3BwIFZtaW5pYnVmZmVyX2xpc3QKKytz ZXQgJHRtcCA9IFZtaW5pYnVmZmVyX2xpc3QKKytzZXQgJG91dHB1dF9kZWJ1ZyA9IHByaW50X291 dHB1dF9kZWJ1Z19mbGFnCisrc2V0IHByaW50X291dHB1dF9kZWJ1Z19mbGFnID0gMAorK2NhbGwg c2FmZV9kZWJ1Z19wcmludCAoJHRtcCkKKytzZXQgcHJpbnRfb3V0cHV0X2RlYnVnX2ZsYWcgPSAk b3V0cHV0X2RlYnVnCitxdWl0Cg== --0000000000007b6df705c24d1323--