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: Tue, 11 May 2021 09:23:24 +0100 Message-ID: References: <87tunasd2u.fsf@linaro.org> <83fsyu57oj.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="00000000000050f94605c2099cf2" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="25361"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Alan Mackenzie , 48337@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue May 11 11:03:34 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 1lgOIf-0006QL-Hh for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 11 May 2021 11:03:33 +0200 Original-Received: from localhost ([::1]:40060 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lgOIe-0006A5-Hs for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 11 May 2021 05:03:32 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:37162) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lgNgR-00061U-1t for bug-gnu-emacs@gnu.org; Tue, 11 May 2021 04:24:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:51550) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lgNgQ-0006ai-MB for bug-gnu-emacs@gnu.org; Tue, 11 May 2021 04:24:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lgNgQ-0001aJ-Hu for bug-gnu-emacs@gnu.org; Tue, 11 May 2021 04:24: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: Tue, 11 May 2021 08:24: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.16207214286064 (code B ref 48337); Tue, 11 May 2021 08:24:02 +0000 Original-Received: (at 48337) by debbugs.gnu.org; 11 May 2021 08:23:48 +0000 Original-Received: from localhost ([127.0.0.1]:34863 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lgNgA-0001Zi-6Q for submit@debbugs.gnu.org; Tue, 11 May 2021 04:23:48 -0400 Original-Received: from mail-lf1-f50.google.com ([209.85.167.50]:35763) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lgNg6-0001ZO-Nm for 48337@debbugs.gnu.org; Tue, 11 May 2021 04:23:45 -0400 Original-Received: by mail-lf1-f50.google.com with SMTP id x19so27440055lfa.2 for <48337@debbugs.gnu.org>; Tue, 11 May 2021 01:23:42 -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=mBeMAQH96HEfsFC7CC0pXA+848BYtdclGwfrbX+WtCg=; b=qBnQXOxloO9M9c5zFaSU+n0QEZLz9TnSUj6zlZpxpGKolRFG+OWKz+5SAXd0WyaL78 Uh1EqYCdtCfLwfY/K8hE6tWaXaC+JpAH7JjO6b59nRdm2hB8Hid6R9DqfFMOARxPQy7n Cn8C8wVbfMZmC222wuJ6ppwhgmxDWY7I5TJXT29wTG6fF7JvXfCM5lq5dTKXNmuK4Nwg Vv0RbPtdkjpU5dMT3BP04e1vwGbL8ZTejKA7BcaQwE7rHusbz9wwjDubREoQUPhGe7eh LsAm5ITYBAobICZ2mpSZtpn8Ai6IEphKuLYl4hCDV8geA8Lb8QoBdvUNhMOdjjhUPFKB 7tSA== 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=mBeMAQH96HEfsFC7CC0pXA+848BYtdclGwfrbX+WtCg=; b=f8UM4sz2rmbJJ60CWUJkjvE+V6MX6kPHC+AXVLfOzJS1DwXkkwNlxwInEHRHafNdyX c1wfOJl5xXEVz9CGUGcuFoIa/rt8FzhRPZ+l75g8AFP8KJD2rmOsRVH8aON0XsesT3lD uwKpxmEyEDnBVso4nuj3Iuw7NwYwjUwYJqMzzm2mGmN+61k4BylXCVJ9baq3LYzABAnI nG0o9/zNPZHBN8/xRi76MSypYsCGXHkpl1cpgCOmwyCk3fQlWz5iX73KidEI+6Na6IIh NlPodNgCwAFkAYd7KHLmuyCs+7QMcUPRuxMKvroGLRlVxfTcMqSQk6YlRA+rAKOC2l48 8y+Q== X-Gm-Message-State: AOAM533Ok+v+tb6jcp6peTbksUngoum0Y247Lzs2oaWZ0qAtmlau08fF wA0GR8rXSRRi14Kyk6Vf9LpYrU2V3HNIirlETAgzHw== X-Google-Smtp-Source: ABdhPJxvW++gFlK1VMhO89TkUOkEZM82gACsUYpwTvGIprT2bf/Jn1QngJ3ZouoanhrOU1/xm5WM7wBkKOCXDpvW/4M= X-Received: by 2002:ac2:464b:: with SMTP id s11mr4904089lfo.189.1620721416587; Tue, 11 May 2021 01:23:36 -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:206206 Archived-At: --00000000000050f94605c2099cf2 Content-Type: multipart/alternative; boundary="00000000000050f94205c2099cf0" --00000000000050f94205c2099cf0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I tried noodling around in rr to get some more details but I'm a bit lost with how the C code iterates through the objects. It certainly looks like Fnthcdr just ends up with an empty value. Log attached: On Tue, 11 May 2021 at 07:51, Alex Benn=C3=A9e wro= te: > 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: > > (gdb) info frame 0 > Stack frame at 0x7fffffffb2e0: > rip =3D 0x5555556a80ef in Factive_minibuffer_window (minibuf.c:230); sav= ed > rip =3D 0x5555556f52ab > called by frame at 0x7fffffffb340 > source language c. > Arglist at 0x7fffffffb2c8, args: > Locals at 0x7fffffffb2c8, Previous frame's sp is 0x7fffffffb2e0 > Saved registers: > rip at 0x7fffffffb2d8 > (gdb) x/5i $pc > =3D> 0x5555556a80ef : mov > -0x3(%rax),%r10 > 0x5555556a80f3 : lea > -0x3(%rdx),%eax > 0x5555556a80f6 : test $0x7,%al > 0x5555556a80f8 : jne > 0x5555556a8153 > 0x5555556a80fa : nopw > 0x0(%rax,%rax,1) > (gdb) p/x $rax > $4 =3D 0x0 > (gdb) p/x $r10 > $5 =3D 0x7fffeece9c6d > (gdb) l > 225 Lisp_Object innermost_MB; > 226 > 227 if (!minibuf_level) > 228 return Qnil; > 229 > 230 innermost_MB =3D nth_minibuffer (minibuf_level); > 231 FOR_EACH_FRAME (frames, frame) > 232 { > 233 f =3D XFRAME (frame); > 234 if (FRAME_LIVE_P (f) > (gdb) p minibuf_level > $6 =3D 2 > (gdb) p Vminibuffer_list > $7 =3D (Lisp_Object) 0x555555c9aca3 > (gdb) p $* > A syntax error in expression, near `'. > (gdb) p *$ > $8 =3D > (gdb) > > Let me know if you want something else. > > On Tue, 11 May 2021 at 03:24, Eli Zaretskii wrote: > >> > From: Alex Benn=C3=A9e >> > Date: Mon, 10 May 2021 20:30:58 +0100 >> > Cc: Alan Mackenzie >> > >> > It seems my mail client left this in the sent folder but never actuall= y >> sent it: >> > >> > I haven't been able to find a reproduction as the bug hits fairly >> > randomly hence I'm running in my normal init.el heavy environment. >> > That said there shouldn't be anything in lisp that could cause a >> > segfault in the core C code. >> > >> > This only started happening this week after a recent update from >> > master (I update every Monday). The only change I could see that mig= ht >> > be related was f608b4b93 (Prevent the selected window being a dead >> > mini-window when switching frames). >> > >> > Unfortunately no symbols. However both core dumps so far have seen t= he >> > same null XCAR being called from nth_minibuffer: >> > >> > #0 0x00007f4384f585cb in raise (sig=3Dsig@entry=3D11) at >> ../sysdeps/unix/sysv/linux/raise.c:50 >> > set =3D {__val =3D {18446744067266837247, 0 }} >> > pid =3D >> > tid =3D >> > #1 0x000055b6738bf530 in terminate_due_to_signal (sig=3Dsig@entry= =3D11, >> > backtrace_limit=3Dbacktrace_limit@entry=3D40) at emacs.c:437 >> > #2 0x000055b6738bf97d in handle_fatal_signal (sig=3Dsig@entry=3D11)= at >> sysdep.c:1762 >> > #3 0x000055b6739b8ca8 in deliver_thread_signal (sig=3Dsig@entry=3D1= 1, >> handler=3D0x55b6738bf972 >> > ) at sysdep.c:1754 >> > #4 0x000055b6739b8d29 in deliver_fatal_thread_signal (sig=3D11) at >> sysdep.c:1867 >> > fatal =3D >> > #5 0x000055b6739b8d29 in handle_sigsegv (sig=3D11, siginfo=3D> out>, arg=3D) at >> > sysdep.c:1867 >> > fatal =3D >> > #6 0x00007f4384f58730 in () at >> /lib/x86_64-linux-gnu/libpthread.so.0 >> > #7 0x000055b6739ce0ef in XCAR (c=3D0x0) at lisp.h:1420 >> > tail =3D 0x0 >> > frames =3D >> > frame =3D >> > f =3D >> > innermost_MB =3D >> > #8 0x000055b6739ce0ef in nth_minibuffer (depth=3D) a= t >> minibuf.c:972 >> > tail =3D 0x0 >> > frames =3D >> > frame =3D >> > f =3D >> > innermost_MB =3D >> >> Please show the Lisp value of Vminibuffer_list. >> > > > -- > Alex Benn=C3=A9e > KVM/QEMU Hacker for Linaro > --=20 Alex Benn=C3=A9e KVM/QEMU Hacker for Linaro --00000000000050f94205c2099cf0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I tried noodling around in rr to get some more detail= s but I'm a bit lost with how the C code iterates through the objects. = It certainly looks like Fnthcdr just ends up with an empty value.

Log attached:



=
On Tue, 11= May 2021 at 07:51, Alex Benn=C3=A9e <alex.bennee@linaro.org> wrote:
I can now recreate at w= ill with a magit sequence (l o hackbox/ TAB) which triggers a minibuffer re= -size to accommodate the list of git branches:

(gd= b) info frame 0
Stack frame at 0x7fffffffb2e0:
=C2=A0rip =3D 0x555555= 6a80ef in Factive_minibuffer_window (minibuf.c:230); saved rip =3D 0x555555= 6f52ab
=C2=A0called by frame at 0x7fffffffb340
=C2=A0source language = c.
=C2=A0Arglist at 0x7fffffffb2c8, args:
=C2=A0Locals at 0x7fffffffb= 2c8, Previous frame's sp is 0x7fffffffb2e0
=C2=A0Saved registers:=C2=A0 rip at 0x7fffffffb2d8
(gdb) x/5i $pc
=3D> 0x5555556a80ef &= lt;Factive_minibuffer_window+79>: =C2=A0 =C2=A0 =C2=A0 mov =C2=A0 =C2=A0= -0x3(%rax),%r10
=C2=A0 =C2=A00x5555556a80f3 <Factive_minibuffer_windo= w+83>: =C2=A0 =C2=A0 =C2=A0 lea =C2=A0 =C2=A0-0x3(%rdx),%eax
=C2=A0 = =C2=A00x5555556a80f6 <Factive_minibuffer_window+86>: =C2=A0 =C2=A0 = =C2=A0 test =C2=A0 $0x7,%al
=C2=A0 =C2=A00x5555556a80f8 <Factive_mini= buffer_window+88>: =C2=A0 =C2=A0 =C2=A0 jne =C2=A0 =C2=A00x5555556a8153 = <Factive_minibuffer_window+179>
=C2=A0 =C2=A00x5555556a80fa <Fa= ctive_minibuffer_window+90>: =C2=A0 =C2=A0 =C2=A0 nopw =C2=A0 0x0(%rax,%= rax,1)
(gdb) p/x $rax
$4 =3D 0x0
(gdb) p/x $r10
$5 =3D 0x7fffee= ce9c6d
(gdb) l
225 =C2=A0 =C2=A0 =C2=A0 Lisp_Object innermost_MB;
= 226
227 =C2=A0 =C2=A0 =C2=A0 if (!minibuf_level)
228 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 return Qnil;
229
230 =C2=A0 =C2=A0 =C2=A0 innermost_MB = =3D nth_minibuffer (minibuf_level);
231 =C2=A0 =C2=A0 =C2=A0 FOR_EACH_FR= AME (frames, frame)
232 =C2=A0 =C2=A0 =C2=A0 =C2=A0 {
233 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 f =3D XFRAME (frame);
234 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 if (FRAME_LIVE_P (f)
(gdb) p minibuf_level
$6 =3D 2
= (gdb) p Vminibuffer_list
$7 =3D (Lisp_Object) 0x555555c9aca3
(gdb) p = $*
A syntax error in expression, near `'.
(gdb) p *$
$8 =3D &l= t;incomplete type>
(gdb)

Let me know if you = want something else.

On Tue, 11 May 2021 at 03:24, Eli Zaretskii &= lt;eliz@gnu.org> w= rote:
> From:= Alex Benn=C3=A9e <alex.bennee@linaro.org>
> Date: Mon, 10 May 2021 20:30:58 +0100
> Cc: Alan Mackenzie <acm@muc.de>
>
> It seems my mail client left this in the sent folder but never actuall= y sent it:
>
>=C2=A0 =C2=A0I haven't been able to find a reproduction as the bug = hits fairly
>=C2=A0 =C2=A0randomly hence I'm running in my normal init.el heavy = environment.
>=C2=A0 =C2=A0That said there shouldn't be anything in lisp that cou= ld cause a
>=C2=A0 =C2=A0segfault in the core C code.
>
>=C2=A0 =C2=A0This only started happening this week after a recent updat= e from
>=C2=A0 =C2=A0master (I update every Monday). The only change I could se= e that might
>=C2=A0 =C2=A0be related was f608b4b93 (Prevent the selected window bein= g a dead
>=C2=A0 =C2=A0mini-window when switching frames).
>
>=C2=A0 =C2=A0Unfortunately no symbols. However both core dumps so far h= ave seen the
>=C2=A0 =C2=A0same null XCAR being called from nth_minibuffer:
>
>=C2=A0 =C2=A0#0=C2=A0 0x00007f4384f585cb in raise (sig=3Dsig@entry=3D11= ) at ../sysdeps/unix/sysv/linux/raise.c:50
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0set =3D {__val =3D {1844674406= 7266837247, 0 <repeats 15 times>}}
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pid =3D <optimized out><= br> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0tid =3D <optimized out><= br> >=C2=A0 =C2=A0#1=C2=A0 0x000055b6738bf530 in terminate_due_to_signal (si= g=3Dsig@entry=3D11,
> backtrace_limit=3Dbacktrace_limit@entry=3D40) at emacs.c:437
>=C2=A0 =C2=A0#2=C2=A0 0x000055b6738bf97d in handle_fatal_signal (sig=3D= sig@entry=3D11) at sysdep.c:1762
>=C2=A0 =C2=A0#3=C2=A0 0x000055b6739b8ca8 in deliver_thread_signal (sig= =3Dsig@entry=3D11, handler=3D0x55b6738bf972
> <handle_fatal_signal>) at sysdep.c:1754
>=C2=A0 =C2=A0#4=C2=A0 0x000055b6739b8d29 in deliver_fatal_thread_signal= (sig=3D11) at sysdep.c:1867
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0fatal =3D <optimized out>= ;
>=C2=A0 =C2=A0#5=C2=A0 0x000055b6739b8d29 in handle_sigsegv (sig=3D11, s= iginfo=3D<optimized out>, arg=3D<optimized out>) at
> sysdep.c:1867
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0fatal =3D <optimized out>= ;
>=C2=A0 =C2=A0#6=C2=A0 0x00007f4384f58730 in <signal handler called&g= t; () at /lib/x86_64-linux-gnu/libpthread.so.0
>=C2=A0 =C2=A0#7=C2=A0 0x000055b6739ce0ef in XCAR (c=3D0x0) at lisp.h:14= 20
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0tail =3D 0x0
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0frames =3D <optimized out&g= t;
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0frame =3D <optimized out>= ;
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0f =3D <optimized out> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0innermost_MB =3D <optimized= out>
>=C2=A0 =C2=A0#8=C2=A0 0x000055b6739ce0ef in nth_minibuffer (depth=3D<= ;optimized out>) at minibuf.c:972
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0tail =3D 0x0
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0frames =3D <optimized out&g= t;
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0frame =3D <optimized out>= ;
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0f =3D <optimized out> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0innermost_MB =3D <optimized= out>

Please show the Lisp value of Vminibuffer_list.


--
Alex Benn= =C3=A9e
KVM/QEMU Hacker for Linaro


--
Alex Benn=C3=A9e
KVM/QEMU Hacker for Linaro
--00000000000050f94205c2099cf0-- --00000000000050f94605c2099cf2 Content-Type: text/plain; charset="US-ASCII"; name="rr.txt" Content-Disposition: attachment; filename="rr.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kojrodhi0 QSBzeW50YXggZXJyb3IgaW4gZXhwcmVzc2lvbiwgbmVhciBgLnggJHJheCcuCiQxID0gMHgwCk5v IHN5bWJvbCAiYWN0aXZlX21pbmlidWZmZXJfd2luZG93IiBpbiBjdXJyZW50IGNvbnRleHQuCkR1 bXAgb2YgYXNzZW1ibGVyIGNvZGUgZm9yIGZ1bmN0aW9uIEZhY3RpdmVfbWluaWJ1ZmZlcl93aW5k b3c6CiAgIDB4MDAwMDU2NDRiYjk4OTBhMCA8KzA+Ogltb3YgICAgMHg1MWYxZjkoJXJpcCksJXJk eCAgICAgICAgIyAweDU2NDRiYmVhODJhMCA8bWluaWJ1Zl9sZXZlbD4KICAgMHgwMDAwNTY0NGJi OTg5MGE3IDwrNz46CXhvciAgICAlZWF4LCVlYXgKICAgMHgwMDAwNTY0NGJiOTg5MGE5IDwrOT46 CXRlc3QgICAlcmR4LCVyZHgKICAgMHgwMDAwNTY0NGJiOTg5MGFjIDwrMTI+OglqZSAgICAgMHg1 NjQ0YmI5ODkxNjAgPEZhY3RpdmVfbWluaWJ1ZmZlcl93aW5kb3crMTkyPgogICAweDAwMDA1NjQ0 YmI5ODkwYjIgPCsxOD46CXN1YiAgICAkMHg4LCVyc3AKICAgMHgwMDAwNTY0NGJiOTg5MGI2IDwr MjI+Ogltb3YgICAgMHg1MWYxZjMoJXJpcCksJXJzaSAgICAgICAgIyAweDU2NDRiYmVhODJiMCA8 Vm1pbmlidWZmZXJfbGlzdD4KICAgMHgwMDAwNTY0NGJiOTg5MGJkIDwrMjk+OglsZWEgICAgMHgy KCwlcmR4LDQpLCVyZGkKICAgMHgwMDAwNTY0NGJiOTg5MGM1IDwrMzc+OgljYWxscSAgMHg1NjQ0 YmI5ZGRmOTAgPEZudGhjZHI+CiAgIDB4MDAwMDU2NDRiYjk4OTBjYSA8KzQyPjoJbW92ICAgIDB4 NGJjZDdmKCVyaXApLCVyZHggICAgICAgICMgMHg1NjQ0YmJlNDVlNTAgPFZmcmFtZV9saXN0Pgog ICAweDAwMDA1NjQ0YmI5ODkwZDEgPCs0OT46CW1vdmFicyAkMHg0MDAwMDAwMDNmMDAwMDAwLCVy c2kKICAgMHgwMDAwNTY0NGJiOTg5MGRiIDwrNTk+Ogltb3ZhYnMgJDB4NDAwMDAwMDAwYTAwMDAw MCwlcmRpCiAgIDB4MDAwMDU2NDRiYjk4OTBlNSA8KzY5PjoJbW92YWJzICQweDQwMDAwMDAwMGMw MDAwMDAsJXI5Cj0+IDB4MDAwMDU2NDRiYjk4OTBlZiA8Kzc5PjoJbW92ICAgIC0weDMoJXJheCks JXIxMAogICAweDAwMDA1NjQ0YmI5ODkwZjMgPCs4Mz46CWxlYSAgICAtMHgzKCVyZHgpLCVlYXgK ICAgMHgwMDAwNTY0NGJiOTg5MGY2IDwrODY+Ogl0ZXN0ICAgJDB4NywlYWwKICAgMHgwMDAwNTY0 NGJiOTg5MGY4IDwrODg+OglqbmUgICAgMHg1NjQ0YmI5ODkxNTMgPEZhY3RpdmVfbWluaWJ1ZmZl cl93aW5kb3crMTc5PgogICAweDAwMDA1NjQ0YmI5ODkwZmEgPCs5MD46CW5vcHcgICAweDAoJXJh eCwlcmF4LDEpCiAgIDB4MDAwMDU2NDRiYjk4OTEwMCA8Kzk2PjoJbW92ICAgIC0weDMoJXJkeCks JXJheAogICAweDAwMDA1NjQ0YmI5ODkxMDQgPCsxMDA+OgljbXBxICAgJDB4MCwweDFlYiglcmF4 KQogICAweDAwMDA1NjQ0YmI5ODkxMGMgPCsxMDg+OglqZSAgICAgMHg1NjQ0YmI5ODkxNDggPEZh Y3RpdmVfbWluaWJ1ZmZlcl93aW5kb3crMTY4PgogICAweDAwMDA1NjQ0YmI5ODkxMGUgPCsxMTA+ Ogltb3YgICAgMHg0MyglcmF4KSwlcmF4CiAgIDB4MDAwMDU2NDRiYjk4OTExMiA8KzExND46CWxl YSAgICAtMHg1KCVyYXgpLCVlY3gKICAgMHgwMDAwNTY0NGJiOTg5MTE1IDwrMTE3PjoJYW5kICAg ICQweDcsJWVjeAogICAweDAwMDA1NjQ0YmI5ODkxMTggPCsxMjA+OglqbmUgICAgMHg1NjQ0YmI5 ODkxNDggPEZhY3RpdmVfbWluaWJ1ZmZlcl93aW5kb3crMTY4PgogICAweDAwMDA1NjQ0YmI5ODkx MWEgPCsxMjI+Ogltb3YgICAgLTB4NSglcmF4KSwlcmN4CiAgIDB4MDAwMDU2NDRiYjk4OTExZSA8 KzEyNj46CWFuZCAgICAlcnNpLCVyY3gKICAgMHgwMDAwNTY0NGJiOTg5MTIxIDwrMTI5PjoJY21w ICAgICVyZGksJXJjeAogICAweDAwMDA1NjQ0YmI5ODkxMjQgPCsxMzI+OglqbmUgICAgMHg1NjQ0 YmI5ODkxNDggPEZhY3RpdmVfbWluaWJ1ZmZlcl93aW5kb3crMTY4PgogICAweDAwMDA1NjQ0YmI5 ODkxMjYgPCsxMzQ+Ogltb3YgICAgMHg0YiglcmF4KSwlcmN4CiAgIDB4MDAwMDU2NDRiYjk4OTEy YSA8KzEzOD46CWxlYSAgICAtMHg1KCVyY3gpLCVyOGQKICAgMHgwMDAwNTY0NGJiOTg5MTJlIDwr MTQyPjoJYW5kICAgICQweDcsJXI4ZAogICAweDAwMDA1NjQ0YmI5ODkxMzIgPCsxNDY+OglqbmUg ICAgMHg1NjQ0YmI5ODkxNDggPEZhY3RpdmVfbWluaWJ1ZmZlcl93aW5kb3crMTY4PgogICAweDAw MDA1NjQ0YmI5ODkxMzQgPCsxNDg+Ogltb3YgICAgLTB4NSglcmN4KSwlcjgKICAgMHgwMDAwNTY0 NGJiOTg5MTM4IDwrMTUyPjoJYW5kICAgICVyc2ksJXI4CiAgIDB4MDAwMDU2NDRiYjk4OTEzYiA8 KzE1NT46CWNtcCAgICAlcjksJXI4CiAgIDB4MDAwMDU2NDRiYjk4OTEzZSA8KzE1OD46CWpuZSAg ICAweDU2NDRiYjk4OTE0OCA8RmFjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdysxNjg+CiAgIDB4MDAw MDU2NDRiYjk4OTE0MCA8KzE2MD46CWNtcCAgICAlcmN4LCVyMTAKICAgMHgwMDAwNTY0NGJiOTg5 MTQzIDwrMTYzPjoJamUgICAgIDB4NTY0NGJiOTg5MTVhIDxGYWN0aXZlX21pbmlidWZmZXJfd2lu ZG93KzE4Nj4KICAgMHgwMDAwNTY0NGJiOTg5MTQ1IDwrMTY1PjoJbm9wbCAgICglcmF4KQogICAw eDAwMDA1NjQ0YmI5ODkxNDggPCsxNjg+Ogltb3YgICAgMHg1KCVyZHgpLCVyZHgKICAgMHgwMDAw NTY0NGJiOTg5MTRjIDwrMTcyPjoJbGVhICAgIC0weDMoJXJkeCksJWVheAogICAweDAwMDA1NjQ0 YmI5ODkxNGYgPCsxNzU+Ogl0ZXN0ICAgJDB4NywlYWwKICAgMHgwMDAwNTY0NGJiOTg5MTUxIDwr MTc3PjoJamUgICAgIDB4NTY0NGJiOTg5MTAwIDxGYWN0aXZlX21pbmlidWZmZXJfd2luZG93Kzk2 PgogICAweDAwMDA1NjQ0YmI5ODkxNTMgPCsxNzk+Ogltb3YgICAgMHg0YmUzMjYoJXJpcCksJXJh eCAgICAgICAgIyAweDU2NDRiYmU0NzQ4MCA8bWluaWJ1Zl93aW5kb3c+CiAgIDB4MDAwMDU2NDRi Yjk4OTE1YSA8KzE4Nj46CWFkZCAgICAkMHg4LCVyc3AKICAgMHgwMDAwNTY0NGJiOTg5MTVlIDwr MTkwPjoJcmV0cSAgIAogICAweDAwMDA1NjQ0YmI5ODkxNWYgPCsxOTE+Oglub3AKICAgMHgwMDAw NTY0NGJiOTg5MTYwIDwrMTkyPjoJcmV0cSAgIApFbmQgb2YgYXNzZW1ibGVyIGR1bXAuCkhhcmR3 YXJlIGFzc2lzdGVkIGJyZWFrcG9pbnQgMSBhdCAweDU2NDRiYjk4OTBhMDogZmlsZSBtaW5pYnVm LmMsIGxpbmUgMjI3LgpDb250aW51aW5nLgoKVGhyZWFkIDEgcmVjZWl2ZWQgc2lnbmFsIFNJR1NF R1YsIFNlZ21lbnRhdGlvbiBmYXVsdC4KRmFjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdyAoKSBhdCBt aW5pYnVmLmM6MjMwCjIzMAkgIGlubmVybW9zdF9NQiA9IG50aF9taW5pYnVmZmVyIChtaW5pYnVm X2xldmVsKTsKQ29udGludWluZy4KClRocmVhZCAxIGhpdCBCcmVha3BvaW50IDEsIEZhY3RpdmVf bWluaWJ1ZmZlcl93aW5kb3cgKCkgYXQgbWluaWJ1Zi5jOjIyNwoyMjcJICBpZiAoIW1pbmlidWZf bGV2ZWwpCjIyMgl7CjIyMwkgIExpc3BfT2JqZWN0IGZyYW1lcywgZnJhbWU7CjIyNAkgIHN0cnVj dCBmcmFtZSAqZjsKMjI1CSAgTGlzcF9PYmplY3QgaW5uZXJtb3N0X01COwoyMjYJCjIyNwkgIGlm ICghbWluaWJ1Zl9sZXZlbCkKMjI4CSAgICByZXR1cm4gUW5pbDsKMjI5CQoyMzAJICBpbm5lcm1v c3RfTUIgPSBudGhfbWluaWJ1ZmZlciAobWluaWJ1Zl9sZXZlbCk7CjIzMQkgIEZPUl9FQUNIX0ZS QU1FIChmcmFtZXMsIGZyYW1lKQpmcmFtZXMgPSA8b3B0aW1pemVkIG91dD4KZnJhbWUgPSA8b3B0 aW1pemVkIG91dD4KZiA9IDxvcHRpbWl6ZWQgb3V0Pgppbm5lcm1vc3RfTUIgPSA8b3B0aW1pemVk IG91dD4KJDIgPSAweDU2NDRiYjk4OTBhMAo9PiAweDU2NDRiYjk4OTBhMCA8RmFjdGl2ZV9taW5p YnVmZmVyX3dpbmRvdz46CW1vdiAgICAweDUxZjFmOSglcmlwKSwlcmR4ICAgICAgICAjIDB4NTY0 NGJiZWE4MmEwIDxtaW5pYnVmX2xldmVsPgogICAweDU2NDRiYjk4OTBhNyA8RmFjdGl2ZV9taW5p YnVmZmVyX3dpbmRvdys3PjoJeG9yICAgICVlYXgsJWVheAogICAweDU2NDRiYjk4OTBhOSA8RmFj dGl2ZV9taW5pYnVmZmVyX3dpbmRvdys5PjoJdGVzdCAgICVyZHgsJXJkeAogICAweDU2NDRiYjk4 OTBhYyA8RmFjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdysxMj46CWplICAgICAweDU2NDRiYjk4OTE2 MCA8RmFjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdysxOTI+CiAgIDB4NTY0NGJiOTg5MGIyIDxGYWN0 aXZlX21pbmlidWZmZXJfd2luZG93KzE4PjoJc3ViICAgICQweDgsJXJzcAogICAweDU2NDRiYjk4 OTBiNiA8RmFjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdysyMj46CW1vdiAgICAweDUxZjFmMyglcmlw KSwlcnNpICAgICAgICAjIDB4NTY0NGJiZWE4MmIwIDxWbWluaWJ1ZmZlcl9saXN0PgogICAweDU2 NDRiYjk4OTBiZCA8RmFjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdysyOT46CWxlYSAgICAweDIoLCVy ZHgsNCksJXJkaQogICAweDU2NDRiYjk4OTBjNSA8RmFjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdysz Nz46CWNhbGxxICAweDU2NDRiYjlkZGY5MCA8Rm50aGNkcj4KICAgMHg1NjQ0YmI5ODkwY2EgPEZh Y3RpdmVfbWluaWJ1ZmZlcl93aW5kb3crNDI+Ogltb3YgICAgMHg0YmNkN2YoJXJpcCksJXJkeCAg ICAgICAgIyAweDU2NDRiYmU0NWU1MCA8VmZyYW1lX2xpc3Q+CiAgIDB4NTY0NGJiOTg5MGQxIDxG YWN0aXZlX21pbmlidWZmZXJfd2luZG93KzQ5PjoJbW92YWJzICQweDQwMDAwMDAwM2YwMDAwMDAs JXJzaQogICAweDU2NDRiYjk4OTBkYiA8RmFjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdys1OT46CW1v dmFicyAkMHg0MDAwMDAwMDBhMDAwMDAwLCVyZGkKICAgMHg1NjQ0YmI5ODkwZTUgPEZhY3RpdmVf bWluaWJ1ZmZlcl93aW5kb3crNjk+Ogltb3ZhYnMgJDB4NDAwMDAwMDAwYzAwMDAwMCwlcjkKICAg MHg1NjQ0YmI5ODkwZWYgPEZhY3RpdmVfbWluaWJ1ZmZlcl93aW5kb3crNzk+Ogltb3YgICAgLTB4 MyglcmF4KSwlcjEwCiAgIDB4NTY0NGJiOTg5MGYzIDxGYWN0aXZlX21pbmlidWZmZXJfd2luZG93 KzgzPjoJbGVhICAgIC0weDMoJXJkeCksJWVheAogICAweDU2NDRiYjk4OTBmNiA8RmFjdGl2ZV9t aW5pYnVmZmVyX3dpbmRvdys4Nj46CXRlc3QgICAkMHg3LCVhbAogICAweDU2NDRiYjk4OTBmOCA8 RmFjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdys4OD46CWpuZSAgICAweDU2NDRiYjk4OTE1MyA8RmFj dGl2ZV9taW5pYnVmZmVyX3dpbmRvdysxNzk+CiAgIDB4NTY0NGJiOTg5MGZhIDxGYWN0aXZlX21p bmlidWZmZXJfd2luZG93KzkwPjoJbm9wdyAgIDB4MCglcmF4LCVyYXgsMSkKICAgMHg1NjQ0YmI5 ODkxMDAgPEZhY3RpdmVfbWluaWJ1ZmZlcl93aW5kb3crOTY+Ogltb3YgICAgLTB4MyglcmR4KSwl cmF4CiAgIDB4NTY0NGJiOTg5MTA0IDxGYWN0aXZlX21pbmlidWZmZXJfd2luZG93KzEwMD46CWNt cHEgICAkMHgwLDB4MWViKCVyYXgpCiAgIDB4NTY0NGJiOTg5MTBjIDxGYWN0aXZlX21pbmlidWZm ZXJfd2luZG93KzEwOD46CWplICAgICAweDU2NDRiYjk4OTE0OCA8RmFjdGl2ZV9taW5pYnVmZmVy X3dpbmRvdysxNjg+CjB4MDAwMDU2NDRiYjk4OTBhNwkyMjcJICBpZiAoIW1pbmlidWZfbGV2ZWwp Cj0+IDB4NTY0NGJiOTg5MGE3IDxGYWN0aXZlX21pbmlidWZmZXJfd2luZG93Kzc+Ogl4b3IgICAg JWVheCwlZWF4CiAgIDB4NTY0NGJiOTg5MGE5IDxGYWN0aXZlX21pbmlidWZmZXJfd2luZG93Kzk+ Ogl0ZXN0ICAgJXJkeCwlcmR4CiAgIDB4NTY0NGJiOTg5MGFjIDxGYWN0aXZlX21pbmlidWZmZXJf d2luZG93KzEyPjoJamUgICAgIDB4NTY0NGJiOTg5MTYwIDxGYWN0aXZlX21pbmlidWZmZXJfd2lu ZG93KzE5Mj4KMHgwMDAwNTY0NGJiOTg5MGE5CTIyNwkgIGlmICghbWluaWJ1Zl9sZXZlbCkKPT4g MHg1NjQ0YmI5ODkwYTkgPEZhY3RpdmVfbWluaWJ1ZmZlcl93aW5kb3crOT46CXRlc3QgICAlcmR4 LCVyZHgKICAgMHg1NjQ0YmI5ODkwYWMgPEZhY3RpdmVfbWluaWJ1ZmZlcl93aW5kb3crMTI+Oglq ZSAgICAgMHg1NjQ0YmI5ODkxNjAgPEZhY3RpdmVfbWluaWJ1ZmZlcl93aW5kb3crMTkyPgogICAw eDU2NDRiYjk4OTBiMiA8RmFjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdysxOD46CXN1YiAgICAkMHg4 LCVyc3AKMHgwMDAwNTY0NGJiOTg5MGFjCTIyNwkgIGlmICghbWluaWJ1Zl9sZXZlbCkKPT4gMHg1 NjQ0YmI5ODkwYWMgPEZhY3RpdmVfbWluaWJ1ZmZlcl93aW5kb3crMTI+OglqZSAgICAgMHg1NjQ0 YmI5ODkxNjAgPEZhY3RpdmVfbWluaWJ1ZmZlcl93aW5kb3crMTkyPgogICAweDU2NDRiYjk4OTBi MiA8RmFjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdysxOD46CXN1YiAgICAkMHg4LCVyc3AKICAgMHg1 NjQ0YmI5ODkwYjYgPEZhY3RpdmVfbWluaWJ1ZmZlcl93aW5kb3crMjI+Ogltb3YgICAgMHg1MWYx ZjMoJXJpcCksJXJzaSAgICAgICAgIyAweDU2NDRiYmVhODJiMCA8Vm1pbmlidWZmZXJfbGlzdD4K MTEyNAkgIHJldHVybiBsaXNwX2hfbWFrZV9maXhudW1fd3JhcCAobik7Cj0+IDB4NTY0NGJiOTg5 MGIyIDxGYWN0aXZlX21pbmlidWZmZXJfd2luZG93KzE4PjoJc3ViICAgICQweDgsJXJzcAogICAw eDU2NDRiYjk4OTBiNiA8RmFjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdysyMj46CW1vdiAgICAweDUx ZjFmMyglcmlwKSwlcnNpICAgICAgICAjIDB4NTY0NGJiZWE4MmIwIDxWbWluaWJ1ZmZlcl9saXN0 PgogICAweDU2NDRiYjk4OTBiZCA8RmFjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdysyOT46CWxlYSAg ICAweDIoLCVyZHgsNCksJXJkaQoweDAwMDA1NjQ0YmI5ODkwYjYgaW4gbnRoX21pbmlidWZmZXIg KGRlcHRoPTIpIGF0IGxpc3AuaDoxMTI0CjExMjQJICByZXR1cm4gbGlzcF9oX21ha2VfZml4bnVt X3dyYXAgKG4pOwo9PiAweDU2NDRiYjk4OTBiNiA8RmFjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdysy Mj46CW1vdiAgICAweDUxZjFmMyglcmlwKSwlcnNpICAgICAgICAjIDB4NTY0NGJiZWE4MmIwIDxW bWluaWJ1ZmZlcl9saXN0PgogICAweDU2NDRiYjk4OTBiZCA8RmFjdGl2ZV9taW5pYnVmZmVyX3dp bmRvdysyOT46CWxlYSAgICAweDIoLCVyZHgsNCksJXJkaQogICAweDU2NDRiYjk4OTBjNSA8RmFj dGl2ZV9taW5pYnVmZmVyX3dpbmRvdyszNz46CWNhbGxxICAweDU2NDRiYjlkZGY5MCA8Rm50aGNk cj4KMHgwMDAwNTY0NGJiOTg5MGJkIGluIG1ha2VfZml4bnVtIChuPTxvcHRpbWl6ZWQgb3V0Pikg YXQgbGlzcC5oOjExMjQKMTEyNAkgIHJldHVybiBsaXNwX2hfbWFrZV9maXhudW1fd3JhcCAobik7 Cj0+IDB4NTY0NGJiOTg5MGJkIDxGYWN0aXZlX21pbmlidWZmZXJfd2luZG93KzI5PjoJbGVhICAg IDB4MigsJXJkeCw0KSwlcmRpCiAgIDB4NTY0NGJiOTg5MGM1IDxGYWN0aXZlX21pbmlidWZmZXJf d2luZG93KzM3PjoJY2FsbHEgIDB4NTY0NGJiOWRkZjkwIDxGbnRoY2RyPgogICAweDU2NDRiYjk4 OTBjYSA8RmFjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdys0Mj46CW1vdiAgICAweDRiY2Q3Ziglcmlw KSwlcmR4ICAgICAgICAjIDB4NTY0NGJiZTQ1ZTUwIDxWZnJhbWVfbGlzdD4KMHgwMDAwNTY0NGJi OTg5MGM1IGluIG50aF9taW5pYnVmZmVyIChkZXB0aD0yKSBhdCBsaXNwLmg6MTEyNAoxMTI0CSAg cmV0dXJuIGxpc3BfaF9tYWtlX2ZpeG51bV93cmFwIChuKTsKPT4gMHg1NjQ0YmI5ODkwYzUgPEZh Y3RpdmVfbWluaWJ1ZmZlcl93aW5kb3crMzc+OgljYWxscSAgMHg1NjQ0YmI5ZGRmOTAgPEZudGhj ZHI+CiAgIDB4NTY0NGJiOTg5MGNhIDxGYWN0aXZlX21pbmlidWZmZXJfd2luZG93KzQyPjoJbW92 ICAgIDB4NGJjZDdmKCVyaXApLCVyZHggICAgICAgICMgMHg1NjQ0YmJlNDVlNTAgPFZmcmFtZV9s aXN0PgogICAweDU2NDRiYjk4OTBkMSA8RmFjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdys0OT46CW1v dmFicyAkMHg0MDAwMDAwMDNmMDAwMDAwLCVyc2kKRm50aGNkciAobj0weGEsIGxpc3Q9MHg1NjQ0 YmQyMjhjYTMpIGF0IGxpc3AuaDoyOTg1CjI5ODUJICBDSEVDS19UWVBFIChJTlRFR0VSUCAoeCks IFFudW1iZXJwLCB4KTsKPT4gMHg1NjQ0YmI5ZGRmOTAgPEZudGhjZHI+OglwdXNoICAgJXIxNQog ICAweDU2NDRiYjlkZGY5MiA8Rm50aGNkcisyPjoJbGVhICAgIC0weDIoJXJkaSksJXIxNWQKICAg MHg1NjQ0YmI5ZGRmOTYgPEZudGhjZHIrNj46CXB1c2ggICAlcjE0CjB4MDAwMDU2NDRiYjlkZGY5 MiBpbiBGSVhOVU1QICh4PTxvcHRpbWl6ZWQgb3V0PikgYXQgbGlzcC5oOjI5ODUKMjk4NQkgIENI RUNLX1RZUEUgKElOVEVHRVJQICh4KSwgUW51bWJlcnAsIHgpOwo9PiAweDU2NDRiYjlkZGY5MiA8 Rm50aGNkcisyPjoJbGVhICAgIC0weDIoJXJkaSksJXIxNWQKICAgMHg1NjQ0YmI5ZGRmOTYgPEZu dGhjZHIrNj46CXB1c2ggICAlcjE0CiAgIDB4NTY0NGJiOWRkZjk4IDxGbnRoY2RyKzg+OglwdXNo ICAgJXIxMwokMyA9IDxvcHRpbWl6ZWQgb3V0PgoweDAwMDA1NjQ0YmI5ZGRmOTYgaW4gRm50aGNk ciAobj0weGEsIGxpc3Q9MHg1NjQ0YmQyMjhjYTMpIGF0IGxpc3AuaDoyOTg1CjI5ODUJICBDSEVD S19UWVBFIChJTlRFR0VSUCAoeCksIFFudW1iZXJwLCB4KTsKPT4gMHg1NjQ0YmI5ZGRmOTYgPEZu dGhjZHIrNj46CXB1c2ggICAlcjE0CiAgIDB4NTY0NGJiOWRkZjk4IDxGbnRoY2RyKzg+OglwdXNo ICAgJXIxMwogICAweDU2NDRiYjlkZGY5YSA8Rm50aGNkcisxMD46CXB1c2ggICAlcjEyCjB4MDAw MDU2NDRiYjlkZGY5OAkyOTg1CSAgQ0hFQ0tfVFlQRSAoSU5URUdFUlAgKHgpLCBRbnVtYmVycCwg eCk7Cj0+IDB4NTY0NGJiOWRkZjk4IDxGbnRoY2RyKzg+OglwdXNoICAgJXIxMwogICAweDU2NDRi YjlkZGY5YSA8Rm50aGNkcisxMD46CXB1c2ggICAlcjEyCiAgIDB4NTY0NGJiOWRkZjljIDxGbnRo Y2RyKzEyPjoJcHVzaCAgICVyYnAKMHgwMDAwNTY0NGJiOWRkZjlhCTI5ODUJICBDSEVDS19UWVBF IChJTlRFR0VSUCAoeCksIFFudW1iZXJwLCB4KTsKPT4gMHg1NjQ0YmI5ZGRmOWEgPEZudGhjZHIr MTA+OglwdXNoICAgJXIxMgogICAweDU2NDRiYjlkZGY5YyA8Rm50aGNkcisxMj46CXB1c2ggICAl cmJwCiAgIDB4NTY0NGJiOWRkZjlkIDxGbnRoY2RyKzEzPjoJcHVzaCAgICVyYngKMHgwMDAwNTY0 NGJiOWRkZjljCTI5ODUJICBDSEVDS19UWVBFIChJTlRFR0VSUCAoeCksIFFudW1iZXJwLCB4KTsK PT4gMHg1NjQ0YmI5ZGRmOWMgPEZudGhjZHIrMTI+OglwdXNoICAgJXJicAogICAweDU2NDRiYjlk ZGY5ZCA8Rm50aGNkcisxMz46CXB1c2ggICAlcmJ4CiAgIDB4NTY0NGJiOWRkZjllIDxGbnRoY2Ry KzE0PjoJc3ViICAgICQweDM4LCVyc3AKMHgwMDAwNTY0NGJiOWRkZjlkCTI5ODUJICBDSEVDS19U WVBFIChJTlRFR0VSUCAoeCksIFFudW1iZXJwLCB4KTsKPT4gMHg1NjQ0YmI5ZGRmOWQgPEZudGhj ZHIrMTM+OglwdXNoICAgJXJieAogICAweDU2NDRiYjlkZGY5ZSA8Rm50aGNkcisxND46CXN1YiAg ICAkMHgzOCwlcnNwCiAgIDB4NTY0NGJiOWRkZmEyIDxGbnRoY2RyKzE4PjoJYW5kICAgICQweDMs JXIxNWQKMHgwMDAwNTY0NGJiOWRkZjllCTI5ODUJICBDSEVDS19UWVBFIChJTlRFR0VSUCAoeCks IFFudW1iZXJwLCB4KTsKPT4gMHg1NjQ0YmI5ZGRmOWUgPEZudGhjZHIrMTQ+OglzdWIgICAgJDB4 MzgsJXJzcAogICAweDU2NDRiYjlkZGZhMiA8Rm50aGNkcisxOD46CWFuZCAgICAkMHgzLCVyMTVk CiAgIDB4NTY0NGJiOWRkZmE2IDxGbnRoY2RyKzIyPjoJbW92ICAgICVyMTVkLDB4MmMoJXJzcCkK MHgwMDAwNTY0NGJiOWRkZmEyIGluIElOVEVHRVJQICh4PTB4YSkgYXQgbGlzcC5oOjI5ODUKMjk4 NQkgIENIRUNLX1RZUEUgKElOVEVHRVJQICh4KSwgUW51bWJlcnAsIHgpOwo9PiAweDU2NDRiYjlk ZGZhMiA8Rm50aGNkcisxOD46CWFuZCAgICAkMHgzLCVyMTVkCiAgIDB4NTY0NGJiOWRkZmE2IDxG bnRoY2RyKzIyPjoJbW92ICAgICVyMTVkLDB4MmMoJXJzcCkKICAgMHg1NjQ0YmI5ZGRmYWIgPEZu dGhjZHIrMjc+OglqZSAgICAgMHg1NjQ0YmI5ZGUxMTggPEZudGhjZHIrMzkyPgoweDAwMDA1NjQ0 YmI5ZGRmYTYJMjk4NQkgIENIRUNLX1RZUEUgKElOVEVHRVJQICh4KSwgUW51bWJlcnAsIHgpOwo9 PiAweDU2NDRiYjlkZGZhNiA8Rm50aGNkcisyMj46CW1vdiAgICAlcjE1ZCwweDJjKCVyc3ApCiAg IDB4NTY0NGJiOWRkZmFiIDxGbnRoY2RyKzI3PjoJamUgICAgIDB4NTY0NGJiOWRlMTE4IDxGbnRo Y2RyKzM5Mj4KICAgMHg1NjQ0YmI5ZGRmYjEgPEZudGhjZHIrMzM+OglsZWEgICAgLTB4NSglcmRp KSwlZWF4CjB4MDAwMDU2NDRiYjlkZGZhYgkyOTg1CSAgQ0hFQ0tfVFlQRSAoSU5URUdFUlAgKHgp LCBRbnVtYmVycCwgeCk7Cj0+IDB4NTY0NGJiOWRkZmFiIDxGbnRoY2RyKzI3PjoJamUgICAgIDB4 NTY0NGJiOWRlMTE4IDxGbnRoY2RyKzM5Mj4KICAgMHg1NjQ0YmI5ZGRmYjEgPEZudGhjZHIrMzM+ OglsZWEgICAgLTB4NSglcmRpKSwlZWF4CiAgIDB4NTY0NGJiOWRkZmI0IDxGbnRoY2RyKzM2PjoJ dGVzdCAgICQweDcsJWFsClhGSVhOVU1fUkFXIChhPTB4YSkgYXQgbGlzcC5oOjEyMDkKMTIwOQkg IHJldHVybiBYRklYTlVNX1JBVyAoYSk7Cj0+IDB4NTY0NGJiOWRlMTE4IDxGbnRoY2RyKzM5Mj46 CW1vdiAgICAlcmRpLCVyMTMKICAgMHg1NjQ0YmI5ZGUxMWIgPEZudGhjZHIrMzk1PjoJc2FyICAg ICQweDIsJXIxMwogICAweDU2NDRiYjlkZTExZiA8Rm50aGNkciszOTk+OgljbXAgICAgJDB4N2Ys JXIxMwoweDAwMDA1NjQ0YmI5ZGUxMWIJMTIwOQkgIHJldHVybiBYRklYTlVNX1JBVyAoYSk7Cj0+ IDB4NTY0NGJiOWRlMTFiIDxGbnRoY2RyKzM5NT46CXNhciAgICAkMHgyLCVyMTMKICAgMHg1NjQ0 YmI5ZGUxMWYgPEZudGhjZHIrMzk5PjoJY21wICAgICQweDdmLCVyMTMKICAgMHg1NjQ0YmI5ZGUx MjMgPEZudGhjZHIrNDAzPjoJamcgICAgIDB4NTY0NGJiOWRkZmZhIDxGbnRoY2RyKzEwNj4KRm50 aGNkciAobj0weGEsIGxpc3Q9MHg1NjQ0YmQyMjhjYTMpIGF0IGZucy5jOjE1NDIKMTU0MgkgICAg ICBpZiAobnVtIDw9IFNNQUxMX0xJU1RfTEVOX01BWCkKPT4gMHg1NjQ0YmI5ZGUxMWYgPEZudGhj ZHIrMzk5PjoJY21wICAgICQweDdmLCVyMTMKICAgMHg1NjQ0YmI5ZGUxMjMgPEZudGhjZHIrNDAz PjoJamcgICAgIDB4NTY0NGJiOWRkZmZhIDxGbnRoY2RyKzEwNj4KICAgMHg1NjQ0YmI5ZGUxMjkg PEZudGhjZHIrNDA5PjoJdGVzdCAgICVyMTMsJXIxMwoweDAwMDA1NjQ0YmI5ZGUxMjMJMTU0Mgkg ICAgICBpZiAobnVtIDw9IFNNQUxMX0xJU1RfTEVOX01BWCkKPT4gMHg1NjQ0YmI5ZGUxMjMgPEZu dGhjZHIrNDAzPjoJamcgICAgIDB4NTY0NGJiOWRkZmZhIDxGbnRoY2RyKzEwNj4KICAgMHg1NjQ0 YmI5ZGUxMjkgPEZudGhjZHIrNDA5PjoJdGVzdCAgICVyMTMsJXIxMwogICAweDU2NDRiYjlkZTEy YyA8Rm50aGNkcis0MTI+OglqbGUgICAgMHg1NjQ0YmI5ZGUxYTggPEZudGhjZHIrNTM2PgoweDAw MDA1NjQ0YmI5ZGUxMjkJMTU0MgkgICAgICBpZiAobnVtIDw9IFNNQUxMX0xJU1RfTEVOX01BWCkK PT4gMHg1NjQ0YmI5ZGUxMjkgPEZudGhjZHIrNDA5PjoJdGVzdCAgICVyMTMsJXIxMwogICAweDU2 NDRiYjlkZTEyYyA8Rm50aGNkcis0MTI+OglqbGUgICAgMHg1NjQ0YmI5ZGUxYTggPEZudGhjZHIr NTM2PgogICAweDU2NDRiYjlkZTEyZSA8Rm50aGNkcis0MTQ+OglsZWEgICAgLTB4MyglcnNpKSwl ZWF4CjB4MDAwMDU2NDRiYjlkZTEyYwkxNTQyCSAgICAgIGlmIChudW0gPD0gU01BTExfTElTVF9M RU5fTUFYKQo9PiAweDU2NDRiYjlkZTEyYyA8Rm50aGNkcis0MTI+OglqbGUgICAgMHg1NjQ0YmI5 ZGUxYTggPEZudGhjZHIrNTM2PgogICAweDU2NDRiYjlkZTEyZSA8Rm50aGNkcis0MTQ+OglsZWEg ICAgLTB4MyglcnNpKSwlZWF4CiAgIDB4NTY0NGJiOWRlMTMxIDxGbnRoY2RyKzQxNz46CW1vdiAg ICAlcnNpLCVyMTIKVEFHR0VEUCAodGFnPTxvcHRpbWl6ZWQgb3V0PiwgYT08b3B0aW1pemVkIG91 dD4pIGF0IGxpc3AuaDoxMzgyCjEzODIJICByZXR1cm4gbGlzcF9oX0NPTlNQICh4KTsKPT4gMHg1 NjQ0YmI5ZGUxMmUgPEZudGhjZHIrNDE0PjoJbGVhICAgIC0weDMoJXJzaSksJWVheAogICAweDU2 NDRiYjlkZTEzMSA8Rm50aGNkcis0MTc+Ogltb3YgICAgJXJzaSwlcjEyCiAgIDB4NTY0NGJiOWRl MTM0IDxGbnRoY2RyKzQyMD46CXRlc3QgICAkMHg3LCVhbAokNCA9IDB4NTY0NGJkMjI4Y2EzCjB4 MDAwMDU2NDRiYjlkZTEzMSBpbiBGbnRoY2RyIChuPTB4YSwgbGlzdD0weDU2NDRiZDIyOGNhMykg YXQgbGlzcC5oOjEzODIKMTM4MgkgIHJldHVybiBsaXNwX2hfQ09OU1AgKHgpOwo9PiAweDU2NDRi YjlkZTEzMSA8Rm50aGNkcis0MTc+Ogltb3YgICAgJXJzaSwlcjEyCiAgIDB4NTY0NGJiOWRlMTM0 IDxGbnRoY2RyKzQyMD46CXRlc3QgICAkMHg3LCVhbAogICAweDU2NDRiYjlkZTEzNiA8Rm50aGNk cis0MjI+OglqZSAgICAgMHg1NjQ0YmI5ZGUxNDkgPEZudGhjZHIrNDQxPgokNSA9IDB4YmQyMjhj YTAKMHgwMDAwNTY0NGJiOWRlMTM0CTEzODIJICByZXR1cm4gbGlzcF9oX0NPTlNQICh4KTsKPT4g MHg1NjQ0YmI5ZGUxMzQgPEZudGhjZHIrNDIwPjoJdGVzdCAgICQweDcsJWFsCiAgIDB4NTY0NGJi OWRlMTM2IDxGbnRoY2RyKzQyMj46CWplICAgICAweDU2NDRiYjlkZTE0OSA8Rm50aGNkcis0NDE+ CiAgIDB4NTY0NGJiOWRlMTM4IDxGbnRoY2RyKzQyND46CWptcCAgICAweDU2NDRiYjlkZTE5MCA8 Rm50aGNkcis1MTI+CjB4MDAwMDU2NDRiYjlkZTEzNgkxMzgyCSAgcmV0dXJuIGxpc3BfaF9DT05T UCAoeCk7Cj0+IDB4NTY0NGJiOWRlMTM2IDxGbnRoY2RyKzQyMj46CWplICAgICAweDU2NDRiYjlk ZTE0OSA8Rm50aGNkcis0NDE+CiAgIDB4NTY0NGJiOWRlMTM4IDxGbnRoY2RyKzQyND46CWptcCAg ICAweDU2NDRiYjlkZTE5MCA8Rm50aGNkcis1MTI+CiAgIDB4NTY0NGJiOWRlMTNhIDxGbnRoY2Ry KzQyNj46CW5vcHcgICAweDAoJXJheCwlcmF4LDEpClhDRFIgKGM9MHg1NjQ0YmQyMjhjYTMpIGF0 IGxpc3AuaDoxNDI2CjE0MjYJICByZXR1cm4gbGlzcF9oX1hDRFIgKGMpOwo9PiAweDU2NDRiYjlk ZTE0OSA8Rm50aGNkcis0NDE+Ogltb3YgICAgMHg1KCVyMTIpLCVyMTIKICAgMHg1NjQ0YmI5ZGUx NGUgPEZudGhjZHIrNDQ2PjoJc3ViICAgICQweDEsJXIxMwogICAweDU2NDRiYjlkZTE1MiA8Rm50 aGNkcis0NTA+OglqbmUgICAgMHg1NjQ0YmI5ZGUxNDAgPEZudGhjZHIrNDMyPgoweDAwMDA1NjQ0 YmI5ZGUxNGUgaW4gRm50aGNkciAobj0weGEsIGxpc3Q9MHg1NjQ0YmQyMjhjYTMpIGF0IGxpc3Au aDoxNDI2CjE0MjYJICByZXR1cm4gbGlzcF9oX1hDRFIgKGMpOwo9PiAweDU2NDRiYjlkZTE0ZSA8 Rm50aGNkcis0NDY+OglzdWIgICAgJDB4MSwlcjEzCiAgIDB4NTY0NGJiOWRlMTUyIDxGbnRoY2Ry KzQ1MD46CWpuZSAgICAweDU2NDRiYjlkZTE0MCA8Rm50aGNkcis0MzI+CiAgIDB4NTY0NGJiOWRl MTU0IDxGbnRoY2RyKzQ1Mj46CWptcHEgICAweDU2NDRiYjlkZTBhYiA8Rm50aGNkcisyODM+CjB4 MDAwMDU2NDRiYjlkZTE1MgkxNDI2CSAgcmV0dXJuIGxpc3BfaF9YQ0RSIChjKTsKPT4gMHg1NjQ0 YmI5ZGUxNTIgPEZudGhjZHIrNDUwPjoJam5lICAgIDB4NTY0NGJiOWRlMTQwIDxGbnRoY2RyKzQz Mj4KICAgMHg1NjQ0YmI5ZGUxNTQgPEZudGhjZHIrNDUyPjoJam1wcSAgIDB4NTY0NGJiOWRlMGFi IDxGbnRoY2RyKzI4Mz4KICAgMHg1NjQ0YmI5ZGUxNTkgPEZudGhjZHIrNDU3PjoJbm9wbCAgIDB4 MCglcmF4KQpUQUdHRURQICh0YWc9PG9wdGltaXplZCBvdXQ+LCBhPTxvcHRpbWl6ZWQgb3V0Pikg YXQgbGlzcC5oOjEzODIKMTM4MgkgIHJldHVybiBsaXNwX2hfQ09OU1AgKHgpOwo9PiAweDU2NDRi YjlkZTE0MCA8Rm50aGNkcis0MzI+OglsZWEgICAgLTB4MyglcjEyKSwlZWF4CiAgIDB4NTY0NGJi OWRlMTQ1IDxGbnRoY2RyKzQzNz46CXRlc3QgICAkMHg3LCVhbAogICAweDU2NDRiYjlkZTE0NyA8 Rm50aGNkcis0Mzk+OglqbmUgICAgMHg1NjQ0YmI5ZGUxOTAgPEZudGhjZHIrNTEyPgoweDAwMDA1 NjQ0YmI5ZGUxNDUgaW4gRm50aGNkciAobj0weGEsIGxpc3Q9MHg1NjQ0YmQyMjhjYTMpIGF0IGxp c3AuaDoxMzgyCjEzODIJICByZXR1cm4gbGlzcF9oX0NPTlNQICh4KTsKPT4gMHg1NjQ0YmI5ZGUx NDUgPEZudGhjZHIrNDM3PjoJdGVzdCAgICQweDcsJWFsCiAgIDB4NTY0NGJiOWRlMTQ3IDxGbnRo Y2RyKzQzOT46CWpuZSAgICAweDU2NDRiYjlkZTE5MCA8Rm50aGNkcis1MTI+CiAgIDB4NTY0NGJi OWRlMTQ5IDxGbnRoY2RyKzQ0MT46CW1vdiAgICAweDUoJXIxMiksJXIxMgokNiA9IDB4YzIxZjkw NTAKMHgwMDAwNTY0NGJiOWRlMTQ3CTEzODIJICByZXR1cm4gbGlzcF9oX0NPTlNQICh4KTsKPT4g MHg1NjQ0YmI5ZGUxNDcgPEZudGhjZHIrNDM5PjoJam5lICAgIDB4NTY0NGJiOWRlMTkwIDxGbnRo Y2RyKzUxMj4KICAgMHg1NjQ0YmI5ZGUxNDkgPEZudGhjZHIrNDQxPjoJbW92ICAgIDB4NSglcjEy KSwlcjEyCiAgIDB4NTY0NGJiOWRlMTRlIDxGbnRoY2RyKzQ0Nj46CXN1YiAgICAkMHgxLCVyMTMK WENEUiAoYz0weDU2NDRjMjFmOTA1MykgYXQgbGlzcC5oOjE0MjYKMTQyNgkgIHJldHVybiBsaXNw X2hfWENEUiAoYyk7Cj0+IDB4NTY0NGJiOWRlMTQ5IDxGbnRoY2RyKzQ0MT46CW1vdiAgICAweDUo JXIxMiksJXIxMgogICAweDU2NDRiYjlkZTE0ZSA8Rm50aGNkcis0NDY+OglzdWIgICAgJDB4MSwl cjEzCiAgIDB4NTY0NGJiOWRlMTUyIDxGbnRoY2RyKzQ1MD46CWpuZSAgICAweDU2NDRiYjlkZTE0 MCA8Rm50aGNkcis0MzI+CjB4MDAwMDU2NDRiYjlkZTE0ZSBpbiBGbnRoY2RyIChuPTB4YSwgbGlz dD0weDU2NDRiZDIyOGNhMykgYXQgbGlzcC5oOjE0MjYKMTQyNgkgIHJldHVybiBsaXNwX2hfWENE UiAoYyk7Cj0+IDB4NTY0NGJiOWRlMTRlIDxGbnRoY2RyKzQ0Nj46CXN1YiAgICAkMHgxLCVyMTMK ICAgMHg1NjQ0YmI5ZGUxNTIgPEZudGhjZHIrNDUwPjoJam5lICAgIDB4NTY0NGJiOWRlMTQwIDxG bnRoY2RyKzQzMj4KICAgMHg1NjQ0YmI5ZGUxNTQgPEZudGhjZHIrNDUyPjoJam1wcSAgIDB4NTY0 NGJiOWRlMGFiIDxGbnRoY2RyKzI4Mz4KMHgwMDAwNTY0NGJiOWRlMTUyCTE0MjYJICByZXR1cm4g bGlzcF9oX1hDRFIgKGMpOwo9PiAweDU2NDRiYjlkZTE1MiA8Rm50aGNkcis0NTA+OglqbmUgICAg MHg1NjQ0YmI5ZGUxNDAgPEZudGhjZHIrNDMyPgogICAweDU2NDRiYjlkZTE1NCA8Rm50aGNkcis0 NTI+OglqbXBxICAgMHg1NjQ0YmI5ZGUwYWIgPEZudGhjZHIrMjgzPgogICAweDU2NDRiYjlkZTE1 OSA8Rm50aGNkcis0NTc+Oglub3BsICAgMHgwKCVyYXgpCjB4MDAwMDU2NDRiYjlkZTE1NAkxNDI2 CSAgcmV0dXJuIGxpc3BfaF9YQ0RSIChjKTsKPT4gMHg1NjQ0YmI5ZGUxNTQgPEZudGhjZHIrNDUy PjoJam1wcSAgIDB4NTY0NGJiOWRlMGFiIDxGbnRoY2RyKzI4Mz4KICAgMHg1NjQ0YmI5ZGUxNTkg PEZudGhjZHIrNDU3PjoJbm9wbCAgIDB4MCglcmF4KQogICAweDU2NDRiYjlkZTE2MCA8Rm50aGNk cis0NjQ+OglhZGQgICAgJDB4MywlcmRpCjB4MDAwMDU2NDRiYjlkZTBhYgkzMjk4CSAgICBtYXli ZV9xdWl0ICgpOwo9PiAweDU2NDRiYjlkZTBhYiA8Rm50aGNkcisyODM+OglhZGQgICAgJDB4Mzgs JXJzcAogICAweDU2NDRiYjlkZTBhZiA8Rm50aGNkcisyODc+Ogltb3YgICAgJXIxMiwlcmF4CiAg IDB4NTY0NGJiOWRlMGIyIDxGbnRoY2RyKzI5MD46CXBvcCAgICAlcmJ4CiQ3ID0gMHgwCjB4MDAw MDU2NDRiYjlkZTE1NAkxNDI2CSAgcmV0dXJuIGxpc3BfaF9YQ0RSIChjKTsKMHgwMDAwNTY0NGJi OWRlMTUyCTE0MjYJICByZXR1cm4gbGlzcF9oX1hDRFIgKGMpOwoweDAwMDA1NjQ0YmI5ZGUxNGUJ MTQyNgkgIHJldHVybiBsaXNwX2hfWENEUiAoYyk7ClhDRFIgKGM9MHg1NjQ0YzIxZjkwNTMpIGF0 IGxpc3AuaDoxNDI2CjE0MjYJICByZXR1cm4gbGlzcF9oX1hDRFIgKGMpOwpObyBzeW1ib2wgIngi IGluIGN1cnJlbnQgY29udGV4dC4KJDggPSAoTGlzcF9PYmplY3QpIDB4NTY0NGMyMWY5MDUzCiQ5 ID0gPGluY29tcGxldGUgdHlwZT4KPT4gMHg1NjQ0YmI5ZGUxNDkgPEZudGhjZHIrNDQxPjoJbW92 ICAgIDB4NSglcjEyKSwlcjEyCiAgIDB4NTY0NGJiOWRlMTRlIDxGbnRoY2RyKzQ0Nj46CXN1YiAg ICAkMHgxLCVyMTMKICAgMHg1NjQ0YmI5ZGUxNTIgPEZudGhjZHIrNDUwPjoJam5lICAgIDB4NTY0 NGJiOWRlMTQwIDxGbnRoY2RyKzQzMj4KICAgMHg1NjQ0YmI5ZGUxNTQgPEZudGhjZHIrNDUyPjoJ am1wcSAgIDB4NTY0NGJiOWRlMGFiIDxGbnRoY2RyKzI4Mz4KICAgMHg1NjQ0YmI5ZGUxNTkgPEZu dGhjZHIrNDU3PjoJbm9wbCAgIDB4MCglcmF4KQokMTAgPSAweDU2NDRjMjFmOTA1MwoweDU2NDRj MjFmOTA1MzoJMHgwMDAwMDAwMDAwNTY0NGMxCTB4MDAwMDAyMDAwMDAwMDAwMAoweDU2NDRjMjFm OTA2MzoJMHgwMDAwMDAwMDAwMDAwMDAwCTB4MWY1NWM0MDAwMDAwMDAwMAoweDU2NDRjMjFmOTA3 MzoJMHhkOTA4NjUwMDAwNTY0NGMyCkEgc3ludGF4IGVycm9yIGluIGV4cHJlc3Npb24sIG5lYXIg YCUxMCArIDUnLgoweDU2NDRjMjFmOTA1ODoJMHgwMDAwMDAwMDAwMDAwMDAwCiMwICAweDAwMDA1 NjQ0YmI5ZGUxNDkgaW4gWENEUiAoYz0weDU2NDRjMjFmOTA1MykgYXQgbGlzcC5oOjE0MjYKIzEg IDB4MDAwMDU2NDRiYjlkZTE0OSBpbiBGbnRoY2RyIChuPTB4YSwgbGlzdD0weDU2NDRiZDIyOGNh MykgYXQgZm5zLmM6MTU0NAojMiAgMHgwMDAwNTY0NGJiOTg5MGNhIGluIG50aF9taW5pYnVmZmVy IChkZXB0aD08b3B0aW1pemVkIG91dD4pIGF0IGxpc3AuaDoxMTI0CiMzICAweDAwMDA1NjQ0YmI5 ODkwY2EgaW4gRmFjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdyAoKSBhdCBtaW5pYnVmLmM6MjMwCiM0 ICAweDAwMDA1NjQ0YmI5ZDYyYWIgaW4gRmZ1bmNhbGwgKG5hcmdzPTEsIGFyZ3M9YXJnc0BlbnRy eT0weDdmZmU0YmFhZjc3OCkgYXQgbGlzcC5oOjIwOTMKIzUgIDB4MDAwMDU2NDRiYmExMDgzMCBp biBleGVjX2J5dGVfY29kZSAoYnl0ZXN0cj08b3B0aW1pemVkIG91dD4sIHZlY3Rvcj08b3B0aW1p emVkIG91dD4sIG1heGRlcHRoPTxvcHRpbWl6ZWQgb3V0PiwgYXJnc190ZW1wbGF0ZT08b3B0aW1p emVkIG91dD4sIG5hcmdzPTxvcHRpbWl6ZWQgb3V0PiwgYXJncz08b3B0aW1pemVkIG91dD4pIGF0 IGJ5dGVjb2RlLmM6NjMyCiM2ICAweDAwMDA1NjQ0YmI5ZDYxNTkgaW4gRmZ1bmNhbGwgKG5hcmdz PTIsIGFyZ3M9MHg3ZmZlNGJhYWY4ZjApIGF0IGV2YWwuYzozMDUyCiM3ICAweDAwMDA3ZmEwMTYy ZmVmYTIgaW4gRjY0NmY2ZjZkMmQ2ZDZmNjQ2NTZjNjk2ZTY1MmQ3MzY1NzQyZDczNjU2YzY1NjM3 NDY1NjQyZDc3Njk2ZTY0NmY3N19kb29tX21vZGVsaW5lX3NldF9zZWxlY3RlZF93aW5kb3dfMCAo KSBhdCAvaG9tZS9hbGV4Ly5lbWFjcy5kL2Vsbi1jYWNoZS8yOC4wLjUwLWQ3Y2I4Y2VkL2Rvb20t bW9kZWxpbmUtY29yZS0zMTYzNDJmMy1hMGFiOWZhNS5lbG4KIzggIDB4MDAwMDU2NDRiYjlkNjJh YiBpbiBGZnVuY2FsbCAobmFyZ3M9MSwgYXJncz0weDdmZmU0YmFhZjllOCkgYXQgbGlzcC5oOjIw OTMKIzkgIDB4MDAwMDU2NDRiYjlkNjJkOSBpbiBmdW5jYWxsX25pbCAobmFyZ3M9PG9wdGltaXpl ZCBvdXQ+LCBhcmdzPTxvcHRpbWl6ZWQgb3V0PikgYXQgZXZhbC5jOjI2NzcKIzEwIDB4MDAwMDU2 NDRiYjlkNTliZCBpbiBydW5faG9va193aXRoX2FyZ3MgKG5hcmdzPTEsIGFyZ3M9MHg3ZmZlNGJh YWY5ZTgsIGZ1bmNhbGw9MHg1NjQ0YmI5ZDYyZDAgPGZ1bmNhbGxfbmlsPikgYXQgZXZhbC5jOjI4 NTQKIzExIDB4MDAwMDU2NDRiYjlkNWIyNCBpbiBGcnVuX2hvb2tfd2l0aF9hcmdzIChhcmdzPTB4 N2ZmZTRiYWFmOWU4LCBuYXJncz0xKSBhdCBldmFsLmM6Mjg2NwojMTIgMHgwMDAwNTY0NGJiOWQ1 YjI0IGluIHJ1bl9ob29rIChob29rPTxvcHRpbWl6ZWQgb3V0PikgYXQgZXZhbC5jOjI4NjcKIzEz IDB4MDAwMDU2NDRiYjlkNWIyNCBpbiBGcnVuX2hvb2tzIChuYXJncz08b3B0aW1pemVkIG91dD4s IGFyZ3M9PG9wdGltaXplZCBvdXQ+KSBhdCBldmFsLmM6MjcwMQojMTQgMHgwMDAwNTY0NGJiOWQ2 MmFiIGluIEZmdW5jYWxsIChuYXJncz0yLCBhcmdzPWFyZ3NAZW50cnk9MHg3ZmZlNGJhYWZhYjAp IGF0IGxpc3AuaDoyMDkzCiMxNSAweDAwMDA1NjQ0YmJhMTA4MzAgaW4gZXhlY19ieXRlX2NvZGUg KGJ5dGVzdHI9PG9wdGltaXplZCBvdXQ+LCB2ZWN0b3I9PG9wdGltaXplZCBvdXQ+LCBtYXhkZXB0 aD08b3B0aW1pemVkIG91dD4sIGFyZ3NfdGVtcGxhdGU9PG9wdGltaXplZCBvdXQ+LCBuYXJncz08 b3B0aW1pemVkIG91dD4sIGFyZ3M9PG9wdGltaXplZCBvdXQ+KSBhdCBieXRlY29kZS5jOjYzMgoj MTYgMHgwMDAwNTY0NGJiOWQ2MTU5IGluIEZmdW5jYWxsIChuYXJncz0zLCBhcmdzPTB4N2ZmZTRi YWFmY2EwKSBhdCBldmFsLmM6MzA1MgojMTcgMHgwMDAwNTY0NGJiOWQ2MzhmIGluIGNhbGwyIChm bj1mbkBlbnRyeT0weGMzZjAsIGFyZzE9PG9wdGltaXplZCBvdXQ+LCBhcmcyPWFyZzJAZW50cnk9 MHgzMCkgYXQgZXZhbC5jOjI5MDMKIzE4IDB4MDAwMDU2NDRiYjk4YTIwNiBpbiByZWFkX21pbmli dWYgKGluaGVyaXRfaW5wdXRfbWV0aG9kPWZhbHNlLCBhbGxvd19wcm9wcz1mYWxzZSwgZGVmYWx0 PTB4MCwgaGlzdHBvcz0weDIsIGhpc3R2YXI9MHgyOTlhMTUwLCBleHBmbGFnPWZhbHNlLCBwcm9t cHQ9MHg1NjQ0YzM4MDNiYjQsIGluaXRpYWw9PG9wdGltaXplZCBvdXQ+LCBtYXA9MHg1NjQ0YzIy MjU0NzMpIGF0IGxpc3AuaDoxMDA4CiMxOSAweDAwMDA1NjQ0YmI5OGEyMDYgaW4gRnJlYWRfZnJv bV9taW5pYnVmZmVyIChwcm9tcHQ9MHg1NjQ0YzM4MDNiYjQsIGluaXRpYWxfY29udGVudHM9PG9w dGltaXplZCBvdXQ+LCBrZXltYXA9MHg1NjQ0YzIyMjU0NzMsIHJlYWQ9MHgwLCBoaXN0PTxvcHRp bWl6ZWQgb3V0PiwgZGVmYXVsdF92YWx1ZT0weDAsIGluaGVyaXRfaW5wdXRfbWV0aG9kPTB4MCkg YXQgbWluaWJ1Zi5jOjEzNDIKIzIwIDB4MDAwMDU2NDRiYjlkODYzYiBpbiBldmFsX3N1YiAoZm9y bT08b3B0aW1pemVkIG91dD4pIGF0IGxpc3AuaDoyMDkzCiMyMSAweDAwMDA1NjQ0YmI5ZDllYTkg aW4gaW50ZXJuYWxfbGlzcF9jb25kaXRpb25fY2FzZSAodmFyPTB4MjUwN2JjMCwgYm9keWZvcm09 MHg1NjQ0YmU3ZTUzMzMsIGhhbmRsZXJzPTxvcHRpbWl6ZWQgb3V0PikgYXQgZXZhbC5jOjE0MjkK IzIyIDB4MDAwMDU2NDRiYjlkODViNCBpbiBldmFsX3N1YiAoZm9ybT08b3B0aW1pemVkIG91dD4p IGF0IGxpc3AuaDoyMDkzCiMyMyAweDAwMDA1NjQ0YmI5ZDhkOGQgaW4gRnByb2duIChib2R5PTB4 MCkgYXQgZXZhbC5jOjQ3MQojMjQgMHgwMDAwNTY0NGJiOWQ4ZDhkIGluIEZpZiAoYXJncz08b3B0 aW1pemVkIG91dD4pIGF0IGV2YWwuYzo0MjcKIzI1IDB4MDAwMDU2NDRiYjlkOGQ4ZCBpbiBGaWYg KGFyZ3M9PG9wdGltaXplZCBvdXQ+KSBhdCBldmFsLmM6NDEzCiMyNiAweDAwMDA1NjQ0YmI5ZDg1 YjQgaW4gZXZhbF9zdWIgKGZvcm09PG9wdGltaXplZCBvdXQ+KSBhdCBsaXNwLmg6MjA5MwojMjcg MHgwMDAwNTY0NGJiOWQ5YjhkIGluIEZwcm9nbiAoYm9keT0weDU2NDRiZTdlNGJjMykgYXQgZXZh bC5jOjQ3MQojMjggMHgwMDAwNTY0NGJiOWQ5YjhkIGluIEZsZXRYIChhcmdzPTB4NTY0NGJlN2U0 YmIzKSBhdCBldmFsLmM6OTg5CiMyOSAweDAwMDA1NjQ0YmI5ZDg1YjQgaW4gZXZhbF9zdWIgKGZv cm09PG9wdGltaXplZCBvdXQ+KSBhdCBsaXNwLmg6MjA5MwojMzAgMHgwMDAwNTY0NGJiOWQ4OGZk IGluIEZwcm9nbiAoYm9keT0weDApIGF0IGV2YWwuYzo0NzEKIzMxIDB4MDAwMDU2NDRiYjlkODVi NCBpbiBldmFsX3N1YiAoZm9ybT08b3B0aW1pemVkIG91dD4pIGF0IGxpc3AuaDoyMDkzCiMzMiAw eDAwMDA1NjQ0YmI5ZDljMmYgaW4gRnVud2luZF9wcm90ZWN0IChhcmdzPTB4NTY0NGJlN2U0OWUz KSBhdCBsaXNwLmg6MTQyMAojMzMgMHgwMDAwNTY0NGJiOWQ4NWI0IGluIGV2YWxfc3ViIChmb3Jt PTxvcHRpbWl6ZWQgb3V0PikgYXQgbGlzcC5oOjIwOTMKIzM0IDB4MDAwMDU2NDRiYjlkOTliZCBp biBGcHJvZ24gKGJvZHk9MHgwKSBhdCBldmFsLmM6NDcxCiMzNSAweDAwMDA1NjQ0YmI5ZDk5YmQg aW4gRmxldCAoYXJncz0weDU2NDRiZTg1MTYwMykgYXQgZXZhbC5jOjEwNTcKIzM2IDB4MDAwMDU2 NDRiYjlkODViNCBpbiBldmFsX3N1YiAoZm9ybT08b3B0aW1pemVkIG91dD4pIGF0IGxpc3AuaDoy MDkzCiMzNyAweDAwMDA1NjQ0YmI5ZDljMmYgaW4gRnVud2luZF9wcm90ZWN0IChhcmdzPTB4NTY0 NGJlODUxNGYzKSBhdCBsaXNwLmg6MTQyMAojMzggMHgwMDAwNTY0NGJiOWQ4NWI0IGluIGV2YWxf c3ViIChmb3JtPTxvcHRpbWl6ZWQgb3V0PikgYXQgbGlzcC5oOjIwOTMKIzM5IDB4MDAwMDU2NDRi YjlkOWI4ZCBpbiBGcHJvZ24gKGJvZHk9MHg1NjQ0YmVlNDI2YzMpIGF0IGV2YWwuYzo0NzEKIzQw IDB4MDAwMDU2NDRiYjlkOWI4ZCBpbiBGbGV0WCAoYXJncz0weDU2NDRiZTg1MGEwMykgYXQgZXZh bC5jOjk4OQojNDEgMHgwMDAwNTY0NGJiOWQ4NWI0IGluIGV2YWxfc3ViIChmb3JtPTxvcHRpbWl6 ZWQgb3V0PikgYXQgbGlzcC5oOjIwOTMKIzQyIDB4MDAwMDU2NDRiYjlkODhmZCBpbiBGcHJvZ24g KGJvZHk9MHgwKSBhdCBldmFsLmM6NDcxCiM0MyAweDAwMDA1NjQ0YmI5ZDg1YjQgaW4gZXZhbF9z dWIgKGZvcm09PG9wdGltaXplZCBvdXQ+KSBhdCBsaXNwLmg6MjA5MwojNDQgMHgwMDAwNTY0NGJi OWQ4OGZkIGluIEZwcm9nbiAoYm9keT0weDApIGF0IGV2YWwuYzo0NzEKIzQ1IDB4MDAwMDU2NDRi YjlkODViNCBpbiBldmFsX3N1YiAoZm9ybT08b3B0aW1pemVkIG91dD4pIGF0IGxpc3AuaDoyMDkz CiM0NiAweDAwMDA1NjQ0YmI5ZDliOGQgaW4gRnByb2duIChib2R5PTB4MCkgYXQgZXZhbC5jOjQ3 MQojNDcgMHgwMDAwNTY0NGJiOWQ5YjhkIGluIEZsZXRYIChhcmdzPTB4NTY0NGJlODUwODUzKSBh dCBldmFsLmM6OTg5CiM0OCAweDAwMDA1NjQ0YmI5ZDg1YjQgaW4gZXZhbF9zdWIgKGZvcm09PG9w dGltaXplZCBvdXQ+KSBhdCBsaXNwLmg6MjA5MwojNDkgMHgwMDAwNTY0NGJiOWQ4YTk1IGluIEZw cm9nbiAoYm9keT0weDApIGF0IGV2YWwuYzo0NzEKIzUwIDB4MDAwMDU2NDRiYjlkOGE5NSBpbiBm dW5jYWxsX2xhbWJkYSAoZnVuPTB4NTY0NGJlODUwNjkzLCBuYXJncz0xMiwgYXJnX3ZlY3Rvcj0w eDdmZmU0YmFiMDhjMCkgYXQgZXZhbC5jOjMzMTMKIzUxIDB4MDAwMDU2NDRiYjlkODA2MSBpbiBh cHBseV9sYW1iZGEgKGZ1bj0weDU2NDRiZTg1MDY4MywgYXJncz08b3B0aW1pemVkIG91dD4sIGNv dW50PWNvdW50QGVudHJ5PTUxKSBhdCBldmFsLmM6MzE4NQojNTIgMHgwMDAwNTY0NGJiOWQ4MmMw IGluIGV2YWxfc3ViIChmb3JtPTxvcHRpbWl6ZWQgb3V0PikgYXQgZXZhbC5jOjI1ODgKIzUzIDB4 MDAwMDU2NDRiYjlkOGQ4ZCBpbiBGcHJvZ24gKGJvZHk9MHgwKSBhdCBldmFsLmM6NDcxCiM1NCAw eDAwMDA1NjQ0YmI5ZDhkOGQgaW4gRmlmIChhcmdzPTxvcHRpbWl6ZWQgb3V0PikgYXQgZXZhbC5j OjQyNwojNTUgMHgwMDAwNTY0NGJiOWQ4ZDhkIGluIEZpZiAoYXJncz08b3B0aW1pemVkIG91dD4p IGF0IGV2YWwuYzo0MTMKIzU2IDB4MDAwMDU2NDRiYjlkODViNCBpbiBldmFsX3N1YiAoZm9ybT08 b3B0aW1pemVkIG91dD4pIGF0IGxpc3AuaDoyMDkzCiM1NyAweDAwMDA1NjQ0YmI5ZDliOGQgaW4g RnByb2duIChib2R5PTB4MCkgYXQgZXZhbC5jOjQ3MQojNTggMHgwMDAwNTY0NGJiOWQ5YjhkIGlu IEZsZXRYIChhcmdzPTB4NTY0NGJlYTUxODIzKSBhdCBldmFsLmM6OTg5CiM1OSAweDAwMDA1NjQ0 YmI5ZDg1YjQgaW4gZXZhbF9zdWIgKGZvcm09PG9wdGltaXplZCBvdXQ+KSBhdCBsaXNwLmg6MjA5 MwojNjAgMHgwMDAwNTY0NGJiOWQ4ZTBkIGluIEZwcm9nbiAoYm9keT0weDU2NDRiZWE0Yjc3Mykg YXQgZXZhbC5jOjQ3MQojNjEgMHgwMDAwNTY0NGJiOWQ4ZTBkIGluIEZjb25kIChhcmdzPTxvcHRp bWl6ZWQgb3V0PikgYXQgZXZhbC5jOjQ1MQojNjIgMHgwMDAwNTY0NGJiOWQ4NWI0IGluIGV2YWxf c3ViIChmb3JtPTxvcHRpbWl6ZWQgb3V0PikgYXQgbGlzcC5oOjIwOTMKIzYzIDB4MDAwMDU2NDRi YjlkOWI4ZCBpbiBGcHJvZ24gKGJvZHk9MHgwKSBhdCBldmFsLmM6NDcxCiM2NCAweDAwMDA1NjQ0 YmI5ZDliOGQgaW4gRmxldFggKGFyZ3M9MHg1NjQ0YmVhNTE3NjMpIGF0IGV2YWwuYzo5ODkKIzY1 IDB4MDAwMDU2NDRiYjlkODViNCBpbiBldmFsX3N1YiAoZm9ybT08b3B0aW1pemVkIG91dD4pIGF0 IGxpc3AuaDoyMDkzCiM2NiAweDAwMDA1NjQ0YmI5ZDhhOTUgaW4gRnByb2duIChib2R5PTB4MCkg YXQgZXZhbC5jOjQ3MQojNjcgMHgwMDAwNTY0NGJiOWQ4YTk1IGluIGZ1bmNhbGxfbGFtYmRhIChm dW49MHg1NjQ0YmVhNTE1YjMsIG5hcmdzPTQsIGFyZ192ZWN0b3I9MHg3ZmZlNGJhYjBlZDApIGF0 IGV2YWwuYzozMzEzCiM2OCAweDAwMDA1NjQ0YmI5ZDYxNTkgaW4gRmZ1bmNhbGwgKG5hcmdzPTUs IGFyZ3M9YXJnc0BlbnRyeT0weDdmZmU0YmFiMGVjOCkgYXQgZXZhbC5jOjMwNTIKIzY5IDB4MDAw MDU2NDRiYmExMDgzMCBpbiBleGVjX2J5dGVfY29kZSAoYnl0ZXN0cj08b3B0aW1pemVkIG91dD4s IHZlY3Rvcj08b3B0aW1pemVkIG91dD4sIG1heGRlcHRoPTxvcHRpbWl6ZWQgb3V0PiwgYXJnc190 ZW1wbGF0ZT08b3B0aW1pemVkIG91dD4sIG5hcmdzPTxvcHRpbWl6ZWQgb3V0PiwgYXJncz08b3B0 aW1pemVkIG91dD4pIGF0IGJ5dGVjb2RlLmM6NjMyCiM3MCAweDAwMDA1NjQ0YmI5ZDYxNTkgaW4g RmZ1bmNhbGwgKG5hcmdzPTUsIGFyZ3M9MHg3ZmZlNGJhYjEwNjApIGF0IGV2YWwuYzozMDUyCiM3 MSAweDAwMDA3ZmEwMTVmNjJiN2MgaW4gRjYzNzI2ZDJkNjM2ZjZkNzA2YzY1NzQ2NV9jcm1fY29t cGxldGVfMCAoKSBhdCAvaG9tZS9hbGV4Ly5lbWFjcy5kL2Vsbi1jYWNoZS8yOC4wLjUwLWQ3Y2I4 Y2VkL2NybS1mMDg2NjVmMi0xNmNkYjQ3ZC5lbG4KIzcyIDB4MDAwMDU2NDRiYjlkNjJhYiBpbiBG ZnVuY2FsbCAobmFyZ3M9bmFyZ3NAZW50cnk9MSwgYXJncz1hcmdzQGVudHJ5PTB4N2ZmZTRiYWIx MmQ4KSBhdCBsaXNwLmg6MjA5MwojNzMgMHgwMDAwNTY0NGJiOWQyYjgwIGluIEZmdW5jYWxsX2lu dGVyYWN0aXZlbHkgKG5hcmdzPTEsIGFyZ3M9MHg3ZmZlNGJhYjEyZDgpIGF0IGNhbGxpbnQuYzoy NjAKIzc0IDB4MDAwMDU2NDRiYjlkNjJhYiBpbiBGZnVuY2FsbCAobmFyZ3M9MiwgYXJncz0weDdm ZmU0YmFiMTJkMCkgYXQgbGlzcC5oOjIwOTMKIzc1IDB4MDAwMDU2NDRiYjlkNjVkOSBpbiBGYXBw bHkgKG5hcmdzPW5hcmdzQGVudHJ5PTMsIGFyZ3M9YXJnc0BlbnRyeT0weDdmZmU0YmFiMTJkMCkg YXQgZXZhbC5jOjI2MTkKIzc2IDB4MDAwMDU2NDRiYjlkNDFjZSBpbiBGY2FsbF9pbnRlcmFjdGl2 ZWx5IChmdW5jdGlvbj0weDYwYjhhMDAsIHJlY29yZF9mbGFnPTB4MCwga2V5cz0weDU2NDRjMTM4 N2UyZCkgYXQgbGlzcC5oOjEwMDgKIzc3IDB4MDAwMDU2NDRiYjlkNjJhYiBpbiBGZnVuY2FsbCAo bmFyZ3M9NCwgYXJncz1hcmdzQGVudHJ5PTB4N2ZmZTRiYWIxM2M4KSBhdCBsaXNwLmg6MjA5Mwoj NzggMHgwMDAwNTY0NGJiYTEwODMwIGluIGV4ZWNfYnl0ZV9jb2RlIChieXRlc3RyPTxvcHRpbWl6 ZWQgb3V0PiwgdmVjdG9yPTxvcHRpbWl6ZWQgb3V0PiwgbWF4ZGVwdGg9PG9wdGltaXplZCBvdXQ+ LCBhcmdzX3RlbXBsYXRlPTxvcHRpbWl6ZWQgb3V0PiwgbmFyZ3M9PG9wdGltaXplZCBvdXQ+LCBh cmdzPTxvcHRpbWl6ZWQgb3V0PikgYXQgYnl0ZWNvZGUuYzo2MzIKIzc5IDB4MDAwMDU2NDRiYjlk NjE1OSBpbiBGZnVuY2FsbCAobmFyZ3M9MiwgYXJncz0weDdmZmU0YmFiMTVlMCkgYXQgZXZhbC5j OjMwNTIKIzgwIDB4MDAwMDU2NDRiYjlkNjM2YSBpbiBjYWxsMSAoZm49Zm5AZW50cnk9MHg0NTYw LCBhcmcxPTxvcHRpbWl6ZWQgb3V0PikgYXQgZXZhbC5jOjI4OTYKIzgxIDB4MDAwMDU2NDRiYjk2 YjEwNiBpbiBjb21tYW5kX2xvb3BfMSAoKSBhdCBsaXNwLmg6MTAwOAojODIgMHgwMDAwNTY0NGJi OWQ1MzYyIGluIGludGVybmFsX2NvbmRpdGlvbl9jYXNlIChiZnVuPWJmdW5AZW50cnk9MHg1NjQ0 YmI5NmFkMzAgPGNvbW1hbmRfbG9vcF8xPiwgaGFuZGxlcnM9aGFuZGxlcnNAZW50cnk9MHg5MCwg aGZ1bj1oZnVuQGVudHJ5PTB4NTY0NGJiOTYxY2EwIDxjbWRfZXJyb3I+KSBhdCBldmFsLmM6MTQ3 NQojODMgMHgwMDAwNTY0NGJiOTVjNjM0IGluIGNvbW1hbmRfbG9vcF8yIChpZ25vcmU9aWdub3Jl QGVudHJ5PTB4MCkgYXQgbGlzcC5oOjEwMDgKIzg0IDB4MDAwMDU2NDRiYjlkNzdjMyBpbiBpbnRl cm5hbF9jYXRjaCAodGFnPXRhZ0BlbnRyeT0weDYxMjAsIGZ1bmM9ZnVuY0BlbnRyeT0weDU2NDRi Yjk1YzYxMCA8Y29tbWFuZF9sb29wXzI+LCBhcmc9YXJnQGVudHJ5PTB4MCkgYXQgZXZhbC5jOjEx OTgKIzg1IDB4MDAwMDU2NDRiYjk1YzU5NSBpbiBjb21tYW5kX2xvb3AgKCkgYXQgbGlzcC5oOjEw MDgKIzg2IDB4MDAwMDU2NDRiYjk2MThhNiBpbiByZWN1cnNpdmVfZWRpdF8xICgpIGF0IGtleWJv YXJkLmM6NzIwCiM4NyAweDAwMDA1NjQ0YmI5ODllNjkgaW4gcmVhZF9taW5pYnVmIChpbmhlcml0 X2lucHV0X21ldGhvZD08b3B0aW1pemVkIG91dD4sIGFsbG93X3Byb3BzPTxvcHRpbWl6ZWQgb3V0 PiwgZGVmYWx0PTxvcHRpbWl6ZWQgb3V0PiwgaGlzdHBvcz08b3B0aW1pemVkIG91dD4sIGhpc3R2 YXI9MHgyOTk5ZmQwLCBleHBmbGFnPTxvcHRpbWl6ZWQgb3V0PiwgcHJvbXB0PTxvcHRpbWl6ZWQg b3V0PiwgaW5pdGlhbD08b3B0aW1pemVkIG91dD4sIG1hcD08b3B0aW1pemVkIG91dD4pIGF0IG1p bmlidWYuYzo4OTQKIzg4IDB4MDAwMDU2NDRiYjk4OWU2OSBpbiBGcmVhZF9mcm9tX21pbmlidWZm ZXIgKHByb21wdD08b3B0aW1pemVkIG91dD4sIGluaXRpYWxfY29udGVudHM9PG9wdGltaXplZCBv dXQ+LCBrZXltYXA9PG9wdGltaXplZCBvdXQ+LCByZWFkPTxvcHRpbWl6ZWQgb3V0PiwgaGlzdD08 b3B0aW1pemVkIG91dD4sIGRlZmF1bHRfdmFsdWU9PG9wdGltaXplZCBvdXQ+LCBpbmhlcml0X2lu cHV0X21ldGhvZD08b3B0aW1pemVkIG91dD4pIGF0IG1pbmlidWYuYzoxMzQyCiM4OSAweDAwMDA3 ZmEwMTVmNzFiY2QgaW4gRjZkNjE2NzY5NzQyZDYzNmY2ZDcwNmM2NTc0Njk2ZTY3MmQ3MjY1NjE2 NDJkNmQ3NTZjNzQ2OTcwNmM2NV9tYWdpdF9jb21wbGV0aW5nX3JlYWRfbXVsdGlwbGVfMCAoKSBh dCAvaG9tZS9hbGV4Ly5lbWFjcy5kL2Vsbi1jYWNoZS8yOC4wLjUwLWQ3Y2I4Y2VkL21hZ2l0LXV0 aWxzLTQ3Y2UyYjQ0LTc2ZDYwZTIxLmVsbgojOTAgMHgwMDAwNTY0NGJiOWQ2MmFiIGluIEZmdW5j YWxsIChuYXJncz03LCBhcmdzPTB4N2ZmZTRiYWIxYTYwKSBhdCBsaXNwLmg6MjA5MwojOTEgMHgw MDAwN2ZhMDE1Yzg3YmY0IGluIEY2ZDYxNjc2OTc0MmQ2YzZmNjcyZDcyNjU2MTY0MmQ3MjY1NzY3 M19tYWdpdF9sb2dfcmVhZF9yZXZzXzAgKCkgYXQgL2hvbWUvYWxleC8uZW1hY3MuZC9lbG4tY2Fj aGUvMjguMC41MC1kN2NiOGNlZC9tYWdpdC1sb2ctZjU4MWU0N2MtMWM5NDExOGQuZWxuCiM5MiAw eDAwMDA1NjQ0YmI5ZDYyYWIgaW4gRmZ1bmNhbGwgKG5hcmdzPTEsIGFyZ3M9YXJnc0BlbnRyeT0w eDdmZmU0YmFiMWIzOCkgYXQgbGlzcC5oOjIwOTMKIzkzIDB4MDAwMDU2NDRiYmExMDgzMCBpbiBl eGVjX2J5dGVfY29kZSAoYnl0ZXN0cj08b3B0aW1pemVkIG91dD4sIHZlY3Rvcj08b3B0aW1pemVk IG91dD4sIG1heGRlcHRoPTxvcHRpbWl6ZWQgb3V0PiwgYXJnc190ZW1wbGF0ZT08b3B0aW1pemVk IG91dD4sIG5hcmdzPTxvcHRpbWl6ZWQgb3V0PiwgYXJncz08b3B0aW1pemVkIG91dD4pIGF0IGJ5 dGVjb2RlLmM6NjMyCiM5NCAweDAwMDA1NjQ0YmI5ZDg2YTEgaW4gZXZhbF9zdWIgKGZvcm09PG9w dGltaXplZCBvdXQ+KSBhdCBsaXNwLmg6MjA5MwojOTUgMHgwMDAwNTY0NGJiOWRhMDk4IGluIEZl dmFsIChmb3JtPWZvcm1AZW50cnk9MHg1NjQ0YzI3OGE2NDMsIGxleGljYWw9PG9wdGltaXplZCBv dXQ+KSBhdCBldmFsLmM6MjM0MAojOTYgMHgwMDAwNTY0NGJiOWQ0MDdjIGluIEZjYWxsX2ludGVy YWN0aXZlbHkgKGZ1bmN0aW9uPTB4MTdkMzFhMCwgcmVjb3JkX2ZsYWc9MHgwLCBrZXlzPTB4NTY0 NGMxMzg3ZTJkKSBhdCBsaXNwLmg6MTQyMAojOTcgMHgwMDAwNTY0NGJiOWQ2MmFiIGluIEZmdW5j YWxsIChuYXJncz00LCBhcmdzPWFyZ3NAZW50cnk9MHg3ZmZlNGJhYjFlZDgpIGF0IGxpc3AuaDoy MDkzCiM5OCAweDAwMDA1NjQ0YmJhMTA4MzAgaW4gZXhlY19ieXRlX2NvZGUgKGJ5dGVzdHI9PG9w dGltaXplZCBvdXQ+LCB2ZWN0b3I9PG9wdGltaXplZCBvdXQ+LCBtYXhkZXB0aD08b3B0aW1pemVk IG91dD4sIGFyZ3NfdGVtcGxhdGU9PG9wdGltaXplZCBvdXQ+LCBuYXJncz08b3B0aW1pemVkIG91 dD4sIGFyZ3M9PG9wdGltaXplZCBvdXQ+KSBhdCBieXRlY29kZS5jOjYzMgojOTkgMHgwMDAwNTY0 NGJiOWQ2MTU5IGluIEZmdW5jYWxsIChuYXJncz0yLCBhcmdzPTB4N2ZmZTRiYWIyMGYwKSBhdCBl dmFsLmM6MzA1MgojMTAwIDB4MDAwMDU2NDRiYjlkNjM2YSBpbiBjYWxsMSAoZm49Zm5AZW50cnk9 MHg0NTYwLCBhcmcxPTxvcHRpbWl6ZWQgb3V0PikgYXQgZXZhbC5jOjI4OTYKIzEwMSAweDAwMDA1 NjQ0YmI5NmIxMDYgaW4gY29tbWFuZF9sb29wXzEgKCkgYXQgbGlzcC5oOjEwMDgKIzEwMiAweDAw MDA1NjQ0YmI5ZDUzNjIgaW4gaW50ZXJuYWxfY29uZGl0aW9uX2Nhc2UgKGJmdW49YmZ1bkBlbnRy eT0weDU2NDRiYjk2YWQzMCA8Y29tbWFuZF9sb29wXzE+LCBoYW5kbGVycz1oYW5kbGVyc0BlbnRy eT0weDkwLCBoZnVuPWhmdW5AZW50cnk9MHg1NjQ0YmI5NjFjYTAgPGNtZF9lcnJvcj4pIGF0IGV2 YWwuYzoxNDc1CiMxMDMgMHgwMDAwNTY0NGJiOTVjNjM0IGluIGNvbW1hbmRfbG9vcF8yIChpZ25v cmU9aWdub3JlQGVudHJ5PTB4MCkgYXQgbGlzcC5oOjEwMDgKIzEwNCAweDAwMDA1NjQ0YmI5ZDc3 YzMgaW4gaW50ZXJuYWxfY2F0Y2ggKHRhZz10YWdAZW50cnk9MHhlNGMwLCBmdW5jPWZ1bmNAZW50 cnk9MHg1NjQ0YmI5NWM2MTAgPGNvbW1hbmRfbG9vcF8yPiwgYXJnPWFyZ0BlbnRyeT0weDApIGF0 IGV2YWwuYzoxMTk4CiMxMDUgMHgwMDAwNTY0NGJiOTVjNWRiIGluIGNvbW1hbmRfbG9vcCAoKSBh dCBsaXNwLmg6MTAwOAojMTA2IDB4MDAwMDU2NDRiYjk2MThhNiBpbiByZWN1cnNpdmVfZWRpdF8x ICgpIGF0IGtleWJvYXJkLmM6NzIwCiMxMDcgMHgwMDAwNTY0NGJiOTYxYmM1IGluIEZyZWN1cnNp dmVfZWRpdCAoKSBhdCBrZXlib2FyZC5jOjc4OQojMTA4IDB4MDAwMDU2NDRiYjg4MTQxNCBpbiBt YWluIChhcmdjPTEsIGFyZ3Y9PG9wdGltaXplZCBvdXQ+KSBhdCBlbWFjcy5jOjIyOTcKIzQgIDB4 MDAwMDU2NDRiYjlkNjJhYiBpbiBGZnVuY2FsbCAobmFyZ3M9MSwgYXJncz1hcmdzQGVudHJ5PTB4 N2ZmZTRiYWFmNzc4KSBhdCBsaXNwLmg6MjA5MwoyMDkzCSAgcmV0dXJuICZYVU5UQUcgKGEsIExp c3BfVmVjdG9ybGlrZSwgdW5pb24gQWxpZ25lZF9MaXNwX1N1YnIpLT5zOwpIYXJkd2FyZSBhc3Np c3RlZCBicmVha3BvaW50IDIgYXQgMHg1NjQ0YmI5YjQyNWM6IC9ob21lL2FsZXgvc3JjL2VtYWNz L2VtYWNzLmdpdC9zcmMvbGlzcC5oOjIwOTMuICg0MyBsb2NhdGlvbnMpCkNvbnRpbnVpbmcuCldh cm5pbmc6CkNhbm5vdCBpbnNlcnQgaGFyZHdhcmUgYnJlYWtwb2ludCAyLgpDYW5ub3QgaW5zZXJ0 IGhhcmR3YXJlIGJyZWFrcG9pbnQgMi4KQ2Fubm90IGluc2VydCBoYXJkd2FyZSBicmVha3BvaW50 IDIuCkNhbm5vdCBpbnNlcnQgaGFyZHdhcmUgYnJlYWtwb2ludCAyLgpDYW5ub3QgaW5zZXJ0IGhh cmR3YXJlIGJyZWFrcG9pbnQgMi4KQ2Fubm90IGluc2VydCBoYXJkd2FyZSBicmVha3BvaW50IDIu CkNhbm5vdCBpbnNlcnQgaGFyZHdhcmUgYnJlYWtwb2ludCAyLgpDYW5ub3QgaW5zZXJ0IGhhcmR3 YXJlIGJyZWFrcG9pbnQgMi4KQ2Fubm90IGluc2VydCBoYXJkd2FyZSBicmVha3BvaW50IDIuCkNh bm5vdCBpbnNlcnQgaGFyZHdhcmUgYnJlYWtwb2ludCAyLgpDYW5ub3QgaW5zZXJ0IGhhcmR3YXJl IGJyZWFrcG9pbnQgMi4KQ2Fubm90IGluc2VydCBoYXJkd2FyZSBicmVha3BvaW50IDIuCkNhbm5v dCBpbnNlcnQgaGFyZHdhcmUgYnJlYWtwb2ludCAyLgpDYW5ub3QgaW5zZXJ0IGhhcmR3YXJlIGJy ZWFrcG9pbnQgMi4KQ2Fubm90IGluc2VydCBoYXJkd2FyZSBicmVha3BvaW50IDIuCkNhbm5vdCBp bnNlcnQgaGFyZHdhcmUgYnJlYWtwb2ludCAyLgpDYW5ub3QgaW5zZXJ0IGhhcmR3YXJlIGJyZWFr cG9pbnQgMi4KQ2Fubm90IGluc2VydCBoYXJkd2FyZSBicmVha3BvaW50IDIuCkNhbm5vdCBpbnNl cnQgaGFyZHdhcmUgYnJlYWtwb2ludCAyLgpDYW5ub3QgaW5zZXJ0IGhhcmR3YXJlIGJyZWFrcG9p bnQgMi4KQ2Fubm90IGluc2VydCBoYXJkd2FyZSBicmVha3BvaW50IDIuCkNhbm5vdCBpbnNlcnQg aGFyZHdhcmUgYnJlYWtwb2ludCAyLgpDYW5ub3QgaW5zZXJ0IGhhcmR3YXJlIGJyZWFrcG9pbnQg Mi4KQ2Fubm90IGluc2VydCBoYXJkd2FyZSBicmVha3BvaW50IDIuCkNhbm5vdCBpbnNlcnQgaGFy ZHdhcmUgYnJlYWtwb2ludCAyLgpDYW5ub3QgaW5zZXJ0IGhhcmR3YXJlIGJyZWFrcG9pbnQgMi4K Q2Fubm90IGluc2VydCBoYXJkd2FyZSBicmVha3BvaW50IDIuCkNhbm5vdCBpbnNlcnQgaGFyZHdh cmUgYnJlYWtwb2ludCAyLgpDYW5ub3QgaW5zZXJ0IGhhcmR3YXJlIGJyZWFrcG9pbnQgMi4KQ2Fu bm90IGluc2VydCBoYXJkd2FyZSBicmVha3BvaW50IDIuCkNhbm5vdCBpbnNlcnQgaGFyZHdhcmUg YnJlYWtwb2ludCAyLgpDYW5ub3QgaW5zZXJ0IGhhcmR3YXJlIGJyZWFrcG9pbnQgMi4KQ2Fubm90 IGluc2VydCBoYXJkd2FyZSBicmVha3BvaW50IDIuCkNhbm5vdCBpbnNlcnQgaGFyZHdhcmUgYnJl YWtwb2ludCAyLgpDYW5ub3QgaW5zZXJ0IGhhcmR3YXJlIGJyZWFrcG9pbnQgMi4KQ2Fubm90IGlu c2VydCBoYXJkd2FyZSBicmVha3BvaW50IDIuCkNhbm5vdCBpbnNlcnQgaGFyZHdhcmUgYnJlYWtw b2ludCAyLgpDYW5ub3QgaW5zZXJ0IGhhcmR3YXJlIGJyZWFrcG9pbnQgMi4KQ2Fubm90IGluc2Vy dCBoYXJkd2FyZSBicmVha3BvaW50IDIuCkNhbm5vdCBpbnNlcnQgaGFyZHdhcmUgYnJlYWtwb2lu dCAyLgpDb3VsZCBub3QgaW5zZXJ0IGhhcmR3YXJlIGJyZWFrcG9pbnRzOgpZb3UgbWF5IGhhdmUg cmVxdWVzdGVkIHRvbyBtYW55IGhhcmR3YXJlIGJyZWFrcG9pbnRzL3dhdGNocG9pbnRzLgoKQ29t bWFuZCBhYm9ydGVkLgpOdW0gICAgIFR5cGUgICAgICAgICAgIERpc3AgRW5iIEFkZHJlc3MgICAg ICAgICAgICBXaGF0CjEgICAgICAgaHcgYnJlYWtwb2ludCAga2VlcCB5ICAgMHgwMDAwNTY0NGJi OTg5MGEwIGluIEZhY3RpdmVfbWluaWJ1ZmZlcl93aW5kb3cgYXQgbWluaWJ1Zi5jOjIyNwoJYnJl YWtwb2ludCBhbHJlYWR5IGhpdCAxIHRpbWUKMiAgICAgICBodyBicmVha3BvaW50ICBrZWVwIHkg ICA8TVVMVElQTEU+ICAgICAgICAgCjIuMSAgICAgICAgICAgICAgICAgICAgICAgICB5ICAgICAw eDAwMDA1NjQ0YmI5YjQyNWMgaW4gU1VCUl9OQVRJVkVfQ09NUElMRURQIGF0IGxpc3AuaDoyMDkz CjIuMiAgICAgICAgICAgICAgICAgICAgICAgICB5ICAgICAweDAwMDA1NjQ0YmI5Yjk3OTAgaW4g U1VCUl9OQVRJVkVfQ09NUElMRURQIGF0IGxpc3AuaDoyMDkzCjIuMyAgICAgICAgICAgICAgICAg ICAgICAgICB5ICAgICAweDAwMDA1NjQ0YmI5YmFiMDUgaW4gU1VCUl9OQVRJVkVfQ09NUElMRURQ IGF0IGxpc3AuaDoyMDkzCjIuNCAgICAgICAgICAgICAgICAgICAgICAgICB5ICAgICAweDAwMDA1 NjQ0YmI5YmFiNzggaW4gWFNVQlIgYXQgbGlzcC5oOjIwOTMKMi41ICAgICAgICAgICAgICAgICAg ICAgICAgIHkgICAgIDB4MDAwMDU2NDRiYjliZWE2NyBpbiBkdW1wX2NvbGRfbmF0aXZlX3N1YnIg YXQgbGlzcC5oOjIwOTMKMi42ICAgICAgICAgICAgICAgICAgICAgICAgIHkgICAgIDB4MDAwMDU2 NDRiYjliZWQ1MiBpbiBTVUJSX05BVElWRV9DT01QSUxFRFAgYXQgbGlzcC5oOjIwOTMKMi43ICAg ICAgICAgICAgICAgICAgICAgICAgIHkgICAgIDB4MDAwMDU2NDRiYjljMTM2NyBpbiBTVUJSX05B VElWRV9DT01QSUxFRFAgYXQgbGlzcC5oOjIwOTMKMi44ICAgICAgICAgICAgICAgICAgICAgICAg IHkgICAgIDB4MDAwMDU2NDRiYjljMTdkOSBpbiBTVUJSX05BVElWRV9DT01QSUxFRFAgYXQgbGlz cC5oOjIwOTMKMi45ICAgICAgICAgICAgICAgICAgICAgICAgIHkgICAgIDB4MDAwMDU2NDRiYjlj MWEzMCBpbiBGc3Vicl9hcml0eSBhdCBsaXNwLmg6MjA5MwoyLjEwICAgICAgICAgICAgICAgICAg ICAgICAgeSAgICAgMHgwMDAwNTY0NGJiOWMyYjEwIGluIEZzdWJyX3R5cGUgYXQgbGlzcC5oOjIw OTMKMi4xMSAgICAgICAgICAgICAgICAgICAgICAgIHkgICAgIDB4MDAwMDU2NDRiYjljMmI1MCBp biBGc3Vicl9uYXRpdmVfY29tcF91bml0IGF0IGxpc3AuaDoyMDkzCjIuMTIgICAgICAgICAgICAg ICAgICAgICAgICB5ICAgICAweDAwMDA1NjQ0YmI5YzJiOGQgaW4gRnN1YnJfbmFtZSBhdCBsaXNw Lmg6MjA5MwoyLjEzICAgICAgICAgICAgICAgICAgICAgICAgeSAgICAgMHgwMDAwNTY0NGJiOWMy YmUwIGluIFNVQlJfTkFUSVZFX0NPTVBJTEVEUCBhdCBsaXNwLmg6MjA5MwoyLjE0ICAgICAgICAg ICAgICAgICAgICAgICAgeSAgICAgMHgwMDAwNTY0NGJiOWMyYmVjIGluIFNVQlJfTkFUSVZFX0NP TVBJTEVEX0RZTlAgYXQgbGlzcC5oOjIwOTMKMi4xNSAgICAgICAgICAgICAgICAgICAgICAgIHkg ICAgIDB4MDAwMDU2NDRiYjljNDE3YiBpbiBub3RpZnlfdmFyaWFibGVfd2F0Y2hlcnMgYXQgbGlz cC5oOjIwOTMKMi4xNiAgICAgICAgICAgICAgICAgICAgICAgIHkgICAgIDB4MDAwMDU2NDRiYjlj NDVlZiBpbiBTVUJSX05BVElWRV9DT01QSUxFRFAgYXQgbGlzcC5oOjIwOTMKMi4xNyAgICAgICAg ICAgICAgICAgICAgICAgIHkgICAgIDB4MDAwMDU2NDRiYjljNzcxNiBpbiBTVUJSX05BVElWRV9D T01QSUxFRFAgYXQgbGlzcC5oOjIwOTMKMi4xOCAgICAgICAgICAgICAgICAgICAgICAgIHkgICAg IDB4MDAwMDU2NDRiYjljNzcyMSBpbiBzdG9yZV9mdW5jdGlvbl9kb2NzdHJpbmcgYXQgbGlzcC5o OjIwOTMKMi4xOSAgICAgICAgICAgICAgICAgICAgICAgIHkgICAgIDB4MDAwMDU2NDRiYjljODIx OCBpbiBtYWtlX2ZpeG51bSBhdCBsaXNwLmg6MjA5MwoyLjIwICAgICAgICAgICAgICAgICAgICAg ICAgeSAgICAgMHgwMDAwNTY0NGJiOWQ0ZWMwIGluIEZjb21tYW5kcCBhdCBsaXNwLmg6MjA5Mwoy LjIxICAgICAgICAgICAgICAgICAgICAgICAgeSAgICAgMHgwMDAwNTY0NGJiOWQ1OGM4IGluIEZV TkNUSU9OUCBhdCBsaXNwLmg6MjA5MwoyLjIyICAgICAgICAgICAgICAgICAgICAgICAgeSAgICAg MHgwMDAwNTY0NGJiOWQ2MTI2IGluIFNVQlJfTkFUSVZFX0NPTVBJTEVEUCBhdCBsaXNwLmg6MjA5 MwoyLjIzICAgICAgICAgICAgICAgICAgICAgICAgeSAgICAgMHgwMDAwNTY0NGJiOWQ2MTMxIGlu IFNVQlJfTkFUSVZFX0NPTVBJTEVEX0RZTlAgYXQgbGlzcC5oOjIwOTMKMi4yNCAgICAgICAgICAg ICAgICAgICAgICAgIHkgICAgIDB4MDAwMDU2NDRiYjlkNjEzYyBpbiBTVUJSX05BVElWRV9DT01Q SUxFRFAgYXQgbGlzcC5oOjIwOTMKMi4yNSAgICAgICAgICAgICAgICAgICAgICAgIHkgICAgIDB4 MDAwMDU2NDRiYjlkNjE0MyBpbiBTVUJSX05BVElWRV9DT01QSUxFRF9EWU5QIGF0IGxpc3AuaDoy MDkzCjIuMjYgICAgICAgICAgICAgICAgICAgICAgICB5ICAgICAweDAwMDA1NjQ0YmI5ZDYyOTgg aW4gRmZ1bmNhbGwgYXQgbGlzcC5oOjIwOTMKMi4yNyAgICAgICAgICAgICAgICAgICAgICAgIHkg ICAgIDB4MDAwMDU2NDRiYjlkNjQ1YyBpbiBGYXBwbHkgYXQgbGlzcC5oOjIwOTMKMi4yOCAgICAg ICAgICAgICAgICAgICAgICAgIHkgICAgIDB4MDAwMDU2NDRiYjlkNjQ3MiBpbiBGYXBwbHkgYXQg bGlzcC5oOjIwOTMKMi4yOSAgICAgICAgICAgICAgICAgICAgICAgIHkgICAgIDB4MDAwMDU2NDRi YjlkODI4OSBpbiBTVUJSX05BVElWRV9DT01QSUxFRFAgYXQgbGlzcC5oOjIwOTMKMi4zMCAgICAg ICAgICAgICAgICAgICAgICAgIHkgICAgIDB4MDAwMDU2NDRiYjlkODI5NCBpbiBTVUJSX05BVElW RV9DT01QSUxFRF9EWU5QIGF0IGxpc3AuaDoyMDkzCjIuMzEgICAgICAgICAgICAgICAgICAgICAg ICB5ICAgICAweDAwMDA1NjQ0YmI5ZDgyOWYgaW4gU1VCUl9OQVRJVkVfQ09NUElMRURQIGF0IGxp c3AuaDoyMDkzCjIuMzIgICAgICAgICAgICAgICAgICAgICAgICB5ICAgICAweDAwMDA1NjQ0YmI5 ZDgyYTYgaW4gU1VCUl9OQVRJVkVfQ09NUElMRURfRFlOUCBhdCBsaXNwLmg6MjA5MwoyLjMzICAg ICAgICAgICAgICAgICAgICAgICAgeSAgICAgMHgwMDAwNTY0NGJiOWQ4NGU1IGluIGV2YWxfc3Vi IGF0IGxpc3AuaDoyMDkzCjIuMzQgICAgICAgICAgICAgICAgICAgICAgICB5ICAgICAweDAwMDA1 NjQ0YmI5ZDg2MWEgaW4gZXZhbF9zdWIgYXQgbGlzcC5oOjIwOTMKMi4zNSAgICAgICAgICAgICAg ICAgICAgICAgIHkgICAgIDB4MDAwMDU2NDRiYjlkODZmMiBpbiBldmFsX3N1YiBhdCBsaXNwLmg6 MjA5MwoyLjM2ICAgICAgICAgICAgICAgICAgICAgICAgeSAgICAgMHgwMDAwNTY0NGJiOWQ4N2Fj IGluIGV2YWxfc3ViIGF0IGxpc3AuaDoyMDkzCjIuMzcgICAgICAgICAgICAgICAgICAgICAgICB5 ICAgICAweDAwMDA1NjQ0YmI5ZDhjMTEgaW4gU1VCUl9OQVRJVkVfQ09NUElMRURQIGF0IGxpc3Au aDoyMDkzCjIuMzggICAgICAgICAgICAgICAgICAgICAgICB5ICAgICAweDAwMDA1NjQ0YmI5ZDhj MTggaW4gZnVuY2FsbF9sYW1iZGEgYXQgbGlzcC5oOjIwOTMKMi4zOSAgICAgICAgICAgICAgICAg ICAgICAgIHkgICAgIDB4MDAwMDU2NDRiYjlkOGM3MCBpbiBTVUJSX05BVElWRV9DT01QSUxFRFAg YXQgbGlzcC5oOjIwOTMKMi40MCAgICAgICAgICAgICAgICAgICAgICAgIHkgICAgIDB4MDAwMDU2 NDRiYjlkOGM3YyBpbiBTVUJSX05BVElWRV9DT01QSUxFRF9EWU5QIGF0IGxpc3AuaDoyMDkzCjIu NDEgICAgICAgICAgICAgICAgICAgICAgICB5ICAgICAweDAwMDA1NjQ0YmI5ZjY0MTQgaW4gcHJp bnRfdmVjdG9ybGlrZSBhdCBsaXNwLmg6MjA5MwoyLjQyICAgICAgICAgICAgICAgICAgICAgICAg eSAgICAgMHgwMDAwNTY0NGJiYTE2OTJkIGluIEZjb21wX19pbnN0YWxsX3RyYW1wb2xpbmUgYXQg bGlzcC5oOjIwOTMKMi40MyAgICAgICAgICAgICAgICAgICAgICAgIHkgICAgIDB4MDAwMDU2NDRi YmExYjE5MCBpbiBBUkVGIGF0IGxpc3AuaDoyMDkzCkNvbnRpbnVpbmcuCgpUaHJlYWQgMSBoaXQg QnJlYWtwb2ludCAxLCBGYWN0aXZlX21pbmlidWZmZXJfd2luZG93ICgpIGF0IG1pbmlidWYuYzoy MjcKMjI3CSAgaWYgKCFtaW5pYnVmX2xldmVsKQpmdW5jYWxsX3N1YnIgKHN1YnI9MHg1NjQ0YmJl MzM2ZTAgPFNhY3RpdmVfbWluaWJ1ZmZlcl93aW5kb3c+LCBudW1hcmdzPTAsIGFyZ3M9PG9wdGlt aXplZCBvdXQ+KSBhdCBldmFsLmM6MzEwOQozMTA5CSAgICAgICAgICByZXR1cm4gKHN1YnItPmZ1 bmN0aW9uLmEwICgpKTsKJDExID0gKHN0cnVjdCBMaXNwX1N1YnIgKikgMHg1NjQ0YmJlMzM2ZTAg PFNhY3RpdmVfbWluaWJ1ZmZlcl93aW5kb3c+CiQxMiA9IHthMCA9IDB4NTY0NGJiOTg5MGEwIDxG YWN0aXZlX21pbmlidWZmZXJfd2luZG93PiwgYTEgPSAweDU2NDRiYjk4OTBhMCA8RmFjdGl2ZV9t aW5pYnVmZmVyX3dpbmRvdz4sIGEyID0gMHg1NjQ0YmI5ODkwYTAgPEZhY3RpdmVfbWluaWJ1ZmZl cl93aW5kb3c+LCBhMyA9IDB4NTY0NGJiOTg5MGEwIDxGYWN0aXZlX21pbmlidWZmZXJfd2luZG93 PiwgYTQgPSAweDU2NDRiYjk4OTBhMCA8RmFjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdz4sIGE1ID0g MHg1NjQ0YmI5ODkwYTAgPEZhY3RpdmVfbWluaWJ1ZmZlcl93aW5kb3c+LCBhNiA9IDB4NTY0NGJi OTg5MGEwIDxGYWN0aXZlX21pbmlidWZmZXJfd2luZG93PiwgYTcgPSAweDU2NDRiYjk4OTBhMCA8 RmFjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdz4sIGE4ID0gMHg1NjQ0YmI5ODkwYTAgPEZhY3RpdmVf bWluaWJ1ZmZlcl93aW5kb3c+LCBhVU5FVkFMTEVEID0gMHg1NjQ0YmI5ODkwYTAgPEZhY3RpdmVf bWluaWJ1ZmZlcl93aW5kb3c+LCBhTUFOWSA9IDB4NTY0NGJiOTg5MGEwIDxGYWN0aXZlX21pbmli dWZmZXJfd2luZG93Pn0KJDEzID0gKExpc3BfT2JqZWN0ICgqKSh2b2lkKSkgMHg1NjQ0YmI5ODkw YTAgPEZhY3RpdmVfbWluaWJ1ZmZlcl93aW5kb3c+CjMxMDQJICAgICAgZWxzZQozMTA1CSAgICAg ICAgaW50ZXJuYWxfYXJncyA9IGFyZ3M7CjMxMDYJICAgICAgc3dpdGNoIChzdWJyLT5tYXhfYXJn cykKMzEwNwkgICAgICAgIHsKMzEwOAkgICAgICAgIGNhc2UgMDoKMzEwOQkgICAgICAgICAgcmV0 dXJuIChzdWJyLT5mdW5jdGlvbi5hMCAoKSk7CjMxMTAJICAgICAgICBjYXNlIDE6CjMxMTEJICAg ICAgICAgIHJldHVybiAoc3Vici0+ZnVuY3Rpb24uYTEgKGludGVybmFsX2FyZ3NbMF0pKTsKMzEx MgkgICAgICAgIGNhc2UgMjoKMzExMwkgICAgICAgICAgcmV0dXJuIChzdWJyLT5mdW5jdGlvbi5h MgokMTQgPSB7aGVhZGVyID0ge3NpemUgPSA0NjExNjg2MDE4Njk1ODIzMzYwfSwgZnVuY3Rpb24g PSB7YTAgPSAweDU2NDRiYjk4OTBhMCA8RmFjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdz4sIGExID0g MHg1NjQ0YmI5ODkwYTAgPEZhY3RpdmVfbWluaWJ1ZmZlcl93aW5kb3c+LCBhMiA9IDB4NTY0NGJi OTg5MGEwIDxGYWN0aXZlX21pbmlidWZmZXJfd2luZG93PiwgYTMgPSAweDU2NDRiYjk4OTBhMCA8 RmFjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdz4sIGE0ID0gMHg1NjQ0YmI5ODkwYTAgPEZhY3RpdmVf bWluaWJ1ZmZlcl93aW5kb3c+LCBhNSA9IDB4NTY0NGJiOTg5MGEwIDxGYWN0aXZlX21pbmlidWZm ZXJfd2luZG93PiwgYTYgPSAweDU2NDRiYjk4OTBhMCA8RmFjdGl2ZV9taW5pYnVmZmVyX3dpbmRv dz4sIGE3ID0gMHg1NjQ0YmI5ODkwYTAgPEZhY3RpdmVfbWluaWJ1ZmZlcl93aW5kb3c+LCBhOCA9 IDB4NTY0NGJiOTg5MGEwIDxGYWN0aXZlX21pbmlidWZmZXJfd2luZG93PiwgYVVORVZBTExFRCA9 IDB4NTY0NGJiOTg5MGEwIDxGYWN0aXZlX21pbmlidWZmZXJfd2luZG93PiwgYU1BTlkgPSAweDU2 NDRiYjk4OTBhMCA8RmFjdGl2ZV9taW5pYnVmZmVyX3dpbmRvdz59LCBtaW5fYXJncyA9IDAsIG1h eF9hcmdzID0gMCwgc3ltYm9sX25hbWUgPSAweDU2NDRiYmE4Y2FmNSAiYWN0aXZlLW1pbmlidWZm ZXItd2luZG93Iiwge2ludHNwZWMgPSAweDAsIG5hdGl2ZV9pbnRzcGVjID0gMHgwfSwgZG9jID0g NDQ4NTU5LCBuYXRpdmVfY29tcF91ID0gezB4MH0sIG5hdGl2ZV9jX25hbWUgPSB7MHgwfSwgbGFt YmRhX2xpc3QgPSB7MHgwfSwgdHlwZSA9IHsweDB9fQoweDAwMDA1NjQ0YmI5ZDc5YTUJMzEwOQkg ICAgICAgICAgcmV0dXJuIChzdWJyLT5mdW5jdGlvbi5hMCAoKSk7CjB4MDAwMDU2NDRiYjlkNzlh OQkzMTA5CSAgICAgICAgICByZXR1cm4gKHN1YnItPmZ1bmN0aW9uLmEwICgpKTsKMHgwMDAwNTY0 NGJiOWQ3OWFhCTMxMDkJICAgICAgICAgIHJldHVybiAoc3Vici0+ZnVuY3Rpb24uYTAgKCkpOwow eDAwMDA1NjQ0YmI5ZDc5YWIJMzEwOQkgICAgICAgICAgcmV0dXJuIChzdWJyLT5mdW5jdGlvbi5h MCAoKSk7Cj0+IDB4NTY0NGJiOWQ3OWFiIDxmdW5jYWxsX3N1YnIrMzE1PjoJcG9wICAgICVyMTIK ICAgMHg1NjQ0YmI5ZDc5YWQgPGZ1bmNhbGxfc3ViciszMTc+Oglwb3AgICAgJXIxMwogICAweDU2 NDRiYjlkNzlhZiA8ZnVuY2FsbF9zdWJyKzMxOT46CXBvcCAgICAlcjE0CjB4MDAwMDU2NDRiYjlk NzlhZAkzMTA5CSAgICAgICAgICByZXR1cm4gKHN1YnItPmZ1bmN0aW9uLmEwICgpKTsKPT4gMHg1 NjQ0YmI5ZDc5YWQgPGZ1bmNhbGxfc3ViciszMTc+Oglwb3AgICAgJXIxMwogICAweDU2NDRiYjlk NzlhZiA8ZnVuY2FsbF9zdWJyKzMxOT46CXBvcCAgICAlcjE0CiAgIDB4NTY0NGJiOWQ3OWIxIDxm dW5jYWxsX3N1YnIrMzIxPjoJcG9wICAgICVyMTUKMHgwMDAwNTY0NGJiOWQ3OWFmCTMxMDkJICAg ICAgICAgIHJldHVybiAoc3Vici0+ZnVuY3Rpb24uYTAgKCkpOwo9PiAweDU2NDRiYjlkNzlhZiA8 ZnVuY2FsbF9zdWJyKzMxOT46CXBvcCAgICAlcjE0CiAgIDB4NTY0NGJiOWQ3OWIxIDxmdW5jYWxs X3N1YnIrMzIxPjoJcG9wICAgICVyMTUKICAgMHg1NjQ0YmI5ZDc5YjMgPGZ1bmNhbGxfc3Vicisz MjM+OglqbXBxICAgKiVyYXgKMHgwMDAwNTY0NGJiOWQ3OWIxCTMxMDkJICAgICAgICAgIHJldHVy biAoc3Vici0+ZnVuY3Rpb24uYTAgKCkpOwo9PiAweDU2NDRiYjlkNzliMSA8ZnVuY2FsbF9zdWJy KzMyMT46CXBvcCAgICAlcjE1CiAgIDB4NTY0NGJiOWQ3OWIzIDxmdW5jYWxsX3N1YnIrMzIzPjoJ am1wcSAgIColcmF4CiAgIDB4NTY0NGJiOWQ3OWI1IDxmdW5jYWxsX3N1YnIrMzI1PjoJbm9wbCAg ICglcmF4KQoweDAwMDA1NjQ0YmI5ZDc5YjMJMzEwOQkgICAgICAgICAgcmV0dXJuIChzdWJyLT5m dW5jdGlvbi5hMCAoKSk7Cj0+IDB4NTY0NGJiOWQ3OWIzIDxmdW5jYWxsX3N1YnIrMzIzPjoJam1w cSAgIColcmF4CiAgIDB4NTY0NGJiOWQ3OWI1IDxmdW5jYWxsX3N1YnIrMzI1PjoJbm9wbCAgICgl cmF4KQogICAweDU2NDRiYjlkNzliOCA8ZnVuY2FsbF9zdWJyKzMyOD46CW1vdiAgICAweDgoJXIx MiksJXJkeAoKVGhyZWFkIDEgaGl0IEJyZWFrcG9pbnQgMSwgRmFjdGl2ZV9taW5pYnVmZmVyX3dp bmRvdyAoKSBhdCBtaW5pYnVmLmM6MjI3CjIyNwkgIGlmICghbWluaWJ1Zl9sZXZlbCkKPT4gMHg1 NjQ0YmI5ODkwYTAgPEZhY3RpdmVfbWluaWJ1ZmZlcl93aW5kb3c+Ogltb3YgICAgMHg1MWYxZjko JXJpcCksJXJkeCAgICAgICAgIyAweDU2NDRiYmVhODJhMCA8bWluaWJ1Zl9sZXZlbD4KICAgMHg1 NjQ0YmI5ODkwYTcgPEZhY3RpdmVfbWluaWJ1ZmZlcl93aW5kb3crNz46CXhvciAgICAlZWF4LCVl YXgKICAgMHg1NjQ0YmI5ODkwYTkgPEZhY3RpdmVfbWluaWJ1ZmZlcl93aW5kb3crOT46CXRlc3Qg ICAlcmR4LCVyZHgKJDE1ID0gMgoyMjIJewoyMjMJICBMaXNwX09iamVjdCBmcmFtZXMsIGZyYW1l OwoyMjQJICBzdHJ1Y3QgZnJhbWUgKmY7CjIyNQkgIExpc3BfT2JqZWN0IGlubmVybW9zdF9NQjsK MjI2CQoyMjcJICBpZiAoIW1pbmlidWZfbGV2ZWwpCjIyOAkgICAgcmV0dXJuIFFuaWw7CjIyOQkK MjMwCSAgaW5uZXJtb3N0X01CID0gbnRoX21pbmlidWZmZXIgKG1pbmlidWZfbGV2ZWwpOwoyMzEJ ICBGT1JfRUFDSF9GUkFNRSAoZnJhbWVzLCBmcmFtZSkKMTExOQkKMTEyMAlJTkxJTkUgTGlzcF9P YmplY3QKMTEyMQkobWFrZV9maXhudW0pIChFTUFDU19JTlQgbikKMTEyMgl7CjExMjMJICBlYXNz ZXJ0ICghRklYTlVNX09WRVJGTE9XX1AgKG4pKTsKMTEyNAkgIHJldHVybiBsaXNwX2hfbWFrZV9m aXhudW1fd3JhcCAobik7CjExMjUJfQoxMTI2CQoxMTI3CUlOTElORSBFTUFDU19JTlQKMTEyOAko WEZJWE5VTV9SQVcpIChMaXNwX09iamVjdCBhKQokMTYgPSAoTGlzcF9PYmplY3QpIDB4NTY0NGJk MjI4Y2EzCg== --00000000000050f94605c2099cf2--